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: Wed, 15 May 2019 09:49:54 +0200 Message-ID: <8d02be051ce0c35045aba1e4645a10424b854613.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> <20190514110242.6f6ba4b0@eldfell.localdomain> <9b6386239ecae396fc4f5cc4467f8e76721f2c83.camel@intel.com> <20190514163602.7d252b12@eldfell.localdomain> <20190515103731.16855195@eldfell.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190515103731.16855195@eldfell.localdomain> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Pekka Paalanen , Daniel Vetter Cc: "maxime.ripard@bootlin.com" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "Mun, Gwan-gyeong" , "Ser, Simon" , "airlied@linux.ie" , "thomas.petazzoni@bootlin.com" , "Vetter, Daniel" , "sean@poorly.run" List-Id: intel-gfx@lists.freedesktop.org SGksCgpPbiBXZWQsIDIwMTktMDUtMTUgYXQgMTA6MzcgKzAzMDAsIFBla2thIFBhYWxhbmVuIHdy b3RlOgo+IE9uIFR1ZSwgMTQgTWF5IDIwMTkgMTY6MzQ6MDEgKzAyMDAKPiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiAKPiA+IE9uIFR1ZSwgTWF5IDE0LCAy MDE5IGF0IDM6MzYgUE0gUGVra2EgUGFhbGFuZW4gPHBwYWFsYW5lbkBnbWFpbC5jb20+IHdyb3Rl Ogo+ID4gPiBPbiBUdWUsIDE0IE1heSAyMDE5IDEzOjAyOjA5ICswMjAwCj4gPiA+IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IHdyb3RlOgo+ID4gPiAgCj4gPiA+ID4gT24g VHVlLCBNYXkgMTQsIDIwMTkgYXQgMTA6MTggQU0gU2VyLCBTaW1vbiA8c2ltb24uc2VyQGludGVs LmNvbT4gd3JvdGU6ICAKPiA+ID4gPiA+IE9uIFR1ZSwgMjAxOS0wNS0xNCBhdCAxMTowMiArMDMw MCwgUGVra2EgUGFhbGFuZW4gd3JvdGU6ICAKPiAKPiAuLi4KPiAKPiA+ID4gPiA+ID4gSGkgRGFu aWVsLAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4ganVzdCB0byBjbGFyaWZ5IHRoZSBmaXJzdCBj YXNlLCBzcGVjaWZpYyB0byBvbmUgdmVyeSBwYXJ0aWN1bGFyCj4gPiA+ID4gPiA+IHByb3BlcnR5 Ogo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gV2l0aCBIRENQLCB0aGVyZSBpcyBhIHByb3BlcnR5 IHRoYXQgbWF5IGNoYW5nZSBkeW5hbWljYWxseSBhdCBydW50aW1lCj4gPiA+ID4gPiA+ICh0aGUg dW5kZXNpcmVkL2Rlc2lyZWQvZW5hYmxlZCB0cmlzdGF0ZSkuIFVzZXJzcGFjZSBtdXN0IGJlIG5v dGlmaWVkCj4gPiA+ID4gPiA+IHdoZW4gaXQgY2hhbmdlcywgSSBkbyBub3Qgd2FudCB1c2Vyc3Bh Y2UgaGF2ZSB0byBwb2xsIHRoYXQgcHJvcGVydHkKPiA+ID4gPiA+ID4gd2l0aCBhIHRpbWVyLgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gV2hlbiB0aGF0IHByb3BlcnR5IGFsb25lIGNoYW5nZXMs IGFuZCB1c2Vyc3BhY2UgaXMgcHJlcGFyZWQgdG8gaGFuZGxlCj4gPiA+ID4gPiA+IHRoYXQgcHJv cGVydHkgY2hhbmdpbmcgYWxvbmUsIGl0IG11c3Qgbm90IHRyaWdnZXIgYSByZXByb2JlIG9mIHRo ZQo+ID4gPiA+ID4gPiBjb25uZWN0b3IuIFRoZXJlIGlzIG5vIHJlYXNvbiB0byByZXByb2JlIGF0 IHRoYXQgcG9pbnQgQUZBSVUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBIb3cgZG8geW91IGVu c3VyZSB0aGF0IHVzZXJzcGFjZSBjYW4gYXZvaWQgdHJpZ2dlcmluZyBhIHJlcHJvYmUgd2l0aCB0 aGUKPiA+ID4gPiA+ID4gZXBvY2ggYXBwcm9hY2ggb3Igd2l0aCBhbnkgYWx0ZXJuYXRlIHVldmVu dCBkZXNpZ24/Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBXZSBuZWVkIGFuIGV2ZW50IHRvIHVz ZXJzcGFjZSB0aGF0IGluZGljYXRlcyB0aGF0IHJlLXJlYWRpbmcgdGhlCj4gPiA+ID4gPiA+IHBy b3BlcnRpZXMgaXMgZW5vdWdoIGFuZCByZXByb2JlIG9mIHRoZSBjb25uZWN0b3IgaXMgbm90IG5l Y2Vzc2FyeS4KPiA+ID4gPiA+ID4gVGhpcyBpcyBjb21wbGVtZW50YXJ5IHRvIGluZGljYXRpbmcg dG8gdXNlcnNwYWNlIHRoYXQgb25seSBzb21lCj4gPiA+ID4gPiA+IGNvbm5lY3RvcnMgbmVlZCB0 byBiZSByZXByb2JlZCBpbnN0ZWFkIG9mIGV2ZXJ5dGhpbmcuICAKPiA+ID4gPiA+IAo+ID4gPiA+ ID4gQ2FuJ3QgeW91IHVzZSB0aGUgUFJPUEVSVFkgaGludD8gSWYgUFJPUEVSVFkgaXMgdGhlIEhE Q1Agb25lLCBza2lwIHRoZQo+ID4gPiA+ID4gcmVwcm9iaW5nLiBXb3VsZCB0aGF0IHdvcms/ICAK PiA+ID4gCj4gPiA+IEhpLAo+ID4gPiAKPiA+ID4geWVzLCB0aGF0IHdvdWxkIHdvcmssIGlmIGl0 IHdhcyBhY2NlcHRhYmxlIHRvIERSTSB1cHN0cmVhbS4gVGhlIHJlcGxpZXMKPiA+ID4gdG8gUGF1 bCBzZWVtZWQgdG8gYmUgZ29pbmcgc291dGggc28gZmFzdCB0aGF0IEkgdGhvdWdodCB3ZSB3b3Vs ZG4ndCBnZXQKPiA+ID4gYW55IG5ldyB1ZXZlbnQgZmllbGRzIGluIGZhdm91ciBvZiAiZXBvY2gg Y291bnRlcnMiLgo+ID4gPiAgCj4gPiA+ID4gWWVzIHRoYXQncyB0aGUgaWRlYSwgZGVwZW5kaW5n IHVwb24gd2hpY2ggcHJvcGVydHkgeW91IGdldCB5b3Uga25vdwo+ID4gPiA+IGl0J3MgYSBzaW5r IGNoYW5nZSAobmVlZHMgZnVsbCByZXByb2JlKSBvciBzb21ldGhpbmcgZWxzZSBsaWtlIGhkY3AK PiA+ID4gPiBzdGF0ZSBtYWNoaW5lcnkgdXBkYXRlLiAgCj4gPiA+IAo+ID4gPiBSaWdodC4KPiA+ ID4gIAo+ID4gPiA+IFdydCBhdm9pZGluZyB0aGUgZnVsbCByZXByb2JlIGZvciBzaW5rIGNoYW5n ZXM6IEkgdGhpbmsgd2Ugc2hvdWxkCj4gPiA+ID4gaW5kZWVkIGRlY291cGxlIHRoYXQgZnJvbSB0 aGUgcGVyLWNvbm5lY3RvciBldmVudCBmb3Igc2luayBjaGFuZ2VzLgo+ID4gPiA+IFRoYXQgYWxv bmcgaXMgYSBnb29kIHdpbiBhbHJlYWR5LCBzaW5jZSB5b3Uga25vdyBmb3Igd2hpY2ggY29ubmVj dG9yCj4gPiA+ID4geW91IG5lZWQgdG8gY2FsbCBkcm1HZXRDb25uZWN0b3IgKHdoaWNoIGZvcmNl cyB0aGUgcmVwcm9iZSkuIEl0IHdvdWxkCj4gPiA+ID4gYmUgbmljZSB0byBvbmx5IGNhbGwgZHJt R2V0Q29ubmVjdG9yQ3VycmVudCAoYXZvaWRzIHRoZSByZXByb2JlKSwgYnV0Cj4gPiA+ID4gaGlz dG9yaWNhbGx5IHNwZWFraW5nIGV2ZXJ5IHRpbWUgd2UgdHJpZWQgdG8gcmVseSBvbiB0aGlzIHdl IGVuZGVkIHVwCj4gPiA+ID4gcmVncmV0dGluZyB0aGluZ3MuICAKPiA+ID4gCj4gPiA+IFdoYXQg Y2hhbmdlZD8gVGhpcyBzb3VuZHMgdmVyeSBtdWNoIHdoYXQgUGF1bCBzdWdnZXN0ZWQuIExvb2tp bmcgYXQgaXQKPiA+ID4gZnJvbSB1c2Vyc3BhY2Ugc2lkZTogIAo+ID4gCj4gPiBUaGlzIHNvdW5k cyBzb2xpZCwgc29tZSByZWZpbmVtZW50cyBiZWxvdzoKPiA+IAo+ID4gPiBIT1RQTFVHPTEgQ09O TkVDVE9SPXh4IFBST1BFUlRZPXl5Cj4gPiA+IAo+ID4gPiAtIElmIHl5IGlzICJDb250ZW50IFBy b3RlY3Rpb24iLCBubyBuZWVkIHRvIGRybU1vZGVHZXRDb25uZWN0b3IoKSwganVzdAo+ID4gPiAg IHJlLWdldCB0aGUgY29ubmVjdG9yIHByb3BlcnRpZXMuCj4gPiA+IAo+ID4gPiAtIEtlcm5lbCBw cm9iYWJseSBzaG91bGRuJ3QgYm90aGVyIHNlbmRpbmcgdGhpcyBmb3IgcHJvcGVydGllcyB3aGVy ZQo+ID4gPiAgIHJlLXByb2JlIGNvdWxkIGJlIG5lY2Vzc2FyeSwgYW5kIHNlbmQgdGhlIGJlbG93 IGluc3RlYWQuICAKPiA+IAo+ID4gSSB0aGluayB3ZSBzaG91bGQgYXNzZXJ0IHRoYXQgdGhlIGtl cm5lbCBjYW4gZ2V0IHRoZSBuZXcgcHJvcGVydHkKPiA+IHZhbHVlcyB1c2luZyBkcm1Nb2RlR2V0 Q29ubmVjdG9yQ3VycmVudCBmb3IgdGhpcyBjYXNlLCBpLmUuIHRoZSBrZXJuZWwKPiA+IGRvZXMg bm90IGV4cGVjdCBhIGZ1bGwgcmVwcm9iZS4gSS5lLiB1cGdyYWRlIHlvdXIgaWRlYSBmcm9tICJz aG91bGQiCj4gPiB0byAibXVzdCIKPiAKPiBIaSBEYW5pZWwsCj4gCj4gb2ssIHRoYXQncyBnb29k Lgo+IAo+ID4gRnVydGhlcm1vcmUgZGlmZmVyZW50IHByb3BlcnR5IGNhbiBpbmRpY2F0ZSBkaWZm ZXJlbnQga2luZCBvZiB1cGRhdGVzLAo+ID4gZS5nLiBoZGNwIHZzIGdlbmVyYWwgc2luayBjaGFu Z2UgdnMuIHdoYXRldmVyIGVsc2UgbWlnaHQgY29tZSBpbiB0aGUKPiA+IGZ1dHVyZS4KPiAKPiBX aGF0IGRvIHlvdSBtZWFuIGJ5IGRpZmZlcmVudCBraW5kcyBvZiB1cGRhdGVzPwo+IAo+IEJ0dy4g SSBzdGFydGVkIHRoaW5raW5nLCBtYXliZSB3ZSBzaG91bGQgY29tcGxldGVseSBsZWF2ZSBvdXQg dGhlICJJZgo+IHl5IGlzICJDb250ZW50IFByb3RlY3Rpb24iIiBhbmQgcmVxdWlyZSB0aGUga2Vy bmVsIHRvIGd1YXJhbnRlZSwgdGhhdAo+IGlmIFBST1BFUlRZIGlzIHNldCwgdGhlbiBkcm1Nb2Rl R2V0Q29ubmVjdG9yKCkgKHByb2JpbmcpIG11c3Qgbm90IGJlCj4gbmVjZXNzYXJ5IGJhc2VkIG9u IHRoaXMgZXZlbnQgYWxvbmUuCgpJIGFncmVlLCB0aGlzIGlzIHByZWNpc2VseSB3aGF0IEkgaGFk IGluIG1pbmQuCgo+IFdyaXRpbmcgaXQgZG93biBhZ2FpbjoKPiAKPiBIT1RQTFVHPTEgQ09OTkVD VE9SPXh4IFBST1BFUlRZPXl5Cj4gCj4gLSB5eSBkZW5vdGVzIHdoaWNoIGNvbm5lY3RvciB4eCBw cm9wZXJ0eSBjaGFuZ2VkLgo+IAo+IC0gVXNlcnNwYWNlIGRvZXMgbm90IG5lZWQgdG8gZG8gZHJt TW9kZUdldENvbm5lY3RvcigpLCBpdCBvbmx5IG5lZWRzIHRvCj4gICBkcm1Nb2RlT2JqZWN0R2V0 UHJvcGVydGllcygpIG9uIHRoZSBjb25uZWN0b3IgdG8gcmVjZWl2ZSB0aGUgbmV3Cj4gICB1cGRh dGVkIHByb3BlcnR5IHZhbHVlcy4KPiAKPiAtIEtlcm5lbCBtdXN0IG5vdCBzZW5kIHRoaXMgZXZl bnQgZm9yIGNoYW5nZXMgdGhhdCBtYXkgcmVxdWlyZSBwcm9iaW5nCj4gICBmb3IgY29ycmVjdCBy ZXN1bHRzLCBleGNlcHRpb25hbCBjb25kaXRpb25zIChidWdneSBoYXJkd2FyZSwgZXRjLikKPiAg IGluY2x1ZGVkLiBJbnN0ZWFkLCB0aGUga2VybmVsIG11c3Qgc2VuZCBvbmUgb2YgdGhlIGJlbG93 IGV2ZW50cy4KCkFncmVlZCwgYW5kIGxlYXZlIHRoaXMgdXAgdG8gdGhlIGRyaXZlciBpbiB0aGUg ZW5kLCBub3QgdGhlIGNvcmUuCgo+IElzIHRoZXJlIGFjdHVhbGx5IGFueXRoaW5nIGludGVyZXN0 aW5nIHRoYXQKPiBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudCgpIGNvdWxkIGd1YXJhbnRlZWQg Y29ycmVjdGx5IHJldHVybiB0aGF0IGlzCj4gbm90IGEgcHJvcGVydHkgYWxyZWFkeT8gSSdkIHBy b2JhYmx5IGxlYXZlIHRoaXMgY29uc2lkZXJhdGlvbiBvdXQKPiBjb21wbGV0ZWx5LCBhbmQganVz dCBzYXkgZG8gb25lIG9mIHRoZSBuZWVkcy1wcm9iaW5nIGV2ZW50cyBpZiBhbnl0aGluZwo+IHRo ZXJlIGNoYW5nZWQuCgpJbiB0aGUgZW5kLCBJIHRoaW5rIHRoaXMgc2hvdWxkIGhlbHAgbW92ZSB0 byBhIHNpdHVhdGlvbiB3aGVyZQp1c2Vyc3BhY2Ugd291bGQgbm90IGhhdmUgdG8gZG8gYSByZXBy b2JlIGF0IGFueSBwb2ludCBhbmQgdGhlIGtlcm5lbApzaWRlIGp1c3QgZG9lcyBpdC4KCkkgc2Vl IG5vIGp1c3RpZmljYXRpb24gZm9yIGFza2luZyB1c2Vyc3BhY2UgdG8gcHJvYmUgYW55d2F5LCB3 ZSBjYW4KbWFuYWdlIGFsbCB0aGF0IGluLWtlcm5lbCB3aXRoIGVhY2ggZHJpdmVyIGtlZXBpbmcg aXRzIGNvbm5lY3RvciBwcm9wcwp1cCB0byBkYXRlIGFuZCBwcm9wZXJseSBub3RpZnlpbmcgdXNl cnNwYWNlLgoKT24gdGhlIG90aGVyIGhhbmQsIGl0J3MgZGVmaW5pdGVseSBnb29kIHRvIGtlZXAg dGhlIGFiaWxpdHkgZm9yCnVzZXJzcGFjZSB0byB2b2x1bnRhcmlseSByZXByb2JlIGF0IHRpbWVz LCBidXQgdGhvc2UgdHdvIGlkZWFzIGNhbiB3b3JrCmZpbmUgdG9nZXRoZXIuCgo+ID4gPiBIT1RQ TFVHPTEgQ09OTkVDVE9SPXh4Cj4gPiA+IAo+ID4gPiAtIE5lZWRzIHRvIGRybU1vZGVHZXRDb25u ZWN0b3IoKSBvbiB0aGUgb25lIGNvbm5lY3Rvciwgbm8gbmVlZCB0byBwcm9iZQo+ID4gPiAgIG90 aGVycy4gSW1wbGllcyB0aGF0IG9uZSBuZWVkcyB0byByZS1nZXQgdGhlIGNvbm5lY3RvciBwcm9w ZXJ0aWVzIGFzCj4gPiA+ICAgd2VsbC4gIAo+ID4gCj4gPiBTb3VuZHMgZ29vZC4KPiA+IAo+ID4g PiBIT1RQTFVHPTEKPiA+ID4gCj4gPiA+IC0gTmVlZCB0byBkbyBkcm1Nb2RlR2V0UmVzb3VjZXMo KSB0byBkaXNjb3ZlciBuZXcvZGlzYXBwZWFyZWQKPiA+ID4gICBjb25uZWN0b3JzLCBhbmQgbmVl ZCB0byBkcm1Nb2RlR2V0Q29ubmVjdG9yIHRvIHJlLXByb2JlIGV2ZXJ5Cj4gPiA+ICAgY29ubmVj dG9yLiAoQXMgYWx3YXlzLikgIAo+ID4gCj4gPiBNYXliZSB3ZSBzaG91bGQgY2xhcmlmeSB0aGF0 IHRoaXMgaXMgYWxzbyB3aGF0IHlvdSBnZXQgd2hlbiBhbiBlbnRpcmUKPiA+IGNvbm5lY3RvciBh cHBlYXJzL2Rpc2FwcGVhcnMgKGZvciBkcCBtc3QgaG90cGx1ZykuCj4gCj4gWWVzLCB0aGF0J3Mg d2hhdCBJIHdyb3RlLiA6LSkKPiAKPiBXZXN0b24gaW1wbGVtZW50cyB0aGUgZGlzY292ZXJ5IG9m IGFwcGVhcmluZy9kaXNhcHBlYXJpbmcgY29ubmVjdG9ycwo+IChhcyBvcHBvc2VkIHRvIGNvbm5l Y3RpbmcvZGlzY29ubmVjdGluZyBjb25uZWN0b3JzKS4gTm90IHN1cmUgYW55b25lCj4gaGFzIGV2 ZXIgdGVzdGVkIGl0IHRob3VnaC4uLgo+IAo+ID4gTWF5YmUgd2UgY291bGQgbWFrZSBhbiBhZGRp dGlvbmFsIHJ1bGUgdGhhdCBpZiBhIGNvbm5lY3RvciBoYXMgdGhlCj4gPiBFUE9DSCBwcm9wZXJ0 eSwgdGhlbiBpdCBkb2VzIF9ub3RfIG5lZWQgdG8gYmUgcmVwcm9iZSBmb3IgdGhlIGdsb2JhbAo+ ID4gZXZlbnRzLiBGb3IgdGhhdCBjYXNlIHVzZXJzcGFjZSBzaG91bGQgb25seSBjaGVjayB3aGV0 aGVyIHRoZXJlJ3MKPiA+IG5ldy9yZW1vdmVkIGNvbm5lY3RvcnMsIGFuZCB0aGVuIHByb2JlIHRo ZSBuZXcgb25lcyAoYW5kIGRpc2FibGUgdGhlCj4gPiByZW1vdmVkIG9uZXMgYXMgbmVlZGVkKS4g V2UgY2FuIGFsc28gdXNlIHNvbWUgb3RoZXIgZmxhZyB0byBpbmRpY2F0ZQo+ID4gdGhpcyBpZiB3 ZSBkb24ndCBhZGQgdGhlIGVwb2NoIHByb3BydHkuCj4gCj4gU291bmRzIGZpbmUgdG8gbWUsIHRo b3VnaCBJJ20gbm90IHRvbyBjbGVhciB3aGF0IHRoZSBlcG9jaCBwcm9wZXJ0eQo+IGlzIGRlc2ln bmVkIHRvIGFjaGlldmUuIElzIGl0IGFib3V0IGF2b2lkaW5nIHJlLXByb2Jpbmcgd2hlbiByZS1n YWluaW5nCj4gRFJNIG1hc3RlciBhZnRlciBoYXZpbmcgbGV0IGl0IGdvLCBlLmcuIFZULXN3aXRj aGluZyBiYWNrIGZyb20gYW5vdGhlcgo+IFZUPyBUaGF0IHdvdWxkIGJlIG5pY2UuCj4gCj4gPiA+ IFRoYXQgc2hvdWxkIGJlIGFsc28gYmFja3dhcmRzLWNvbXBhdGlibGU6IGFueSB1c2Vyc3BhY2Ug dGhhdCBkb2Vzbid0Cj4gPiA+IHVuZGVyc3RhbmQgQ09OTkVDVE9SIHdpbGwgc2VlIEhPVFBMVUc9 MSBhbmQgcmUtcHJvYmUgZXZlcnl0aGluZy4gQW55Cj4gPiA+IHVzZXJzcGFjZSB0aGF0IGRvZXNu J3QgdW5kZXJzdGFuZCBQUk9QRVJUWSBvciB0aGUgcHJvcGVydHkgaXQgcmVmZXJzIHRvCj4gPiA+ IHdpbGwgZmFsbCBiYWNrIHRvIHByb2JpbmcgZWl0aGVyIHRoZSBjb25uZWN0b3Igb3IgZXZlcnl0 aGluZy4gIAo+ID4gCj4gPiBBZ3JlZWQsIHRoYXQgc2hvdWxkIHdvcmsuCj4gCj4gQ29vbC4gVGhl IGVwb2NoIGV4Y2VwdGlvbiB5b3Ugd29yZGVkIHNlZW1zIHRvIGZpdCBiYWNrd2FyZC1jb21wYXRp YmxlCj4gYXMgd2VsbC4KPiAKPiA+ID4gSSB3b3VsZCBiZSBoYXBweSB0byBnZXQgdGhhdCBiZWhh dmlvdXIgaW50byBXZXN0b24sIHBhcnRpY3VsYXJseSBhcyB0aGUKPiA+ID4gSERDUCBmZWF0dXJl IGlzIGJyZXdpbmcgZm9yIFdlc3RvbiB0b28uCj4gPiA+IAo+ID4gPiAtLS0tLS0tLQo+ID4gPiAK PiA+ID4gV2hlbiBkaXNjdXNzaW5nIHRoaXMgaW4gSVJDLCBJIGhhZCB0aGUgY29uY2VybiBhYm91 dCBob3cgdWV2ZW50cyBhcmUKPiA+ID4gZGVsaXZlcmVkIGluIHVzZXJzcGFjZS4gSXMgdGhlcmUg YSBwb3NzaWJpbGl0eSB0aGF0IHRoZXkgbWlnaHQgYmUKPiA+ID4gb3ZlcndyaXR0ZW4sIGNvbnRh aW4gc3RhbGUgYXR0cmlidXRlcywgb3IgZ2V0IHNxdWFzaGVkIHRvZ2V0aGVyPwo+ID4gPiAKPiA+ ID4gUGFydGljdWxhcmx5IGlmIGEgZGlzcGxheSBzZXJ2ZXIgaXMgY3VycmVudCBvbiB0aGUgVlQg YW5kIGFjdGl2ZSBhbmQKPiA+ID4gbW9uaXRvcmluZyB1ZGV2LCBidXQgc3R1Y2sgZG9pbmcgc29t ZXRoaW5nIGFuZCBjYW5ub3Qgc2VydmljZSB1ZXZlbnRzCj4gPiA+IHZlcnkgZmFzdCwgYW5kIHRo ZSBrZXJuZWwgc2VuZHMgbW9yZSB0aGFuIG9uZSBldmVudCBiZWZvcmUgdGhlIHByb2Nlc3MKPiA+ ID4gZ2V0cyBiYWNrIHRvIGRpc3BhdGNoaW5nLiBUaGUgdGVybWlub2xvZ3kgaW4gbGlidWRldiBB UEkgY29uZnVzZWQgbWUgYXMKPiA+ID4gYW4gZXZlbnQgaXMgYSBkZXZpY2UuIFNxdWFzaGluZyB0 b2dldGhlciB3b3VsZCBtYWtlIHNlbnNlIGlmIHRoZQo+ID4gPiB1ZXZlbnQgd2VyZSBqdXN0IHVw ZGF0aW5nIGEgZGV2aWNlIGF0dHJpYnV0ZSBsaXN0LiBQcmV2aW91c2x5IHdoZW4gd2UKPiA+ID4g aGFkIGp1c3QgYSBzaW5nbGUga2luZCBvZiB1ZXZlbnQsIHRoYXQgd291bGQgbm90IGhhdmUgbWFk ZSBhCj4gPiA+IGRpZmZlcmVuY2UsIGJ1dCBpZiB3ZSBnYWluIGRpZmZlcmVudCBraW5kcyBvZiB1 ZXZlbnRzIGxpa2UgaGVyZSwgaXQKPiA+ID4gc3RhcnRzIHRvIG1hdHRlci4KPiA+ID4gCj4gPiA+ IEhvd2V2ZXIsIFBhdWwgY2FtZSB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIHdpbGwgYmUgb2sg YXMgbG9uZyBhcyB0aGUKPiA+ID4gZXZlbnRzIGNvbWUgdmlhIG5ldGxpbmsuICAKPiA+IAo+ID4g WWVhaCBuZXRsaW5rIHNob3VsZG4ndCBkcm9wIGV2ZW50cyBvbiB0aGUgZmxvb3IgSSB0aGluay4g SXQgbWlnaHQKPiA+IHN0aWxsIGhhcHBlbiwgYnV0IHRoZW4gSSB0aGluayB5b3Ugc2hvdWxkIGdl dCBhbiBpbmRpY2F0aW9uIG9mIHRoYXQKPiA+IGVycm9yLCBhbmQgeW91IGp1c3QgdHJlYXQgaXQg YXMgYSBnZW5lcmFsIGhvdHBsdWcgZXZlbnQgbGlrZSBvbiBvbGRlcgo+ID4ga2VybmVscy4KPiAK PiBBbHJpZ2h0LCBhbHRob3VnaCByZWFkaW5nIFBhdWwgaXQgc291bmRzIGxpa2UgdGhlcmUgaXMg YW5vdGhlcgo+IChmYWxsYmFjaz8pIG1ldGhvZCBhcyB3ZWxsIHRoYXQgd291bGRuJ3Qgd29yay4g U2hvdWxkIHVzZXJzcGFjZSB3b3JyeQo+IGFib3V0IHRoYXQ/CgpJdCdzIHVuY2xlYXIgdG8gbWUg d2hlbiB0aGF0IG5vbi1uZXRsaW5rIHRoaW5nIGlzIGFjdHVhbGx5IHVzZWQgYnkKc3lzdGVtZC4g SU1PIHdlIGNhbiBqdXN0IGxlYXZlIHRoaXMgb3V0LiBJIHRoaW5rIG92ZXJhbGwgdWV2ZW50L3Vk ZXYgaXMKcmVsaWFibGUgZW5vdWdoIGZvciB1cyB0byBqdXN0IGV4cGVjdCBpdCB0byB3b3JrLgoK Q2hlZXJzLAoKUGF1bAoKPiBIbW0sIGdldCBhbiBpbmRpY2F0aW9uIG9mIGFuIGVycm9yLi4uIEkg ZG9uJ3Qga25vdyBob3cgdGhhdCB3b3VsZCBiZQo+IHByZXNlbnRlZCBpbiBsaWJ1ZGV2IEFQSSBh bmQgSSBjYW4ndCBwb2ludCB0byBhbnkgY29kZSBpbiBXZXN0b24gdGhhdAo+IHdvdWxkIGRlYWwg d2l0aCBpdC4gRG9lcyBhbnlvbmUgaGF2ZSBhIGNsdWUgYWJvdXQgdGhhdD8KPiAKPiBVc2Vyc3Bh Y2UgY2Fubm90IHJlYWxseSBzdGFydCB0YWtpbmcgYWR2YW50YWdlIG9mIGFueSBuZXcgZmluZS1n cmFpbmVkCj4gaG90cGx1ZyBldmVudHMgdW50aWwgaXQgY2FuIHJlbHkgb24gdGhlIGV2ZW50IGRl bGl2ZXJ5LiBHcmFudGVkLCB0aGlzCj4gc2VlbXMgcHVyZWx5IGEgdXNlcnNwYWNlIGlzc3VlLCBi dXQgSSBiZXQgaXQgY291bGQgYmUgZm9ybXVsYXRlZCBhcyBhCj4ga2VybmVsIHJlZ3Jlc3Npb246 IHRoaW5ncyBzdG9wIHdvcmtpbmcgYWZ0ZXIgdXBncmFkaW5nIHRoZSBrZXJuZWwgd2hpbGUKPiBo YXZpbmcgYWx3YXlzIHVzZWQgbmV3IHVzZXJzcGFjZSB3aGljaCB3YXMgcmVhZHkgZm9yIGRldGFp bGVkIGhvdHBsdWcKPiBldmVudHMgYnV0IGRpZG4ndCBlbnN1cmUgdGhlIGRlbGl2ZXJ5IGluIHVz ZXJzcGFjZS4KPiAKPiBUaGFua3MsCj4gcHEKLS0gClBhdWwgS29jaWFsa293c2tpLCBCb290bGlu CkVtYmVkZGVkIExpbnV4IGFuZCBrZXJuZWwgZW5naW5lZXJpbmcKaHR0cHM6Ly9ib290bGluLmNv bQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs