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: Tue, 14 May 2019 16:12:16 +0200 Message-ID: References: <20190507162745.25600-1-ramalingam.c@intel.com> <20190507162745.25600-10-ramalingam.c@intel.com> <31dad9a323382628911c5301a6eec179855aa815.camel@bootlin.com> <8aa3980a6948b9b2b989c237f8453ca54e72ad95.camel@bootlin.com> <47a92b839dce94a7706c20b9aec03bc99539b46b.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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: David Airlie , Maxime Ripard , intel-gfx , dri-devel , "Ser, Simon" , Pekka Paalanen , Thomas Petazzoni , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SGksCgpPbiBUdWUsIDIwMTktMDUtMTQgYXQgMTM6MDkgKzAyMDAsIERhbmllbCBWZXR0ZXIgd3Jv dGU6Cj4gT24gTW9uLCBNYXkgMTMsIDIwMTkgYXQgNzoxNCBQTSBQYXVsIEtvY2lhbGtvd3NraQo+ IDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4gd3JvdGU6Cj4gPiBIZXksCj4gPiAKPiA+ IExlIGx1bmRpIDEzIG1haSAyMDE5IMOgIDExOjM0ICswMjAwLCBEYW5pZWwgVmV0dGVyIGEgw6lj cml0IDoKPiA+ID4gT24gTW9uLCBNYXkgMTMsIDIwMTkgYXQgMTE6MDIgQU0gUGF1bCBLb2NpYWxr b3dza2kKPiA+ID4gPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPiB3cm90ZToKPiA+ID4g PiBIaSwKPiA+ID4gPiAKPiA+ID4gPiBPbiBGcmksIDIwMTktMDUtMTAgYXQgMTY6NTQgKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiBPbiBGcmksIE1heSAxMCwgMjAxOSBhdCAy OjEyIFBNIFBhdWwgS29jaWFsa293c2tpCj4gPiA+ID4gPiA8cGF1bC5rb2NpYWxrb3dza2lAYm9v dGxpbi5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ IE9uIFR1ZSwgMjAxOS0wNS0wNyBhdCAyMTo1NyArMDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+ ID4gPiA+ID4gPiA+IERSTSBBUEkgZm9yIGdlbmVyYXRpbmcgdWV2ZW50IGZvciBhIHN0YXR1cyBj aGFuZ2VzIG9mIGNvbm5lY3RvcidzCj4gPiA+ID4gPiA+ID4gcHJvcGVydHkuCj4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gVGhpcyB1ZXZlbnQgd2lsbCBoYXZlIGZvbGxvd2luZyBkZXRhaWxz IHJlbGF0ZWQgdG8gdGhlIHN0YXR1cyBjaGFuZ2U6Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ ID4gICBIT1RQTFVHPTEsIENPTk5FQ1RPUj08Y29ubmVjdG9yX2lkPiBhbmQgUFJPUEVSVFk9PHBy b3BlcnR5X2lkPgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IE5lZWQgQUNLIGZyb20gdGhp cyB1ZXZlbnQgZnJvbSB1c2Vyc3BhY2UgY29uc3VtZXIuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiBTbyB3ZSBqdXN0IGhhZCBzb21lIGRpc2N1c3Npb25zIG92ZXIgb24gSVJDIGFuZCBhdCBhYm91 dCB0aGUgaG90cGx1Zwo+ID4gPiA+ID4gPiBpc3N1ZSBhbmQgY2FtZSB1cCB3aXRoIHNpbWlsYXIg aWRlYXM6Cj4gPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVz L2RyaS1kZXZlbC8yMDE5LU1heS8yMTc0MDguaHRtbAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g VGhlIGNvbmNsdXNpb25zIG9mIHRoZXNlIGRpc2N1c3Npb25zIHNvIGZhciB3b3VsZCBiZSB0byBo YXZlIGEgbW9yZSBvcgo+ID4gPiA+ID4gPiBsZXNzIGZpbmUgZ3JhaW4gb2YgdWV2ZW50IHJlcG9y dGluZyBkZXBlbmRpbmcgb24gd2hhdCBoYXBwZW5lZC4gVGhlCj4gPiA+ID4gPiA+IHBvaW50IGlz IHRoYXQgd2UgbmVlZCB0byBjb3ZlciBkaWZmZXJlbnQgY2FzZXM6Cj4gPiA+ID4gPiA+IC0gb25l IG9yIG1vcmUgcHJvcGVydGllcyBjaGFuZ2VkOwo+ID4gPiA+ID4gPiAtIHRoZSBjb25uZWN0b3Ig c3RhdHVzIGNoYW5nZWQ7Cj4gPiA+ID4gPiA+IC0gc29tZXRoaW5nIGVsc2UgYWJvdXQgdGhlIGNv bm5lY3RvciBjaGFuZ2VkIChlLmcuIEVESUQvbW9kZXMpCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiBGb3IgdGhlIGZpcnN0IGNhc2UsIHdlIGNhbiBzZW5kIG91dDoKPiA+ID4gPiA+ID4gSE9UUExV Rz0xCj4gPiA+ID4gPiA+IENPTk5FQ1RPUj08aWQ+Cj4gPiA+ID4gPiA+IFBST1BFUlRZPTxpZD4K PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IGFuZCBubyByZXByb2JlIGlzIHJlcXVpcmVkLgo+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gRm9yIHRoZSBzZWNvbmQgb25lLCBzb21ldGhpbmcgbGlrZToK PiA+ID4gPiA+ID4gSE9UUExVRz0xCj4gPiA+ID4gPiA+IENPTk5FQ1RPUj08aWQ+Cj4gPiA+ID4g PiA+IFNUQVRVUz1Db25uZWN0ZWQvRGlzY29ubmVjdGVkCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiBhbmQgYSBjb25uZWN0b3IgcHJvYmUgaXMgbmVlZGVkIGZvciBjb25uZWN0ZWQsIGJ1dCBub3Qg Zm9yCj4gPiA+ID4gPiA+IGRpc2Nvbm5lY3RlZDsKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEZv ciB0aGUgdGhpcmQgb25lLCB3ZSBjYW4gb25seSBpbmRpY2F0ZSB0aGUgY29ubmVjdG9yOgo+ID4g PiA+ID4gPiBIT1RQTFVHPTEKPiA+ID4gPiA+ID4gQ09OTkVDVE9SPTxpZD4KPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IGFuZCBhIHJlcHJvYmUgb2YgdGhlIGNvbm5lY3RvciBpcyBhbHdheXMgbmVl ZGVkCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoZXJlJ3Mgbm8gbWF0ZXJpYWwgZGlmZmVyZW5jZSBi ZXR3ZWVuIHRoaXMgb25lIGFuZCB0aGUgcHJldmlvdXMgb25lLgo+ID4gPiA+ID4gUGx1cyB0aGVy ZSdzIG5vIGJlZW5maXQgaW4gc3VwcGx5aW5nIHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIHByb3Bl cnR5LAo+ID4gPiA+ID4gaS5lLiB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgUFJPUEVSVFk9PGlkLW9m LXN0YXR1cy1wcm9wZXJ0eT4gdHJpY2suCj4gPiA+ID4gCj4gPiA+ID4gVGhhdCdzIHRoZSBpZGVh LCBidXQgd2UgbmVlZCB0byBoYW5kbGUgc3RhdHVzIGNoYW5nZXMgZGlmZmVyZW50bHkgdGhhbgo+ ID4gPiA+IHByb3BlcnRpZXMsIHNpbmNlIGFzIGZhciBhcyBJIGtub3csIGNvbm5lY3RlZC91bmNv bm5lY3RlZCBzdGF0dXMgaXMgbm90Cj4gPiA+ID4gZXhwb3NlZCBhcyBhIHByb3AgZm9yIHRoZSBj b25uZWN0b3IuCj4gPiA+IAo+ID4gPiBPb3BzLCB0b3RhbGx5IG1pc3NlZCB0aGF0LiAiRXZlcnl0 aGluZyBpcyBhIHByb3BlcnR5IiBpcyBraW5kYQo+ID4gPiBuZXctaXNoLCBhdCBsZWFzdCBjb21w YXJlZCB0byBrbXMuIEtpbmRhIHRlbXB0ZWQgdG8ganVzdCBtYWtlIHN0YXR1cwo+ID4gPiBpbnRv IGEgcHJvcGVydHkuIE9yIGFub3RoZXIgZXhjdXNlIHdoeSB3ZSBzaG91bGQgZXhwb3NlIHRoZSBl cG9jaAo+ID4gPiBwcm9wZXJ0eSA6LSkKPiA+IAo+ID4gV2VsbCBJIHRoaW5rIGl0IHdvdWxkIG1h a2Ugc2Vuc2UgYW55d2F5LCBhcyBsb25nIGFzIHdlIGNhbiBtYWtlIHN1cmUgaXQKPiA+IHN0YXlz IGNvbnNpc3RlbnQgd2l0aCB0aGUgb25lIHJlcG9ydGVkIGluIHRoZSBjb25uZWN0b3Igc3RydWN0 Lgo+ID4gCj4gPiA+ID4gPiBIZXJlJ3Mgd2h5Ogo+ID4gPiA+ID4gLSBBIHNpZGUgZWZmZWN0IG9m IGZvcmNpbmcgYSBwcm9iZSBvbiBhIGNvbm5lY3RvciBpcyB0aGF0IHlvdSBnZXQgdG8KPiA+ID4g PiA+IHJlYWQgYWxsIHRoZSBwcm9wZXJ0aWVzLCBzbyBzdXBwbHlpbmcgdGhlbSBpcyBraW5kYSBw b2ludGxlc3MuCj4gPiA+ID4gCj4gPiA+ID4gQWdyZWVkLCBleGNlcHQgZm9yIHRoZSBzdGF0dXMg Y2FzZSB3aGVyZSBpdCdzIHVzZWZ1bCB0byBrbm93IGl0J3MgYQo+ID4gPiA+IGRpc2Nvbm5lY3Qs IGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCBhbnkgcHJvYmUgc3RlcCBpbiB0aGF0IGNhc2UuCj4gPiA+ ID4gCj4gPiA+ID4gPiAtIFlvdSBjYW4gcmVhZCBTVEFUVVMgd2l0aG91dCBmb3JjaW5nIGEgcmVw cm9iZSwgaWYgeW91IHdhbnQgdG8gYXZvaWQKPiA+ID4gPiA+IHRoZSByZXByb2JlIGZvciBkaXNj b25uZWN0ZWQuIEknZCBraW5kYSBub3QgcmVjb21tZW5kIHRoYXQgdGhvdWdoLAo+ID4gPiA+ID4g ZmVlbHMgYSBiaXQgbGlrZSBvdmVyb3B0aW1pemluZy4gQW5kIGZvciByZWFzb25hYmxlIGNvbm5l Y3RvcnMgKGkuZS4KPiA+ID4gPiA+IGRwKSByZXByb2JpbmcgYSBkaXNjb25uZWN0ZWQgb3V0cHV0 IGlzIGZhc3QuIEhETUkgaXMgLi4uIGxlc3MKPiA+ID4gPiA+IHJlYXNvbmFibGUgdW5mb3J0dW5h dGVseSwgYnV0IG9oIHdlbGwuCj4gPiA+ID4gCj4gPiA+ID4gSG93IHdvdWxkIHRoYXQgYmUgcmV0 cmVpdmVkIHRoZW4/IEZyb20gdGhlIGxvb2tzIG9mIGl0LCB0aGF0J3MgYQo+ID4gPiA+IE1PREVf R0VUQ09OTkVDVE9SIGlvY3RsIGFuZCBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGlzIGlz IHdoYXQKPiA+ID4gPiBkb2VzIHRoZSBmdWxsIHJlcHJvYmUuCj4gPiA+IAo+ID4gPiBkcm1HZXRD b25uZWN0b3IgdnMgZHJtR2V0Q29ubmVjdG9yQ3VycmVudC4KPiA+IAo+ID4gQWggcmlnaHQsIGZv cmdvdCBhYm91dCB0aGF0IG9uZSwgdGhhbmtzLgo+ID4gCj4gPiA+ID4gTm90IHN1cmUgd2hhdCBp c3N1ZXMgY291bGQgYXJpc2UgaW4gY2FzZSBvZiBkaXNjb25uZWN0IHdpdGhvdXQgcmVwcm9iZQo+ ID4gPiA+IC0tIGF0IGxlYXN0IEkgZG9uJ3Qgc2VlIHdoeSB1c2Vyc3BhY2Ugc2hvdWxkIGhhdmUg dG8gZG8gYW55dGhpbmcgaW4KPiA+ID4gPiBwYXJ0aWN1bGFyIGV4Y2VwdCBubyBsb25nZXIgdXNp bmcgdGhlIGNvbm5lY3RvciwgZXZlbiBpbiBjb21wbGV4IERQIE1TVAo+ID4gPiA+IGNhc2VzLgo+ ID4gPiAKPiA+ID4gY29ubmVjdG9yLT5zdGF0dXMgbWlnaHQgYmUgYSBsaWUgd2l0aG91dCBhIGZ1 bGwgcmVwcm9iZSwgYW5kIHdyb25nbHkKPiA+ID4gaW5kaWNhdGUgdGhhdCB0aGUgY29ubmVjdG9y IGlzIGRpc2Nvbm5lY3RlZCB3aGlsZSB0aGVyZSdzIHN0aWxsCj4gPiA+IHNvbWV0aGluZyBwbHVn Z2VkIGluLiBJJ20gbm90IHN1cmUgd2UndmUgZml4ZWQgdGhvc2UgYnVncyBieSBub3cKPiA+ID4g KHVzdWFsbHkgaXQncyBhcm91bmQgImhwZCBpbmRpY2F0ZXMgZGlzY29ubmVjdGVkIiB2cy4gImky YyBpbmRpY2F0ZXMKPiA+ID4gY29ubmVjdGVkLCBhbmQgd2UgY2FuJ3QgYnJlYWsgdGhpcyBiZWNh dXNlIGV2ZXJ5IGludGVsIHBsYXRmb3JtIGV2ZXIKPiA+ID4gc2hpcHBlZCBoYXMgYSBmZXcgZGV2 aWNlcyB3aGVyZSB0aGlzIGlzIHNvbWVob3cgYnJva2VuLCBpcnJlc3BlY3RpdmUKPiA+ID4gb2Yg dGhlIHNpbmspLgo+ID4gCj4gPiBNaGggZWl0aGVyIHdheSwgSSB0aGluayBpdCdzIHVwIHRvIHRo ZSBkcml2ZXIgdG8gcmVwb3J0IHRoYXQgYW5kIG1ha2UKPiA+IGl0IGNvbnNpc3RlbnQuIEkgdGhp bmsgd2UgaGF2ZSBwb2xsIGhlbHBlcnMgdG8gbWFrZSB1cCBmb3IgY2FzZXMgd2hlcmUKPiA+IGhv dHBsdWcgaXMgbm90IGF2YWlsYWJsZSB0b28uIFNvIEknbSBub3Qgc3VyZSB3aHkgYSBmdWxsIHJl cHJvYmUgd291bGQKPiA+IGJlIG5lZWRlZDogZHJpdmVycyBqdXN0IG5lZWQgdG8gZG8gdGhlIHJp Z2h0IHRoaW5nLgo+ID4gCj4gPiA+ID4gPiAtIFRoZXJlJ3Mgbm8gd2F5IHRvIG9ubHkgcmVwcm9i ZSBzdGF0dXMsIHlvdSBjYW4gb25seSBldmVyIHJlcHJvYmUKPiA+ID4gPiA+IGV2ZXJ5dGhpbmcg d2l0aCB0aGUgY3VycmVudCBpb2N0bCBhbmQgaW1wbGVtZW50YXRpb25zLiBIYXZpbmcgYW4KPiA+ ID4gPiA+IG9wdGlvbiB0byByZXByb2JlIG9ubHkgcGFydHMgb2YgaXQgZG9lc24ndCBzZWVtIHVz ZWZ1bCB0byBtZSAod2UgbmVlZAo+ID4gPiA+ID4gdG8gcmVhZCB0aGUgRURJRCBhbnl3YXksIGFu ZCB0aGF0J3MgdGhlIGV4cGVuc2l2ZSBwYXJ0IG9mIHJlcHJvYmluZyBpbgo+ID4gPiA+ID4gYWxt b3N0IGFsbCBjYXNlcykuCj4gPiA+ID4gCj4gPiA+ID4gQWdyZWVkLgo+ID4gPiA+IAo+ID4gPiA+ ID4gSW4gYSB3YXkgUFJPUEVSVFk9PHN0YXR1cy1wcm9wLWlkPiBzaW1wbHkgdGVsbHMgdXNlcnNw YWNlIHRoYXQgaXQKPiA+ID4gPiA+IG5lZWRzIHRvIHJlcHJvYmUgdGhpcyBjb25uZWN0b3IuCj4g PiA+ID4gCj4gPiA+ID4gSSB0aG91Z2h0IHdlIGNvdWxkIGFjY2VzcyB0aGUgcHJvcHMgYWxvbmUs IHdoaWNoIGF2b2lkcyBkb2luZyBhIHJlcHJvYmUKPiA+ID4gPiB3aGVuIHRoZSBrZXJuZWwga25v d3MgdGhhdCBvbmx5IGEgcHJvcCBvciBhIHNldCBvZiBwcm9wcyBjaGFuZ2VkIGFuZCBkbwo+ID4g PiA+IG5vdCByZXF1aXJlIGEgZnVsbCByZXByb2JlLiBUaGF0J3MgdGhlIGZpcnN0IGNhc2UgSSB3 YXMgbWVudGlvbm5pbmcuCj4gPiA+ID4gCj4gPiA+ID4gPiBBdCB0aGF0IHBvaW50IHdlIG5lZWQg dG8gZmlndXJlIG91dCB3aGV0aGVyIHRoaXMgaXMgYSBnb29kIHVhcGkgb3IKPiA+ID4gPiA+IG5v dCwgYW5kIHRoYXQncyB3aGVyZSB0aGUgZXBvY2ggY29tZXMgaW4uIFRoZXJlJ3MgdHdvIHJlYXNv bnMgZm9yIGFuCj4gPiA+ID4gPiBlcG9jaDoKPiA+ID4gPiA+IC0gV2UgbmVlZCBpdCBpbnRlcm5h bGx5IGJlY2F1c2UgSSdtIG5vdCBnb2luaWcgdG8gd2lyZSBhIG5ldyByZXR1cm4KPiA+ID4gPiA+ IHZhbHVlIHRocm91Z2ggaHVuZHJlZHMgb2YgY29ubmVjdG9yIHByb2JlIGZ1bmN0aW9ucy4gSXQn cyBtdWNoIGVhc2llcgo+ID4gPiA+ID4gdG8gaGF2ZSBhbiBlcG9jaCBjb3VudGVyIHdoaWNoIHdl IHNldCBmcm9tIGUuZy4gZHJtX3NldF9lZGlkIGFuZAo+ID4gPiA+ID4gc2ltaWxhciBmdW5jdGlv bnMgdGhhdCB1cGRhdGUgcHJvYmUgc3RhdGUuCj4gPiA+ID4gCj4gPiA+ID4gSSBkb24ndCB0aGlu ayBJJ20gZm9sbG93aW5nIHdoYXQgaXNzdWUgdGhpcyBpcyB0cnlpbmcgdG8gc29sdmUKPiA+ID4g PiBpbnRlcm5hbGx5Lgo+ID4gPiAKPiA+ID4gU28gSSdtIGFzc3VtaW5nIHRoYXQgaWYgd2UgaGFu ZGxlIGEgaG90cGx1Zywgd2Ugb25seSB3YW50IHRvIGdlbmVyYXRlCj4gPiA+IG9uZSB1ZXZlbnQg Zm9yIHRoYXQsIG5vdCBvbmUgZm9yIGV2ZXJ5IGxpdHRsZSB0aGluZyB0aGF0IGNoYW5nZWQuCj4g PiA+IFRoZXJlJ3MgdHdvIHdheXMgdG8gaW1wbGVtZW50IHRoaXMgbG9naWM6Cj4gPiA+IC0gV2l0 aCBzb21lIGVwb2NoIGNvdW50ZXIgYW5kIGEgaGVscGVyIGZ1bmN0aW9uIHlvdSBjYW4gY2FsbCBl dmVyeXRpbWUKPiA+ID4gc29tZXRoaW5nIGNoYW5nZWQgKGUuZy4gc3RhdHVzLCBvciBlZGlkLCBv ciBhbnl0aGluZyBlbHNlIHdlIGNhcmUKPiA+ID4gYWJvdXQgZS5nLiBmcm9tIGRwIGF1eCkuIFRo aXMgd29uJ3QgbmVlZCBtdWNoIChpZiBhbnkpIGRyaXZlciBjaGFuZ2VzLAo+ID4gPiBiZWNhdXNl IHdlIGNhbiBqdXN0IHB1dCB0aGVzZSBpbnRvIHRoZSByZWxldmFudCBoZWxwZXIvY29yZSBmdW5j dGlvbnMKPiA+ID4gKGxpa2UgZWRpZCB1cGRhdGUsIG9yIGRwIGF1eCByZWFkaW5nIG9yIHdoYXRl dmVyKS4KPiA+ID4gLSBXaXJpbmcgYSBuZXcgcmV0dXJuIHZhbHVlIHRocm91Z2ggdGhlIGVudGly ZSBzdGFjayAoYW5kIF9hbGxfIHRoZQo+ID4gPiBrbXMgZHJpdmVycykgc28gdGhhdCB0aGUgcHJv YmUgaGVscGVycyBjb3VsZCBhZ2dyZWdhdGUgdGhpcyBsaWtlIHRoZXkKPiA+ID4gY3VycmVudGx5 IGRvLgo+ID4gPiAKPiA+ID4gT25lIG9mIHRoZXNlIGlzIGEgbG90IGxlc3MgdHlwaW5nLgo+ID4g Cj4gPiBPaCBJIGhhZCBtaXNzZWQgdGhpcyBpc3N1ZS4gWWVhaCBvZiBjb3Vyc2UgaWYgd2Ugc3Rh cnQgcmVwb3J0aW5nCj4gPiBwcm9wZXJ0eSBjaGFuZ2VzLCBhIGhvdHBsdWcgd2lsbCBiZSBsb3Rz IG9mIHN1Y2ggY2hhbmdlcy4KPiA+IAo+ID4gU28gYW4gZXBvY2ggY291bnRlciBwcm9wZXJ0eSB3 b3VsZCBpbmRlZWQgYWxzbyBzb2x2ZSB0aGUgcmVwcm9iaW5nCj4gPiBwcm9ibGVtLiBCdXQgSSB0 aGluayBpdCB3b3VsZCBiZSBuaWNlIHRvIGtlZXAgdGhlIGFiaWxpdHkgdG8gYmUKPiA+IG5vdGlm aWVkIG9mIHdoYXQgY2hhbmdlZCBwcmVjaXNlbHkgdmlhIHVldmVudC4gSSdtIG5vdCByZWFsbHkg YnV5aW5nCj4gPiB0aGUgIm1pc3NpbmcgdWV2ZW50IiB0aGluZyBzbyBtdWNoIGFuZCBJIHRoaW5r IHdlIGNhbiByZWFzb25hYmx5IGV4cGVjdAo+ID4gdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bC4gRXZl bnRzIGNvdWxkIGJlIGFnZ3JlZ2F0ZWQgKHdoaWNoIHRoZSBlcG9jaAo+ID4gY291bnRlciB3b3Vs ZCBwcm9iYWJseSBhbHNvIGFsbG93KSBhbmQgc2VudCBvdXQgYWx0b2dldGhlciB3aGVuIHRoZQo+ ID4gY29ubmVjdG9yIHN0YXR1cyBjaGFuZ2VzIChhbG9uZyB3aXRoIHRoZSBzdGF0dXMgaW5mb3Jt YXRpb24pLiBJIHRoaW5rCj4gPiB3ZSdyZSB1bmRlci11c2luZyB1ZXZlbnQgY3VycmVudGx5LCBh bmQgZmVlbCBsaWtlIHRoaXMgc2hvdWxkIGJlIGZpeGVkCj4gPiByZWdhcmRsZXNzIG9mIHRoZSBm dWxsIHJlcHJvYmUgaXNzdWUuCj4gCj4gSSBzZWUgdHdvIG9wdGlvbnM6Cj4gCj4gMSkga2VybmVs IGFnZ3JlZ2F0ZXMgdWV2ZW50cyBhIGJpdCwgYW5kIHNlbmRzIG91dCBvbmUgKHBlciBjb25uZWN0 b3IKPiB0aGF0IGNoYW5nZWQpIGluZGljYXRpbmcgdGhhdCBzaW5rIHJlbGF0ZWQgc3RhdGUgY2hh bmdlZC4gVXNlcnNwYWNlCj4gbGlzdGVucyB0byB0aGF0LCBhbmQgZG9lcyBhIGRybUdldENvbm5l Y3RvciBhcyBhIHJlc3VsdCB0byB1cGRhdGUKPiBpdHNlbGYuIE1vc3Qgb2YgdGhpcyBjb2RlIG5l ZWRzIHRvIGV4aXN0IGFueXdheS4KPgo+IDIpIGtlcm5lbCBzZW5kcyBvdXQgdXBkYXRlcyBhcyB3 ZSBnbywgdXNlcnNwYWNlIHJlYXNzZW1ibGVzIGV2ZXJ5dGhpbmcKPiBhZ2FpbiAoYW5kIG5vdCBy ZWFsbHkgYW4gaWRlYSB3aGVuIGFsbCB0aGUgdXBkYXRlcyBhcmUgaW4sIHNlZSBMeXVkZSdzCj4g cXVlc3Rpb24uIFBsdXMgdXNlcnNwYWNlIHN0aWxsIG5lZWRzIHRvIGhhdmUgdGhlIGRybUdldENv bm5lY3RvciBwYXRoLAo+IGF0IGxlYXN0IGZvciBpbml0aWFsIHNldHVwLgo+IAo+IEkgZG9uJ3Qg c2VlIHdoeSAyKSBpcyBhbnkgYmV0dGVyIHRoYW4gMSksIGFuZCBpdCBoYXMgc29tZSBjbGVhciBk b3duc2lkZXMuCgpNeSBtYWluIHBvaW50IGlzIHRoYXQgd2hlbiB0aGUga2VybmVsIGtub3dzIHNv bWUgaW5kaXZpZHVhbCBwcm9wZXJ0eQpjaGFuZ2VkLCBpdCBzaG91bGQgdXBkYXRlIGl0cyBpbnRl cm5hbCBzdGF0ZSBhbmQgcmVwb3J0IHdoYXQgcHJvcApjaGFuZ2VkICppbiBjYXNlcyB0aGF0IGRv bid0IHJlcXVpcmUgYSBmdWxsIHJlcHJvYmUqIGFuZCByZXBvcnQgb25seQp3aGljaCBjb25uZWN0 b3IgY2hhbmdlZCB3aGVuIGEgY29ubmVjdG9yIHJlcHJvYmUgaXMgbmVlZGVkIGFueXdheS4KCk1h eWJlIHdlIGNvdWxkIGV2ZW4gaGF2ZSBxdWlya3MgZm9yIGRyaXZlcnMgdG8gaW5kaWNhdGUgdGhh dCBjb21tb24KYWN0aW9ucyB0aGF0IHNob3VsZG4ndCByZXF1aXJlIGEgcmVwcm9iZSBhY3R1YWxs eSBkbyBmb3IgdGhpcyBkcml2ZXIgaW4KcGFydGljdWxhciwgYmVjYXVzZSBvZiB3aGF0ZXZlciBp bnN0YWJpbGl0eSB3ZSB3YW50IHRvIGJlIGNvbmZpZGVudAphYm91dCBoYW5kbGluZy4gSSBiZWxp ZXZlIHRoaXMgc2hvdWxkIGJlIGFic3RyYWN0ZWQgYXdheSBpbiBEUk0gYW5kIG5vdApyZWZsZWN0 ZWQgb24gdGhlIHVzZXJzcGFjZSBBUEkuCgpTbyBpdCdzIG5vdCBqdXN0IGFib3V0IHByb3ZpZGlu ZyBwZXItcHJvcGVydHkgdXBkYXRlcywgdGhlIHVwZGF0ZXMKcmVwb3J0ZWQgdGhpcyB3YXkgaGF2 ZSB0byBiZSAic3RhbmRhbG9uZSIgYW5kIG5ldmVyIGltcGx5IHRoYXQgYW55dGhpbmcKZWxzZSBh Ym91dCB0aGUgY29ubmVjdG9yJ3Mgc3RhdGUgY291bGQgaGF2ZSBjaGFuZ2UuIERyaXZlcidzIGd1 YXJhbnRlZS4KCj4gPiBXaXRoIHRoYXQsIEkgYWdyZWUgdGhhdCBhIGdsb2JhbCBlcG9jaCBjb3Vu dGVyIGZyb20gdGhlIGNvbm5lY3RvciB3b3VsZAo+ID4gYmUgYSBnb29kIHF1aWNrIHdheSBmb3Ig dXNlcnNwYWNlIHRvIHRlbGwgaWYgYSBjb25uZWN0b3IgY2hhbmdlZCBvciBub3QKPiA+IHNpbmNl IHRoZSBsYXN0IHRpbWUgaXQgY2hlY2tlZC4KPiA+IAo+ID4gPiA+ID4gLSBJZiB1c2Vyc3BhY2Ug bWlzc2VzIGFuIGV2ZW50IGFuZCB0aGVyZSdzIG5vIGVwb2NoLCB3ZSdyZSBmb3JjaW5nCj4gPiA+ ID4gPiB1c2Vyc3BhY2UgdG8gcmVwcm9iZSBldmVyeXRoaW5nLiBVc2UgY2FzZSB3b3VsZCBiZSBp ZiBhIGNvbXBvc2l0b3IgaXMKPiA+ID4gPiA+IHN3aXRjaGVkIGF3YXkgd2UgcHJvYmFibHkgZG9u J3Qgd2FudCB0byBwaXNzIG9mIHRoZSBjdXJyZW50IGNvbXBvc2l0b3IKPiA+ID4gPiA+IGJ5IGJs b2NraW5nIGl0J3Mgb3duIHByb2JlIGtlcm5lbCBjYWxscyBieSBkb2luZyBvdXIgb3duIChwcm9i ZSBpcwo+ID4gPiA+ID4gc2luZ2xlLXRocmVhZGVkIGluIHRoZSBrZXJuZWwgdGhyb3VnaCB0aGUg ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCkuIElmCj4gPiA+ID4gPiBpdCBjYW4gcmVhZCB0aGUgZXBv Y2ggcHJvcGVydHkgKHdoaWNoIGl0IGNhbiBkbyB3aXRob3V0IGZvcmNpbmcgYQo+ID4gPiA+ID4g cmVwcm9iZSkgdXNlcnNwYWNlIHdvdWxkIGtub3cgd2hpY2ggY29ubmVjdG9ycyBpdCBuZWVkcyB0 byBjaGVjayBhbmQKPiA+ID4gPiA+IHJlcHJvYmUuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEhlbmNl IHdoeSBlcG9jaCwgaXQncyBhIGJpdCBtb3JlIHJvYnVzdCB1c2Vyc3BhY2UgYXBpLiBPZmMgeW91 IGNvdWxkCj4gPiA+ID4gPiBhbHNvIHJlcXVpcmUgdGhhdCB1c2Vyc3BhY2UgbmVlZHMgdG8ga2Vl cCBwYXJzaW5nIGFsbCB1ZXZlbnRzIGFuZCBtYWtlCj4gPiA+ID4gPiBhIGxpc3Qgb2YgYWxsIGNv bm5lY3RvcnMgaXQgbmVlZHMgdG8gcmVwcm9iZSB3aGVuIGl0J3MgYmFjayB0byBiZWluZwo+ID4g PiA+ID4gdGhlIGFjdGl2ZSBjb21wb3NpdG9yLiBCdXQganVzdCBjb21wYXJpbmcgYSBjdXJyZW50 IGVwb2NoIHdpdGggdGhlIG9uZQo+ID4gPiA+ID4geW91IGNhY2hlZCBmcm9tIHRoZSBsYXN0IGZ1 bGwgcHJvYmUgaXMgbXVjaCBlYXNpZXIuCj4gPiA+ID4gCj4gPiA+ID4gRmFpciBlbm91Z2gsIEkg dGhpbmsgaXQncyBhIGZpbmUgaWRlYSBmb3Igcm9idXN0bmVzcyB5ZXMsIGJ1dCBJIHRoaW5rCj4g PiA+ID4gd2UgY291bGQgYWxzbyBwcm92aWRlIGV4dHJhIGluZm8gaW4gdGhlIHVldmVudCB3aGVu IHJlbGV2YW50IGFuZCBub3QKPiA+ID4gPiByZWx5IG9uIHRoYXQgZW50aXJlbHkuCj4gPiA+IAo+ ID4gPiBTZWUgYWJvdmUsIHdpdGggZHJtR2V0Q29ubmVjdG9yQ3VycmVudCB0aGVyZSdzIG5vIG5l ZWQgdG8gcHJvdmlkZSBtb3JlCj4gPiA+IHRoYW4gd2hhdCdzIG5lZWRlZCBpbiB0aGUgdWV2ZW50 LCBzaW5jZSB1c2Vyc3BhY2UgY2FuIGdldCBldmVyeXRoaW5nCj4gPiA+IGVsc2UgYXQgdGhlIGNv c3Qgb2Ygb25lIGlvY3RsLCB3aXRob3V0IHJlcHJvYmluZy4gV2l0aCBhIGJpdCBvZgo+ID4gPiBl bmdpbmVlcmluZyB3b3JrIHdlIGNvdWxkIGV2ZW4gYXZvaWQgdGFraW5nIHRoZSBleHBlbnNpdmUK PiA+ID4gZGV2LT5tb2RlX2NvbmZpZy5tdXRleCBsb2NrIGZvciB0aGlzIGZhc3RwYXRoLgo+ID4g PiAKPiA+ID4gPiA+IEFub3RoZXIgdGhpbmc6IE5vbmUgb2YgdGhpcyB3ZSBjYW4gZm9yIGNvbm5l Y3RvcnMgd2l0aCB1bnJlbGlhYmxlIGhkcC4KPiA+ID4gPiA+IE9yIGF0IGxlYXN0IHlvdSdsbCBw aXNzIG9mIHVzZXJzIGlmIHlvdSBjYWNoZSBhbHdheXMuIFRoZSBzYWQgdGhpbmcgaXMKPiA+ID4g PiA+IHRoYXQgSERNSSBpcyB1bnJlbGlhYmxlLCBhdCBsZWFzdCBvbiBzb21lIG1hY2hpbmVzL3Nj cmVlbiBjb21ib3MgKHlvdQo+ID4gPiA+ID4gbmV2ZXIgZ2V0IGEgaHBkIGlycSBpZiB5b3UgcGx1 ZyBpbi91bnBsdWcpLiBTbyByZWFsIGNvbXBvc2l0b3JzIHN0aWxsCj4gPiA+ID4gPiBuZWVkIHRv IHJlcHJvYmUgd2hlbiB0aGUgdXNlciBhc2tzIGZvciBpdC4gaWd0IGNhbiBwcm9iYWJseSBnZXQg YXdheQo+ID4gPiA+ID4gd2l0aG91dCByZXByb2JpbmcuCj4gPiA+ID4gCj4gPiA+ID4gSSB3b25k ZXIgaG93IHRoYXQgaXMgaGFuZGxlZCBjdXJyZW50bHkgYW5kIGhvdyBhIHVzZXIgYWN0aW9uIGNh biBzb2x2ZQo+ID4gPiA+IHRoZSBpc3N1ZSB3aXRob3V0IGFueSBub3RpZmljYXRpb24gZnJvbSB0 aGUga2VybmVsLiBNYXliZSBhIG5lZWQgYQo+ID4gPiA+IGJldHRlciB1bmRlcnN0YW5kaW5nIG9m IHRoYXQgY2FzZSB0byBoYXZlIGEgY2xlYXJlciBpZGVhLgo+ID4gPiAKPiA+ID4gVXNlciBvcGVu cyB0aGUgc2NyZWVuIGNvbmZpZ3VyYXRpb24gdG9vbCAtPiB1c3VhbGx5IGF0IHRoYXQgcG9pbnQg dGhlCj4gPiA+IHRvb2wvY29tcG9zaXRvciBmb3JjZSBhIGZ1bGwgcmVwcm9iZSwgd2hpY2ggdGhl biBvZnRlbiB0cmlnZ2VycyB0aGUKPiA+ID4gYXV0b21hdGljIHJlY29uZmlndXJpbmcuIEUuZy4g b24gb25lIGxhcHRvcCBJIGhhdmUgaGVyZSB3aGVuIEkgcGx1ZyBpbgo+ID4gPiByYW5kb20gc2hp dCBwcm9qZWN0b3JzIGF0IGNvbmZlcmVuY2VzIG5vdGhpbmcgaGFwcGVucywgdW50aWwgSSBydW4K PiA+ID4geHJhbmRyLCB3aGljaCB0cmlnZ2VycyB0aGUgZnVsbCByZXByb2JlLCB3aGljaCB0aGVu IG1ha2VzIHRoZSBrZXJuZWwKPiA+ID4gcmVhbGl6ZSBzb21ldGhpbmcgY2hhbmdlLCBzZW5kaW5n IGFuZCB1ZXZlbnQsIHdoaWNoIHN0YXJ0cyB0aGUKPiA+ID4gYXV0b21hdGljIHJlY29uZmlndXJl IG1hY2hpbmVyeS4KPiA+IAo+ID4gT2ggcmlnaHQgaGVoZSwgSSBkZWZpbml0ZWx5IGRvIHRoYXQg YmxpbmQgYWx0K2YyIGdub21lLWNvbnRyb2wtY2VudGVyCj4gPiB0byBnZXQgbWUgb3V0IG9mIGFu IG9mZi1wYW5lbCBzaXR1YXRpb24gbXVjaCB0b28gb2Z0ZW4uCj4gPiAKPiA+ID4gVGhlcmUncyBh bHNvIHRoZSBpc3N1ZSB0aGF0IHRoZXJlJ3MgbWFjaGluZXMgd2l0aCBocGQgc3Rvcm1zIChldmVu IG9uCj4gPiA+IERQLCB3aGVyZSB5b3UgcmVhbGx5IG5lZWQgaHBkIHRvIHdvcmsgdG8gYmUgY29t cGxpYW50KSwgYW5kIHdlIGhhdmUgdG8KPiA+ID4gdHVybiBvZiB0aGUgaHBkIGlycSB0byBrZWVw IHRoZSBtYWNoaW5lIHVzZWFibGUuCj4gPiAKPiA+IEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9u IHRoYXQgd2Ugc3dpdGNoIHRvIHBvbGxpbmcgd2hlbiBhIGhwZCBzdG9ybQo+ID4gaXMgZGV0ZWN0 ZWQgaW4gaTkxNSAoYnV0IHRoYXQncyBhIHZhZ3VlIG1lbW9yeSBmcm9tIG15IHN1bW1lcgo+ID4g aW50ZXJuc2hpcCBhdCBJbnRlbCAyIHllYXJzIGFnbykuCj4gCj4gV2UgZG8gcG9sbCwgYnV0IHRo ZSBpc3N1ZSBpcyBzdGlsbCB0aGF0IHBvbGxpbmcgZG9lc24ndCBkbyB0aGUgc2FtZQo+IHRoaW5n IGFzIGZ1bGwgcmVwcm9iZS4gT25lIGp1c3QgY2FsbHMgLT5kZXRlY3QsIHRoZSBvdGhlciAtPmRl dGVjdCArCj4gLT5nZXRfbW9kZXMuIFRoaXMgaXMgYSBiaXQgYSBzaWxsaW5lc3Mgb2YgdGhlIGhl bHBlcnMgYW5kIHNvdXJjZSBvZgo+IGxvdHMgb2YgY29uZnVzaW9uLiBBIHBvc3NpYmxlIGZpeCBt aWdodCBiZSB0byBhbHdheXMgY2FsbCBib3RoLgoKSSB0aGluayB0aGF0IHdvdWxkIG1ha2UgYSBs b3Qgb2Ygc2Vuc2UuIEkgZG9uJ3QgcmVhbGx5IGdldCB3aHkgd2UgaGF2ZQp0byB3YWl0IGZvciB1 c2Vyc3BhY2UgdG8gZG8gYSByZXByb2JlIHRvIGdldCB0aGUgbmV3IG1vZGVzIHdoZW4gdGhlCmtl cm5lbCBjYW4gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhlIG1vZGVzIGNoYW5nZWQgYW5kIG5l ZWQgdG8gYmUKcmVmcmVzaGVkLgoKPiBQbHVzIGV2ZW4gd2hlbiB0aGF0IG1lc3MgaXMgc29ydGVk IHRoZXJlJ3Mgc3RpbGwgdGhlIGlzc3VlIG9mIGJyb2tlbgo+IGh3LCBhbmQgd2UgaGF2ZSBubyBp ZGVhIGhvdyBtdWNoL3doZXJlL3doaWNoIGV4YWN0bHkuIEV4Y2VwdCB0aGF0Cj4gZXZlcnkgdGlt ZSB3ZSByZWxpZWQgb24gaHBkIHN0YXR1cywgd2UgZ290IHJlZ3Jlc3Npb24gcmVwb3J0cyBhbmQg aGFkCj4gdG8gcmV2ZXJ0LgoKSSB0aGluayB3ZSBjb3VsZCBjb25maWd1cmUgdGhlIG5vdGlmaWNh dGlvbiBiZWhhdmlvciBwZXItZHJpdmVyIGFuZApzb21lIGV2ZW50cyB0aGF0IHdvdWxkbid0IHJl cXVpcmUgYSBmdWxsIHByb2JlIG9uIHNvbWUgZHJpdmVycyBjb3VsZCBkbwpzbyBvbiBvdGhlciBk cml2ZXJzLiBVc2Vyc3BhY2Ugc2hvdWxkIGZpbmQgb3V0IHdoZXRoZXIgdG8gcmVwcm9iZSBvcgpu b3QgZHluYW1pY2FsbHkgYmFzZWQgb24gd2hhdCdzIGluIHRoZSB1ZXZlbnQgYW55d2F5LCBzbyBp dCdzIG5vdCBldmVuCmFuIGluY29uc2lzdGVuY3kgaW4gdGhlIGludGVyZmFjZSB0aGF0IDIgZXZl bnRzIGJlIHJlcG9ydGVkIGRpZmZlcmVudGx5CmluIDIgZHJpdmVycy4gSSB0aGluayB0aGF0J2Qg YmUgYmV0dGVyIHRoYW4gdGhlIGN1cnJlbnQgc2l0dWF0aW9uIHdlJ3JlCmluIGFueXdheS4gSWYg c29tZSBkcml2ZXJzIHdhbnQgYmUgcGFyYW5vaWQgYW5kIGFsd2F5cyBhc2sgZm9yCmEgcmVwcm9i ZSBvZiB0aGUgY29ubmVjdG9ycyBiZWNhdXNlIG9mIHVucmVsaWFibGUgaHcsIHRoZWlyIGNob2lj ZS4KCkNoZWVycywKClBhdWwKCj4gLURhbmllbAo+IAo+ID4gQ2hlZXJzLAo+ID4gCj4gPiBQYXVs Cj4gPiAKPiA+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+ID4gCj4gPiA+ID4gQ2hlZXJzLAo+ID4gPiA+ IAo+ID4gPiA+IFBhdWwKPiA+ID4gPiAKPiA+ID4gPiA+IC1EYW5pZWwKPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiBUaGVuIHdlIHN0aWxsIGhhdmUgdGhlIGxlZ2FjeSBjYXNlOgo+ID4gPiA+ID4gPiBI T1RQTFVHPTEKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IHdoZXJlIHVzZXJzcGFjZSBpcyBleHBl Y3RlZCB0byByZXByb2JlIGFsbCB0aGUgY29ubmVjdG9ycy4KPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IEkgdGhpbmsgdGhpcyB3b3VsZCBkZXNlcnZlIHRvIGJlIGEgc2VwYXJhdGUgc2VyaWVzIG9u IGl0cyBvd24uIFNvIEkgYW0KPiA+ID4gPiA+ID4gcHJvcG9zaW5nIHRvIHRha2UgdGhpcyBvbmUg b2ZmIHlvdXIgcGxhdGUgYW5kIGNvbWUgdXAgd2l0aCBhbm90aGVyCj4gPiA+ID4gPiA+IHNlcmVz IGltcGxlbWVudGluZyB0aGlzIHByb3Bvc2FsLiBXaGF0IGRvIHlvdSB0aGluaz8KPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+IENoZWVycywKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFBhdWwKPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gdjI6Cj4gPiA+ID4gPiA+ID4gICBNaW5vciBmaXhlcyBh dCBLRG9jIGNvbW1lbnRzIFtEYW5pZWxdCj4gPiA+ID4gPiA+ID4gdjM6Cj4gPiA+ID4gPiA+ID4g ICBDaGVjayB0aGUgcHJvcGVydHkgaXMgcmVhbGx5IGF0dGFjaGVkIHdpdGggY29ubmVjdG9yIFtE YW5pZWxdCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmFtYWxp bmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+IFJldmlld2VkLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMgfCAzNSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiA+ICBpbmNsdWRlL2RybS9k cm1fc3lzZnMuaCAgICAgfCAgNSArKysrLQo+ID4gPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDM5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9zeXNmcy5jCj4gPiA+ID4gPiA+ID4gaW5kZXggMThiMWFjNDQyOTk3Li42M2Zh OTUxYTIwZGIgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9z eXNmcy5jCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCj4g PiA+ID4gPiA+ID4gQEAgLTIxLDYgKzIxLDcgQEAKPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPGRy bS9kcm1fc3lzZnMuaD4KPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gPiA+ ID4gPiA+ID4gICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKPiA+ID4gPiA+ID4gPiArI2luY2x1 ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gICNk ZWZpbmUgdG9fZHJtX21pbm9yKGQpIGRldl9nZXRfZHJ2ZGF0YShkKQo+ID4gPiA+ID4gPiA+ICAj ZGVmaW5lIHRvX2RybV9jb25uZWN0b3IoZCkgZGV2X2dldF9kcnZkYXRhKGQpCj4gPiA+ID4gPiA+ ID4gQEAgLTMyMCw2ICszMjEsOSBAQCB2b2lkIGRybV9zeXNmc19sZWFzZV9ldmVudChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ID4gPiA+ICAgKiBTZW5kIGEgdWV2ZW50IGZvciB0aGUg RFJNIGRldmljZSBzcGVjaWZpZWQgYnkgQGRldi4gIEN1cnJlbnRseSB3ZSBvbmx5Cj4gPiA+ID4g PiA+ID4gICAqIHNldCBIT1RQTFVHPTEgaW4gdGhlIHVldmVudCBlbnZpcm9ubWVudCwgYnV0IHRo aXMgY291bGQgYmUgZXhwYW5kZWQgdG8KPiA+ID4gPiA+ID4gPiAgICogZGVhbCB3aXRoIG90aGVy IHR5cGVzIG9mIGV2ZW50cy4KPiA+ID4gPiA+ID4gPiArICoKPiA+ID4gPiA+ID4gPiArICogQW55 IG5ldyB1YXBpIHNob3VsZCBiZSB1c2luZyB0aGUgZHJtX3N5c2ZzX2Nvbm5lY3Rvcl9zdGF0dXNf ZXZlbnQoKQo+ID4gPiA+ID4gPiA+ICsgKiBmb3IgdWV2ZW50cyBvbiBjb25uZWN0b3Igc3RhdHVz IGNoYW5nZS4KPiA+ID4gPiA+ID4gPiAgICovCj4gPiA+ID4gPiA+ID4gIHZvaWQgZHJtX3N5c2Zz X2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4gPiAgewo+ ID4gPiA+ID4gPiA+IEBAIC0zMzIsNiArMzM2LDM3IEBAIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdf ZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4g PiA+ICBFWFBPUlRfU1lNQk9MKGRybV9zeXNmc19ob3RwbHVnX2V2ZW50KTsKPiA+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gPiArLyoqCj4gPiA+ID4gPiA+ID4gKyAqIGRybV9zeXNmc19jb25uZWN0 b3Jfc3RhdHVzX2V2ZW50IC0gZ2VuZXJhdGUgYSBEUk0gdWV2ZW50IGZvciBjb25uZWN0b3IKPiA+ ID4gPiA+ID4gPiArICogcHJvcGVydHkgc3RhdHVzIGNoYW5nZQo+ID4gPiA+ID4gPiA+ICsgKiBA Y29ubmVjdG9yOiBjb25uZWN0b3Igb24gd2hpY2ggcHJvcGVydHkgc3RhdHVzIGNoYW5nZWQKPiA+ ID4gPiA+ID4gPiArICogQHByb3BlcnR5OiBjb25uZWN0b3IgcHJvcGVydHkgd2hvZXMgc3RhdHVz IGNoYW5nZWQuCj4gPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ID4gKyAqIFNlbmQgYSB1ZXZl bnQgZm9yIHRoZSBEUk0gZGV2aWNlIHNwZWNpZmllZCBieSBAZGV2LiAgQ3VycmVudGx5IHdlCj4g PiA+ID4gPiA+ID4gKyAqIHNldCBIT1RQTFVHPTEgYW5kIGNvbm5lY3RvciBpZCBhbG9uZyB3aXRo IHRoZSBhdHRhY2hlZCBwcm9wZXJ0eSBpZAo+ID4gPiA+ID4gPiA+ICsgKiByZWxhdGVkIHRvIHRo ZSBzdGF0dXMgY2hhbmdlLgo+ID4gPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ID4gPiArdm9pZCBk cm1fc3lzZnNfY29ubmVjdG9yX3N0YXR1c19ldmVudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5KQo+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4g PiA+ID4gKyAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4g PiA+ID4gPiA+ICsgICAgIGNoYXIgaG90cGx1Z19zdHJbXSA9ICJIT1RQTFVHPTEiLCBjb25uX2lk WzMwXSwgcHJvcF9pZFszMF07Cj4gPiA+ID4gPiA+ID4gKyAgICAgY2hhciAqZW52cFs0XSA9IHsg aG90cGx1Z19zdHIsIGNvbm5faWQsIHByb3BfaWQsIE5VTEwgfTsKPiA+ID4gPiA+ID4gPiArCj4g PiA+ID4gPiA+ID4gKyAgICAgV0FSTl9PTighZHJtX21vZGVfb2JqX2ZpbmRfcHJvcF9pZCgmY29u bmVjdG9yLT5iYXNlLAo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJvcGVydHktPmJhc2UuaWQpKTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ID4gKyAgICAgc25wcmludGYoY29ubl9pZCwgQVJSQVlfU0laRShjb25uX2lkKSwKPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAiQ09OTkVDVE9SPSV1IiwgY29ubmVjdG9yLT5iYXNlLmlk KTsKPiA+ID4gPiA+ID4gPiArICAgICBzbnByaW50Zihwcm9wX2lkLCBBUlJBWV9TSVpFKHByb3Bf aWQpLAo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICJQUk9QRVJUWT0ldSIsIHByb3BlcnR5 LT5iYXNlLmlkKTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gKyAgICAgRFJNX0RFQlVH KCJnZW5lcmF0aW5nIGNvbm5lY3RvciBzdGF0dXMgZXZlbnRcbiIpOwo+ID4gPiA+ID4gPiA+ICsK PiA+ID4gPiA+ID4gPiArICAgICBrb2JqZWN0X3VldmVudF9lbnYoJmRldi0+cHJpbWFyeS0+a2Rl di0+a29iaiwgS09CSl9DSEFOR0UsIGVudnApOwo+ID4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ ID4gK0VYUE9SVF9TWU1CT0woZHJtX3N5c2ZzX2Nvbm5lY3Rvcl9zdGF0dXNfZXZlbnQpOwo+ID4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiAgc3RhdGljIHZvaWQgZHJtX3N5c2ZzX3JlbGVhc2Uo c3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiA+ID4gICAgICAg a2ZyZWUoZGV2KTsKPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3N5 c2ZzLmggYi9pbmNsdWRlL2RybS9kcm1fc3lzZnMuaAo+ID4gPiA+ID4gPiA+IGluZGV4IDRmMzEx ZTgzNmNkYy4uZDQ1NGVmNjE3YjJjIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9zeXNmcy5oCj4gPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3N5c2Zz LmgKPiA+ID4gPiA+ID4gPiBAQCAtNCwxMCArNCwxMyBAQAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ICBzdHJ1Y3QgZHJtX2RldmljZTsKPiA+ID4gPiA+ID4gPiAgc3RydWN0IGRldmljZTsK PiA+ID4gPiA+ID4gPiArc3RydWN0IGRybV9jb25uZWN0b3I7Cj4gPiA+ID4gPiA+ID4gK3N0cnVj dCBkcm1fcHJvcGVydHk7Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gIGludCBkcm1fY2xh c3NfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gPiA+ID4gPiA+ID4gIHZv aWQgZHJtX2NsYXNzX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gIHZvaWQgZHJtX3N5c2ZzX2hvdHBsdWdfZXZlbnQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ICt2b2lk IGRybV9zeXNmc19jb25uZWN0b3Jfc3RhdHVzX2V2ZW50KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHkpOwo+ID4gPiA+ID4gPiA+ICAjZW5kaWYK PiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KPiA+ ID4gPiA+ID4gRW1iZWRkZWQgTGludXggYW5kIGtlcm5lbCBlbmdpbmVlcmluZwo+ID4gPiA+ID4g PiBodHRwczovL2Jvb3RsaW4uY29tCj4gPiA+ID4gPiA+IAo+ID4gPiA+IC0tCj4gPiA+ID4gUGF1 bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KPiA+ID4gPiBFbWJlZGRlZCBMaW51eCBhbmQga2VybmVs IGVuZ2luZWVyaW5nCj4gPiA+ID4gaHR0cHM6Ly9ib290bGluLmNvbQo+ID4gPiA+IAo+IAo+IAot LSAKUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KRW1iZWRkZWQgTGludXggYW5kIGtlcm5lbCBl bmdpbmVlcmluZwpodHRwczovL2Jvb3RsaW4uY29tCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=