From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.3993.1579145934940859183 for ; Wed, 15 Jan 2020 19:38:55 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jan 2020 19:38:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,324,1574150400"; d="scan'208";a="218380875" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga008.jf.intel.com with ESMTP; 15 Jan 2020 19:38:54 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jan 2020 19:38:53 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 16 Jan 2020 11:38:51 +0800 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.1713.004; Thu, 16 Jan 2020 11:38:51 +0800 From: "Liming Gao" To: "Sukerkar, Amol N" , "devel@edk2.groups.io" , "Wang, Jian J" CC: "Kinney, Michael D" , "Yao, Jiewen" , "Agrawal, Sachin" , "Musti, Srinivas" Subject: Re: [edk2-devel] [PATCH v2 1/1] SecurityPkg/BaseHashLib: Implement Unified Hash Calculation API Thread-Topic: [edk2-devel] [PATCH v2 1/1] SecurityPkg/BaseHashLib: Implement Unified Hash Calculation API Thread-Index: AQHVyvJnCXHGDm2rw0C3CHmTe9lgP6fqh6YAgACPHvCAALyzgIAA03KQ Date: Thu, 16 Jan 2020 03:38:51 +0000 Message-ID: <204e104f9b3c4cef81cdf6503074d911@intel.com> References: <20200114154107.655-1-amol.n.sukerkar@intel.com> <20200114154107.655-2-amol.n.sukerkar@intel.com> <233b34aaf0f241aa8f997c2eac4aa306@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 WWVzLiBEb2VzIGl0IGNhdGNoIEVESzIgMjAyMCBRMSBzdGFibGUgdGFnPw0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN1a2Vya2FyLCBBbW9sIE4gPGFtb2wubi5zdWtl cmthckBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDE2LCAyMDIwIDc6MDIg QU0NCj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFlhbywgSmlld2Vu IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEFncmF3YWwsIFNhY2hpbg0KPiA8c2FjaGluLmFncmF3 YWxAaW50ZWwuY29tPjsgTXVzdGksIFNyaW5pdmFzIDxzcmluaXZhcy5tdXN0aUBpbnRlbC5jb20+ OyBTdWtlcmthciwgQW1vbCBOIDxhbW9sLm4uc3VrZXJrYXJAaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MiAxLzFdIFNlY3VyaXR5UGtnL0Jhc2VIYXNoTGli OiBJbXBsZW1lbnQgVW5pZmllZCBIYXNoIENhbGN1bGF0aW9uIEFQSQ0KPiANCj4gSGkgTGltaW5n LA0KPiANCj4gV2UgYWxyZWFkeSBoYXZlIGEgdGlja2V0IGZpbGVkIGluIEJ1Z3ppbGxhLCBodHRw czovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTEuIFdvdWxkIHRo aXMgYmUgc3VmZmljaWVudD8NCj4gDQo+IFRoYW5rcywNCj4gQW1vbA0KPiANCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwu Y29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDE0LCAyMDIwIDg6NDcgUE0NCj4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47 IFN1a2Vya2FyLCBBbW9sIE4gPGFtb2wubi5zdWtlcmthckBpbnRlbC5jb20+DQo+IENjOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8 amlld2VuLnlhb0BpbnRlbC5jb20+OyBBZ3Jhd2FsLCBTYWNoaW4NCj4gPHNhY2hpbi5hZ3Jhd2Fs QGludGVsLmNvbT47IE11c3RpLCBTcmluaXZhcyA8c3Jpbml2YXMubXVzdGlAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MiAxLzFdIFNlY3VyaXR5UGtnL0Jh c2VIYXNoTGliOiBJbXBsZW1lbnQgVW5pZmllZCBIYXNoIENhbGN1bGF0aW9uIEFQSQ0KPiANCj4g QW1vbDoNCj4gICBUaGlzIGlzIG5ldyBmZWF0dXJlLiBQbGVhc2Ugc3VibWl0IEJaIChodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvKSB0byB0cmFjayBpdC4gSWYgdGhpcyBmZWF0dXJlIGNh dGNoZXMgZWRrMiAyMDIwIFExIHN0YWJsZSB0YWcsIEkgd2lsbA0KPiBhZGQgaXQgaW50byBlZGsy IGZlYXR1cmUgcGxhbm5pbmcuDQo+IA0KPiBUaGFua3MNCj4gTGltaW5nDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFdhbmcsIEppYW4gSg0KPiBTZW50OiAyMDIwxOox1MIx NcjVIDExOjE0DQo+IFRvOiBTdWtlcmthciwgQW1vbCBOIDxhbW9sLm4uc3VrZXJrYXJAaW50ZWwu Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IEFncmF3YWwsIFNhY2hpbg0KPiA8c2FjaGluLmFncmF3YWxAaW50ZWwuY29tPjsgTXVzdGks IFNyaW5pdmFzIDxzcmluaXZhcy5tdXN0aUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIIHYyIDEvMV0gU2VjdXJpdHlQa2cvQmFzZUhhc2hMaWI6IEltcGxlbWVu dCBVbmlmaWVkIEhhc2ggQ2FsY3VsYXRpb24gQVBJDQo+IA0KPiBBbW9sLA0KPiANCj4gMS4gWW91 ciBwYXRjaCBkb2Vzbid0IHN1cHBvcnQgaGFzaGluZyBtb3JlIHRoYW4gb25lIGFsZ29yaXRobSBh dCB0aGUgc2FtZSB0aW1lLg0KPiAgICBJcyB0aGlzIG9uIHB1cnBvc2U/IFNvcnJ5IEkgZG9uJ3Qg cmVtZW1iZXIgdGhlIGNvbmNsdXNpb24gaW4gbGFzdCBkaXNjdXNzaW9uLg0KPiAyLiBUaGVyZSdy ZSB0cmFpbGluZyBzcGFjZXMgaW4gQmFzZUhhc2hMaWJDb21tb24uYyBhbmQgQmFzaEhhc2hMaWJD b21tb24uaC4NCj4gICAgWW91IGNhbiB1c2UgQmFzZVRvb2xzXFNjcmlwdHNcUGF0Y2hDaGVjay5w eSB0byBjaGVjayBpdCBiZWZvcmUgc2VuZGluZyBwYXRjaC4NCj4gDQo+IFNlZSBteSBvdGhlciBj b21tZW50cyBiZWxvdy4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBTdWtlcmthciwgQW1vbCBOIDxhbW9sLm4uc3VrZXJrYXJAaW50ZWwuY29tPg0KPiA+IFNl bnQ6IFR1ZXNkYXksIEphbnVhcnkgMTQsIDIwMjAgMTE6NDEgUE0NCj4gPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5n LCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEFncmF3YWwsDQo+ID4gU2FjaGluIDxz YWNoaW4uYWdyYXdhbEBpbnRlbC5jb20+OyBNdXN0aSwgU3Jpbml2YXMNCj4gPiA8c3Jpbml2YXMu bXVzdGlAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtQQVRDSCB2MiAxLzFdIFNlY3VyaXR5UGtn L0Jhc2VIYXNoTGliOiBJbXBsZW1lbnQgVW5pZmllZA0KPiA+IEhhc2ggQ2FsY3VsYXRpb24gQVBJ DQo+ID4NCj4gPiBUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgVW5pZmllZCBIYXNoIEFQSSB0byBj YWxjdWxhdGUgaGFzaCB1c2luZyBhDQo+ID4gaGFzaGluZyBhbGdvcml0aG0gc3BlY2lmaWVkIGJ5 IHRoZSBQQ0QsIFBjZFN5c3RlbUhhc2hQb2xpY3kuIFRoaXMNCj4gPiBsaWJyYXJ5IGludGVyZmFj ZXMgd2l0aCB0aGUgdmFyaW91cyBoYXNoaW5nIEFQSSwgc3VjaCBhcywgTUQ0LCBNRDUsDQo+ID4g U0hBMSwgU0hBMjU2LA0KPiA+IFNIQTUxMiBhbmQgU00zXzI1NiBpbXBsZW1lbnRlZCBpbiBDcnlw dG9Qa2cuIFRoZSB1c2VyIGNhbiBjYWxjdWxhdGUNCj4gPiB0aGUgZGVzaXJlZCBoYXNoIGJ5IHNl dHRpbmcgUGNkU3lzdGVtSGFzaFBvbGljeSB0byBhcHByb3ByaWF0ZSB2YWx1ZS4NCj4gPg0KPiA+ IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiBDYzogSmlhbiBKIFdh bmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogU3VrZXJrYXIsIEFt b2wgTiA8YW1vbC5uLnN1a2Vya2FyQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPg0KPiA+IE5vdGVz Og0KPiA+ICAgICB2MjoNCj4gPiAgICAgLSBGaXhlZCB0aGUgY29tbWl0IG1lc3NhZ2UgZm9ybWF0 DQo+ID4NCj4gPiAgU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkNv bW1vbi5jIHwgMjUyDQo+ID4gKysrKysrKysrKysrKysrKysrKysNCj4gPiAgU2VjdXJpdHlQa2cv TGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS5jICAgIHwgMTIyICsrKysrKysrKysN Cj4gPiAgU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYlBlaS5jICAg IHwgMTI1ICsrKysrKysrKysNCj4gPiAgU2VjdXJpdHlQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VI YXNoTGliLmggICAgICAgICAgIHwgIDg0ICsrKysrKysNCj4gPiAgU2VjdXJpdHlQa2cvTGlicmFy eS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkNvbW1vbi5oIHwgIDcxICsrKysrKw0KPiA+IFNlY3Vy aXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuaW5mICB8ICA0NyArKysr DQo+ID4gU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS51bmkg IHwgIDE4ICsrDQo+ID4gU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExp YlBlaS5pbmYgIHwgIDUyICsrKysNCj4gPiBTZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGli L0Jhc2VIYXNoTGliUGVpLnVuaSAgfCAgMTcgKysNCj4gPiAgU2VjdXJpdHlQa2cvU2VjdXJpdHlQ a2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIzICstDQo+ID4gIFNlY3VyaXR5UGtn L1NlY3VyaXR5UGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQ0KPiA+ICBT ZWN1cml0eVBrZy9TZWN1cml0eVBrZy51bmkgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUg Ky0NCj4gPiAgMTIgZmlsZXMgY2hhbmdlZCwgODMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExp Yi9CYXNlSGFzaExpYkNvbW1vbi5jDQo+ID4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNo TGliL0Jhc2VIYXNoTGliQ29tbW9uLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uZjg3NDJlNTViNWY3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsr KyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJDb21tb24uYw0K PiA+IEBAIC0wLDAgKzEsMjUyIEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+DQo+ID4gKyAgSW1wbGVt ZW50IGltYWdlIHZlcmlmaWNhdGlvbiBzZXJ2aWNlcyBmb3Igc2VjdXJlIGJvb3Qgc2VydmljZQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQ2F1dGlvbjogVGhpcyBmaWxlIHJlcXVpcmVzIGFkZGl0 aW9uYWwgcmV2aWV3IHdoZW4gbW9kaWZpZWQuDQo+ID4NCj4gPiArICBUaGlzIGxpYnJhcnkgd2ls bCBoYXZlIGV4dGVybmFsIGlucHV0IC0gUEUvQ09GRiBpbWFnZS4NCj4gPg0KPiA+ICsgIFRoaXMg ZXh0ZXJuYWwgaW5wdXQgbXVzdCBiZSB2YWxpZGF0ZWQgY2FyZWZ1bGx5IHRvIGF2b2lkIHNlY3Vy aXR5DQo+ID4gKyBpc3N1ZSBsaWtlDQo+ID4NCj4gPiArICBidWZmZXIgb3ZlcmZsb3csIGludGVn ZXIgb3ZlcmZsb3cuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBEeGVJbWFnZVZlcmlmaWNhdGlv bkxpYkltYWdlUmVhZCgpIGZ1bmN0aW9uIHdpbGwgbWFrZSBzdXJlIHRoZQ0KPiA+ICsgUEUvQ09G Rg0KPiA+IGltYWdlIGNvbnRlbnQNCj4gPg0KPiA+ICsgIHJlYWQgaXMgd2l0aGluIHRoZSBpbWFn ZSBidWZmZXIuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBEeGVJbWFnZVZlcmlmaWNhdGlvbkhh bmRsZXIoKSwgSGFzaFBlSW1hZ2VCeVR5cGUoKSwgSGFzaFBlSW1hZ2UoKQ0KPiA+IGZ1bmN0aW9u IHdpbGwgYWNjZXB0DQo+ID4NCj4gPiArICB1bnRydXN0ZWQgUEUvQ09GRiBpbWFnZSBhbmQgdmFs aWRhdGUgaXRzIGRhdGEgc3RydWN0dXJlIHdpdGhpbiB0aGlzDQo+ID4gKyBpbWFnZQ0KPiA+IGJ1 ZmZlciBiZWZvcmUgdXNlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0NvcHlyaWdodCAoYykgMjAw OSAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gK3Jlc2VydmVkLjxC Uj4NCj4gPg0KPiA+ICsoQykgQ29weXJpZ2h0IDIwMTYgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJp c2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4NCj4gPiArVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNj b21wYW55aW5nIG1hdGVyaWFscw0KPiA+DQo+ID4gK2FyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiA+ICtCU0QNCj4g PiBMaWNlbnNlDQo+ID4NCj4gPiArd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24u ICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4gK21heSBiZSBmb3VuZA0KPiA+IGF0 DQo+ID4NCj4gPiAraHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBo cA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1RIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVS IFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KPiA+DQo+ID4gK1dJVEhPVVQg V0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNT DQo+ID4gT1IgSU1QTElFRC4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4NCj4gPiArI2luY2x1 ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5 L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNl Q3J5cHRMaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiA+ DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxM aWJyYXJ5L0Jhc2VIYXNoTGliLmg+DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4g PiArICBJbml0IGhhc2ggc2VxdWVuY2Ugd2l0aCBIYXNoIEFsZ29yaXRobSBzcGVjaWZpZWQgYnkg SGFzaFBvbGljeS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEBwYXJhbSBIYXNoUG9saWN5ICBI YXNoIEFsZ29yaXRobSBQb2xpY3kuDQo+ID4NCj4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgSGFz aCBoYW5kbGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0dmFsIFRSVUUgICAgICAgSGFz aCBzdGFydCBhbmQgSGFzaEhhbmRsZSByZXR1cm5lZC4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRkFM U0UgICAgICBIYXNoIEluaXQgdW5zdWNjZXNzZnVsLg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4g K0JPT0xFQU4NCj4gPg0KPiA+ICtFRklBUEkNCj4gPg0KPiA+ICtIYXNoSW5pdEludGVybmFsICgN Cj4gPg0KPiA+ICsgIElOIFVJTlQ4ICAgICAgICAgIEhhc2hQb2xpY3ksDQo+ID4NCj4gPiArICBP VVQgSEFTSF9IQU5ETEUgICAqSGFzaEhhbmRsZQ0KPiA+DQo+ID4gKyAgKQ0KPiA+DQo+ID4gK3sN Cj4gPg0KPiA+ICsgIEJPT0xFQU4gIFN0YXR1czsNCj4gPg0KPiA+ICsgIFZPSUQgICAgICpIYXNo Q3R4Ow0KPiA+DQo+ID4gKyAgVUlOVE4gICAgQ3R4U2l6ZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgIHN3aXRjaCAoSGFzaFBvbGljeSkgew0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfTUQ0Og0K PiA+DQo+ID4gKyAgICAgIEN0eFNpemUgPSBNZDRHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPg0KPiA+ ICsgICAgICBIYXNoQ3R4ID0gQWxsb2NhdGVQb29sIChDdHhTaXplKTsNCj4gPg0KPiA+ICsgICAg ICBBU1NFUlQgKEhhc2hDdHggIT0gTlVMTCk7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAg U3RhdHVzID0gTWQ0SW5pdCAoSGFzaEN0eCk7DQo+ID4NCj4gPiArICAgICAgYnJlYWs7DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAgIGNhc2UgSEFTSF9NRDU6DQo+ID4NCj4gPiArICAgICAgQ3R4 U2l6ZSA9IE1kNUdldENvbnRleHRTaXplICgpOw0KPiA+DQo+ID4gKyAgICAgIEhhc2hDdHggPSBB bGxvY2F0ZVBvb2wgKEN0eFNpemUpOw0KPiA+DQo+ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAh PSBOVUxMKTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgIFN0YXR1cyA9IE1kNUluaXQgKEhh c2hDdHgpOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAg ICBjYXNlIEhBU0hfU0hBMToNCj4gPg0KPiA+ICsgICAgICBDdHhTaXplID0gU2hhMUdldENvbnRl eHRTaXplICgpOw0KPiA+DQo+ID4gKyAgICAgIEhhc2hDdHggPSBBbGxvY2F0ZVBvb2wgKEN0eFNp emUpOw0KPiA+DQo+ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAhPSBOVUxMKTsNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgICBTdGF0dXMgPSBTaGExSW5pdCAoSGFzaEN0eCk7DQo+ID4NCj4g PiArICAgICAgYnJlYWs7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGNhc2UgSEFTSF9TSEEy NTY6DQo+ID4NCj4gPiArICAgICAgQ3R4U2l6ZSA9IFNoYTI1NkdldENvbnRleHRTaXplICgpOw0K PiA+DQo+ID4gKyAgICAgIEhhc2hDdHggPSBBbGxvY2F0ZVBvb2wgKEN0eFNpemUpOw0KPiA+DQo+ ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAhPSBOVUxMKTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgICAgICBTdGF0dXMgPSBTaGEyNTZJbml0IChIYXNoQ3R4KTsNCj4gPg0KPiA+ICsgICAgICBi cmVhazsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgY2FzZSBIQVNIX1NIQTM4NDoNCj4gPg0K PiA+ICsgICAgICBDdHhTaXplID0gU2hhMzg0R2V0Q29udGV4dFNpemUgKCk7DQo+ID4NCj4gPiAr ICAgICAgSGFzaEN0eCA9IEFsbG9jYXRlUG9vbCAoQ3R4U2l6ZSk7DQo+ID4NCj4gPiArICAgICAg QVNTRVJUIChIYXNoQ3R4ICE9IE5VTEwpOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgIFN0 YXR1cyA9IFNoYTM4NEluaXQgKEhhc2hDdHgpOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfU0hBNTEyOg0KPiA+DQo+ID4gKyAgICAg IEN0eFNpemUgPSBTaGE1MTJHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPg0KPiA+ICsgICAgICBIYXNo Q3R4ID0gQWxsb2NhdGVQb29sIChDdHhTaXplKTsNCj4gPg0KPiA+ICsgICAgICBBU1NFUlQgKEhh c2hDdHggIT0gTlVMTCk7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgU3RhdHVzID0gU2hh NTEySW5pdCAoSGFzaEN0eCk7DQo+ID4NCj4gPiArICAgICAgYnJlYWs7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgIGNhc2UgSEFTSF9TTTNfMjU2Og0KPiA+DQo+ID4gKyAgICAgIEN0eFNpemUg PSBTbTNHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPg0KPiA+ICsgICAgICBIYXNoQ3R4ID0gQWxsb2Nh dGVQb29sIChDdHhTaXplKTsNCj4gPg0KPiA+ICsgICAgICBBU1NFUlQgKEhhc2hDdHggIT0gTlVM TCk7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgU3RhdHVzID0gU20zSW5pdCAoSGFzaEN0 eCk7DQo+ID4NCj4gPiArICAgICAgYnJlYWs7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRl ZmF1bHQ6DQo+ID4NCj4gPiArICAgICAgQVNTRVJUIChGQUxTRSk7DQo+ID4NCj4gPiArICAgICAg YnJlYWs7DQo+ID4NCj4gPiArICB9DQo+ID4NCj4gPiArDQo+IA0KPiAzLiBJbnN0ZWFkIG9mIHN3 aXRjaC4uY2FzZSwgdXNpbmcgYSBnbG9iYWwgYXJyYXkgdG8gZGVmaW5lcyBhbGwgc3VwcG9ydGVk IGludGVyZmFjZXMgd291bGQgYmUgbW9yZSBlZmZpY2llbnQsIHNpbmNlIHlvdSBjYW4gdmFsdWUg b2YNCj4gUGNkU3lzdGVtSGFzaFBvbGljeSB0byBpbmRleCB0aGVtIGRpcmVjdGx5Lg0KPiANCj4g Pg0KPiA+ICsgICpIYXNoSGFuZGxlID0gKEhBU0hfSEFORExFKUhhc2hDdHg7DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+DQo+ID4gK30NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIFVwZGF0ZSBoYXNoIGRhdGEgd2l0aCBIYXNoIEFsZ29y aXRobSBzcGVjaWZpZWQgYnkgSGFzaFBvbGljeS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEBw YXJhbSBIYXNoUG9saWN5ICAgIEhhc2ggQWxnb3JpdGhtIFBvbGljeS4NCj4gPg0KPiA+ICsgIEBw YXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFuZGxlLg0KPiA+DQo+ID4gKyAgQHBhcmFtIERhdGFU b0hhc2ggICAgRGF0YSB0byBiZSBoYXNoZWQuDQo+ID4NCj4gPiArICBAcGFyYW0gRGF0YVRvSGFz aExlbiBEYXRhIHNpemUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0dmFsIFRSVUUgICAg ICAgICBIYXNoIHVwZGF0ZWQuDQo+ID4NCj4gPiArICBAcmV0dmFsIEZBTFNFICAgICAgICBIYXNo IHVwZGF0ZWQgdW5zdWNjZXNzZnVsLg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0JPT0xFQU4N Cj4gPg0KPiA+ICtFRklBUEkNCj4gPg0KPiA+ICtIYXNoVXBkYXRlSW50ZXJuYWwgKA0KPiA+DQo+ ID4gKyAgSU4gVUlOVDggICAgICAgIEhhc2hQb2xpY3ksDQo+ID4NCj4gPiArICBJTiBIQVNIX0hB TkRMRSAgSGFzaEhhbmRsZSwNCj4gPg0KPiA+ICsgIElOIFZPSUQgICAgICAgICAqRGF0YVRvSGFz aCwNCj4gPg0KPiA+ICsgIElOIFVJTlROICAgICAgICBEYXRhVG9IYXNoTGVuDQo+ID4NCj4gPiAr ICApDQo+ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgQk9PTEVBTiAgU3RhdHVzOw0KPiA+DQo+ID4g KyAgVk9JRCAgICAgKkhhc2hDdHg7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBIYXNoQ3R4ID0g KFZPSUQgKilIYXNoSGFuZGxlOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgc3dpdGNoIChIYXNo UG9saWN5KSB7DQo+ID4NCj4gPiArICAgIGNhc2UgSEFTSF9NRDQ6DQo+ID4NCj4gPiArICAgICAg U3RhdHVzID0gTWQ0VXBkYXRlIChIYXNoQ3R4LCBEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuKTsN Cj4gPg0KPiA+ICsgICAgICBicmVhazsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgY2FzZSBI QVNIX01ENToNCj4gPg0KPiA+ICsgICAgICBTdGF0dXMgPSBNZDVVcGRhdGUgKEhhc2hDdHgsIERh dGFUb0hhc2gsIERhdGFUb0hhc2hMZW4pOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfU0hBMToNCj4gPg0KPiA+ICsgICAgICBTdGF0 dXMgPSBTaGExVXBkYXRlIChIYXNoQ3R4LCBEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuKTsNCj4g Pg0KPiA+ICsgICAgICBicmVhazsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgY2FzZSBIQVNI X1NIQTI1NjoNCj4gPg0KPiA+ICsgICAgICBTdGF0dXMgPSBTaGEyNTZVcGRhdGUgKEhhc2hDdHgs IERhdGFUb0hhc2gsIERhdGFUb0hhc2hMZW4pOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfU0hBMzg0Og0KPiA+DQo+ID4gKyAgICAg IFN0YXR1cyA9IFNoYTM4NFVwZGF0ZSAoSGFzaEN0eCwgRGF0YVRvSGFzaCwgRGF0YVRvSGFzaExl bik7DQo+ID4NCj4gPiArICAgICAgYnJlYWs7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGNh c2UgSEFTSF9TSEE1MTI6DQo+ID4NCj4gPiArICAgICAgU3RhdHVzID0gU2hhNTEyVXBkYXRlIChI YXNoQ3R4LCBEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuKTsNCj4gPg0KPiA+ICsgICAgICBicmVh azsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgY2FzZSBIQVNIX1NNM18yNTY6DQo+ID4NCj4g PiArICAgICAgU3RhdHVzID0gU20zVXBkYXRlIChIYXNoQ3R4LCBEYXRhVG9IYXNoLCBEYXRhVG9I YXNoTGVuKTsNCj4gPg0KPiA+ICsgICAgICBicmVhazsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg ICAgZGVmYXVsdDoNCj4gPg0KPiA+ICsgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPg0KPiA+ICsg ICAgICBicmVhazsNCj4gPg0KPiA+ICsgIH0NCj4gPg0KPiANCj4gNC4gVGhlIHNhbWUgYXMgMw0K PiANCj4gPiArDQo+ID4NCj4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+DQo+ID4gK30NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIEhhc2ggY29tcGxldGUgd2l0aCBIYXNo IEFsZ29yaXRobSBzcGVjaWZpZWQgYnkgSGFzaFBvbGljeS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsgIEBwYXJhbSBIYXNoUG9saWN5ICAgIEhhc2ggQWxnb3JpdGhtIFBvbGljeS4NCj4gPg0KPiA+ ICsgIEBwYXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFuZGxlLg0KPiA+DQo+ID4gKyAgQHBhcmFt IERpZ2VzdCAgICAgICAgSGFzaCBEaWdlc3QuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0 dmFsIFRSVUUgICAgICAgICBIYXNoIGNvbXBsZXRlIGFuZCBEaWdlc3QgaXMgcmV0dXJuZWQuDQo+ ID4NCj4gPiArICBAcmV0dmFsIEZBTFNFICAgICAgICBIYXNoIGNvbXBsZXRlIHVuc3VjY2Vzc2Z1 bC4NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICtCT09MRUFODQo+ID4NCj4gPiArRUZJQVBJDQo+ ID4NCj4gPiArSGFzaEZpbmFsSW50ZXJuYWwgKA0KPiA+DQo+ID4gKyAgSU4gVUlOVDggICAgICAg IEhhc2hQb2xpY3ksDQo+ID4NCj4gPiArICBJTiBIQVNIX0hBTkRMRSAgSGFzaEhhbmRsZSwNCj4g Pg0KPiA+ICsgIE9VVCBVSU5UOCAgICAgICAqKkRpZ2VzdA0KPiA+DQo+ID4gKyAgKQ0KPiA+DQo+ ID4gK3sNCj4gPg0KPiA+ICsgIEJPT0xFQU4gIFN0YXR1czsNCj4gPg0KPiA+ICsgIFZPSUQgICAg ICpIYXNoQ3R4Ow0KPiA+DQo+ID4gKyAgVUlOVDggICAgRGlnZXN0RGF0YVtTSEE1MTJfRElHRVNU X1NJWkVdOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgSGFzaEN0eCA9IChWT0lEICopSGFzaEhh bmRsZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIHN3aXRjaCAoSGFzaFBvbGljeSkgew0KPiA+ DQo+ID4gKyAgICBjYXNlIEhBU0hfTUQ0Og0KPiA+DQo+ID4gKyAgICAgIFN0YXR1cyA9IE1kNEZp bmFsIChIYXNoQ3R4LCBEaWdlc3REYXRhKTsNCj4gPg0KPiA+ICsgICAgICBDb3B5TWVtICgqRGln ZXN0LCBEaWdlc3REYXRhLCBNRDRfRElHRVNUX1NJWkUpOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFr Ow0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfTUQ1Og0KPiA+DQo+ID4gKyAg ICAgIFN0YXR1cyA9IE1kNUZpbmFsIChIYXNoQ3R4LCBEaWdlc3REYXRhKTsNCj4gPg0KPiA+ICsg ICAgICBDb3B5TWVtICgqRGlnZXN0LCBEaWdlc3REYXRhLCBNRDVfRElHRVNUX1NJWkUpOw0KPiA+ DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hf U0hBMToNCj4gPg0KPiA+ICsgICAgICBTdGF0dXMgPSBTaGExRmluYWwgKEhhc2hDdHgsIERpZ2Vz dERhdGEpOw0KPiA+DQo+ID4gKyAgICAgIENvcHlNZW0gKCpEaWdlc3QsIERpZ2VzdERhdGEsIFNI QTFfRElHRVNUX1NJWkUpOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICBjYXNlIEhBU0hfU0hBMjU2Og0KPiA+DQo+ID4gKyAgICAgIFN0YXR1cyA9IFNo YTI1NkZpbmFsIChIYXNoQ3R4LCBEaWdlc3REYXRhKTsNCj4gPg0KPiA+ICsgICAgICBDb3B5TWVt ICgqRGlnZXN0LCBEaWdlc3REYXRhLCBTSEEyNTZfRElHRVNUX1NJWkUpOw0KPiA+DQo+ID4gKyAg ICAgIGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfU0hBMzg0Og0K PiA+DQo+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTM4NEZpbmFsIChIYXNoQ3R4LCBEaWdlc3REYXRh KTsNCj4gPg0KPiA+ICsgICAgICBDb3B5TWVtICgqRGlnZXN0LCBEaWdlc3REYXRhLCBTSEEzODRf RElHRVNUX1NJWkUpOw0KPiA+DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICBjYXNlIEhBU0hfU0hBNTEyOg0KPiA+DQo+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTUx MkZpbmFsIChIYXNoQ3R4LCBEaWdlc3REYXRhKTsNCj4gPg0KPiA+ICsgICAgICBDb3B5TWVtICgq RGlnZXN0LCBEaWdlc3REYXRhLCBTSEE1MTJfRElHRVNUX1NJWkUpOw0KPiA+DQo+ID4gKyAgICAg IGJyZWFrOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBjYXNlIEhBU0hfU00zXzI1NjoNCj4g Pg0KPiA+ICsgICAgICBTdGF0dXMgPSBTbTNGaW5hbCAoSGFzaEN0eCwgRGlnZXN0RGF0YSk7DQo+ ID4NCj4gPiArICAgICAgQ29weU1lbSAoKkRpZ2VzdCwgRGlnZXN0RGF0YSwgU00zXzI1Nl9ESUdF U1RfU0laRSk7DQo+ID4NCj4gPiArICAgICAgYnJlYWs7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAgIGRlZmF1bHQ6DQo+ID4NCj4gPiArICAgICAgQVNTRVJUIChGQUxTRSk7DQo+ID4NCj4gPiAr ICAgICAgYnJlYWs7DQo+ID4NCj4gDQo+IDUuIFRoZSBzYW1lIGFzIDMNCj4gDQo+ID4gKyAgfQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgRnJlZVBvb2wgKEhhc2hDdHgpOw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPg0KPiA+ICt9DQo+ID4gXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlDQo+ID4gZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFz ZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuYw0KPiA+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNl SGFzaExpYi9CYXNlSGFzaExpYkR4ZS5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBp bmRleCAwMDAwMDAwMDAwMDAuLmVhMjJjZmUxNmUyZg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiAr KysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmMNCj4g PiBAQCAtMCwwICsxLDEyMiBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPg0KPiA+ICsgIFRoaXMgbGli cmFyeSBpcyBVbmlmaWVkIEhhc2ggQVBJLiBJdCB3aWxsIHJlZGlyZWN0IGhhc2ggcmVxdWVzdCB0 bw0KPiA+DQo+ID4gKyAgdGhlIGhhc2ggaGFuZGxlciBzcGVjaWZpZWQgYnkgUGNkU3lzdGVtSGFz aFBvbGljeSBzdWNoIGFzIFNIQTEsDQo+ID4gKyBTSEEyNTYsDQo+ID4NCj4gPiArICBTSEEzODQg YW5kIFNNMy4uLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0NvcHlyaWdodCAoYykgMjAxMyAtIDIw MjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICs8QlI+DQo+ ID4NCj4gPiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPExpYnJh cnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFs bG9jYXRpb25MaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0K PiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRl IDxMaWJyYXJ5L0Jhc2VIYXNoTGliLmg+DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI2luY2x1ZGUg IkJhc2VIYXNoTGliQ29tbW9uLmgiDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4g PiArICBJbml0IGhhc2ggc2VxdWVuY2UuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcGFyYW0g SGFzaEhhbmRsZSAgSGFzaCBoYW5kbGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcmV0dmFs IFRSVUUgICAgICAgSGFzaCBzdGFydCBhbmQgSGFzaEhhbmRsZSByZXR1cm5lZC4NCj4gPg0KPiA+ ICsgIEByZXR2YWwgRkFMU0UgICAgICBIYXNoIEluaXQgdW5zdWNjZXNzZnVsLg0KPiA+DQo+ID4g KyoqLw0KPiA+DQo+ID4gK0JPT0xFQU4NCj4gPg0KPiA+ICtFRklBUEkNCj4gPg0KPiA+ICtIYXNo QXBpSW5pdCAoDQo+ID4NCj4gPiArICBPVVQgIEhBU0hfSEFORExFICAgKkhhc2hIYW5kbGUNCj4g Pg0KPiA+ICspDQo+ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgQk9PTEVBTiAgICAgU3RhdHVzOw0K PiA+DQo+ID4gKyAgVUlOVDggICAgICAgSGFzaFBvbGljeTsNCj4gPg0KPiA+ICsgIEhBU0hfSEFO RExFIEhhbmRsZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEhhc2hQb2xpY3kgPSBQY2RHZXQ4 IChQY2RTeXN0ZW1IYXNoUG9saWN5KTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIFN0YXR1cyA9 IEhhc2hJbml0SW50ZXJuYWwgKEhhc2hQb2xpY3ksICZIYW5kbGUpOw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgKkhhc2hIYW5kbGUgPSBIYW5kbGU7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBy ZXR1cm4gU3RhdHVzOw0KPiA+DQo+ID4gK30NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4g Pg0KPiA+ICsgIFVwZGF0ZSBoYXNoIGRhdGEuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBAcGFy YW0gSGFzaEhhbmRsZSAgICBIYXNoIGhhbmRsZS4NCj4gPg0KPiA+ICsgIEBwYXJhbSBEYXRhVG9I YXNoICAgIERhdGEgdG8gYmUgaGFzaGVkLg0KPiA+DQo+ID4gKyAgQHBhcmFtIERhdGFUb0hhc2hM ZW4gRGF0YSBzaXplLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJldHZhbCBUUlVFICAgICAg ICAgSGFzaCB1cGRhdGVkLg0KPiA+DQo+ID4gKyAgQHJldHZhbCBGQUxTRSAgICAgICAgSGFzaCB1 cGRhdGVkIHVuc3VjY2Vzc2Z1bC4NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICtCT09MRUFODQo+ ID4NCj4gPiArRUZJQVBJDQo+ID4NCj4gPiArSGFzaEFwaVVwZGF0ZSAoDQo+ID4NCj4gPiArICBJ TiBIQVNIX0hBTkRMRSAgICBIYXNoSGFuZGxlLA0KPiA+DQo+ID4gKyAgSU4gVk9JRCAgICAgICAg ICAgKkRhdGFUb0hhc2gsDQo+ID4NCj4gPiArICBJTiBVSU5UTiAgICAgICAgICBEYXRhVG9IYXNo TGVuDQo+ID4NCj4gPiArKQ0KPiA+DQo+ID4gK3sNCj4gPg0KPiA+ICsgIEJPT0xFQU4gICAgIFN0 YXR1czsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgIEhhc2hQb2xpY3k7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICBIYXNoUG9saWN5ID0gUGNkR2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICBTdGF0dXMgPSBIYXNoVXBkYXRlSW50ZXJuYWwgKEhhc2hQ b2xpY3ksIEhhc2hIYW5kbGUsIERhdGFUb0hhc2gsDQo+ID4gRGF0YVRvSGFzaExlbik7DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+DQo+ID4gK30NCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIEhhc2ggY29tcGxldGUuDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgICBIYXNoIGhhbmRsZS4NCj4gPg0KPiA+ ICsgIEBwYXJhbSBEaWdlc3QgICAgICAgIEhhc2ggRGlnZXN0Lg0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgQHJldHZhbCBUUlVFICAgICAgICAgSGFzaCBjb21wbGV0ZSBhbmQgRGlnZXN0IGlzIHJl dHVybmVkLg0KPiA+DQo+ID4gKyAgQHJldHZhbCBGQUxTRSAgICAgICAgSGFzaCBjb21wbGV0ZSB1 bnN1Y2Nlc3NmdWwuDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArQk9PTEVBTg0KPiA+DQo+ID4g K0VGSUFQSQ0KPiA+DQo+ID4gK0hhc2hBcGlGaW5hbCAoDQo+ID4NCj4gPiArICBJTiAgSEFTSF9I QU5ETEUgSGFzaEhhbmRsZSwNCj4gPg0KPiA+ICsgIE9VVCBVSU5UOCAgICAgICAqRGlnZXN0DQo+ ID4NCj4gPiArKQ0KPiA+DQo+ID4gK3sNCj4gPg0KPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1czsN Cj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgIEhhc2hQb2xpY3k7DQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICBIYXNoUG9saWN5ID0gUGNkR2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICBTdGF0dXMgPSBIYXNoRmluYWxJbnRlcm5hbCAoSGFzaFBvbGljeSwg Jkhhc2hIYW5kbGUsICZEaWdlc3QpOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgcmV0dXJuIFN0 YXR1czsNCj4gPg0KPiA+ICt9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4gPiAr ICBUaGUgY29uc3RydWN0b3IgZnVuY3Rpb24gb2YgQmFzZUhhc2hMaWIgRHhlLg0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgQHBhcmFtICBGaWxlSGFuZGxlICAgVGhlIGhhbmRsZSBvZiBGRlMgaGVh ZGVyIHRoZSBsb2FkZWQgZHJpdmVyLg0KPiA+DQo+ID4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAg VGhlIHBvaW50ZXIgdG8gdGhlIFBFSSBzZXJ2aWNlcy4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBjb25zdHJ1Y3RvciBleGVjdXRlcyBz dWNjZXNzZnVsbHkuDQo+ID4NCj4gPiArICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICBU aGVyZSBpcyBubyBlbm91Z2ggcmVzb3VyY2UgZm9yIHRoZQ0KPiA+IGNvbnN0cnVjdG9yLg0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0VGSV9TVEFUVVMNCj4gPg0KPiA+ICtF RklBUEkNCj4gPg0KPiA+ICtCYXNlSGFzaExpYkFwaUR4ZUNvbnN0cnVjdG9yICgNCj4gPg0KPiA+ ICsgIElOIEVGSV9IQU5ETEUgICAgICAgIEltYWdlSGFuZGxlLA0KPiA+DQo+ID4gKyAgSU4gRUZJ X1NZU1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxlDQo+ID4NCj4gPiArICApDQo+ID4NCj4gPiArew0K PiA+DQo+ID4gKyAgREVCVUcgKChERUJVR19JTkZPLCJDYWxsaW5nIEJhc2VIYXNoTGliQXBpRHhl Q29uc3RydWN0b3IuLiBcbiIpKTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIHJldHVybiBFRklf U1VDQ0VTUzsNCj4gPg0KPiA+ICt9DQo+IA0KPiA2LiBDb25zdHJ1Y3RvciBpcyBub3QgbmVjZXNz YXJ5IGlmIHlvdSBkb24ndCBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggaXQuDQo+ICAgIFlvdSBj YW4gcmVtb3ZlIGl0IGZyb20gaW5mIGZpbGUgYW5kIGhlcmUuDQo+IA0KPiA+IFwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQ0KPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jh c2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLmMNCj4gPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFz ZUhhc2hMaWIvQmFzZUhhc2hMaWJQZWkuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMDAwLi41ODBhYzIxZmMxZDkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4g KysrIGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYlBlaS5jDQo+ ID4gQEAgLTAsMCArMSwxMjUgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4NCj4gPiArICBUaGlzIGxp YnJhcnkgaXMgVW5pZmllZCBIYXNoIEFQSS4gSXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3Qg dG8NCj4gPg0KPiA+ICsgIHRoZSBoYXNoIGhhbmRsZXIgc3BlY2lmaWVkIGJ5IFBjZFN5c3RlbUhh c2hQb2xpY3kgc3VjaCBhcyBTSEExLA0KPiA+ICsgU0hBMjU2LA0KPiA+DQo+ID4gKyAgU0hBMzg0 IGFuZCBTTTMuLi4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTMgLSAy MDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArPEJSPg0K PiA+DQo+ID4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJy YXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlB bGxvY2F0aW9uTGliLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4N Cj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVk ZSA8TGlicmFyeS9IYXNoTGliLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvSG9iTGli Lmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPEd1aWQvWmVyb0d1aWQuaD4NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlSGFzaExpYi5oPg0KPiA+DQo+ID4gKyNpbmNs dWRlICJCYXNlSGFzaExpYkNvbW1vbi5oIg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKg0KPiA+ DQo+ID4gKyAgSW5pdCBoYXNoIHNlcXVlbmNlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBh cmFtIEhhc2hIYW5kbGUgIEhhc2ggaGFuZGxlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJl dHZhbCBUUlVFICAgICAgIEhhc2ggc3RhcnQgYW5kIEhhc2hIYW5kbGUgcmV0dXJuZWQuDQo+ID4N Cj4gPiArICBAcmV0dmFsIEZBTFNFICAgICAgSGFzaCBJbml0IHVuc3VjY2Vzc2Z1bC4NCj4gPg0K PiA+ICsqKi8NCj4gPg0KPiA+ICtCT09MRUFODQo+ID4NCj4gPiArRUZJQVBJDQo+ID4NCj4gPiAr SGFzaEFwaUluaXQgKA0KPiA+DQo+ID4gKyAgT1VUICBIQVNIX0hBTkRMRSAgICpIYXNoSGFuZGxl DQo+ID4NCj4gPiArKQ0KPiA+DQo+ID4gK3sNCj4gPg0KPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1 czsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgIEhhc2hQb2xpY3k7DQo+ID4NCj4gPiArICBIQVNI X0hBTkRMRSBIYW5kbGU7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBIYXNoUG9saWN5ID0gUGNk R2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBTdGF0 dXMgPSBIYXNoSW5pdEludGVybmFsIChIYXNoUG9saWN5LCAmSGFuZGxlKTsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICpIYXNoSGFuZGxlID0gSGFuZGxlOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgcmV0dXJuIFN0YXR1czsNCj4gPg0KPiA+ICt9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoq DQo+ID4NCj4gPiArICBVcGRhdGUgaGFzaCBkYXRhLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAg QHBhcmFtIEhhc2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4NCj4gPiArICBAcGFyYW0gRGF0 YVRvSGFzaCAgICBEYXRhIHRvIGJlIGhhc2hlZC4NCj4gPg0KPiA+ICsgIEBwYXJhbSBEYXRhVG9I YXNoTGVuIERhdGEgc2l6ZS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEByZXR2YWwgVFJVRSAg ICAgICAgIEhhc2ggdXBkYXRlZC4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhh c2ggdXBkYXRlZCB1bnN1Y2Nlc3NmdWwuDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArQk9PTEVB Tg0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+DQo+ID4gK0hhc2hBcGlVcGRhdGUgKA0KPiA+DQo+ID4g KyAgSU4gSEFTSF9IQU5ETEUgICAgSGFzaEhhbmRsZSwNCj4gPg0KPiA+ICsgIElOIFZPSUQgICAg ICAgICAgICpEYXRhVG9IYXNoLA0KPiA+DQo+ID4gKyAgSU4gVUlOVE4gICAgICAgICAgRGF0YVRv SGFzaExlbg0KPiA+DQo+ID4gKykNCj4gPg0KPiA+ICt7DQo+ID4NCj4gPiArICBCT09MRUFOICAg ICBTdGF0dXM7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICBIYXNoUG9saWN5Ow0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgSGFzaFBvbGljeSA9IFBjZEdldDggKFBjZFN5c3RlbUhhc2hQb2xpY3kp Ow0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgU3RhdHVzID0gSGFzaFVwZGF0ZUludGVybmFsIChI YXNoUG9saWN5LCBIYXNoSGFuZGxlLCBEYXRhVG9IYXNoLA0KPiA+IERhdGFUb0hhc2hMZW4pOw0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPg0KPiA+ICt9DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArLyoqDQo+ID4NCj4gPiArICBIYXNoIGNvbXBsZXRlLg0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFtIEhhc2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4N Cj4gPiArICBAcGFyYW0gRGlnZXN0ICAgICAgICBIYXNoIERpZ2VzdC4NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIEhhc2ggY29tcGxldGUgYW5kIERpZ2VzdCBp cyByZXR1cm5lZC4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggY29tcGxl dGUgdW5zdWNjZXNzZnVsLg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK0JPT0xFQU4NCj4gPg0K PiA+ICtFRklBUEkNCj4gPg0KPiA+ICtIYXNoQXBpRmluYWwgKA0KPiA+DQo+ID4gKyAgSU4gIEhB U0hfSEFORExFIEhhc2hIYW5kbGUsDQo+ID4NCj4gPiArICBPVVQgVUlOVDggICAgICAqRGlnZXN0 DQo+ID4NCj4gPiArKQ0KPiA+DQo+ID4gK3sNCj4gPg0KPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1 czsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgIEhhc2hQb2xpY3k7DQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICBIYXNoUG9saWN5ID0gUGNkR2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICBTdGF0dXMgPSBIYXNoRmluYWxJbnRlcm5hbCAoSGFzaFBvbGlj eSwgSGFzaEhhbmRsZSwgJkRpZ2VzdCk7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICByZXR1cm4g U3RhdHVzOw0KPiA+DQo+ID4gK30NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ ICsgIFRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBCYXNlSGFzaExpYiBQZWkuDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICBAcGFyYW0gIEZpbGVIYW5kbGUgICBUaGUgaGFuZGxlIG9mIEZGUyBo ZWFkZXIgdGhlIGxvYWRlZCBkcml2ZXIuDQo+ID4NCj4gPiArICBAcGFyYW0gIFBlaVNlcnZpY2Vz ICBUaGUgcG9pbnRlciB0byB0aGUgUEVJIHNlcnZpY2VzLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIGNvbnN0cnVjdG9yIGV4ZWN1dGVz IHN1Y2Nlc3NmdWxseS4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMg IFRoZXJlIGlzIG5vIGVub3VnaCByZXNvdXJjZSBmb3IgdGhlDQo+ID4gY29uc3RydWN0b3IuDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4g K0VGSUFQSQ0KPiA+DQo+ID4gK0Jhc2VIYXNoTGliQXBpUGVpQ29uc3RydWN0b3IgKA0KPiA+DQo+ ID4gKyAgSU4gRUZJX1BFSV9GSUxFX0hBTkRMRSAgICAgICAgRmlsZUhhbmRsZSwNCj4gPg0KPiA+ ICsgIElOIENPTlNUIEVGSV9QRUlfU0VSVklDRVMgICAgICoqUGVpU2VydmljZXMNCj4gPg0KPiA+ ICsgICkNCj4gPg0KPiA+ICt7DQo+ID4NCj4gPiArICBERUJVRyAoKERFQlVHX0lORk8sIkNhbGxp bmcgQmFzZUhhc2hMaWJBcGlQZWlDb25zdHJ1Y3Rvci4uIFxuIikpOw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+DQo+ID4gK30NCj4gDQo+IDcuIFRoZSBz YW1lIGFzIDYNCj4gDQo+ID4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+ID4gZGlmZiAt LWdpdCBhL1NlY3VyaXR5UGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlSGFzaExpYi5oDQo+ID4gYi9T ZWN1cml0eVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUhhc2hMaWIuaA0KPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5lMTg4M2ZlN2NlNDENCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvU2VjdXJpdHlQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VIYXNo TGliLmgNCj4gPiBAQCAtMCwwICsxLDg0IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsgIFRoZSBp bnRlcm5hbCBoZWFkZXIgZmlsZSBpbmNsdWRlcyB0aGUgY29tbW9uIGhlYWRlciBmaWxlcywgZGVm aW5lcw0KPiA+ICsgIGludGVybmFsIHN0cnVjdHVyZSBhbmQgZnVuY3Rpb25zIHVzZWQgYnkgSW1h Z2VWZXJpZmljYXRpb25MaWIuDQo+ID4gKw0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIw LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+IFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlDQo+ID4gK2xpY2Vuc2Vk IGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhl IEJTRA0KPiA+IExpY2Vuc2UNCj4gPiArd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRp b24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4gK21heSBiZSBmb3VuZA0KPiA+ IGF0DQo+ID4gK2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAN Cj4gPiArDQo+ID4gK1RIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElD RU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KPiA+ICtXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQ UkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUw0KPiA+IE9SIElNUExJRUQu DQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX19CQVNFSEFTSExJQl9IXw0K PiA+ICsjZGVmaW5lIF9fQkFTRUhBU0hMSUJfSF8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxVZWZp Lmg+DQo+ID4gKyNpbmNsdWRlIDxQcm90b2NvbC9IYXNoLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJy YXJ5L0hhc2hMaWIuaD4NCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8vIEhhc2ggQWxnb3JpdGhtcw0K PiA+ICsvLw0KPiA+ICsjZGVmaW5lIEhBU0hfREVGQVVMVCAgICAweDAwMDAwMDAwDQo+ID4gKyNk ZWZpbmUgSEFTSF9NRDQgICAgICAgIDB4MDAwMDAwMDENCj4gPiArI2RlZmluZSBIQVNIX01ENSAg ICAgICAgMHgwMDAwMDAwMg0KPiA+ICsjZGVmaW5lIEhBU0hfU0hBMSAgICAgICAweDAwMDAwMDAz DQo+ID4gKyNkZWZpbmUgSEFTSF9TSEEyNTYgICAgIDB4MDAwMDAwMDQNCj4gPiArI2RlZmluZSBI QVNIX1NIQTM4NCAgICAgMHgwMDAwMDAwNQ0KPiA+ICsjZGVmaW5lIEhBU0hfU0hBNTEyICAgICAw eDAwMDAwMDA2DQo+ID4gKyNkZWZpbmUgSEFTSF9TTTNfMjU2ICAgIDB4MDAwMDAwMDcNCj4gPiAr DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBJbml0IGhhc2ggc2VxdWVuY2UuDQo+ID4gKw0KPiA+ ICsgIEBwYXJhbSBIYXNoSGFuZGxlICBIYXNoIGhhbmRsZS4NCj4gPiArDQo+ID4gKyAgQHJldHZh bCBUUlVFICAgICAgIEhhc2ggc3RhcnQgYW5kIEhhc2hIYW5kbGUgcmV0dXJuZWQuDQo+ID4gKyAg QHJldHZhbCBGQUxTRSAgICAgIEhhc2ggSW5pdCB1bnN1Y2Nlc3NmdWwuDQo+ID4gKyoqLw0KPiA+ ICtCT09MRUFODQo+ID4gK0VGSUFQSQ0KPiA+ICtIYXNoQXBpSW5pdCAoDQo+ID4gKyAgT1VUICBI QVNIX0hBTkRMRSAgICpIYXNoSGFuZGxlDQo+ID4gKyk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAr ICBVcGRhdGUgaGFzaCBkYXRhLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgICBI YXNoIGhhbmRsZS4NCj4gPiArICBAcGFyYW0gRGF0YVRvSGFzaCAgICBEYXRhIHRvIGJlIGhhc2hl ZC4NCj4gPiArICBAcGFyYW0gRGF0YVRvSGFzaExlbiBEYXRhIHNpemUuDQo+ID4gKw0KPiA+ICsg IEByZXR2YWwgVFJVRSAgICAgICAgIEhhc2ggdXBkYXRlZC4NCj4gPiArICBAcmV0dmFsIEZBTFNF ICAgICAgICBIYXNoIHVwZGF0ZWQgdW5zdWNjZXNzZnVsLg0KPiA+ICsqKi8NCj4gPiArQk9PTEVB Tg0KPiA+ICtFRklBUEkNCj4gPiArSGFzaEFwaVVwZGF0ZSAoDQo+ID4gKyAgSU4gSEFTSF9IQU5E TEUgICAgSGFzaEhhbmRsZSwNCj4gPiArICBJTiBWT0lEICAgICAgICAgICAqRGF0YVRvSGFzaCwN Cj4gPiArICBJTiBVSU5UTiAgICAgICAgICBEYXRhVG9IYXNoTGVuDQo+ID4gKyk7DQo+ID4gKw0K PiA+ICsvKioNCj4gPiArICBIYXNoIGNvbXBsZXRlLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gSGFz aEhhbmRsZSAgICBIYXNoIGhhbmRsZS4NCj4gPiArICBAcGFyYW0gRGlnZXN0ICAgICAgICBIYXNo IERpZ2VzdC4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBUUlVFICAgICAgICAgSGFzaCBjb21wbGV0 ZSBhbmQgRGlnZXN0IGlzIHJldHVybmVkLg0KPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhh c2ggY29tcGxldGUgdW5zdWNjZXNzZnVsLg0KPiA+ICsqKi8NCj4gPiArQk9PTEVBTg0KPiA+ICtF RklBUEkNCj4gPiArSGFzaEFwaUZpbmFsICgNCj4gPiArICBJTiAgSEFTSF9IQU5ETEUgSGFzaEhh bmRsZSwNCj4gPiArICBPVVQgVUlOVDggICAgICAgKkRpZ2VzdA0KPiA+ICspOw0KPiA+ICsNCj4g PiArI2VuZGlmDQo+ID4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+ID4gZGlmZiAtLWdp dCBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJDb21tb24uaA0K PiA+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkNvbW1vbi5o DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjc3NmI3 NGFkNzUzYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliQ29tbW9uLmgNCj4gPiBAQCAtMCwwICsxLDcxIEBADQo+ ID4gKy8qKiBAZmlsZQ0KPiA+ICsgIFRoZSBpbnRlcm5hbCBoZWFkZXIgZmlsZSBpbmNsdWRlcyB0 aGUgY29tbW9uIGhlYWRlciBmaWxlcywgZGVmaW5lcw0KPiA+ICsgIGludGVybmFsIHN0cnVjdHVy ZSBhbmQgZnVuY3Rpb25zIHVzZWQgYnkgSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gKw0KPiA+ ICtDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cw0KPiA+ICtyZXNlcnZlZC48QlI+IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBt YXRlcmlhbHMgYXJlDQo+ID4gK2xpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiA+IExpY2Vuc2UNCj4gPiArd2hpY2gg YWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNl bnNlDQo+ID4gK21heSBiZSBmb3VuZA0KPiA+IGF0DQo+ID4gK2h0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gPiArDQo+ID4gK1RIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KPiA+ ICtXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRI RVIgRVhQUkVTUw0KPiA+IE9SIElNUExJRUQuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArDQo+ID4g KyNpZm5kZWYgX19CQVNFSEFTSExJQl9DT01NT05fSF8NCj4gPiArI2RlZmluZSBfX0JBU0VIQVNI TElCX0NPTU1PTl9IXw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgSW5pdCBoYXNoIHNlcXVlbmNl IHdpdGggSGFzaCBBbGdvcml0aG0gc3BlY2lmaWVkIGJ5IEhhc2hQb2xpY3kuDQo+ID4gKw0KPiA+ ICsgIEBwYXJhbSBIYXNoSGFuZGxlIEhhc2ggaGFuZGxlLg0KPiA+ICsNCj4gPiArICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgICAgICAgIEhhc2ggc3RhcnQgYW5kIEhhc2hIYW5kbGUgcmV0dXJuZWQu DQo+ID4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICBTeXN0ZW0gaGFzIG5vIEhBU0gg bGlicmFyeSByZWdpc3RlcmVkLg0KPiA+ICsqKi8NCj4gPiArQk9PTEVBTg0KPiA+ICtFRklBUEkN Cj4gPiArSGFzaEluaXRJbnRlcm5hbCAoDQo+ID4gKyAgSU4gVUlOVDggICAgICAgICAgSGFzaFBv bGljeSwNCj4gPiArICBPVVQgSEFTSF9IQU5ETEUgICAqSGFzaEhhbmRsZQ0KPiA+ICsgICk7DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICBIYXNoIGNvbXBsZXRlIHdpdGggSGFzaCBBbGdvcml0aG0g c3BlY2lmaWVkIGJ5IEhhc2hQb2xpY3kuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSBIYXNoUG9saWN5 ICAgIEhhc2ggQWxnb3JpdGhtIFBvbGljeS4NCj4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgICBI YXNoIGhhbmRsZS4NCj4gPiArICBAcGFyYW0gRGlnZXN0ICAgICAgICBIYXNoIERpZ2VzdC4NCj4g PiArDQo+ID4gKyAgQHJldHZhbCBUUlVFICAgICAgICAgSGFzaCBjb21wbGV0ZSBhbmQgRGlnZXN0 IGlzIHJldHVybmVkLg0KPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggY29tcGxldGUg dW5zdWNjZXNzZnVsLg0KPiA+ICsqKi8NCj4gPiArQk9PTEVBTg0KPiA+ICtFRklBUEkNCj4gPiAr SGFzaFVwZGF0ZUludGVybmFsICgNCj4gPiArICBJTiBVSU5UOCAgICAgICAgSGFzaFBvbGljeSwN Cj4gPiArICBJTiBIQVNIX0hBTkRMRSAgSGFzaEhhbmRsZSwNCj4gPiArICBJTiBWT0lEICAgICAg ICAgKkRhdGFUb0hhc2gsDQo+ID4gKyAgSU4gVUlOVE4gICAgICAgIERhdGFUb0hhc2hMZW4NCj4g PiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVXBkYXRlIGhhc2ggZGF0YSB3aXRoIEhh c2ggQWxnb3JpdGhtIHNwZWNpZmllZCBieSBIYXNoUG9saWN5Lg0KPiA+ICsNCj4gPiArICBAcGFy YW0gSGFzaFBvbGljeSAgICBIYXNoIEFsZ29yaXRobSBQb2xpY3kuDQo+ID4gKyAgQHBhcmFtIEhh c2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4gKyAgQHBhcmFtIERhdGFUb0hhc2ggICAgRGF0 YSB0byBiZSBoYXNoZWQuDQo+ID4gKyAgQHBhcmFtIERhdGFUb0hhc2hMZW4gRGF0YSBzaXplLg0K PiA+ICsNCj4gPiArICBAcmV0dmFsIFRSVUUgICAgICAgICBIYXNoIHVwZGF0ZWQuDQo+ID4gKyAg QHJldHZhbCBGQUxTRSAgICAgICAgSGFzaCB1cGRhdGVkIHVuc3VjY2Vzc2Z1bC4NCj4gPiArKiov DQo+ID4gK0JPT0xFQU4NCj4gPiArRUZJQVBJDQo+ID4gK0hhc2hGaW5hbEludGVybmFsICgNCj4g PiArICBJTiBVSU5UOCAgICAgICAgSGFzaFBvbGljeSwNCj4gPiArICBJTiBIQVNIX0hBTkRMRSAg SGFzaEhhbmRsZSwNCj4gPiArICBPVVQgVUlOVDggICAgICAgKipEaWdlc3QNCj4gPiArICApOw0K PiA+ICsjZW5kaWYNCj4gPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gPiBkaWZmIC0t Z2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS5pbmYN Cj4gPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuaW5m DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmY5N2Jk YTA2MTA4Zg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmluZg0KPiA+IEBAIC0wLDAgKzEsNDcgQEANCj4g PiArIyMgQGZpbGUNCj4gPg0KPiA+ICsjICBQcm92aWRlcyBoYXNoIHNlcnZpY2UgYnkgcmVnaXN0 ZXJlZCBoYXNoIGhhbmRsZXINCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyAgVGhpcyBsaWJyYXJ5 IGlzIEJhc2UgSGFzaCBMaWIuIEl0IHdpbGwgcmVkaXJlY3QgaGFzaCByZXF1ZXN0IHRvDQo+ID4g K2VhY2ggaW5kaXZpZHVhbA0KPiA+DQo+ID4gKyMgIGhhc2ggaGFuZGxlciByZWdpc3RlcmVkLCBz dWNoIGFzIFNIQTEsIFNIQTI1NiwgU0hBMzg0LCBTTTMuDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4g KyMgQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMNCj4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICtbRGVmaW5lc10NCj4gPg0KPiA+ICsgIElORl9WRVJTSU9OICAgICAg ICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gPg0KPiA+ICsgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICAgICA9IEJhc2VIYXNoTGliRHhlDQo+ID4NCj4gPiArICBNT0RVTEVfVU5JX0ZJ TEUgICAgICAgICAgICAgICAgPSBCYXNlSGFzaExpYkR4ZS51bmkNCj4gPg0KPiA+ICsgIEZJTEVf R1VJRCAgICAgICAgICAgICAgICAgICAgICA9IDE1OERDNzEyLUYxNUEtNDRkYy05M0JCLTE2NzUw NDVCRTA2Ng0KPiA+DQo+ID4gKyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0gRFhF X0RSSVZFUg0KPiA+DQo+ID4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4w DQo+ID4NCj4gPiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBCYXNlSGFzaExp YnxEWEVfRFJJVkVSIERYRV9SVU5USU1FX0RSSVZFUg0KPiA+IERYRV9TTU1fRFJJVkVSIFVFRklf QVBQTElDQVRJT04gVUVGSV9EUklWRVINCj4gPg0KPiA+ICsgIENPTlNUUlVDVE9SICAgICAgICAg ICAgICAgICAgICA9IEJhc2VIYXNoTGliQXBpRHhlQ29uc3RydWN0b3INCj4gDQo+IDguIFNpbmNl IHRoZSBhYm92ZSBmdW5jdGlvbiBpcyBhY3R1YWxseSBlbXB0eSwgeW91IGNhbiByZW1vdmUgYWJv dmUgbGluZSBhbmQNCj4gICAgZnVuY3Rpb24gaW4gYyBmaWxlLg0KPiANCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsjDQo+ID4NCj4gPiArIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZvciBy ZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5DQo+ID4gK3RoZSBidWlsZA0KPiA+IHRv b2xzLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAg ICAgICA9IElBMzIgWDY0DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1tTb3Vy Y2VzXQ0KPiA+DQo+ID4gKyAgQmFzZUhhc2hMaWJDb21tb24uaA0KPiA+DQo+ID4gKyAgQmFzZUhh c2hMaWJDb21tb24uYw0KPiA+DQo+ID4gKyAgQmFzZUhhc2hMaWJEeGUuYw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK1tQYWNrYWdlc10NCj4gPg0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4N Cj4gPiArICBDcnlwdG9Qa2cvQ3J5cHRvUGtnLmRlYw0KPiA+DQo+ID4gKyAgU2VjdXJpdHlQa2cv U2VjdXJpdHlQa2cuZGVjDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArW0xpYnJhcnlDbGFzc2VzXQ0K PiA+DQo+ID4gKyAgQmFzZUxpYg0KPiA+DQo+ID4gKyAgQmFzZU1lbW9yeUxpYg0KPiA+DQo+ID4g KyAgRGVidWdMaWINCj4gPg0KPiA+ICsgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPg0KPiA+ICsg IEJhc2VDcnlwdExpYg0KPiA+DQo+ID4gKyAgUGNkTGliDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr W1BjZF0NCj4gPg0KPiA+ICsgIGdFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN5c3Rl bUhhc2hQb2xpY3kgICAgIyMgQ09OU1VNRVMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0 eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLnVuaQ0KPiA+IGIvU2VjdXJp dHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS51bmkNCj4gPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMTg2NTc3M2I0YTI1DQo+ID4g LS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIv QmFzZUhhc2hMaWJEeGUudW5pDQo+ID4gQEAgLTAsMCArMSwxOCBAQA0KPiA+ICsvLyAvKiogQGZp bGUNCj4gPg0KPiA+ICsvLyBQcm92aWRlcyBoYXNoIHNlcnZpY2UgYnkgcmVnaXN0ZXJlZCBoYXNo IGhhbmRsZXINCj4gPg0KPiA+ICsvLw0KPiA+DQo+ID4gKy8vIFRoaXMgbGlicmFyeSBpcyBVbmlm aWVkIEhhc2ggQVBJLiBJdCB3aWxsIHJlZGlyZWN0IGhhc2ggcmVxdWVzdCB0bw0KPiA+ICtlYWNo IGluZGl2aWR1YWwNCj4gPg0KPiA+ICsvLyBoYXNoIGhhbmRsZXIgcmVnaXN0ZXJlZCwgc3VjaCBh cyBTSEExLCBTSEEyNTYuIFBsYXRmb3JtIGNhbiB1c2UNCj4gPiBQY2RUcG0ySGFzaE1hc2sgdG8N Cj4gPg0KPiA+ICsvLyBtYXNrIHNvbWUgaGFzaCBlbmdpbmVzLg0KPiA+DQo+ID4gKy8vDQo+ID4N Cj4gPiArLy8gQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMNCj4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKy8vDQo+ID4NCj4gPiArLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICsv Lw0KPiA+DQo+ID4gKy8vICoqLw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNz dHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlBy b3ZpZGVzIGhhc2gNCj4gPiBzZXJ2aWNlIGJ5IHNwZWNpZmllZCBoYXNoIGhhbmRsZXIiDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAg ICNsYW5ndWFnZSBlbi1VUyAiVGhpcyBsaWJyYXJ5IGlzDQo+ID4gVW5pZmllZCBIYXNoIEFQSS4g SXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3QgdG8gdGhlIGhhc2ggaGFuZGxlcg0KPiA+IHNw ZWNpZmllZCBieSBQY2RTeXN0ZW1IYXNoUG9saWN5LiINCj4gPg0KPiA+ICsNCj4gPg0KPiA+IGRp ZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVp LmluZg0KPiA+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYlBl aS5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4u NGQzNjAzMDc0NGJkDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xp YnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJQZWkuaW5mDQo+ID4gQEAgLTAsMCArMSw1MiBA QA0KPiA+ICsjIyBAZmlsZQ0KPiA+DQo+ID4gKyMgIFByb3ZpZGVzIGhhc2ggc2VydmljZSBieSBy ZWdpc3RlcmVkIGhhc2ggaGFuZGxlcg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjICBUaGlzIGxp YnJhcnkgaXMgQmFzZUNyeXB0byByb3V0ZXIuIEl0IHdpbGwgcmVkaXJlY3QgaGFzaCByZXF1ZXN0 DQo+ID4gK3RvIGVhY2gNCj4gPiBpbmRpdmlkdWFsDQo+ID4NCj4gPiArIyAgaGFzaCBoYW5kbGVy IHJlZ2lzdGVyZWQsIHN1Y2ggYXMgU0hBMSwgU0hBMjU2Lg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ ICsjIENvcHlyaWdodCAoYykgMjAxOCAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzDQo+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMjDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArW0RlZmluZXNdDQo+ID4NCj4gPiArICBJTkZfVkVSU0lPTiAgICAg ICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ID4NCj4gPiArICBCQVNFX05BTUUgICAgICAg ICAgICAgICAgICAgICAgPSBCYXNlSGFzaExpYlBlaQ0KPiA+DQo+ID4gKyAgTU9EVUxFX1VOSV9G SUxFICAgICAgICAgICAgICAgID0gQmFzZUhhc2hMaWJQZWkudW5pDQo+ID4NCj4gPiArICBGSUxF X0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSBERENCQ0ZCQS04RUVCLTQ4OGEtOTZENi0wOTc4 MzFBNkU1MEINCj4gPg0KPiA+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IFBF SU0NCj4gPg0KPiA+ICsgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPiA+ DQo+ID4gKyAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gQmFzZUhhc2hMaWJ8UEVJ TQ0KPiA+DQo+ID4gKyAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0gQmFzZUhhc2hM aWJBcGlQZWlDb25zdHJ1Y3Rvcg0KPiA+DQo+IA0KPiA5LiBUaGUgc2FtZSBhcyA4DQo+IA0KPiA+ ICsNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlz IGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5DQo+ID4gK3RoZSBidWlsZA0K PiA+IHRvb2xzLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVT ICAgICAgICAgICA9IElBMzIgWDY0DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g K1tTb3VyY2VzXQ0KPiA+DQo+ID4gKyAgQmFzZUhhc2hMaWJDb21tb24uaA0KPiA+DQo+ID4gKyAg QmFzZUhhc2hMaWJDb21tb24uYw0KPiA+DQo+ID4gKyAgQmFzZUhhc2hMaWJQZWkuYw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gK1tQYWNrYWdlc10NCj4gPg0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVj DQo+ID4NCj4gPiArICBTZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kZWMNCj4gPg0KPiA+ICsgIENy eXB0b1BrZy9DcnlwdG9Qa2cuZGVjDQo+ID4NCj4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxl UGtnLmRlYw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4gPg0KPiA+ ICsgIEJhc2VMaWINCj4gPg0KPiA+ICsgIEJhc2VNZW1vcnlMaWINCj4gPg0KPiA+ICsgIERlYnVn TGliDQo+ID4NCj4gPiArICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ID4NCj4gPiArICBCYXNlQ3J5 cHRMaWINCj4gPg0KPiA+ICsgIFBjZExpYg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1tHdWlkc10N Cj4gPg0KPiA+ICsgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICMjIEdVSUQNCj4gPg0KPiA+ICsg IGdaZXJvR3VpZA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1tQY2RdDQo+ID4NCj4gPiArICBnRWZp U2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RTeXN0ZW1IYXNoUG9saWN5ICAgICMjIENPTlNV TUVTDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExp Yi9CYXNlSGFzaExpYlBlaS51bmkNCj4gPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hM aWIvQmFzZUhhc2hMaWJQZWkudW5pDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwMDAuLjIxMzFiNjFiZDIzNQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysg Yi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLnVuaQ0KPiA+ IEBAIC0wLDAgKzEsMTcgQEANCj4gPiArLy8gLyoqIEBmaWxlDQo+ID4NCj4gPiArLy8gUHJvdmlk ZXMgaGFzaCBzZXJ2aWNlIGJ5IHJlZ2lzdGVyZWQgaGFzaCBoYW5kbGVyDQo+ID4NCj4gPiArLy8N Cj4gPg0KPiA+ICsvLyBUaGlzIGxpYnJhcnkgaXMgVW5pZmllZCBIYXNoIEFQSS4gSXQgd2lsbCBy ZWRpcmVjdCBoYXNoIHJlcXVlc3QgdG8NCj4gPiArZWFjaCBpbmRpdmlkdWFsDQo+ID4NCj4gPiAr Ly8gaGFzaCBoYW5kbGVyIHJlZ2lzdGVyZWQsIHN1Y2ggYXMgU0hBMSwgU0hBMjU2Lg0KPiA+DQo+ ID4gKy8vDQo+ID4NCj4gPiArLy8gQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKy8vDQo+ ID4NCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPg0KPiA+ICsvLw0KPiA+DQo+ID4gKy8vICoqLw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3Vh Z2UgZW4tVVMgIlByb3ZpZGVzIGhhc2gNCj4gPiBzZXJ2aWNlIGJ5IHNwZWNpZmllZCBoYXNoIGhh bmRsZXIiDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBU SU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGhpcyBsaWJyYXJ5IGlzDQo+ID4gVW5pZmll ZCBIYXNoIEFQSS4gSXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3QgdG8gdGhlIGhhc2ggaGFu ZGxlcg0KPiA+IHNwZWNpZmllZCBieSBQY2RTeXN0ZW1IYXNoUG9saWN5LiINCj4gPg0KPiA+ICsN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kZWMgYi9TZWN1 cml0eVBrZy9TZWN1cml0eVBrZy5kZWMNCj4gPiBpbmRleCBjYWMzNmNhZjBhMGQuLmUwZTE0NDEy NGRkZCAxMDA2NDQNCj4gPiAtLS0gYS9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kZWMNCj4gPiAr KysgYi9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kZWMNCj4gPiBAQCAtNSw3ICs1LDcgQEANCj4g PiAgIyAgSXQgYWxzbyBwcm92aWRlcyB0aGUgZGVmaW5pdGlvbnMoaW5jbHVkaW5nIFBQSXMvUFJP VE9DT0xzL0dVSURzDQo+ID4gYW5kIGxpYnJhcnkNCj4gPiBjbGFzc2VzKQ0KPiA+DQo+ID4gICMg IGFuZCBsaWJyYXJpZXMgaW5zdGFuY2VzLCB3aGljaCBhcmUgdXNlZCBmb3IgdGhvc2UgZmVhdHVy ZXMuDQo+ID4NCj4gPiAgIw0KPiA+DQo+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxOSwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNlcnZlZC48QlI+DQo+ID4NCj4g PiArIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4NCj4gPiAgIyAoQykgQ29weXJpZ2h0IDIwMTUg SGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFAgPEJSPg0KPiA+DQo+ID4g ICMgQ29weXJpZ2h0IChjKSAyMDE3LCBNaWNyb3NvZnQgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRz IHJlc2VydmVkLg0KPiA+IDxCUj4NCj4gPg0KPiA+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiBAQCAtMjcsNiArMjcsMTAgQEAgW0xpYnJh cnlDbGFzc2VzXQ0KPiA+ICAgICMNCj4gPg0KPiA+ICAgIEhhc2hMaWJ8SW5jbHVkZS9MaWJyYXJ5 L0hhc2hMaWIuaA0KPiA+DQo+ID4NCj4gPg0KPiA+ICsgICMjICBAbGlicmFyeWNsYXNzICBQcm92 aWRlcyBoYXNoIGludGVyZmFjZXMgZnJvbSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zLg0KPiA+ DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgQmFzZUhhc2hMaWJ8SW5jbHVkZS9MaWJyYXJ5L0hhc2hM aWIuaA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVz IGEgcGxhdGZvcm0gc3BlY2lmaWMgaW50ZXJmYWNlIHRvIGRldGVjdA0KPiA+IHBoeXNpY2FsbHkg cHJlc2VudCB1c2VyLg0KPiA+DQo+ID4gICAgIw0KPiA+DQo+ID4gICAgUGxhdGZvcm1TZWN1cmVM aWJ8SW5jbHVkZS9MaWJyYXJ5L1BsYXRmb3JtU2VjdXJlTGliLmgNCj4gPg0KPiA+IEBAIC00OTYs NSArNTAwLDIyIEBAIFtQY2RzRHluYW1pYywgUGNkc0R5bmFtaWNFeF0NCj4gPiAgICAjIEBQcm9t cHQgVHBtMkFjcGlUYWJsZUxhc2EgTEFTQSBmaWVsZCBpbiBUUE0yIEFDUEkgdGFibGUuDQo+ID4N Cj4gPg0KPiA+IGdFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFRwbTJBY3BpVGFibGVM YXNhfDB8VUlOVDY0fDB4MDAwMTAwMjMNCj4gPg0KPiA+DQo+ID4NCj4gPiArW1BjZHNGaXhlZEF0 QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhd DQo+ID4NCj4gPiArICAjIyBUaGlzIFBDRCBpbmRpY2F0ZXMgdGhlIEhBU0ggYWxnb3JpdGhtIHRv IHZlcmlmeSB1bnNpZ25lZCBQRS9DT0ZGDQo+ID4gKyBpbWFnZQ0KPiA+DQo+ID4gKyAgIyAgQmFz ZWQgb24gdGhlIHZhbHVlIHNldCwgdGhlIHJlcXVpcmVkIGFsZ29yaXRobSBpcyBjaG9zZW4gdG8N Cj4gPiArIHZlcmlmeQ0KPiA+DQo+ID4gKyAgIyAgdGhlIHVuc2lnbmVkIGltYWdlIGR1cmluZyBT ZWN1cmUgQm9vdC48QlI+DQo+ID4NCj4gPiArICAjICBUaGUgaGFzaGluZyBhbGdvcml0aG0gc2Vs ZWN0ZWQgbXVzdCBtYXRjaCB0aGUgaGFzaGluZyBhbGdvcml0aG0NCj4gPiArIHVzZWQgdG8NCj4g Pg0KPiA+ICsgICMgIGhhc2ggdGhlIGltYWdlIHRvIGJlIGFkZGVkIHRvIERCIHVzaW5nIHRvb2xz IHN1Y2ggYXMNCj4gPiArIEtleUVucm9sbC48QlI+DQo+ID4NCj4gPiArICAjICAgICAweDAwMDAw MDAxICAgIC0gTUQ0LjxCUj4NCj4gPg0KPiA+ICsgICMgICAgIDB4MDAwMDAwMDIgICAgLSBNRDUu PEJSPg0KPiA+DQo+ID4gKyAgIyAgICAgMHgwMDAwMDAwMyAgICAtIFNIQTEuPEJSPg0KPiA+DQo+ ID4gKyAgIyAgICAgMHgwMDAwMDAwNCAgICAtIFNIQTI1Ni48QlI+DQo+ID4NCj4gPiArICAjICAg ICAweDAwMDAwMDA1ICAgIC0gU0hBMzg0LjxCUj4NCj4gPg0KPiA+ICsgICMgICAgIDB4MDAwMDAw MDYgICAgLSBTSEE1MTIuPEJSPg0KPiA+DQo+ID4gKyAgIyAgICAgMHgwMDAwMDAwNyAgICAtIFNN M18yNTYuPEJSPg0KPiA+DQo+ID4gKyAgIyBAUHJvbXB0IFNldCBwb2xpY3kgZm9yIGhhc2hpbmcg dW5zaWduZWQgaW1hZ2UgZm9yIFNlY3VyZSBCb290Lg0KPiA+DQo+ID4gKyAgIyBAVmFsaWRSYW5n ZSAweDgwMDAwMDAxIHwgMHgwMDAwMDAwMSAtIDB4MDAwMDAwMDcNCj4gPg0KPiA+ICsNCj4gPiBn RWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RTeXN0ZW1IYXNoUG9saWN5fDB4MDR8VUlO VDh8MHgwMDAxMDAyDQo+ID4gNA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gIFtVc2VyRXh0ZW5zaW9u cy5UaWFub0NvcmUuIkV4dHJhRmlsZXMiXQ0KPiA+DQo+ID4gICAgU2VjdXJpdHlQa2dFeHRyYS51 bmkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kc2MgYi9T ZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kc2MNCj4gPiBpbmRleCBhMmVlYWRkYTdhN2UuLjg2YTU4 NDdlMjUwOSAxMDA2NDQNCj4gPiAtLS0gYS9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kc2MNCj4g PiArKysgYi9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kc2MNCj4gPiBAQCAtMSw3ICsxLDcgQEAN Cj4gPiAgIyMgQGZpbGUNCj4gPg0KPiA+ICAjICBTZWN1cml0eSBNb2R1bGUgUGFja2FnZSBmb3Ig QWxsIEFyY2hpdGVjdHVyZXMuDQo+ID4NCj4gPiAgIw0KPiA+DQo+ID4gLSMgQ29weXJpZ2h0IChj KSAyMDA5IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNlcnZl ZC48QlI+DQo+ID4NCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4NCj4gPiAgIyAoQykg Q29weXJpZ2h0IDIwMTUgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8 QlI+DQo+ID4NCj4gPiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiA+DQo+ID4gICMNCj4gPg0KPiA+IEBAIC05NSw2ICs5NSw3IEBAIFtMaWJyYXJ5Q2xh c3Nlcy5jb21tb24uUEVJTV0NCj4gPg0KPiA+IFRwbTJEZXZpY2VMaWJ8U2VjdXJpdHlQa2cvTGli cmFyeS9UcG0yRGV2aWNlTGliRFRwbS9UcG0yRGV2aWNlTGliRFRwbS4NCj4gPiBpbmYNCj4gPg0K PiA+DQo+ID4gVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJ8U2VjdXJpdHlQa2cvTGlicmFyeS9QZWlU Y2cyUGh5c2ljYWxQcmVzZW5jZUxpYg0KPiA+IFRjZzJQaHlzaWNhbFByZXNlbmNlTGlifC9QZWlU Yw0KPiA+IGcyUGh5c2ljYWxQcmVzZW5jZUxpYi5pbmYNCj4gPg0KPiA+ICAgIFJuZ0xpYnxNZGVQ a2cvTGlicmFyeS9CYXNlUm5nTGliL0Jhc2VSbmdMaWIuaW5mDQo+ID4NCj4gPiArICBCYXNlSGFz aExpYnxTZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLmluZg0K PiA+DQo+ID4NCj4gPg0KPiA+ICBbTGlicmFyeUNsYXNzZXMuY29tbW9uLkRYRV9EUklWRVJdDQo+ ID4NCj4gPiAgICBIb2JMaWJ8TWRlUGtnL0xpYnJhcnkvRHhlSG9iTGliL0R4ZUhvYkxpYi5pbmYN Cj4gPg0KPiA+IEBAIC0xMTAsNiArMTExLDcgQEAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5EWEVf RFJJVkVSXQ0KPiA+DQo+ID4gVHBtMTJEZXZpY2VMaWJ8U2VjdXJpdHlQa2cvTGlicmFyeS9UcG0x MkRldmljZUxpYlRjZy9UcG0xMkRldmljZUxpYlRjZw0KPiA+IFRwbTEyRGV2aWNlTGlifC5pDQo+ ID4gbmYNCj4gPg0KPiA+DQo+ID4gVHBtMkRldmljZUxpYnxTZWN1cml0eVBrZy9MaWJyYXJ5L1Rw bTJEZXZpY2VMaWJUY2cyL1RwbTJEZXZpY2VMaWJUY2cyLg0KPiA+IFRwbTJEZXZpY2VMaWJ8aW4N Cj4gPiBmDQo+ID4NCj4gPg0KPiA+IEZpbGVFeHBsb3JlckxpYnxNZGVNb2R1bGVQa2cvTGlicmFy eS9GaWxlRXhwbG9yZXJMaWIvRmlsZUV4cGxvcmVyTGliLmkNCj4gPiBuZg0KPiA+DQo+ID4gKyAg QmFzZUhhc2hMaWJ8U2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4 ZS5pbmYNCj4gPg0KPiA+DQo+ID4NCj4gPiAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5VRUZJX0RS SVZFUiwNCj4gPiBMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uRFhFX1JVTlRJTUVfRFJJVkVSLA0KPiA+ IExpYnJhcnlDbGFzc2VzLmNvbW1vbi5EWEVfU0FMX0RSSVZFUixdDQo+ID4NCj4gPiAgICBIb2JM aWJ8TWRlUGtnL0xpYnJhcnkvRHhlSG9iTGliL0R4ZUhvYkxpYi5pbmYNCj4gPg0KPiA+IEBAIC0y MTEsNiArMjEzLDEyIEBAIFtDb21wb25lbnRzXQ0KPiA+DQo+ID4NCj4gPiAgICBTZWN1cml0eVBr Zy9MaWJyYXJ5L0hhc2hMaWJUcG0yL0hhc2hMaWJUcG0yLmluZg0KPiA+DQo+ID4NCj4gPg0KPiA+ ICsgICMNCj4gPg0KPiA+ICsgICMgVW5pZmllZCBIYXNoIEFQSQ0KPiA+DQo+ID4gKyAgIw0KPiA+ DQo+ID4gKyAgU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS5p bmYNCj4gPg0KPiA+ICsgIFNlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hM aWJQZWkuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAgICAjDQo+ID4NCj4gPiAgICAjIFRDRyBT dG9yYWdlLg0KPiA+DQo+ID4gICAgIw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtn L1NlY3VyaXR5UGtnLnVuaSBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLnVuaQ0KPiA+IGluZGV4 IDY4NTg3MzA0ZDc3OS4uMzJlZjk3ZjgxNDYxIDEwMDY0NA0KPiA+IC0tLSBhL1NlY3VyaXR5UGtn L1NlY3VyaXR5UGtnLnVuaQ0KPiA+ICsrKyBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLnVuaQ0K PiA+IEBAIC01LDcgKzUsNyBAQA0KPiA+ICAvLyBJdCBhbHNvIHByb3ZpZGVzIHRoZSBkZWZpbml0 aW9ucyhpbmNsdWRpbmcgUFBJcy9QUk9UT0NPTHMvR1VJRHMNCj4gPiBhbmQgbGlicmFyeQ0KPiA+ IGNsYXNzZXMpDQo+ID4NCj4gPiAgLy8gYW5kIGxpYnJhcmllcyBpbnN0YW5jZXMsIHdoaWNoIGFy ZSB1c2VkIGZvciB0aG9zZSBmZWF0dXJlcy4NCj4gPg0KPiA+ICAvLw0KPiA+DQo+ID4gLS8vIENv cHlyaWdodCAoYykgMjAwOSAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKy8vIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMjAs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPg0K PiA+ICAvLw0KPiA+DQo+ID4gIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ID4NCj4gPiAgLy8NCj4gPg0KPiA+IEBAIC0yOTUsMyArMjk1LDE2IEBADQo+ ID4NCj4gPg0KPiA+ICAjc3RyaW5nIFNUUl9nRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZF9Q Y2RUcG0yQWNwaVRhYmxlTGFzYV9IRUxQDQo+ID4gI2xhbmd1YWdlIGVuLVVTICJUaGlzIFBDRCBk ZWZpbmVzIExBU0Egb2YgVFBNMiBBQ1BJIHRhYmxlXG5cbiINCj4gPg0KPiA+DQo+ID4gIjAgbWVh bnMgdGhpcyBmaWVsZCBpcyB1bnN1cHBvcnRlZFxuIg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4NCj4g PiArDQo+ID4gICAgICAjc3RyaW5nDQo+ID4gU1RSX2dFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VH dWlkX1BjZFN5c3RlbUhhc2hQb2xpY3lfUFJPTVBUDQo+ID4gI2xhbmd1YWdlIGVuLVVTICJIQVNI IGFsZ29yaXRobSB0byB2ZXJpZnkgdW5zaWduZWQgUEUvQ09GRiBpbWFnZSINCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsjc3RyaW5nIFNUUl9nRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZF9QY2RT eXN0ZW1IYXNoUG9saWN5X0hFTFANCj4gPiAjbGFuZ3VhZ2UgZW4tVVMgIlRoaXMgUENEIGluZGlj YXRlcyB0aGUgSEFTSCBhbGdvcml0aG0gdXNlZCBieSBVbmlmaWVkDQo+ID4gSGFzaCBBUEkuPEJS PjxCUj5cbiINCj4gPg0KPiA+ICsNCj4gPiArICJCYXNlZCBvbiB0aGUgdmFsdWUgc2V0LCB0aGUN Cj4gPiByZXF1aXJlZCBhbGdvcml0aG0gaXMgY2hvc2VuIHRvIGNhbGN1bGF0ZVxuIg0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGhhc2ggZGVzaXJlZC48QlI+ XG4iDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIweDAwMDAwMDAx ICAtICBNRDQuPEJSPlxuIg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiMHgwMDAwMDAwMiAgLSAgTUQ1LjxCUj5cbiINCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIjB4MDAwMDAwMDMgIC0gIFNIQTEuPEJSPlxuIg0KPiA+DQo+ID4gKw0K PiA+ICsgIjB4MDAwMDAwMDQgIC0NCj4gPiBTSEEyNTYuPEJSPlxuIg0KPiA+DQo+ID4gKw0KPiA+ ICsgIjB4MDAwMDAwMDUgIC0NCj4gPiBTSEEzODQuPEJSPlxuIg0KPiA+DQo+ID4gKw0KPiA+ICsg IjB4MDAwMDAwMDYgIC0NCj4gPiBTSEE1MTIuPEJSPlxuIg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiMHgwMDAwMDAwNyAgLSAgU00zLjxCUj4iDQo+ID4NCj4gPiAt LQ0KPiA+IDIuMTYuMi53aW5kb3dzLjENCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=