From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [PATCH v7 09/11] drm: uevent for connector status change Date: Mon, 13 May 2019 19:14:22 +0200 Message-ID: <47a92b839dce94a7706c20b9aec03bc99539b46b.camel@bootlin.com> References: <20190507162745.25600-1-ramalingam.c@intel.com> <20190507162745.25600-10-ramalingam.c@intel.com> <31dad9a323382628911c5301a6eec179855aa815.camel@bootlin.com> <8aa3980a6948b9b2b989c237f8453ca54e72ad95.camel@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: David Airlie , Maxime Ripard , intel-gfx , dri-devel , Gwan-gyeong Mun , "Ser, Simon" , Thomas Petazzoni , Daniel Vetter , Sean Paul List-Id: intel-gfx@lists.freedesktop.org SGV5LAoKTGUgbHVuZGkgMTMgbWFpIDIwMTkgw6AgMTE6MzQgKzAyMDAsIERhbmllbCBWZXR0ZXIg YSDDqWNyaXQgOgo+IE9uIE1vbiwgTWF5IDEzLCAyMDE5IGF0IDExOjAyIEFNIFBhdWwgS29jaWFs a293c2tpCj4gPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPiB3cm90ZToKPiA+IEhpLAo+ ID4gCj4gPiBPbiBGcmksIDIwMTktMDUtMTAgYXQgMTY6NTQgKzAyMDAsIERhbmllbCBWZXR0ZXIg d3JvdGU6Cj4gPiA+IE9uIEZyaSwgTWF5IDEwLCAyMDE5IGF0IDI6MTIgUE0gUGF1bCBLb2NpYWxr b3dza2kKPiA+ID4gPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPiB3cm90ZToKPiA+ID4g PiBIaSwKPiA+ID4gPiAKPiA+ID4gPiBPbiBUdWUsIDIwMTktMDUtMDcgYXQgMjE6NTcgKzA1MzAs IFJhbWFsaW5nYW0gQyB3cm90ZToKPiA+ID4gPiA+IERSTSBBUEkgZm9yIGdlbmVyYXRpbmcgdWV2 ZW50IGZvciBhIHN0YXR1cyBjaGFuZ2VzIG9mIGNvbm5lY3RvcidzCj4gPiA+ID4gPiBwcm9wZXJ0 eS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhpcyB1ZXZlbnQgd2lsbCBoYXZlIGZvbGxvd2luZyBk ZXRhaWxzIHJlbGF0ZWQgdG8gdGhlIHN0YXR1cyBjaGFuZ2U6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ ICAgSE9UUExVRz0xLCBDT05ORUNUT1I9PGNvbm5lY3Rvcl9pZD4gYW5kIFBST1BFUlRZPTxwcm9w ZXJ0eV9pZD4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gTmVlZCBBQ0sgZnJvbSB0aGlzIHVldmVudCBm cm9tIHVzZXJzcGFjZSBjb25zdW1lci4KPiA+ID4gPiAKPiA+ID4gPiBTbyB3ZSBqdXN0IGhhZCBz b21lIGRpc2N1c3Npb25zIG92ZXIgb24gSVJDIGFuZCBhdCBhYm91dCB0aGUgaG90cGx1Zwo+ID4g PiA+IGlzc3VlIGFuZCBjYW1lIHVwIHdpdGggc2ltaWxhciBpZGVhczoKPiA+ID4gPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1NYXkvMjE3NDA4 Lmh0bWwKPiA+ID4gPiAKPiA+ID4gPiBUaGUgY29uY2x1c2lvbnMgb2YgdGhlc2UgZGlzY3Vzc2lv bnMgc28gZmFyIHdvdWxkIGJlIHRvIGhhdmUgYSBtb3JlIG9yCj4gPiA+ID4gbGVzcyBmaW5lIGdy YWluIG9mIHVldmVudCByZXBvcnRpbmcgZGVwZW5kaW5nIG9uIHdoYXQgaGFwcGVuZWQuIFRoZQo+ ID4gPiA+IHBvaW50IGlzIHRoYXQgd2UgbmVlZCB0byBjb3ZlciBkaWZmZXJlbnQgY2FzZXM6Cj4g PiA+ID4gLSBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIGNoYW5nZWQ7Cj4gPiA+ID4gLSB0aGUgY29u bmVjdG9yIHN0YXR1cyBjaGFuZ2VkOwo+ID4gPiA+IC0gc29tZXRoaW5nIGVsc2UgYWJvdXQgdGhl IGNvbm5lY3RvciBjaGFuZ2VkIChlLmcuIEVESUQvbW9kZXMpCj4gPiA+ID4gCj4gPiA+ID4gRm9y IHRoZSBmaXJzdCBjYXNlLCB3ZSBjYW4gc2VuZCBvdXQ6Cj4gPiA+ID4gSE9UUExVRz0xCj4gPiA+ ID4gQ09OTkVDVE9SPTxpZD4KPiA+ID4gPiBQUk9QRVJUWT08aWQ+Cj4gPiA+ID4gCj4gPiA+ID4g YW5kIG5vIHJlcHJvYmUgaXMgcmVxdWlyZWQuCj4gPiA+ID4gCj4gPiA+ID4gRm9yIHRoZSBzZWNv bmQgb25lLCBzb21ldGhpbmcgbGlrZToKPiA+ID4gPiBIT1RQTFVHPTEKPiA+ID4gPiBDT05ORUNU T1I9PGlkPgo+ID4gPiA+IFNUQVRVUz1Db25uZWN0ZWQvRGlzY29ubmVjdGVkCj4gPiA+ID4gCj4g PiA+ID4gYW5kIGEgY29ubmVjdG9yIHByb2JlIGlzIG5lZWRlZCBmb3IgY29ubmVjdGVkLCBidXQg bm90IGZvcgo+ID4gPiA+IGRpc2Nvbm5lY3RlZDsKPiA+ID4gPiAKPiA+ID4gPiBGb3IgdGhlIHRo aXJkIG9uZSwgd2UgY2FuIG9ubHkgaW5kaWNhdGUgdGhlIGNvbm5lY3RvcjoKPiA+ID4gPiBIT1RQ TFVHPTEKPiA+ID4gPiBDT05ORUNUT1I9PGlkPgo+ID4gPiA+IAo+ID4gPiA+IGFuZCBhIHJlcHJv YmUgb2YgdGhlIGNvbm5lY3RvciBpcyBhbHdheXMgbmVlZGVkCj4gPiA+IAo+ID4gPiBUaGVyZSdz IG5vIG1hdGVyaWFsIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIG9uZSBhbmQgdGhlIHByZXZpb3Vz IG9uZS4KPiA+ID4gUGx1cyB0aGVyZSdzIG5vIGJlZW5maXQgaW4gc3VwcGx5aW5nIHRoZSBhY3R1 YWwgdmFsdWUgb2YgdGhlIHByb3BlcnR5LAo+ID4gPiBpLmUuIHdlIGNhbiByZXVzZSB0aGUgc2Ft ZSBQUk9QRVJUWT08aWQtb2Ytc3RhdHVzLXByb3BlcnR5PiB0cmljay4KPiA+IAo+ID4gVGhhdCdz IHRoZSBpZGVhLCBidXQgd2UgbmVlZCB0byBoYW5kbGUgc3RhdHVzIGNoYW5nZXMgZGlmZmVyZW50 bHkgdGhhbgo+ID4gcHJvcGVydGllcywgc2luY2UgYXMgZmFyIGFzIEkga25vdywgY29ubmVjdGVk L3VuY29ubmVjdGVkIHN0YXR1cyBpcyBub3QKPiA+IGV4cG9zZWQgYXMgYSBwcm9wIGZvciB0aGUg Y29ubmVjdG9yLgo+IAo+IE9vcHMsIHRvdGFsbHkgbWlzc2VkIHRoYXQuICJFdmVyeXRoaW5nIGlz IGEgcHJvcGVydHkiIGlzIGtpbmRhCj4gbmV3LWlzaCwgYXQgbGVhc3QgY29tcGFyZWQgdG8ga21z LiBLaW5kYSB0ZW1wdGVkIHRvIGp1c3QgbWFrZSBzdGF0dXMKPiBpbnRvIGEgcHJvcGVydHkuIE9y IGFub3RoZXIgZXhjdXNlIHdoeSB3ZSBzaG91bGQgZXhwb3NlIHRoZSBlcG9jaAo+IHByb3BlcnR5 IDotKQoKV2VsbCBJIHRoaW5rIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgYW55d2F5LCBhcyBsb25nIGFz IHdlIGNhbiBtYWtlIHN1cmUgaXQKc3RheXMgY29uc2lzdGVudCB3aXRoIHRoZSBvbmUgcmVwb3J0 ZWQgaW4gdGhlIGNvbm5lY3RvciBzdHJ1Y3QuCgo+ID4gPiBIZXJlJ3Mgd2h5Ogo+ID4gPiAtIEEg c2lkZSBlZmZlY3Qgb2YgZm9yY2luZyBhIHByb2JlIG9uIGEgY29ubmVjdG9yIGlzIHRoYXQgeW91 IGdldCB0bwo+ID4gPiByZWFkIGFsbCB0aGUgcHJvcGVydGllcywgc28gc3VwcGx5aW5nIHRoZW0g aXMga2luZGEgcG9pbnRsZXNzLgo+ID4gCj4gPiBBZ3JlZWQsIGV4Y2VwdCBmb3IgdGhlIHN0YXR1 cyBjYXNlIHdoZXJlIGl0J3MgdXNlZnVsIHRvIGtub3cgaXQncyBhCj4gPiBkaXNjb25uZWN0LCBi ZWNhdXNlIHdlIGRvbid0IG5lZWQgYW55IHByb2JlIHN0ZXAgaW4gdGhhdCBjYXNlLgo+ID4gCj4g PiA+IC0gWW91IGNhbiByZWFkIFNUQVRVUyB3aXRob3V0IGZvcmNpbmcgYSByZXByb2JlLCBpZiB5 b3Ugd2FudCB0byBhdm9pZAo+ID4gPiB0aGUgcmVwcm9iZSBmb3IgZGlzY29ubmVjdGVkLiBJJ2Qg a2luZGEgbm90IHJlY29tbWVuZCB0aGF0IHRob3VnaCwKPiA+ID4gZmVlbHMgYSBiaXQgbGlrZSBv dmVyb3B0aW1pemluZy4gQW5kIGZvciByZWFzb25hYmxlIGNvbm5lY3RvcnMgKGkuZS4KPiA+ID4g ZHApIHJlcHJvYmluZyBhIGRpc2Nvbm5lY3RlZCBvdXRwdXQgaXMgZmFzdC4gSERNSSBpcyAuLi4g bGVzcwo+ID4gPiByZWFzb25hYmxlIHVuZm9ydHVuYXRlbHksIGJ1dCBvaCB3ZWxsLgo+ID4gCj4g PiBIb3cgd291bGQgdGhhdCBiZSByZXRyZWl2ZWQgdGhlbj8gRnJvbSB0aGUgbG9va3Mgb2YgaXQs IHRoYXQncyBhCj4gPiBNT0RFX0dFVENPTk5FQ1RPUiBpb2N0bCBhbmQgSSB3YXMgdW5kZXIgdGhl IGltcHJlc3Npb24gdGhpcyBpcyB3aGF0Cj4gPiBkb2VzIHRoZSBmdWxsIHJlcHJvYmUuCj4gCj4g ZHJtR2V0Q29ubmVjdG9yIHZzIGRybUdldENvbm5lY3RvckN1cnJlbnQuCgpBaCByaWdodCwgZm9y Z290IGFib3V0IHRoYXQgb25lLCB0aGFua3MuCgo+ID4gTm90IHN1cmUgd2hhdCBpc3N1ZXMgY291 bGQgYXJpc2UgaW4gY2FzZSBvZiBkaXNjb25uZWN0IHdpdGhvdXQgcmVwcm9iZQo+ID4gLS0gYXQg bGVhc3QgSSBkb24ndCBzZWUgd2h5IHVzZXJzcGFjZSBzaG91bGQgaGF2ZSB0byBkbyBhbnl0aGlu ZyBpbgo+ID4gcGFydGljdWxhciBleGNlcHQgbm8gbG9uZ2VyIHVzaW5nIHRoZSBjb25uZWN0b3Is IGV2ZW4gaW4gY29tcGxleCBEUCBNU1QKPiA+IGNhc2VzLgo+IAo+IGNvbm5lY3Rvci0+c3RhdHVz IG1pZ2h0IGJlIGEgbGllIHdpdGhvdXQgYSBmdWxsIHJlcHJvYmUsIGFuZCB3cm9uZ2x5Cj4gaW5k aWNhdGUgdGhhdCB0aGUgY29ubmVjdG9yIGlzIGRpc2Nvbm5lY3RlZCB3aGlsZSB0aGVyZSdzIHN0 aWxsCj4gc29tZXRoaW5nIHBsdWdnZWQgaW4uIEknbSBub3Qgc3VyZSB3ZSd2ZSBmaXhlZCB0aG9z ZSBidWdzIGJ5IG5vdwo+ICh1c3VhbGx5IGl0J3MgYXJvdW5kICJocGQgaW5kaWNhdGVzIGRpc2Nv bm5lY3RlZCIgdnMuICJpMmMgaW5kaWNhdGVzCj4gY29ubmVjdGVkLCBhbmQgd2UgY2FuJ3QgYnJl YWsgdGhpcyBiZWNhdXNlIGV2ZXJ5IGludGVsIHBsYXRmb3JtIGV2ZXIKPiBzaGlwcGVkIGhhcyBh IGZldyBkZXZpY2VzIHdoZXJlIHRoaXMgaXMgc29tZWhvdyBicm9rZW4sIGlycmVzcGVjdGl2ZQo+ IG9mIHRoZSBzaW5rKS4KCk1oaCBlaXRoZXIgd2F5LCBJIHRoaW5rIGl0J3MgdXAgdG8gdGhlIGRy aXZlciB0byByZXBvcnQgdGhhdCBhbmQgbWFrZQppdCBjb25zaXN0ZW50LiBJIHRoaW5rIHdlIGhh dmUgcG9sbCBoZWxwZXJzIHRvIG1ha2UgdXAgZm9yIGNhc2VzIHdoZXJlCmhvdHBsdWcgaXMgbm90 IGF2YWlsYWJsZSB0b28uIFNvIEknbSBub3Qgc3VyZSB3aHkgYSBmdWxsIHJlcHJvYmUgd291bGQK YmUgbmVlZGVkOiBkcml2ZXJzIGp1c3QgbmVlZCB0byBkbyB0aGUgcmlnaHQgdGhpbmcuCgo+ID4g PiAtIFRoZXJlJ3Mgbm8gd2F5IHRvIG9ubHkgcmVwcm9iZSBzdGF0dXMsIHlvdSBjYW4gb25seSBl dmVyIHJlcHJvYmUKPiA+ID4gZXZlcnl0aGluZyB3aXRoIHRoZSBjdXJyZW50IGlvY3RsIGFuZCBp bXBsZW1lbnRhdGlvbnMuIEhhdmluZyBhbgo+ID4gPiBvcHRpb24gdG8gcmVwcm9iZSBvbmx5IHBh cnRzIG9mIGl0IGRvZXNuJ3Qgc2VlbSB1c2VmdWwgdG8gbWUgKHdlIG5lZWQKPiA+ID4gdG8gcmVh ZCB0aGUgRURJRCBhbnl3YXksIGFuZCB0aGF0J3MgdGhlIGV4cGVuc2l2ZSBwYXJ0IG9mIHJlcHJv YmluZyBpbgo+ID4gPiBhbG1vc3QgYWxsIGNhc2VzKS4KPiA+IAo+ID4gQWdyZWVkLgo+ID4gCj4g PiA+IEluIGEgd2F5IFBST1BFUlRZPTxzdGF0dXMtcHJvcC1pZD4gc2ltcGx5IHRlbGxzIHVzZXJz cGFjZSB0aGF0IGl0Cj4gPiA+IG5lZWRzIHRvIHJlcHJvYmUgdGhpcyBjb25uZWN0b3IuCj4gPiAK PiA+IEkgdGhvdWdodCB3ZSBjb3VsZCBhY2Nlc3MgdGhlIHByb3BzIGFsb25lLCB3aGljaCBhdm9p ZHMgZG9pbmcgYSByZXByb2JlCj4gPiB3aGVuIHRoZSBrZXJuZWwga25vd3MgdGhhdCBvbmx5IGEg cHJvcCBvciBhIHNldCBvZiBwcm9wcyBjaGFuZ2VkIGFuZCBkbwo+ID4gbm90IHJlcXVpcmUgYSBm dWxsIHJlcHJvYmUuIFRoYXQncyB0aGUgZmlyc3QgY2FzZSBJIHdhcyBtZW50aW9ubmluZy4KPiA+ IAo+ID4gPiBBdCB0aGF0IHBvaW50IHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoaXMg aXMgYSBnb29kIHVhcGkgb3IKPiA+ID4gbm90LCBhbmQgdGhhdCdzIHdoZXJlIHRoZSBlcG9jaCBj b21lcyBpbi4gVGhlcmUncyB0d28gcmVhc29ucyBmb3IgYW4KPiA+ID4gZXBvY2g6Cj4gPiA+IC0g V2UgbmVlZCBpdCBpbnRlcm5hbGx5IGJlY2F1c2UgSSdtIG5vdCBnb2luaWcgdG8gd2lyZSBhIG5l dyByZXR1cm4KPiA+ID4gdmFsdWUgdGhyb3VnaCBodW5kcmVkcyBvZiBjb25uZWN0b3IgcHJvYmUg ZnVuY3Rpb25zLiBJdCdzIG11Y2ggZWFzaWVyCj4gPiA+IHRvIGhhdmUgYW4gZXBvY2ggY291bnRl ciB3aGljaCB3ZSBzZXQgZnJvbSBlLmcuIGRybV9zZXRfZWRpZCBhbmQKPiA+ID4gc2ltaWxhciBm dW5jdGlvbnMgdGhhdCB1cGRhdGUgcHJvYmUgc3RhdGUuCj4gPiAKPiA+IEkgZG9uJ3QgdGhpbmsg SSdtIGZvbGxvd2luZyB3aGF0IGlzc3VlIHRoaXMgaXMgdHJ5aW5nIHRvIHNvbHZlCj4gPiBpbnRl cm5hbGx5Lgo+IAo+IFNvIEknbSBhc3N1bWluZyB0aGF0IGlmIHdlIGhhbmRsZSBhIGhvdHBsdWcs IHdlIG9ubHkgd2FudCB0byBnZW5lcmF0ZQo+IG9uZSB1ZXZlbnQgZm9yIHRoYXQsIG5vdCBvbmUg Zm9yIGV2ZXJ5IGxpdHRsZSB0aGluZyB0aGF0IGNoYW5nZWQuCj4gVGhlcmUncyB0d28gd2F5cyB0 byBpbXBsZW1lbnQgdGhpcyBsb2dpYzoKPiAtIFdpdGggc29tZSBlcG9jaCBjb3VudGVyIGFuZCBh IGhlbHBlciBmdW5jdGlvbiB5b3UgY2FuIGNhbGwgZXZlcnl0aW1lCj4gc29tZXRoaW5nIGNoYW5n ZWQgKGUuZy4gc3RhdHVzLCBvciBlZGlkLCBvciBhbnl0aGluZyBlbHNlIHdlIGNhcmUKPiBhYm91 dCBlLmcuIGZyb20gZHAgYXV4KS4gVGhpcyB3b24ndCBuZWVkIG11Y2ggKGlmIGFueSkgZHJpdmVy IGNoYW5nZXMsCj4gYmVjYXVzZSB3ZSBjYW4ganVzdCBwdXQgdGhlc2UgaW50byB0aGUgcmVsZXZh bnQgaGVscGVyL2NvcmUgZnVuY3Rpb25zCj4gKGxpa2UgZWRpZCB1cGRhdGUsIG9yIGRwIGF1eCBy ZWFkaW5nIG9yIHdoYXRldmVyKS4KPiAtIFdpcmluZyBhIG5ldyByZXR1cm4gdmFsdWUgdGhyb3Vn aCB0aGUgZW50aXJlIHN0YWNrIChhbmQgX2FsbF8gdGhlCj4ga21zIGRyaXZlcnMpIHNvIHRoYXQg dGhlIHByb2JlIGhlbHBlcnMgY291bGQgYWdncmVnYXRlIHRoaXMgbGlrZSB0aGV5Cj4gY3VycmVu dGx5IGRvLgo+IAo+IE9uZSBvZiB0aGVzZSBpcyBhIGxvdCBsZXNzIHR5cGluZy4KCk9oIEkgaGFk IG1pc3NlZCB0aGlzIGlzc3VlLiBZZWFoIG9mIGNvdXJzZSBpZiB3ZSBzdGFydCByZXBvcnRpbmcK cHJvcGVydHkgY2hhbmdlcywgYSBob3RwbHVnIHdpbGwgYmUgbG90cyBvZiBzdWNoIGNoYW5nZXMu CgpTbyBhbiBlcG9jaCBjb3VudGVyIHByb3BlcnR5IHdvdWxkIGluZGVlZCBhbHNvIHNvbHZlIHRo ZSByZXByb2JpbmcKcHJvYmxlbS4gQnV0IEkgdGhpbmsgaXQgd291bGQgYmUgbmljZSB0byBrZWVw IHRoZSBhYmlsaXR5IHRvIGJlCm5vdGlmaWVkIG9mIHdoYXQgY2hhbmdlZCBwcmVjaXNlbHkgdmlh IHVldmVudC4gSSdtIG5vdCByZWFsbHkgYnV5aW5nCnRoZSAibWlzc2luZyB1ZXZlbnQiIHRoaW5n IHNvIG11Y2ggYW5kIEkgdGhpbmsgd2UgY2FuIHJlYXNvbmFibHkgZXhwZWN0CnRoYXQgaXQgd2ls bCBiZSB1c2VmdWwuIEV2ZW50cyBjb3VsZCBiZSBhZ2dyZWdhdGVkICh3aGljaCB0aGUgZXBvY2gK Y291bnRlciB3b3VsZCBwcm9iYWJseSBhbHNvIGFsbG93KSBhbmQgc2VudCBvdXQgYWx0b2dldGhl ciB3aGVuIHRoZQpjb25uZWN0b3Igc3RhdHVzIGNoYW5nZXMgKGFsb25nIHdpdGggdGhlIHN0YXR1 cyBpbmZvcm1hdGlvbikuIEkgdGhpbmsKd2UncmUgdW5kZXItdXNpbmcgdWV2ZW50IGN1cnJlbnRs eSwgYW5kIGZlZWwgbGlrZSB0aGlzIHNob3VsZCBiZSBmaXhlZApyZWdhcmRsZXNzIG9mIHRoZSBm dWxsIHJlcHJvYmUgaXNzdWUuCgpXaXRoIHRoYXQsIEkgYWdyZWUgdGhhdCBhIGdsb2JhbCBlcG9j aCBjb3VudGVyIGZyb20gdGhlIGNvbm5lY3RvciB3b3VsZApiZSBhIGdvb2QgcXVpY2sgd2F5IGZv ciB1c2Vyc3BhY2UgdG8gdGVsbCBpZiBhIGNvbm5lY3RvciBjaGFuZ2VkIG9yIG5vdApzaW5jZSB0 aGUgbGFzdCB0aW1lIGl0IGNoZWNrZWQuCgo+ID4gPiAtIElmIHVzZXJzcGFjZSBtaXNzZXMgYW4g ZXZlbnQgYW5kIHRoZXJlJ3Mgbm8gZXBvY2gsIHdlJ3JlIGZvcmNpbmcKPiA+ID4gdXNlcnNwYWNl IHRvIHJlcHJvYmUgZXZlcnl0aGluZy4gVXNlIGNhc2Ugd291bGQgYmUgaWYgYSBjb21wb3NpdG9y IGlzCj4gPiA+IHN3aXRjaGVkIGF3YXkgd2UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBwaXNzIG9m IHRoZSBjdXJyZW50IGNvbXBvc2l0b3IKPiA+ID4gYnkgYmxvY2tpbmcgaXQncyBvd24gcHJvYmUg a2VybmVsIGNhbGxzIGJ5IGRvaW5nIG91ciBvd24gKHByb2JlIGlzCj4gPiA+IHNpbmdsZS10aHJl YWRlZCBpbiB0aGUga2VybmVsIHRocm91Z2ggdGhlIGRldi0+bW9kZV9jb25maWcubXV0ZXgpLiBJ Zgo+ID4gPiBpdCBjYW4gcmVhZCB0aGUgZXBvY2ggcHJvcGVydHkgKHdoaWNoIGl0IGNhbiBkbyB3 aXRob3V0IGZvcmNpbmcgYQo+ID4gPiByZXByb2JlKSB1c2Vyc3BhY2Ugd291bGQga25vdyB3aGlj aCBjb25uZWN0b3JzIGl0IG5lZWRzIHRvIGNoZWNrIGFuZAo+ID4gPiByZXByb2JlLgo+ID4gPiAK PiA+ID4gSGVuY2Ugd2h5IGVwb2NoLCBpdCdzIGEgYml0IG1vcmUgcm9idXN0IHVzZXJzcGFjZSBh cGkuIE9mYyB5b3UgY291bGQKPiA+ID4gYWxzbyByZXF1aXJlIHRoYXQgdXNlcnNwYWNlIG5lZWRz IHRvIGtlZXAgcGFyc2luZyBhbGwgdWV2ZW50cyBhbmQgbWFrZQo+ID4gPiBhIGxpc3Qgb2YgYWxs IGNvbm5lY3RvcnMgaXQgbmVlZHMgdG8gcmVwcm9iZSB3aGVuIGl0J3MgYmFjayB0byBiZWluZwo+ ID4gPiB0aGUgYWN0aXZlIGNvbXBvc2l0b3IuIEJ1dCBqdXN0IGNvbXBhcmluZyBhIGN1cnJlbnQg ZXBvY2ggd2l0aCB0aGUgb25lCj4gPiA+IHlvdSBjYWNoZWQgZnJvbSB0aGUgbGFzdCBmdWxsIHBy b2JlIGlzIG11Y2ggZWFzaWVyLgo+ID4gCj4gPiBGYWlyIGVub3VnaCwgSSB0aGluayBpdCdzIGEg ZmluZSBpZGVhIGZvciByb2J1c3RuZXNzIHllcywgYnV0IEkgdGhpbmsKPiA+IHdlIGNvdWxkIGFs c28gcHJvdmlkZSBleHRyYSBpbmZvIGluIHRoZSB1ZXZlbnQgd2hlbiByZWxldmFudCBhbmQgbm90 Cj4gPiByZWx5IG9uIHRoYXQgZW50aXJlbHkuCj4gCj4gU2VlIGFib3ZlLCB3aXRoIGRybUdldENv bm5lY3RvckN1cnJlbnQgdGhlcmUncyBubyBuZWVkIHRvIHByb3ZpZGUgbW9yZQo+IHRoYW4gd2hh dCdzIG5lZWRlZCBpbiB0aGUgdWV2ZW50LCBzaW5jZSB1c2Vyc3BhY2UgY2FuIGdldCBldmVyeXRo aW5nCj4gZWxzZSBhdCB0aGUgY29zdCBvZiBvbmUgaW9jdGwsIHdpdGhvdXQgcmVwcm9iaW5nLiBX aXRoIGEgYml0IG9mCj4gZW5naW5lZXJpbmcgd29yayB3ZSBjb3VsZCBldmVuIGF2b2lkIHRha2lu ZyB0aGUgZXhwZW5zaXZlCj4gZGV2LT5tb2RlX2NvbmZpZy5tdXRleCBsb2NrIGZvciB0aGlzIGZh c3RwYXRoLgo+IAo+ID4gPiBBbm90aGVyIHRoaW5nOiBOb25lIG9mIHRoaXMgd2UgY2FuIGZvciBj b25uZWN0b3JzIHdpdGggdW5yZWxpYWJsZSBoZHAuCj4gPiA+IE9yIGF0IGxlYXN0IHlvdSdsbCBw aXNzIG9mIHVzZXJzIGlmIHlvdSBjYWNoZSBhbHdheXMuIFRoZSBzYWQgdGhpbmcgaXMKPiA+ID4g dGhhdCBIRE1JIGlzIHVucmVsaWFibGUsIGF0IGxlYXN0IG9uIHNvbWUgbWFjaGluZXMvc2NyZWVu IGNvbWJvcyAoeW91Cj4gPiA+IG5ldmVyIGdldCBhIGhwZCBpcnEgaWYgeW91IHBsdWcgaW4vdW5w bHVnKS4gU28gcmVhbCBjb21wb3NpdG9ycyBzdGlsbAo+ID4gPiBuZWVkIHRvIHJlcHJvYmUgd2hl biB0aGUgdXNlciBhc2tzIGZvciBpdC4gaWd0IGNhbiBwcm9iYWJseSBnZXQgYXdheQo+ID4gPiB3 aXRob3V0IHJlcHJvYmluZy4KPiA+IAo+ID4gSSB3b25kZXIgaG93IHRoYXQgaXMgaGFuZGxlZCBj dXJyZW50bHkgYW5kIGhvdyBhIHVzZXIgYWN0aW9uIGNhbiBzb2x2ZQo+ID4gdGhlIGlzc3VlIHdp dGhvdXQgYW55IG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBrZXJuZWwuIE1heWJlIGEgbmVlZCBhCj4g PiBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGF0IGNhc2UgdG8gaGF2ZSBhIGNsZWFyZXIgaWRl YS4KPiAKPiBVc2VyIG9wZW5zIHRoZSBzY3JlZW4gY29uZmlndXJhdGlvbiB0b29sIC0+IHVzdWFs bHkgYXQgdGhhdCBwb2ludCB0aGUKPiB0b29sL2NvbXBvc2l0b3IgZm9yY2UgYSBmdWxsIHJlcHJv YmUsIHdoaWNoIHRoZW4gb2Z0ZW4gdHJpZ2dlcnMgdGhlCj4gYXV0b21hdGljIHJlY29uZmlndXJp bmcuIEUuZy4gb24gb25lIGxhcHRvcCBJIGhhdmUgaGVyZSB3aGVuIEkgcGx1ZyBpbgo+IHJhbmRv bSBzaGl0IHByb2plY3RvcnMgYXQgY29uZmVyZW5jZXMgbm90aGluZyBoYXBwZW5zLCB1bnRpbCBJ IHJ1bgo+IHhyYW5kciwgd2hpY2ggdHJpZ2dlcnMgdGhlIGZ1bGwgcmVwcm9iZSwgd2hpY2ggdGhl biBtYWtlcyB0aGUga2VybmVsCj4gcmVhbGl6ZSBzb21ldGhpbmcgY2hhbmdlLCBzZW5kaW5nIGFu ZCB1ZXZlbnQsIHdoaWNoIHN0YXJ0cyB0aGUKPiBhdXRvbWF0aWMgcmVjb25maWd1cmUgbWFjaGlu ZXJ5LgoKT2ggcmlnaHQgaGVoZSwgSSBkZWZpbml0ZWx5IGRvIHRoYXQgYmxpbmQgYWx0K2YyIGdu b21lLWNvbnRyb2wtY2VudGVyCnRvIGdldCBtZSBvdXQgb2YgYW4gb2ZmLXBhbmVsIHNpdHVhdGlv biBtdWNoIHRvbyBvZnRlbi4KCj4gVGhlcmUncyBhbHNvIHRoZSBpc3N1ZSB0aGF0IHRoZXJlJ3Mg bWFjaGluZXMgd2l0aCBocGQgc3Rvcm1zIChldmVuIG9uCj4gRFAsIHdoZXJlIHlvdSByZWFsbHkg bmVlZCBocGQgdG8gd29yayB0byBiZSBjb21wbGlhbnQpLCBhbmQgd2UgaGF2ZSB0bwo+IHR1cm4g b2YgdGhlIGhwZCBpcnEgdG8ga2VlcCB0aGUgbWFjaGluZSB1c2VhYmxlLgoKSSB3YXMgdW5kZXIg dGhlIGltcHJlc3Npb24gdGhhdCB3ZSBzd2l0Y2ggdG8gcG9sbGluZyB3aGVuIGEgaHBkIHN0b3Jt CmlzIGRldGVjdGVkIGluIGk5MTUgKGJ1dCB0aGF0J3MgYSB2YWd1ZSBtZW1vcnkgZnJvbSBteSBz dW1tZXIKaW50ZXJuc2hpcCBhdCBJbnRlbCAyIHllYXJzIGFnbykuCgpDaGVlcnMsCgpQYXVsCgo+ IENoZWVycywgRGFuaWVsCj4gCj4gPiBDaGVlcnMsCj4gPiAKPiA+IFBhdWwKPiA+IAo+ID4gPiAt RGFuaWVsCj4gPiA+IAo+ID4gPiA+IFRoZW4gd2Ugc3RpbGwgaGF2ZSB0aGUgbGVnYWN5IGNhc2U6 Cj4gPiA+ID4gSE9UUExVRz0xCj4gPiA+ID4gCj4gPiA+ID4gd2hlcmUgdXNlcnNwYWNlIGlzIGV4 cGVjdGVkIHRvIHJlcHJvYmUgYWxsIHRoZSBjb25uZWN0b3JzLgo+ID4gPiA+IAo+ID4gPiA+IEkg dGhpbmsgdGhpcyB3b3VsZCBkZXNlcnZlIHRvIGJlIGEgc2VwYXJhdGUgc2VyaWVzIG9uIGl0cyBv d24uIFNvIEkgYW0KPiA+ID4gPiBwcm9wb3NpbmcgdG8gdGFrZSB0aGlzIG9uZSBvZmYgeW91ciBw bGF0ZSBhbmQgY29tZSB1cCB3aXRoIGFub3RoZXIKPiA+ID4gPiBzZXJlcyBpbXBsZW1lbnRpbmcg dGhpcyBwcm9wb3NhbC4gV2hhdCBkbyB5b3UgdGhpbms/Cj4gPiA+ID4gCj4gPiA+ID4gQ2hlZXJz LAo+ID4gPiA+IAo+ID4gPiA+IFBhdWwKPiA+ID4gPiAKPiA+ID4gPiA+IHYyOgo+ID4gPiA+ID4g ICBNaW5vciBmaXhlcyBhdCBLRG9jIGNvbW1lbnRzIFtEYW5pZWxdCj4gPiA+ID4gPiB2MzoKPiA+ ID4gPiA+ICAgQ2hlY2sgdGhlIHByb3BlcnR5IGlzIHJlYWxseSBhdHRhY2hlZCB3aXRoIGNvbm5l Y3RvciBbRGFuaWVsXQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSYW1hbGlu Z2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gPiA+ID4gPiBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYyB8IDM1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmggICAgIHwg IDUgKysrKy0KPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwo+ID4gPiA+ID4g aW5kZXggMThiMWFjNDQyOTk3Li42M2ZhOTUxYTIwZGIgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fc3lzZnMuYwo+ID4gPiA+ID4gQEAgLTIxLDYgKzIxLDcgQEAKPiA+ID4gPiA+ICAjaW5j bHVkZSA8ZHJtL2RybV9zeXNmcy5oPgo+ID4gPiA+ID4gICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ ID4gPiA+ID4gICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKPiA+ID4gPiA+ICsjaW5jbHVkZSAi ZHJtX2NydGNfaW50ZXJuYWwuaCIKPiA+ID4gPiA+IAo+ID4gPiA+ID4gICNkZWZpbmUgdG9fZHJt X21pbm9yKGQpIGRldl9nZXRfZHJ2ZGF0YShkKQo+ID4gPiA+ID4gICNkZWZpbmUgdG9fZHJtX2Nv bm5lY3RvcihkKSBkZXZfZ2V0X2RydmRhdGEoZCkKPiA+ID4gPiA+IEBAIC0zMjAsNiArMzIxLDkg QEAgdm9pZCBkcm1fc3lzZnNfbGVhc2VfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ ID4gPiA+ICAgKiBTZW5kIGEgdWV2ZW50IGZvciB0aGUgRFJNIGRldmljZSBzcGVjaWZpZWQgYnkg QGRldi4gIEN1cnJlbnRseSB3ZSBvbmx5Cj4gPiA+ID4gPiAgICogc2V0IEhPVFBMVUc9MSBpbiB0 aGUgdWV2ZW50IGVudmlyb25tZW50LCBidXQgdGhpcyBjb3VsZCBiZSBleHBhbmRlZCB0bwo+ID4g PiA+ID4gICAqIGRlYWwgd2l0aCBvdGhlciB0eXBlcyBvZiBldmVudHMuCj4gPiA+ID4gPiArICoK PiA+ID4gPiA+ICsgKiBBbnkgbmV3IHVhcGkgc2hvdWxkIGJlIHVzaW5nIHRoZSBkcm1fc3lzZnNf Y29ubmVjdG9yX3N0YXR1c19ldmVudCgpCj4gPiA+ID4gPiArICogZm9yIHVldmVudHMgb24gY29u bmVjdG9yIHN0YXR1cyBjaGFuZ2UuCj4gPiA+ID4gPiAgICovCj4gPiA+ID4gPiAgdm9pZCBkcm1f c3lzZnNfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ID4gIHsK PiA+ID4gPiA+IEBAIC0zMzIsNiArMzM2LDM3IEBAIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdfZXZl bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgRVhQT1JU X1NZTUJPTChkcm1fc3lzZnNfaG90cGx1Z19ldmVudCk7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICsv KioKPiA+ID4gPiA+ICsgKiBkcm1fc3lzZnNfY29ubmVjdG9yX3N0YXR1c19ldmVudCAtIGdlbmVy YXRlIGEgRFJNIHVldmVudCBmb3IgY29ubmVjdG9yCj4gPiA+ID4gPiArICogcHJvcGVydHkgc3Rh dHVzIGNoYW5nZQo+ID4gPiA+ID4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciBvbiB3aGljaCBw cm9wZXJ0eSBzdGF0dXMgY2hhbmdlZAo+ID4gPiA+ID4gKyAqIEBwcm9wZXJ0eTogY29ubmVjdG9y IHByb3BlcnR5IHdob2VzIHN0YXR1cyBjaGFuZ2VkLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiAr ICogU2VuZCBhIHVldmVudCBmb3IgdGhlIERSTSBkZXZpY2Ugc3BlY2lmaWVkIGJ5IEBkZXYuICBD dXJyZW50bHkgd2UKPiA+ID4gPiA+ICsgKiBzZXQgSE9UUExVRz0xIGFuZCBjb25uZWN0b3IgaWQg YWxvbmcgd2l0aCB0aGUgYXR0YWNoZWQgcHJvcGVydHkgaWQKPiA+ID4gPiA+ICsgKiByZWxhdGVk IHRvIHRoZSBzdGF0dXMgY2hhbmdlLgo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gK3ZvaWQgZHJt X3N5c2ZzX2Nvbm5lY3Rvcl9zdGF0dXNfZXZlbnQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BlcnR5KQo+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ICsgICAgIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPiA+ID4gPiA+ICsgICAgIGNo YXIgaG90cGx1Z19zdHJbXSA9ICJIT1RQTFVHPTEiLCBjb25uX2lkWzMwXSwgcHJvcF9pZFszMF07 Cj4gPiA+ID4gPiArICAgICBjaGFyICplbnZwWzRdID0geyBob3RwbHVnX3N0ciwgY29ubl9pZCwg cHJvcF9pZCwgTlVMTCB9Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgV0FSTl9PTighZHJt X21vZGVfb2JqX2ZpbmRfcHJvcF9pZCgmY29ubmVjdG9yLT5iYXNlLAo+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YmFzZS5pZCkpOwo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgc25wcmludGYoY29ubl9pZCwgQVJSQVlfU0laRShj b25uX2lkKSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICJDT05ORUNUT1I9JXUiLCBjb25uZWN0 b3ItPmJhc2UuaWQpOwo+ID4gPiA+ID4gKyAgICAgc25wcmludGYocHJvcF9pZCwgQVJSQVlfU0la RShwcm9wX2lkKSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICJQUk9QRVJUWT0ldSIsIHByb3Bl cnR5LT5iYXNlLmlkKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsgICAgIERSTV9ERUJVRygiZ2Vu ZXJhdGluZyBjb25uZWN0b3Igc3RhdHVzIGV2ZW50XG4iKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICsgICAgIGtvYmplY3RfdWV2ZW50X2VudigmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLCBLT0JK X0NIQU5HRSwgZW52cCk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJt X3N5c2ZzX2Nvbm5lY3Rvcl9zdGF0dXNfZXZlbnQpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0 YXRpYyB2b2lkIGRybV9zeXNmc19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ID4gPiA+ ICB7Cj4gPiA+ID4gPiAgICAgICBrZnJlZShkZXYpOwo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9zeXNmcy5oIGIvaW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmgKPiA+ID4gPiA+ IGluZGV4IDRmMzExZTgzNmNkYy4uZDQ1NGVmNjE3YjJjIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX3N5c2ZzLmgKPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9z eXNmcy5oCj4gPiA+ID4gPiBAQCAtNCwxMCArNCwxMyBAQAo+ID4gPiA+ID4gCj4gPiA+ID4gPiAg c3RydWN0IGRybV9kZXZpY2U7Cj4gPiA+ID4gPiAgc3RydWN0IGRldmljZTsKPiA+ID4gPiA+ICtz dHJ1Y3QgZHJtX2Nvbm5lY3RvcjsKPiA+ID4gPiA+ICtzdHJ1Y3QgZHJtX3Byb3BlcnR5Owo+ID4g PiA+ID4gCj4gPiA+ID4gPiAgaW50IGRybV9jbGFzc19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGRl dmljZSAqZGV2KTsKPiA+ID4gPiA+ICB2b2lkIGRybV9jbGFzc19kZXZpY2VfdW5yZWdpc3Rlcihz dHJ1Y3QgZGV2aWNlICpkZXYpOwo+ID4gPiA+ID4gCj4gPiA+ID4gPiAgdm9pZCBkcm1fc3lzZnNf aG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4gPiA+IC0KPiA+ID4g PiA+ICt2b2lkIGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSk7Cj4gPiA+ID4gPiAgI2VuZGlm Cj4gPiA+ID4gLS0KPiA+ID4gPiBQYXVsIEtvY2lhbGtvd3NraSwgQm9vdGxpbgo+ID4gPiA+IEVt YmVkZGVkIExpbnV4IGFuZCBrZXJuZWwgZW5naW5lZXJpbmcKPiA+ID4gPiBodHRwczovL2Jvb3Rs aW4uY29tCj4gPiA+ID4gCj4gPiAtLQo+ID4gUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KPiA+ IEVtYmVkZGVkIExpbnV4IGFuZCBrZXJuZWwgZW5naW5lZXJpbmcKPiA+IGh0dHBzOi8vYm9vdGxp bi5jb20KPiA+IAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs