From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.4563.1579149352889637443 for ; Wed, 15 Jan 2020 20:35:53 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jan 2020 20:35:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,324,1574150400"; d="scan'208";a="425360946" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 15 Jan 2020 20:35:51 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jan 2020 20:35:51 -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 12:35:49 +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 12:35:49 +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//+HiYCAAIhGgA== Date: Thu, 16 Jan 2020 04:35:49 +0000 Message-ID: <9d9fbe3f0fd6436b95b8adb2a3fc80d9@intel.com> References: <20200114154107.655-1-amol.n.sukerkar@intel.com> <20200114154107.655-2-amol.n.sukerkar@intel.com> <233b34aaf0f241aa8f997c2eac4aa306@intel.com> <204e104f9b3c4cef81cdf6503074d911@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 SWYgdGhpcyBjaGFuZ2UgcGxhbnMgdG8gY2F0Y2ggZWRrMiAyMDIwIFExIHN0YWJsZSB0YWcsIEkg d2lsbCBhZGQgaXQgaW50byBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5n aXRodWIuaW8vd2lraS9FREstSUktUmVsZWFzZS1QbGFubmluZw0KVGhlbiwgeW91IG5lZWQgdG8g Zm9sbG93IFExIHN0YWJsZSB0YWcgc2NoZWR1bGUgdG8gZmluaXNoIHRoaXMgY2hhbmdlLg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN1a2Vya2FyLCBBbW9sIE4gPGFt b2wubi5zdWtlcmthckBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDE2LCAy MDIwIDEyOjI3IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBZ YW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBBZ3Jhd2FsLCBTYWNoaW4NCj4gPHNh Y2hpbi5hZ3Jhd2FsQGludGVsLmNvbT47IE11c3RpLCBTcmluaXZhcyA8c3Jpbml2YXMubXVzdGlA aW50ZWwuY29tPjsgU3VrZXJrYXIsIEFtb2wgTiA8YW1vbC5uLnN1a2Vya2FyQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBTZWN1cml0eVBrZy9C YXNlSGFzaExpYjogSW1wbGVtZW50IFVuaWZpZWQgSGFzaCBDYWxjdWxhdGlvbiBBUEkNCj4gDQo+ IFRoYW5rcywgTGltaW5nISBIb3cgZG8gSSBmaW5kIG91dCBpZiBpdCBjYXRjaGVzIEVESyAyMDIw IFExIHN0YWJsZSB0YWc/DQo+IA0KPiB+IEFtb2wNCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIExpbWluZyBHYW8NCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDE1 LCAyMDIwIDg6MzkgUE0NCj4gVG86IFN1a2Vya2FyLCBBbW9sIE4gPGFtb2wubi5zdWtlcmthckBp bnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBBZ3Jhd2FsLCBT YWNoaW4NCj4gPHNhY2hpbi5hZ3Jhd2FsQGludGVsLmNvbT47IE11c3RpLCBTcmluaXZhcyA8c3Jp bml2YXMubXVzdGlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRD SCB2MiAxLzFdIFNlY3VyaXR5UGtnL0Jhc2VIYXNoTGliOiBJbXBsZW1lbnQgVW5pZmllZCBIYXNo IENhbGN1bGF0aW9uIEFQSQ0KPiANCj4gWWVzLiBEb2VzIGl0IGNhdGNoIEVESzIgMjAyMCBRMSBz dGFibGUgdGFnPw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206 IFN1a2Vya2FyLCBBbW9sIE4gPGFtb2wubi5zdWtlcmthckBpbnRlbC5jb20+DQo+ID4gU2VudDog VGh1cnNkYXksIEphbnVhcnkgMTYsIDIwMjAgNzowMiBBTQ0KPiA+IFRvOiBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV2FuZywNCj4gPiBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBBZ3Jhd2FsLCBTYWNoaW4gPHNhY2hpbi5hZ3Jhd2FsQGludGVsLmNvbT47 DQo+ID4gTXVzdGksIFNyaW5pdmFzIDxzcmluaXZhcy5tdXN0aUBpbnRlbC5jb20+OyBTdWtlcmth ciwgQW1vbCBODQo+ID4gPGFtb2wubi5zdWtlcmthckBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDog UkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBTZWN1cml0eVBrZy9CYXNlSGFzaExpYjoN Cj4gPiBJbXBsZW1lbnQgVW5pZmllZCBIYXNoIENhbGN1bGF0aW9uIEFQSQ0KPiA+DQo+ID4gSGkg TGltaW5nLA0KPiA+DQo+ID4gV2UgYWxyZWFkeSBoYXZlIGEgdGlja2V0IGZpbGVkIGluIEJ1Z3pp bGxhLCBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTEu IFdvdWxkIHRoaXMgYmUgc3VmZmljaWVudD8NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBBbW9sDQo+ ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEdhbywgTGltaW5n IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDE0LCAy MDIwIDg6NDcgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFdhbmcsIEppYW4gSiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gPiBTdWtlcmthciwgQW1vbCBOIDxhbW9sLm4uc3Vr ZXJrYXJAaW50ZWwuY29tPg0KPiA+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47 IEFncmF3YWwsIFNhY2hpbiA8c2FjaGluLmFncmF3YWxAaW50ZWwuY29tPjsNCj4gPiBNdXN0aSwg U3Jpbml2YXMgPHNyaW5pdmFzLm11c3RpQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFtQQVRDSCB2MiAxLzFdIFNlY3VyaXR5UGtnL0Jhc2VIYXNoTGliOg0KPiA+IElt cGxlbWVudCBVbmlmaWVkIEhhc2ggQ2FsY3VsYXRpb24gQVBJDQo+ID4NCj4gPiBBbW9sOg0KPiA+ ICAgVGhpcyBpcyBuZXcgZmVhdHVyZS4gUGxlYXNlIHN1Ym1pdCBCWg0KPiA+IChodHRwczovL2J1 Z3ppbGxhLnRpYW5vY29yZS5vcmcvKSB0byB0cmFjayBpdC4gSWYgdGhpcyBmZWF0dXJlIGNhdGNo ZXMgZWRrMiAyMDIwIFExIHN0YWJsZSB0YWcsIEkgd2lsbCBhZGQgaXQgaW50byBlZGsyIGZlYXR1 cmUgcGxhbm5pbmcuDQo+ID4NCj4gPiBUaGFua3MNCj4gPiBMaW1pbmcNCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFdhbmcsDQo+ID4gSmlhbiBKDQo+ID4gU2VudDog MjAyMMTqMdTCMTXI1SAxMToxNA0KPiA+IFRvOiBTdWtlcmthciwgQW1vbCBOIDxhbW9sLm4uc3Vr ZXJrYXJAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPiA8 amlld2VuLnlhb0BpbnRlbC5jb20+OyBBZ3Jhd2FsLCBTYWNoaW4gPHNhY2hpbi5hZ3Jhd2FsQGlu dGVsLmNvbT47DQo+ID4gTXVzdGksIFNyaW5pdmFzIDxzcmluaXZhcy5tdXN0aUBpbnRlbC5jb20+ DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBTZWN1cml0eVBr Zy9CYXNlSGFzaExpYjoNCj4gPiBJbXBsZW1lbnQgVW5pZmllZCBIYXNoIENhbGN1bGF0aW9uIEFQ SQ0KPiA+DQo+ID4gQW1vbCwNCj4gPg0KPiA+IDEuIFlvdXIgcGF0Y2ggZG9lc24ndCBzdXBwb3J0 IGhhc2hpbmcgbW9yZSB0aGFuIG9uZSBhbGdvcml0aG0gYXQgdGhlIHNhbWUgdGltZS4NCj4gPiAg ICBJcyB0aGlzIG9uIHB1cnBvc2U/IFNvcnJ5IEkgZG9uJ3QgcmVtZW1iZXIgdGhlIGNvbmNsdXNp b24gaW4gbGFzdCBkaXNjdXNzaW9uLg0KPiA+IDIuIFRoZXJlJ3JlIHRyYWlsaW5nIHNwYWNlcyBp biBCYXNlSGFzaExpYkNvbW1vbi5jIGFuZCBCYXNoSGFzaExpYkNvbW1vbi5oLg0KPiA+ICAgIFlv dSBjYW4gdXNlIEJhc2VUb29sc1xTY3JpcHRzXFBhdGNoQ2hlY2sucHkgdG8gY2hlY2sgaXQgYmVm b3JlIHNlbmRpbmcgcGF0Y2guDQo+ID4NCj4gPiBTZWUgbXkgb3RoZXIgY29tbWVudHMgYmVsb3cu DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBTdWtl cmthciwgQW1vbCBOIDxhbW9sLm4uc3VrZXJrYXJAaW50ZWwuY29tPg0KPiA+ID4gU2VudDogVHVl c2RheSwgSmFudWFyeSAxNCwgMjAyMCAxMTo0MSBQTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+ID4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPiA+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gPiA+IEFncmF3YWwsIFNhY2hpbiA8 c2FjaGluLmFncmF3YWxAaW50ZWwuY29tPjsgTXVzdGksIFNyaW5pdmFzDQo+ID4gPiA8c3Jpbml2 YXMubXVzdGlAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogW1BBVENIIHYyIDEvMV0gU2VjdXJp dHlQa2cvQmFzZUhhc2hMaWI6IEltcGxlbWVudCBVbmlmaWVkDQo+ID4gPiBIYXNoIENhbGN1bGF0 aW9uIEFQSQ0KPiA+ID4NCj4gPiA+IFRoaXMgY29tbWl0IGludHJvZHVjZXMgYSBVbmlmaWVkIEhh c2ggQVBJIHRvIGNhbGN1bGF0ZSBoYXNoIHVzaW5nIGENCj4gPiA+IGhhc2hpbmcgYWxnb3JpdGht IHNwZWNpZmllZCBieSB0aGUgUENELCBQY2RTeXN0ZW1IYXNoUG9saWN5LiBUaGlzDQo+ID4gPiBs aWJyYXJ5IGludGVyZmFjZXMgd2l0aCB0aGUgdmFyaW91cyBoYXNoaW5nIEFQSSwgc3VjaCBhcywg TUQ0LCBNRDUsDQo+ID4gPiBTSEExLCBTSEEyNTYsDQo+ID4gPiBTSEE1MTIgYW5kIFNNM18yNTYg aW1wbGVtZW50ZWQgaW4gQ3J5cHRvUGtnLiBUaGUgdXNlciBjYW4gY2FsY3VsYXRlDQo+ID4gPiB0 aGUgZGVzaXJlZCBoYXNoIGJ5IHNldHRpbmcgUGNkU3lzdGVtSGFzaFBvbGljeSB0byBhcHByb3By aWF0ZSB2YWx1ZS4NCj4gPiA+DQo+ID4gPiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRl bC5jb20+DQo+ID4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4g PiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g PiA+IFNpZ25lZC1vZmYtYnk6IFN1a2Vya2FyLCBBbW9sIE4gPGFtb2wubi5zdWtlcmthckBpbnRl bC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+DQo+ID4gPiBOb3RlczoNCj4gPiA+ICAgICB2MjoNCj4g PiA+ICAgICAtIEZpeGVkIHRoZSBjb21taXQgbWVzc2FnZSBmb3JtYXQNCj4gPiA+DQo+ID4gPiAg U2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkNvbW1vbi5jIHwgMjUy DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIFNlY3VyaXR5UGtnL0xpYnJhcnkv QmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuYyAgICB8IDEyMiArKysrKysrKysrDQo+ID4gPiAg U2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYlBlaS5jICAgIHwgMTI1 ICsrKysrKysrKysNCj4gPiA+ICBTZWN1cml0eVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUhhc2hM aWIuaCAgICAgICAgICAgfCAgODQgKysrKysrKw0KPiA+ID4gIFNlY3VyaXR5UGtnL0xpYnJhcnkv QmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJDb21tb24uaCB8ICA3MSArKysrKysNCj4gPiA+IFNlY3Vy aXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuaW5mICB8ICA0NyArKysr DQo+ID4gPiBTZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLnVu aSAgfCAgMTggKysNCj4gPiA+IFNlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhh c2hMaWJQZWkuaW5mICB8ICA1MiArKysrDQo+ID4gPiBTZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VI YXNoTGliL0Jhc2VIYXNoTGliUGVpLnVuaSAgfCAgMTcgKysNCj4gPiA+ICBTZWN1cml0eVBrZy9T ZWN1cml0eVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjMgKy0NCj4gPiA+ICBT ZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAg Ky0NCj4gPiA+ICBTZWN1cml0eVBrZy9TZWN1cml0eVBrZy51bmkgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTUgKy0NCj4gPiA+ICAxMiBmaWxlcyBjaGFuZ2VkLCA4MzMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cv TGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkNvbW1vbi5jDQo+ID4gPiBiL1NlY3VyaXR5 UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJDb21tb24uYw0KPiA+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjg3NDJlNTViNWY3DQo+ ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VI YXNoTGliL0Jhc2VIYXNoTGliQ29tbW9uLmMNCj4gPiA+IEBAIC0wLDAgKzEsMjUyIEBADQo+ID4g PiArLyoqIEBmaWxlDQo+ID4gPg0KPiA+ID4gKyAgSW1wbGVtZW50IGltYWdlIHZlcmlmaWNhdGlv biBzZXJ2aWNlcyBmb3Igc2VjdXJlIGJvb3Qgc2VydmljZQ0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiArICBDYXV0aW9uOiBUaGlzIGZpbGUgcmVxdWlyZXMgYWRkaXRpb25hbCByZXZpZXcg d2hlbiBtb2RpZmllZC4NCj4gPiA+DQo+ID4gPiArICBUaGlzIGxpYnJhcnkgd2lsbCBoYXZlIGV4 dGVybmFsIGlucHV0IC0gUEUvQ09GRiBpbWFnZS4NCj4gPiA+DQo+ID4gPiArICBUaGlzIGV4dGVy bmFsIGlucHV0IG11c3QgYmUgdmFsaWRhdGVkIGNhcmVmdWxseSB0byBhdm9pZCBzZWN1cml0eQ0K PiA+ID4gKyBpc3N1ZSBsaWtlDQo+ID4gPg0KPiA+ID4gKyAgYnVmZmVyIG92ZXJmbG93LCBpbnRl Z2VyIG92ZXJmbG93Lg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBEeGVJbWFnZVZl cmlmaWNhdGlvbkxpYkltYWdlUmVhZCgpIGZ1bmN0aW9uIHdpbGwgbWFrZSBzdXJlIHRoZQ0KPiA+ ID4gKyBQRS9DT0ZGDQo+ID4gPiBpbWFnZSBjb250ZW50DQo+ID4gPg0KPiA+ID4gKyAgcmVhZCBp cyB3aXRoaW4gdGhlIGltYWdlIGJ1ZmZlci4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4g KyAgRHhlSW1hZ2VWZXJpZmljYXRpb25IYW5kbGVyKCksIEhhc2hQZUltYWdlQnlUeXBlKCksIEhh c2hQZUltYWdlKCkNCj4gPiA+IGZ1bmN0aW9uIHdpbGwgYWNjZXB0DQo+ID4gPg0KPiA+ID4gKyAg dW50cnVzdGVkIFBFL0NPRkYgaW1hZ2UgYW5kIHZhbGlkYXRlIGl0cyBkYXRhIHN0cnVjdHVyZSB3 aXRoaW4NCj4gPiA+ICsgdGhpcyBpbWFnZQ0KPiA+ID4gYnVmZmVyIGJlZm9yZSB1c2UuDQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICtDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPiA+DQo+ ID4gPiArKEMpIENvcHlyaWdodCAyMDE2IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVs b3BtZW50IExQPEJSPg0KPiA+ID4NCj4gPiA+ICtUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh bnlpbmcgbWF0ZXJpYWxzDQo+ID4gPg0KPiA+ID4gK2FyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQo+ID4gPiArdGhlIEJTRA0K PiA+ID4gTGljZW5zZQ0KPiA+ID4NCj4gPiA+ICt3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiA+ICttYXkgYmUgZm91 bmQNCj4gPiA+IGF0DQo+ID4gPg0KPiA+ID4gK2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNl cy9ic2QtbGljZW5zZS5waHANCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gK1RIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ ID4gPiArQkFTSVMsDQo+ID4gPg0KPiA+ID4gK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNF TlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTDQo+ID4gPiBPUiBJTVBMSUVELg0K PiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArKiovDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4N Cj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gPg0KPiA+ID4gKyNpbmNs dWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgPExp YnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KPiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGli cmFyeS9CYXNlQ3J5cHRMaWIuaD4NCj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVi dWdMaWIuaD4NCj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ID4g Pg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VIYXNoTGliLmg+DQo+ID4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+DQo+ID4gPiArICBJbml0IGhhc2ggc2VxdWVuY2Ug d2l0aCBIYXNoIEFsZ29yaXRobSBzcGVjaWZpZWQgYnkgSGFzaFBvbGljeS4NCj4gPiA+DQo+ID4g PiArDQo+ID4gPg0KPiA+ID4gKyAgQHBhcmFtIEhhc2hQb2xpY3kgIEhhc2ggQWxnb3JpdGhtIFBv bGljeS4NCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgSGFzaCBoYW5kbGUuDQo+ ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICBIYXNoIHN0 YXJ0IGFuZCBIYXNoSGFuZGxlIHJldHVybmVkLg0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgRkFM U0UgICAgICBIYXNoIEluaXQgdW5zdWNjZXNzZnVsLg0KPiA+ID4NCj4gPiA+ICsqKi8NCj4gPiA+ DQo+ID4gPiArQk9PTEVBTg0KPiA+ID4NCj4gPiA+ICtFRklBUEkNCj4gPiA+DQo+ID4gPiArSGFz aEluaXRJbnRlcm5hbCAoDQo+ID4gPg0KPiA+ID4gKyAgSU4gVUlOVDggICAgICAgICAgSGFzaFBv bGljeSwNCj4gPiA+DQo+ID4gPiArICBPVVQgSEFTSF9IQU5ETEUgICAqSGFzaEhhbmRsZQ0KPiA+ ID4NCj4gPiA+ICsgICkNCj4gPiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ICsgIEJPT0xFQU4g IFN0YXR1czsNCj4gPiA+DQo+ID4gPiArICBWT0lEICAgICAqSGFzaEN0eDsNCj4gPiA+DQo+ID4g PiArICBVSU5UTiAgICBDdHhTaXplOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBz d2l0Y2ggKEhhc2hQb2xpY3kpIHsNCj4gPiA+DQo+ID4gPiArICAgIGNhc2UgSEFTSF9NRDQ6DQo+ ID4gPg0KPiA+ID4gKyAgICAgIEN0eFNpemUgPSBNZDRHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+ DQo+ID4gPiArICAgICAgSGFzaEN0eCA9IEFsbG9jYXRlUG9vbCAoQ3R4U2l6ZSk7DQo+ID4gPg0K PiA+ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAhPSBOVUxMKTsNCj4gPiA+DQo+ID4gPiArDQo+ ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IE1kNEluaXQgKEhhc2hDdHgpOw0KPiA+ID4NCj4g PiA+ICsgICAgICBicmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBjYXNl IEhBU0hfTUQ1Og0KPiA+ID4NCj4gPiA+ICsgICAgICBDdHhTaXplID0gTWQ1R2V0Q29udGV4dFNp emUgKCk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIEhhc2hDdHggPSBBbGxvY2F0ZVBvb2wgKEN0eFNp emUpOw0KPiA+ID4NCj4gPiA+ICsgICAgICBBU1NFUlQgKEhhc2hDdHggIT0gTlVMTCk7DQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgIFN0YXR1cyA9IE1kNUluaXQgKEhhc2hDdHgp Ow0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ ID4gKyAgICBjYXNlIEhBU0hfU0hBMToNCj4gPiA+DQo+ID4gPiArICAgICAgQ3R4U2l6ZSA9IFNo YTFHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+DQo+ID4gPiArICAgICAgSGFzaEN0eCA9IEFsbG9j YXRlUG9vbCAoQ3R4U2l6ZSk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAh PSBOVUxMKTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNo YTFJbml0IChIYXNoQ3R4KTsNCj4gPiA+DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPg0KPiA+ ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgY2FzZSBIQVNIX1NIQTI1NjoNCj4gPiA+DQo+ID4gPiAr ICAgICAgQ3R4U2l6ZSA9IFNoYTI1NkdldENvbnRleHRTaXplICgpOw0KPiA+ID4NCj4gPiA+ICsg ICAgICBIYXNoQ3R4ID0gQWxsb2NhdGVQb29sIChDdHhTaXplKTsNCj4gPiA+DQo+ID4gPiArICAg ICAgQVNTRVJUIChIYXNoQ3R4ICE9IE5VTEwpOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4g PiArICAgICAgU3RhdHVzID0gU2hhMjU2SW5pdCAoSGFzaEN0eCk7DQo+ID4gPg0KPiA+ID4gKyAg ICAgIGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgIGNhc2UgSEFTSF9T SEEzODQ6DQo+ID4gPg0KPiA+ID4gKyAgICAgIEN0eFNpemUgPSBTaGEzODRHZXRDb250ZXh0U2l6 ZSAoKTsNCj4gPiA+DQo+ID4gPiArICAgICAgSGFzaEN0eCA9IEFsbG9jYXRlUG9vbCAoQ3R4U2l6 ZSk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAhPSBOVUxMKTsNCj4gPiA+ DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTM4NEluaXQgKEhhc2hD dHgpOw0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0K PiA+ID4gKyAgICBjYXNlIEhBU0hfU0hBNTEyOg0KPiA+ID4NCj4gPiA+ICsgICAgICBDdHhTaXpl ID0gU2hhNTEyR2V0Q29udGV4dFNpemUgKCk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIEhhc2hDdHgg PSBBbGxvY2F0ZVBvb2wgKEN0eFNpemUpOw0KPiA+ID4NCj4gPiA+ICsgICAgICBBU1NFUlQgKEhh c2hDdHggIT0gTlVMTCk7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgICBTdGF0 dXMgPSBTaGE1MTJJbml0IChIYXNoQ3R4KTsNCj4gPiA+DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgY2FzZSBIQVNIX1NNM18yNTY6DQo+ID4g Pg0KPiA+ID4gKyAgICAgIEN0eFNpemUgPSBTbTNHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+DQo+ ID4gPiArICAgICAgSGFzaEN0eCA9IEFsbG9jYXRlUG9vbCAoQ3R4U2l6ZSk7DQo+ID4gPg0KPiA+ ID4gKyAgICAgIEFTU0VSVCAoSGFzaEN0eCAhPSBOVUxMKTsNCj4gPiA+DQo+ID4gPiArDQo+ID4g Pg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNtM0luaXQgKEhhc2hDdHgpOw0KPiA+ID4NCj4gPiA+ ICsgICAgICBicmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBkZWZhdWx0 Og0KPiA+ID4NCj4gPiA+ICsgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPiA+DQo+ID4gPiArICAg ICAgYnJlYWs7DQo+ID4gPg0KPiA+ID4gKyAgfQ0KPiA+ID4NCj4gPiA+ICsNCj4gPg0KPiA+IDMu IEluc3RlYWQgb2Ygc3dpdGNoLi5jYXNlLCB1c2luZyBhIGdsb2JhbCBhcnJheSB0byBkZWZpbmVz IGFsbA0KPiA+IHN1cHBvcnRlZCBpbnRlcmZhY2VzIHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50LCBz aW5jZSB5b3UgY2FuIHZhbHVlIG9mIFBjZFN5c3RlbUhhc2hQb2xpY3kgdG8gaW5kZXggdGhlbSBk aXJlY3RseS4NCj4gPg0KPiA+ID4NCj4gPiA+ICsgICpIYXNoSGFuZGxlID0gKEhBU0hfSEFORExF KUhhc2hDdHg7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIHJldHVybiBTdGF0dXM7 DQo+ID4gPg0KPiA+ID4gK30NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ ID4NCj4gPiA+ICsgIFVwZGF0ZSBoYXNoIGRhdGEgd2l0aCBIYXNoIEFsZ29yaXRobSBzcGVjaWZp ZWQgYnkgSGFzaFBvbGljeS4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgQHBhcmFt IEhhc2hQb2xpY3kgICAgSGFzaCBBbGdvcml0aG0gUG9saWN5Lg0KPiA+ID4NCj4gPiA+ICsgIEBw YXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFuZGxlLg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBE YXRhVG9IYXNoICAgIERhdGEgdG8gYmUgaGFzaGVkLg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBE YXRhVG9IYXNoTGVuIERhdGEgc2l6ZS4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAg QHJldHZhbCBUUlVFICAgICAgICAgSGFzaCB1cGRhdGVkLg0KPiA+ID4NCj4gPiA+ICsgIEByZXR2 YWwgRkFMU0UgICAgICAgIEhhc2ggdXBkYXRlZCB1bnN1Y2Nlc3NmdWwuDQo+ID4gPg0KPiA+ID4g KyoqLw0KPiA+ID4NCj4gPiA+ICtCT09MRUFODQo+ID4gPg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4N Cj4gPiA+ICtIYXNoVXBkYXRlSW50ZXJuYWwgKA0KPiA+ID4NCj4gPiA+ICsgIElOIFVJTlQ4ICAg ICAgICBIYXNoUG9saWN5LA0KPiA+ID4NCj4gPiA+ICsgIElOIEhBU0hfSEFORExFICBIYXNoSGFu ZGxlLA0KPiA+ID4NCj4gPiA+ICsgIElOIFZPSUQgICAgICAgICAqRGF0YVRvSGFzaCwNCj4gPiA+ DQo+ID4gPiArICBJTiBVSU5UTiAgICAgICAgRGF0YVRvSGFzaExlbg0KPiA+ID4NCj4gPiA+ICsg ICkNCj4gPiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ICsgIEJPT0xFQU4gIFN0YXR1czsNCj4g PiA+DQo+ID4gPiArICBWT0lEICAgICAqSGFzaEN0eDsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0K PiA+ID4gKyAgSGFzaEN0eCA9IChWT0lEICopSGFzaEhhbmRsZTsNCj4gPiA+DQo+ID4gPiArDQo+ ID4gPg0KPiA+ID4gKyAgc3dpdGNoIChIYXNoUG9saWN5KSB7DQo+ID4gPg0KPiA+ID4gKyAgICBj YXNlIEhBU0hfTUQ0Og0KPiA+ID4NCj4gPiA+ICsgICAgICBTdGF0dXMgPSBNZDRVcGRhdGUgKEhh c2hDdHgsIERhdGFUb0hhc2gsIERhdGFUb0hhc2hMZW4pOw0KPiA+ID4NCj4gPiA+ICsgICAgICBi cmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBjYXNlIEhBU0hfTUQ1Og0K PiA+ID4NCj4gPiA+ICsgICAgICBTdGF0dXMgPSBNZDVVcGRhdGUgKEhhc2hDdHgsIERhdGFUb0hh c2gsIERhdGFUb0hhc2hMZW4pOw0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+DQo+ ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBjYXNlIEhBU0hfU0hBMToNCj4gPiA+DQo+ID4gPiAr ICAgICAgU3RhdHVzID0gU2hhMVVwZGF0ZSAoSGFzaEN0eCwgRGF0YVRvSGFzaCwgRGF0YVRvSGFz aExlbik7DQo+ID4gPg0KPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiArICAgIGNhc2UgSEFTSF9TSEEyNTY6DQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1 cyA9IFNoYTI1NlVwZGF0ZSAoSGFzaEN0eCwgRGF0YVRvSGFzaCwgRGF0YVRvSGFzaExlbik7DQo+ ID4gPg0KPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiAr ICAgIGNhc2UgSEFTSF9TSEEzODQ6DQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTM4 NFVwZGF0ZSAoSGFzaEN0eCwgRGF0YVRvSGFzaCwgRGF0YVRvSGFzaExlbik7DQo+ID4gPg0KPiA+ ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgIGNhc2Ug SEFTSF9TSEE1MTI6DQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTUxMlVwZGF0ZSAo SGFzaEN0eCwgRGF0YVRvSGFzaCwgRGF0YVRvSGFzaExlbik7DQo+ID4gPg0KPiA+ID4gKyAgICAg IGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgIGNhc2UgSEFTSF9TTTNf MjU2Og0KPiA+ID4NCj4gPiA+ICsgICAgICBTdGF0dXMgPSBTbTNVcGRhdGUgKEhhc2hDdHgsIERh dGFUb0hhc2gsIERhdGFUb0hhc2hMZW4pOw0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsNCj4g PiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBkZWZhdWx0Og0KPiA+ID4NCj4gPiA+ICsg ICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPiA+DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPg0K PiA+ID4gKyAgfQ0KPiA+ID4NCj4gPg0KPiA+IDQuIFRoZSBzYW1lIGFzIDMNCj4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4gPg0KPiA+ID4gK30NCj4gPiA+ DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4NCj4gPiA+ICsgIEhhc2ggY29tcGxl dGUgd2l0aCBIYXNoIEFsZ29yaXRobSBzcGVjaWZpZWQgYnkgSGFzaFBvbGljeS4NCj4gPiA+DQo+ ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgQHBhcmFtIEhhc2hQb2xpY3kgICAgSGFzaCBBbGdvcml0 aG0gUG9saWN5Lg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFu ZGxlLg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBEaWdlc3QgICAgICAgIEhhc2ggRGlnZXN0Lg0K PiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBAcmV0dmFsIFRSVUUgICAgICAgICBIYXNo IGNvbXBsZXRlIGFuZCBEaWdlc3QgaXMgcmV0dXJuZWQuDQo+ID4gPg0KPiA+ID4gKyAgQHJldHZh bCBGQUxTRSAgICAgICAgSGFzaCBjb21wbGV0ZSB1bnN1Y2Nlc3NmdWwuDQo+ID4gPg0KPiA+ID4g KyoqLw0KPiA+ID4NCj4gPiA+ICtCT09MRUFODQo+ID4gPg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4N Cj4gPiA+ICtIYXNoRmluYWxJbnRlcm5hbCAoDQo+ID4gPg0KPiA+ID4gKyAgSU4gVUlOVDggICAg ICAgIEhhc2hQb2xpY3ksDQo+ID4gPg0KPiA+ID4gKyAgSU4gSEFTSF9IQU5ETEUgIEhhc2hIYW5k bGUsDQo+ID4gPg0KPiA+ID4gKyAgT1VUIFVJTlQ4ICAgICAgICoqRGlnZXN0DQo+ID4gPg0KPiA+ ID4gKyAgKQ0KPiA+ID4NCj4gPiA+ICt7DQo+ID4gPg0KPiA+ID4gKyAgQk9PTEVBTiAgU3RhdHVz Ow0KPiA+ID4NCj4gPiA+ICsgIFZPSUQgICAgICpIYXNoQ3R4Ow0KPiA+ID4NCj4gPiA+ICsgIFVJ TlQ4ICAgIERpZ2VzdERhdGFbU0hBNTEyX0RJR0VTVF9TSVpFXTsNCj4gPiA+DQo+ID4gPiArDQo+ ID4gPg0KPiA+ID4gKyAgSGFzaEN0eCA9IChWT0lEICopSGFzaEhhbmRsZTsNCj4gPiA+DQo+ID4g PiArDQo+ID4gPg0KPiA+ID4gKyAgc3dpdGNoIChIYXNoUG9saWN5KSB7DQo+ID4gPg0KPiA+ID4g KyAgICBjYXNlIEhBU0hfTUQ0Og0KPiA+ID4NCj4gPiA+ICsgICAgICBTdGF0dXMgPSBNZDRGaW5h bCAoSGFzaEN0eCwgRGlnZXN0RGF0YSk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIENvcHlNZW0gKCpE aWdlc3QsIERpZ2VzdERhdGEsIE1ENF9ESUdFU1RfU0laRSk7DQo+ID4gPg0KPiA+ID4gKyAgICAg IGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgIGNhc2UgSEFTSF9NRDU6 DQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IE1kNUZpbmFsIChIYXNoQ3R4LCBEaWdlc3RE YXRhKTsNCj4gPiA+DQo+ID4gPiArICAgICAgQ29weU1lbSAoKkRpZ2VzdCwgRGlnZXN0RGF0YSwg TUQ1X0RJR0VTVF9TSVpFKTsNCj4gPiA+DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPg0KPiA+ ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgY2FzZSBIQVNIX1NIQTE6DQo+ID4gPg0KPiA+ID4gKyAg ICAgIFN0YXR1cyA9IFNoYTFGaW5hbCAoSGFzaEN0eCwgRGlnZXN0RGF0YSk7DQo+ID4gPg0KPiA+ ID4gKyAgICAgIENvcHlNZW0gKCpEaWdlc3QsIERpZ2VzdERhdGEsIFNIQTFfRElHRVNUX1NJWkUp Ow0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ ID4gKyAgICBjYXNlIEhBU0hfU0hBMjU2Og0KPiA+ID4NCj4gPiA+ICsgICAgICBTdGF0dXMgPSBT aGEyNTZGaW5hbCAoSGFzaEN0eCwgRGlnZXN0RGF0YSk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIENv cHlNZW0gKCpEaWdlc3QsIERpZ2VzdERhdGEsIFNIQTI1Nl9ESUdFU1RfU0laRSk7DQo+ID4gPg0K PiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICAgIGNh c2UgSEFTSF9TSEEzODQ6DQo+ID4gPg0KPiA+ID4gKyAgICAgIFN0YXR1cyA9IFNoYTM4NEZpbmFs IChIYXNoQ3R4LCBEaWdlc3REYXRhKTsNCj4gPiA+DQo+ID4gPiArICAgICAgQ29weU1lbSAoKkRp Z2VzdCwgRGlnZXN0RGF0YSwgU0hBMzg0X0RJR0VTVF9TSVpFKTsNCj4gPiA+DQo+ID4gPiArICAg ICAgYnJlYWs7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgY2FzZSBIQVNIX1NI QTUxMjoNCj4gPiA+DQo+ID4gPiArICAgICAgU3RhdHVzID0gU2hhNTEyRmluYWwgKEhhc2hDdHgs IERpZ2VzdERhdGEpOw0KPiA+ID4NCj4gPiA+ICsgICAgICBDb3B5TWVtICgqRGlnZXN0LCBEaWdl c3REYXRhLCBTSEE1MTJfRElHRVNUX1NJWkUpOw0KPiA+ID4NCj4gPiA+ICsgICAgICBicmVhazsN Cj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgICBjYXNlIEhBU0hfU00zXzI1NjoNCj4g PiA+DQo+ID4gPiArICAgICAgU3RhdHVzID0gU20zRmluYWwgKEhhc2hDdHgsIERpZ2VzdERhdGEp Ow0KPiA+ID4NCj4gPiA+ICsgICAgICBDb3B5TWVtICgqRGlnZXN0LCBEaWdlc3REYXRhLCBTTTNf MjU2X0RJR0VTVF9TSVpFKTsNCj4gPiA+DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPg0KPiA+ ID4gKw0KPiA+ID4NCj4gPiA+ICsgICAgZGVmYXVsdDoNCj4gPiA+DQo+ID4gPiArICAgICAgQVNT RVJUIChGQUxTRSk7DQo+ID4gPg0KPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4NCj4gPg0KPiA+ IDUuIFRoZSBzYW1lIGFzIDMNCj4gPg0KPiA+ID4gKyAgfQ0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiArICBGcmVlUG9vbCAoSGFzaEN0eCk7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4g PiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4gPg0KPiA+ID4gK30NCj4gPiA+IFwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQ0KPiA+ID4gZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL0xpYnJhcnkv QmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJEeGUuYw0KPiA+ID4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmMNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmVhMjJjZmUxNmUyZg0KPiA+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ID4gKysrIGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFz aExpYkR4ZS5jDQo+ID4gPiBAQCAtMCwwICsxLDEyMiBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ ID4NCj4gPiA+ICsgIFRoaXMgbGlicmFyeSBpcyBVbmlmaWVkIEhhc2ggQVBJLiBJdCB3aWxsIHJl ZGlyZWN0IGhhc2ggcmVxdWVzdA0KPiA+ID4gKyB0bw0KPiA+ID4NCj4gPiA+ICsgIHRoZSBoYXNo IGhhbmRsZXIgc3BlY2lmaWVkIGJ5IFBjZFN5c3RlbUhhc2hQb2xpY3kgc3VjaCBhcyBTSEExLA0K PiA+ID4gKyBTSEEyNTYsDQo+ID4gPg0KPiA+ID4gKyAgU0hBMzg0IGFuZCBTTTMuLi4NCj4gPiA+ DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gK0NvcHlyaWdodCAoYykgMjAxMyAtIDIwMjAsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ID4gKzxCUj4NCj4gPiA+DQo+ ID4gPiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyoqLw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4g PiArDQo+ID4gPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPiA+DQo+ ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ID4NCj4gPiA+ICsj aW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4gPg0KPiA+ID4gKyNp bmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJy YXJ5L1BjZExpYi5oPg0KPiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlSGFzaExp Yi5oPg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgIkJhc2VIYXNoTGli Q29tbW9uLmgiDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+DQo+ID4g PiArICBJbml0IGhhc2ggc2VxdWVuY2UuDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsg IEBwYXJhbSBIYXNoSGFuZGxlICBIYXNoIGhhbmRsZS4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0K PiA+ID4gKyAgQHJldHZhbCBUUlVFICAgICAgIEhhc2ggc3RhcnQgYW5kIEhhc2hIYW5kbGUgcmV0 dXJuZWQuDQo+ID4gPg0KPiA+ID4gKyAgQHJldHZhbCBGQUxTRSAgICAgIEhhc2ggSW5pdCB1bnN1 Y2Nlc3NmdWwuDQo+ID4gPg0KPiA+ID4gKyoqLw0KPiA+ID4NCj4gPiA+ICtCT09MRUFODQo+ID4g Pg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4NCj4gPiA+ICtIYXNoQXBpSW5pdCAoDQo+ID4gPg0KPiA+ ID4gKyAgT1VUICBIQVNIX0hBTkRMRSAgICpIYXNoSGFuZGxlDQo+ID4gPg0KPiA+ID4gKykNCj4g PiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1czsNCj4gPiA+ DQo+ID4gPiArICBVSU5UOCAgICAgICBIYXNoUG9saWN5Ow0KPiA+ID4NCj4gPiA+ICsgIEhBU0hf SEFORExFIEhhbmRsZTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgSGFzaFBvbGlj eSA9IFBjZEdldDggKFBjZFN5c3RlbUhhc2hQb2xpY3kpOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiArICBTdGF0dXMgPSBIYXNoSW5pdEludGVybmFsIChIYXNoUG9saWN5LCAmSGFuZGxl KTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgKkhhc2hIYW5kbGUgPSBIYW5kbGU7 DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4gPg0K PiA+ID4gK30NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4NCj4gPiA+ ICsgIFVwZGF0ZSBoYXNoIGRhdGEuDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEBw YXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFuZGxlLg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBE YXRhVG9IYXNoICAgIERhdGEgdG8gYmUgaGFzaGVkLg0KPiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBE YXRhVG9IYXNoTGVuIERhdGEgc2l6ZS4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAg QHJldHZhbCBUUlVFICAgICAgICAgSGFzaCB1cGRhdGVkLg0KPiA+ID4NCj4gPiA+ICsgIEByZXR2 YWwgRkFMU0UgICAgICAgIEhhc2ggdXBkYXRlZCB1bnN1Y2Nlc3NmdWwuDQo+ID4gPg0KPiA+ID4g KyoqLw0KPiA+ID4NCj4gPiA+ICtCT09MRUFODQo+ID4gPg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4N Cj4gPiA+ICtIYXNoQXBpVXBkYXRlICgNCj4gPiA+DQo+ID4gPiArICBJTiBIQVNIX0hBTkRMRSAg ICBIYXNoSGFuZGxlLA0KPiA+ID4NCj4gPiA+ICsgIElOIFZPSUQgICAgICAgICAgICpEYXRhVG9I YXNoLA0KPiA+ID4NCj4gPiA+ICsgIElOIFVJTlROICAgICAgICAgIERhdGFUb0hhc2hMZW4NCj4g PiA+DQo+ID4gPiArKQ0KPiA+ID4NCj4gPiA+ICt7DQo+ID4gPg0KPiA+ID4gKyAgQk9PTEVBTiAg ICAgU3RhdHVzOw0KPiA+ID4NCj4gPiA+ICsgIFVJTlQ4ICAgICAgIEhhc2hQb2xpY3k7DQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEhhc2hQb2xpY3kgPSBQY2RHZXQ4IChQY2RTeXN0 ZW1IYXNoUG9saWN5KTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgU3RhdHVzID0g SGFzaFVwZGF0ZUludGVybmFsIChIYXNoUG9saWN5LCBIYXNoSGFuZGxlLCBEYXRhVG9IYXNoLA0K PiA+ID4gRGF0YVRvSGFzaExlbik7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIHJl dHVybiBTdGF0dXM7DQo+ID4gPg0KPiA+ID4gK30NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ ID4gKy8qKg0KPiA+ID4NCj4gPiA+ICsgIEhhc2ggY29tcGxldGUuDQo+ID4gPg0KPiA+ID4gKw0K PiA+ID4NCj4gPiA+ICsgIEBwYXJhbSBIYXNoSGFuZGxlICAgIEhhc2ggaGFuZGxlLg0KPiA+ID4N Cj4gPiA+ICsgIEBwYXJhbSBEaWdlc3QgICAgICAgIEhhc2ggRGlnZXN0Lg0KPiA+ID4NCj4gPiA+ ICsNCj4gPiA+DQo+ID4gPiArICBAcmV0dmFsIFRSVUUgICAgICAgICBIYXNoIGNvbXBsZXRlIGFu ZCBEaWdlc3QgaXMgcmV0dXJuZWQuDQo+ID4gPg0KPiA+ID4gKyAgQHJldHZhbCBGQUxTRSAgICAg ICAgSGFzaCBjb21wbGV0ZSB1bnN1Y2Nlc3NmdWwuDQo+ID4gPg0KPiA+ID4gKyoqLw0KPiA+ID4N Cj4gPiA+ICtCT09MRUFODQo+ID4gPg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4NCj4gPiA+ICtIYXNo QXBpRmluYWwgKA0KPiA+ID4NCj4gPiA+ICsgIElOICBIQVNIX0hBTkRMRSBIYXNoSGFuZGxlLA0K PiA+ID4NCj4gPiA+ICsgIE9VVCBVSU5UOCAgICAgICAqRGlnZXN0DQo+ID4gPg0KPiA+ID4gKykN Cj4gPiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1czsNCj4g PiA+DQo+ID4gPiArICBVSU5UOCAgICAgICBIYXNoUG9saWN5Ow0KPiA+ID4NCj4gPiA+ICsNCj4g PiA+DQo+ID4gPiArICBIYXNoUG9saWN5ID0gUGNkR2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7 DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIFN0YXR1cyA9IEhhc2hGaW5hbEludGVy bmFsIChIYXNoUG9saWN5LCAmSGFzaEhhbmRsZSwgJkRpZ2VzdCk7DQo+ID4gPg0KPiA+ID4gKw0K PiA+ID4NCj4gPiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4gPg0KPiA+ID4gK30NCj4gPiA+DQo+ ID4gPiArDQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4NCj4gPiA+ICsgIFRoZSBjb25zdHJ1Y3Rv ciBmdW5jdGlvbiBvZiBCYXNlSGFzaExpYiBEeGUuDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4g PiA+ICsgIEBwYXJhbSAgRmlsZUhhbmRsZSAgIFRoZSBoYW5kbGUgb2YgRkZTIGhlYWRlciB0aGUg bG9hZGVkIGRyaXZlci4NCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gIFBlaVNlcnZpY2VzICBUaGUg cG9pbnRlciB0byB0aGUgUEVJIHNlcnZpY2VzLg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4g PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgY29uc3RydWN0b3IgZXhlY3V0 ZXMgc3VjY2Vzc2Z1bGx5Lg0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNP VVJDRVMgIFRoZXJlIGlzIG5vIGVub3VnaCByZXNvdXJjZSBmb3IgdGhlDQo+ID4gPiBjb25zdHJ1 Y3Rvci4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyoqLw0KPiA+ID4NCj4gPiA+ICtF RklfU1RBVFVTDQo+ID4gPg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4NCj4gPiA+ICtCYXNlSGFzaExp YkFwaUR4ZUNvbnN0cnVjdG9yICgNCj4gPiA+DQo+ID4gPiArICBJTiBFRklfSEFORExFICAgICAg ICBJbWFnZUhhbmRsZSwNCj4gPiA+DQo+ID4gPiArICBJTiBFRklfU1lTVEVNX1RBQkxFICAqU3lz dGVtVGFibGUNCj4gPiA+DQo+ID4gPiArICApDQo+ID4gPg0KPiA+ID4gK3sNCj4gPiA+DQo+ID4g PiArICBERUJVRyAoKERFQlVHX0lORk8sIkNhbGxpbmcgQmFzZUhhc2hMaWJBcGlEeGVDb25zdHJ1 Y3Rvci4uIFxuIikpOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQo+ID4gPg0KPiA+ID4gK30NCj4gPg0KPiA+IDYuIENvbnN0cnVjdG9yIGlzIG5v dCBuZWNlc3NhcnkgaWYgeW91IGRvbid0IGhhdmUgYW55dGhpbmcgdG8gZG8gd2l0aCBpdC4NCj4g PiAgICBZb3UgY2FuIHJlbW92ZSBpdCBmcm9tIGluZiBmaWxlIGFuZCBoZXJlLg0KPiA+DQo+ID4g PiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0 eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLmMNCj4gPiA+IGIvU2VjdXJp dHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYlBlaS5jDQo+ID4gPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi41ODBhYzIxZmMxZDkNCj4g PiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhh c2hMaWIvQmFzZUhhc2hMaWJQZWkuYw0KPiA+ID4gQEAgLTAsMCArMSwxMjUgQEANCj4gPiA+ICsv KiogQGZpbGUNCj4gPiA+DQo+ID4gPiArICBUaGlzIGxpYnJhcnkgaXMgVW5pZmllZCBIYXNoIEFQ SS4gSXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3QNCj4gPiA+ICsgdG8NCj4gPiA+DQo+ID4g PiArICB0aGUgaGFzaCBoYW5kbGVyIHNwZWNpZmllZCBieSBQY2RTeXN0ZW1IYXNoUG9saWN5IHN1 Y2ggYXMgU0hBMSwNCj4gPiA+ICsgU0hBMjU2LA0KPiA+ID4NCj4gPiA+ICsgIFNIQTM4NCBhbmQg U00zLi4uDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTMg LSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiA+ICs8 QlI+DQo+ID4gPg0KPiA+ID4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsqKi8NCj4gPiA+DQo+ID4gPiAr DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGli Lmg+DQo+ID4gPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4g PiA+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KPiA+ ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiA+ID4NCj4gPiA+ICsj aW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJh cnkvSGFzaExpYi5oPg0KPiA+ID4NCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9Ib2JMaWIuaD4N Cj4gPiA+DQo+ID4gPiArI2luY2x1ZGUgPEd1aWQvWmVyb0d1aWQuaD4NCj4gPiA+DQo+ID4gPiAr DQo+ID4gPg0KPiA+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VIYXNoTGliLmg+DQo+ID4gPg0K PiA+ID4gKyNpbmNsdWRlICJCYXNlSGFzaExpYkNvbW1vbi5oIg0KPiA+ID4NCj4gPiA+ICsNCj4g PiA+DQo+ID4gPiArLyoqDQo+ID4gPg0KPiA+ID4gKyAgSW5pdCBoYXNoIHNlcXVlbmNlLg0KPiA+ ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgSGFzaCBoYW5k bGUuDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICBI YXNoIHN0YXJ0IGFuZCBIYXNoSGFuZGxlIHJldHVybmVkLg0KPiA+ID4NCj4gPiA+ICsgIEByZXR2 YWwgRkFMU0UgICAgICBIYXNoIEluaXQgdW5zdWNjZXNzZnVsLg0KPiA+ID4NCj4gPiA+ICsqKi8N Cj4gPiA+DQo+ID4gPiArQk9PTEVBTg0KPiA+ID4NCj4gPiA+ICtFRklBUEkNCj4gPiA+DQo+ID4g PiArSGFzaEFwaUluaXQgKA0KPiA+ID4NCj4gPiA+ICsgIE9VVCAgSEFTSF9IQU5ETEUgICAqSGFz aEhhbmRsZQ0KPiA+ID4NCj4gPiA+ICspDQo+ID4gPg0KPiA+ID4gK3sNCj4gPiA+DQo+ID4gPiAr ICBCT09MRUFOICAgICBTdGF0dXM7DQo+ID4gPg0KPiA+ID4gKyAgVUlOVDggICAgICAgSGFzaFBv bGljeTsNCj4gPiA+DQo+ID4gPiArICBIQVNIX0hBTkRMRSBIYW5kbGU7DQo+ID4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+ICsgIEhhc2hQb2xpY3kgPSBQY2RHZXQ4IChQY2RTeXN0ZW1IYXNoUG9s aWN5KTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgU3RhdHVzID0gSGFzaEluaXRJ bnRlcm5hbCAoSGFzaFBvbGljeSwgJkhhbmRsZSk7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4g PiA+ICsgICpIYXNoSGFuZGxlID0gSGFuZGxlOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4g PiArICByZXR1cm4gU3RhdHVzOw0KPiA+ID4NCj4gPiA+ICt9DQo+ID4gPg0KPiA+ID4gKw0KPiA+ ID4NCj4gPiA+ICsvKioNCj4gPiA+DQo+ID4gPiArICBVcGRhdGUgaGFzaCBkYXRhLg0KPiA+ID4N Cj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gSGFzaEhhbmRsZSAgICBIYXNoIGhhbmRs ZS4NCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gRGF0YVRvSGFzaCAgICBEYXRhIHRvIGJlIGhhc2hl ZC4NCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gRGF0YVRvSGFzaExlbiBEYXRhIHNpemUuDQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIEhhc2ggdXBk YXRlZC4NCj4gPiA+DQo+ID4gPiArICBAcmV0dmFsIEZBTFNFICAgICAgICBIYXNoIHVwZGF0ZWQg dW5zdWNjZXNzZnVsLg0KPiA+ID4NCj4gPiA+ICsqKi8NCj4gPiA+DQo+ID4gPiArQk9PTEVBTg0K PiA+ID4NCj4gPiA+ICtFRklBUEkNCj4gPiA+DQo+ID4gPiArSGFzaEFwaVVwZGF0ZSAoDQo+ID4g Pg0KPiA+ID4gKyAgSU4gSEFTSF9IQU5ETEUgICAgSGFzaEhhbmRsZSwNCj4gPiA+DQo+ID4gPiAr ICBJTiBWT0lEICAgICAgICAgICAqRGF0YVRvSGFzaCwNCj4gPiA+DQo+ID4gPiArICBJTiBVSU5U TiAgICAgICAgICBEYXRhVG9IYXNoTGVuDQo+ID4gPg0KPiA+ID4gKykNCj4gPiA+DQo+ID4gPiAr ew0KPiA+ID4NCj4gPiA+ICsgIEJPT0xFQU4gICAgIFN0YXR1czsNCj4gPiA+DQo+ID4gPiArICBV SU5UOCAgICAgICBIYXNoUG9saWN5Ow0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBI YXNoUG9saWN5ID0gUGNkR2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ID4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+ICsgIFN0YXR1cyA9IEhhc2hVcGRhdGVJbnRlcm5hbCAoSGFzaFBvbGlj eSwgSGFzaEhhbmRsZSwgRGF0YVRvSGFzaCwNCj4gPiA+IERhdGFUb0hhc2hMZW4pOw0KPiA+ID4N Cj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+ID4NCj4gPiA+ICt9 DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+DQo+ID4gPiArICBIYXNo IGNvbXBsZXRlLg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gSGFzaEhh bmRsZSAgICBIYXNoIGhhbmRsZS4NCj4gPiA+DQo+ID4gPiArICBAcGFyYW0gRGlnZXN0ICAgICAg ICBIYXNoIERpZ2VzdC4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgQHJldHZhbCBU UlVFICAgICAgICAgSGFzaCBjb21wbGV0ZSBhbmQgRGlnZXN0IGlzIHJldHVybmVkLg0KPiA+ID4N Cj4gPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggY29tcGxldGUgdW5zdWNjZXNzZnVs Lg0KPiA+ID4NCj4gPiA+ICsqKi8NCj4gPiA+DQo+ID4gPiArQk9PTEVBTg0KPiA+ID4NCj4gPiA+ ICtFRklBUEkNCj4gPiA+DQo+ID4gPiArSGFzaEFwaUZpbmFsICgNCj4gPiA+DQo+ID4gPiArICBJ TiAgSEFTSF9IQU5ETEUgSGFzaEhhbmRsZSwNCj4gPiA+DQo+ID4gPiArICBPVVQgVUlOVDggICAg ICAqRGlnZXN0DQo+ID4gPg0KPiA+ID4gKykNCj4gPiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ ICsgIEJPT0xFQU4gICAgIFN0YXR1czsNCj4gPiA+DQo+ID4gPiArICBVSU5UOCAgICAgICBIYXNo UG9saWN5Ow0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBIYXNoUG9saWN5ID0gUGNk R2V0OCAoUGNkU3lzdGVtSGFzaFBvbGljeSk7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ ICsgIFN0YXR1cyA9IEhhc2hGaW5hbEludGVybmFsIChIYXNoUG9saWN5LCBIYXNoSGFuZGxlLCAm RGlnZXN0KTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgcmV0dXJuIFN0YXR1czsN Cj4gPiA+DQo+ID4gPiArfQ0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArLyoqDQo+ID4g Pg0KPiA+ID4gKyAgVGhlIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIG9mIEJhc2VIYXNoTGliIFBlaS4N Cj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyAgQHBhcmFtICBGaWxlSGFuZGxlICAgVGhl IGhhbmRsZSBvZiBGRlMgaGVhZGVyIHRoZSBsb2FkZWQgZHJpdmVyLg0KPiA+ID4NCj4gPiA+ICsg IEBwYXJhbSAgUGVpU2VydmljZXMgIFRoZSBwb2ludGVyIHRvIHRoZSBQRUkgc2VydmljZXMuDQo+ ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgIFRoZSBjb25zdHJ1Y3RvciBleGVjdXRlcyBzdWNjZXNzZnVsbHkuDQo+ID4gPg0KPiA+ID4g KyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgVGhlcmUgaXMgbm8gZW5vdWdoIHJlc291 cmNlIGZvciB0aGUNCj4gPiA+IGNvbnN0cnVjdG9yLg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ ID4gPiArKiovDQo+ID4gPg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+DQo+ID4gPiArRUZJQVBJ DQo+ID4gPg0KPiA+ID4gK0Jhc2VIYXNoTGliQXBpUGVpQ29uc3RydWN0b3IgKA0KPiA+ID4NCj4g PiA+ICsgIElOIEVGSV9QRUlfRklMRV9IQU5ETEUgICAgICAgIEZpbGVIYW5kbGUsDQo+ID4gPg0K PiA+ID4gKyAgSU4gQ09OU1QgRUZJX1BFSV9TRVJWSUNFUyAgICAgKipQZWlTZXJ2aWNlcw0KPiA+ ID4NCj4gPiA+ICsgICkNCj4gPiA+DQo+ID4gPiArew0KPiA+ID4NCj4gPiA+ICsgIERFQlVHICgo REVCVUdfSU5GTywiQ2FsbGluZyBCYXNlSGFzaExpYkFwaVBlaUNvbnN0cnVjdG9yLi4gXG4iKSk7 DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4g PiA+DQo+ID4gPiArfQ0KPiA+DQo+ID4gNy4gVGhlIHNhbWUgYXMgNg0KPiA+DQo+ID4gPiBcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9J bmNsdWRlL0xpYnJhcnkvQmFzZUhhc2hMaWIuaA0KPiA+ID4gYi9TZWN1cml0eVBrZy9JbmNsdWRl L0xpYnJhcnkvQmFzZUhhc2hMaWIuaA0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ IGluZGV4IDAwMDAwMDAwMDAwMC4uZTE4ODNmZTdjZTQxDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gPiArKysgYi9TZWN1cml0eVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUhhc2hMaWIuaA0KPiA+ ID4gQEAgLTAsMCArMSw4NCBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ID4gKyAgVGhlIGludGVy bmFsIGhlYWRlciBmaWxlIGluY2x1ZGVzIHRoZSBjb21tb24gaGVhZGVyIGZpbGVzLA0KPiA+ID4g K2RlZmluZXMNCj4gPiA+ICsgIGludGVybmFsIHN0cnVjdHVyZSBhbmQgZnVuY3Rpb25zIHVzZWQg YnkgSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gPiArDQo+ID4gPiArQ29weXJpZ2h0IChjKSAy MDA5IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ICtyZXNlcnZl ZC48QlI+IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlDQo+ ID4gPiArbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUNCj4gPiA+ICtCU0QNCj4gPiA+IExpY2Vuc2UNCj4gPiA+ICt3aGljaCBh Y2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vu c2UNCj4gPiA+ICttYXkgYmUgZm91bmQNCj4gPiA+IGF0DQo+ID4gPiAraHR0cDovL29wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+ID4gKw0KPiA+ID4gK1RIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ ID4gPiArQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5Z IEtJTkQsIEVJVEhFUg0KPiA+ID4gK0VYUFJFU1MNCj4gPiA+IE9SIElNUExJRUQuDQo+ID4gPiAr DQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRlZiBfX0JBU0VIQVNITElCX0hfDQo+ ID4gPiArI2RlZmluZSBfX0JBU0VIQVNITElCX0hfDQo+ID4gPiArDQo+ID4gPiArI2luY2x1ZGUg PFVlZmkuaD4NCj4gPiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvSGFzaC5oPg0KPiA+ID4gKyNpbmNs dWRlIDxMaWJyYXJ5L0hhc2hMaWIuaD4NCj4gPiA+ICsNCj4gPiA+ICsvLw0KPiA+ID4gKy8vIEhh c2ggQWxnb3JpdGhtcw0KPiA+ID4gKy8vDQo+ID4gPiArI2RlZmluZSBIQVNIX0RFRkFVTFQgICAg MHgwMDAwMDAwMA0KPiA+ID4gKyNkZWZpbmUgSEFTSF9NRDQgICAgICAgIDB4MDAwMDAwMDENCj4g PiA+ICsjZGVmaW5lIEhBU0hfTUQ1ICAgICAgICAweDAwMDAwMDAyDQo+ID4gPiArI2RlZmluZSBI QVNIX1NIQTEgICAgICAgMHgwMDAwMDAwMw0KPiA+ID4gKyNkZWZpbmUgSEFTSF9TSEEyNTYgICAg IDB4MDAwMDAwMDQNCj4gPiA+ICsjZGVmaW5lIEhBU0hfU0hBMzg0ICAgICAweDAwMDAwMDA1DQo+ ID4gPiArI2RlZmluZSBIQVNIX1NIQTUxMiAgICAgMHgwMDAwMDAwNg0KPiA+ID4gKyNkZWZpbmUg SEFTSF9TTTNfMjU2ICAgIDB4MDAwMDAwMDcNCj4gPiA+ICsNCj4gPiA+ICsNCj4gPiA+ICsvKioN Cj4gPiA+ICsgIEluaXQgaGFzaCBzZXF1ZW5jZS4NCj4gPiA+ICsNCj4gPiA+ICsgIEBwYXJhbSBI YXNoSGFuZGxlICBIYXNoIGhhbmRsZS4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAg ICAgICBIYXNoIHN0YXJ0IGFuZCBIYXNoSGFuZGxlIHJldHVybmVkLg0KPiA+ID4gKyAgQHJldHZh bCBGQUxTRSAgICAgIEhhc2ggSW5pdCB1bnN1Y2Nlc3NmdWwuDQo+ID4gPiArKiovDQo+ID4gPiAr Qk9PTEVBTg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4gK0hhc2hBcGlJbml0ICgNCj4gPiA+ICsgIE9V VCAgSEFTSF9IQU5ETEUgICAqSGFzaEhhbmRsZQ0KPiA+ID4gKyk7DQo+ID4gPiArDQo+ID4gPiAr LyoqDQo+ID4gPiArICBVcGRhdGUgaGFzaCBkYXRhLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFt IEhhc2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4gPiArICBAcGFyYW0gRGF0YVRvSGFzaCAg ICBEYXRhIHRvIGJlIGhhc2hlZC4NCj4gPiA+ICsgIEBwYXJhbSBEYXRhVG9IYXNoTGVuIERhdGEg c2l6ZS4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIEhhc2ggdXBkYXRl ZC4NCj4gPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggdXBkYXRlZCB1bnN1Y2Nlc3Nm dWwuDQo+ID4gPiArKiovDQo+ID4gPiArQk9PTEVBTg0KPiA+ID4gK0VGSUFQSQ0KPiA+ID4gK0hh c2hBcGlVcGRhdGUgKA0KPiA+ID4gKyAgSU4gSEFTSF9IQU5ETEUgICAgSGFzaEhhbmRsZSwNCj4g PiA+ICsgIElOIFZPSUQgICAgICAgICAgICpEYXRhVG9IYXNoLA0KPiA+ID4gKyAgSU4gVUlOVE4g ICAgICAgICAgRGF0YVRvSGFzaExlbg0KPiA+ID4gKyk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ ID4gPiArICBIYXNoIGNvbXBsZXRlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtIEhhc2hIYW5k bGUgICAgSGFzaCBoYW5kbGUuDQo+ID4gPiArICBAcGFyYW0gRGlnZXN0ICAgICAgICBIYXNoIERp Z2VzdC4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIEhhc2ggY29tcGxl dGUgYW5kIERpZ2VzdCBpcyByZXR1cm5lZC4NCj4gPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAg IEhhc2ggY29tcGxldGUgdW5zdWNjZXNzZnVsLg0KPiA+ID4gKyoqLw0KPiA+ID4gK0JPT0xFQU4N Cj4gPiA+ICtFRklBUEkNCj4gPiA+ICtIYXNoQXBpRmluYWwgKA0KPiA+ID4gKyAgSU4gIEhBU0hf SEFORExFIEhhc2hIYW5kbGUsDQo+ID4gPiArICBPVVQgVUlOVDggICAgICAgKkRpZ2VzdA0KPiA+ ID4gKyk7DQo+ID4gPiArDQo+ID4gPiArI2VuZGlmDQo+ID4gPiBcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUNCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNo TGliL0Jhc2VIYXNoTGliQ29tbW9uLmgNCj4gPiA+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNl SGFzaExpYi9CYXNlSGFzaExpYkNvbW1vbi5oDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi43NzZiNzRhZDc1M2INCj4gPiA+IC0tLSAvZGV2L251 bGwNCj4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hM aWJDb21tb24uaA0KPiA+ID4gQEAgLTAsMCArMSw3MSBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ ID4gKyAgVGhlIGludGVybmFsIGhlYWRlciBmaWxlIGluY2x1ZGVzIHRoZSBjb21tb24gaGVhZGVy IGZpbGVzLA0KPiA+ID4gK2RlZmluZXMNCj4gPiA+ICsgIGludGVybmFsIHN0cnVjdHVyZSBhbmQg ZnVuY3Rpb25zIHVzZWQgYnkgSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gPiArDQo+ID4gPiAr Q29weXJpZ2h0IChjKSAyMDA5IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMN Cj4gPiA+ICtyZXNlcnZlZC48QlI+IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBt YXRlcmlhbHMgYXJlDQo+ID4gPiArbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCj4gPiA+ICtCU0QNCj4gPiA+IExpY2Vuc2UN Cj4gPiA+ICt3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRl eHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiA+ICttYXkgYmUgZm91bmQNCj4gPiA+IGF0DQo+ID4gPiAr aHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+ID4gKw0K PiA+ID4gK1RIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBP TiBBTiAiQVMgSVMiDQo+ID4gPiArQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNF TlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiA+ID4gK0VYUFJFU1MNCj4gPiA+IE9SIElN UExJRUQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRlZiBfX0JB U0VIQVNITElCX0NPTU1PTl9IXw0KPiA+ID4gKyNkZWZpbmUgX19CQVNFSEFTSExJQl9DT01NT05f SF8NCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIEluaXQgaGFzaCBzZXF1ZW5jZSB3aXRo IEhhc2ggQWxnb3JpdGhtIHNwZWNpZmllZCBieSBIYXNoUG9saWN5Lg0KPiA+ID4gKw0KPiA+ID4g KyAgQHBhcmFtIEhhc2hIYW5kbGUgSGFzaCBoYW5kbGUuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0 dmFsIEVGSV9TVUNDRVNTICAgICAgICAgIEhhc2ggc3RhcnQgYW5kIEhhc2hIYW5kbGUgcmV0dXJu ZWQuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgIFN5c3RlbSBoYXMgbm8g SEFTSCBsaWJyYXJ5IHJlZ2lzdGVyZWQuDQo+ID4gPiArKiovDQo+ID4gPiArQk9PTEVBTg0KPiA+ ID4gK0VGSUFQSQ0KPiA+ID4gK0hhc2hJbml0SW50ZXJuYWwgKA0KPiA+ID4gKyAgSU4gVUlOVDgg ICAgICAgICAgSGFzaFBvbGljeSwNCj4gPiA+ICsgIE9VVCBIQVNIX0hBTkRMRSAgICpIYXNoSGFu ZGxlDQo+ID4gPiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgSGFzaCBjb21w bGV0ZSB3aXRoIEhhc2ggQWxnb3JpdGhtIHNwZWNpZmllZCBieSBIYXNoUG9saWN5Lg0KPiA+ID4g Kw0KPiA+ID4gKyAgQHBhcmFtIEhhc2hQb2xpY3kgICAgSGFzaCBBbGdvcml0aG0gUG9saWN5Lg0K PiA+ID4gKyAgQHBhcmFtIEhhc2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4gPiArICBAcGFy YW0gRGlnZXN0ICAgICAgICBIYXNoIERpZ2VzdC4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwg VFJVRSAgICAgICAgIEhhc2ggY29tcGxldGUgYW5kIERpZ2VzdCBpcyByZXR1cm5lZC4NCj4gPiA+ ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggY29tcGxldGUgdW5zdWNjZXNzZnVsLg0KPiA+ ID4gKyoqLw0KPiA+ID4gK0JPT0xFQU4NCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtIYXNoVXBkYXRl SW50ZXJuYWwgKA0KPiA+ID4gKyAgSU4gVUlOVDggICAgICAgIEhhc2hQb2xpY3ksDQo+ID4gPiAr ICBJTiBIQVNIX0hBTkRMRSAgSGFzaEhhbmRsZSwNCj4gPiA+ICsgIElOIFZPSUQgICAgICAgICAq RGF0YVRvSGFzaCwNCj4gPiA+ICsgIElOIFVJTlROICAgICAgICBEYXRhVG9IYXNoTGVuDQo+ID4g PiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgVXBkYXRlIGhhc2ggZGF0YSB3 aXRoIEhhc2ggQWxnb3JpdGhtIHNwZWNpZmllZCBieSBIYXNoUG9saWN5Lg0KPiA+ID4gKw0KPiA+ ID4gKyAgQHBhcmFtIEhhc2hQb2xpY3kgICAgSGFzaCBBbGdvcml0aG0gUG9saWN5Lg0KPiA+ID4g KyAgQHBhcmFtIEhhc2hIYW5kbGUgICAgSGFzaCBoYW5kbGUuDQo+ID4gPiArICBAcGFyYW0gRGF0 YVRvSGFzaCAgICBEYXRhIHRvIGJlIGhhc2hlZC4NCj4gPiA+ICsgIEBwYXJhbSBEYXRhVG9IYXNo TGVuIERhdGEgc2l6ZS4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIEhh c2ggdXBkYXRlZC4NCj4gPiA+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEhhc2ggdXBkYXRlZCB1 bnN1Y2Nlc3NmdWwuDQo+ID4gPiArKiovDQo+ID4gPiArQk9PTEVBTg0KPiA+ID4gK0VGSUFQSQ0K PiA+ID4gK0hhc2hGaW5hbEludGVybmFsICgNCj4gPiA+ICsgIElOIFVJTlQ4ICAgICAgICBIYXNo UG9saWN5LA0KPiA+ID4gKyAgSU4gSEFTSF9IQU5ETEUgIEhhc2hIYW5kbGUsDQo+ID4gPiArICBP VVQgVUlOVDggICAgICAgKipEaWdlc3QNCj4gPiA+ICsgICk7DQo+ID4gPiArI2VuZGlmDQo+ID4g PiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0 eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmluZg0KPiA+ID4gYi9TZWN1 cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmluZg0KPiA+ID4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjk3YmRhMDYxMDhm DQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jh c2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmluZg0KPiA+ID4gQEAgLTAsMCArMSw0NyBAQA0KPiA+ ID4gKyMjIEBmaWxlDQo+ID4gPg0KPiA+ID4gKyMgIFByb3ZpZGVzIGhhc2ggc2VydmljZSBieSBy ZWdpc3RlcmVkIGhhc2ggaGFuZGxlcg0KPiA+ID4NCj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKyMg IFRoaXMgbGlicmFyeSBpcyBCYXNlIEhhc2ggTGliLiBJdCB3aWxsIHJlZGlyZWN0IGhhc2ggcmVx dWVzdCB0bw0KPiA+ID4gK2VhY2ggaW5kaXZpZHVhbA0KPiA+ID4NCj4gPiA+ICsjICBoYXNoIGhh bmRsZXIgcmVnaXN0ZXJlZCwgc3VjaCBhcyBTSEExLCBTSEEyNTYsIFNIQTM4NCwgU00zLg0KPiA+ ID4NCj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4g Pg0KPiA+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+DQo+ID4gPiArIw0KPiA+ID4NCj4gPiA+ICsjIw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+ DQo+ID4gPiArW0RlZmluZXNdDQo+ID4gPg0KPiA+ID4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAg ICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPiA+ID4NCj4gPiA+ICsgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICAgICA9IEJhc2VIYXNoTGliRHhlDQo+ID4gPg0KPiA+ID4gKyAgTU9EVUxFX1VO SV9GSUxFICAgICAgICAgICAgICAgID0gQmFzZUhhc2hMaWJEeGUudW5pDQo+ID4gPg0KPiA+ID4g KyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gMTU4REM3MTItRjE1QS00NGRjLTkz QkItMTY3NTA0NUJFMDY2DQo+ID4gPg0KPiA+ID4gKyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAg ICAgICAgID0gRFhFX0RSSVZFUg0KPiA+ID4NCj4gPiA+ICsgIFZFUlNJT05fU1RSSU5HICAgICAg ICAgICAgICAgICA9IDEuMA0KPiA+ID4NCj4gPiA+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAg ICAgICAgICA9IEJhc2VIYXNoTGlifERYRV9EUklWRVIgRFhFX1JVTlRJTUVfRFJJVkVSDQo+ID4g PiBEWEVfU01NX0RSSVZFUiBVRUZJX0FQUExJQ0FUSU9OIFVFRklfRFJJVkVSDQo+ID4gPg0KPiA+ ID4gKyAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0gQmFzZUhhc2hMaWJBcGlEeGVD b25zdHJ1Y3Rvcg0KPiA+DQo+ID4gOC4gU2luY2UgdGhlIGFib3ZlIGZ1bmN0aW9uIGlzIGFjdHVh bGx5IGVtcHR5LCB5b3UgY2FuIHJlbW92ZSBhYm92ZSBsaW5lIGFuZA0KPiA+ICAgIGZ1bmN0aW9u IGluIGMgZmlsZS4NCj4gPg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArIw0KPiA+ID4N Cj4gPiA+ICsjIFRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gaXMgZm9yIHJlZmVyZW5jZSBvbmx5 IGFuZCBub3QgcmVxdWlyZWQNCj4gPiA+ICtieSB0aGUgYnVpbGQNCj4gPiA+IHRvb2xzLg0KPiA+ ID4NCj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKyMgIFZBTElEX0FSQ0hJVEVDVFVSRVMgICAgICAg ICAgID0gSUEzMiBYNjQNCj4gPiA+DQo+ID4gPiArIw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ ID4gPiArW1NvdXJjZXNdDQo+ID4gPg0KPiA+ID4gKyAgQmFzZUhhc2hMaWJDb21tb24uaA0KPiA+ ID4NCj4gPiA+ICsgIEJhc2VIYXNoTGliQ29tbW9uLmMNCj4gPiA+DQo+ID4gPiArICBCYXNlSGFz aExpYkR4ZS5jDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICtbUGFja2FnZXNdDQo+ID4g Pg0KPiA+ID4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+DQo+ID4gPiArICBDcnlwdG9Qa2cv Q3J5cHRvUGtnLmRlYw0KPiA+ID4NCj4gPiA+ICsgIFNlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRl Yw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ID4N Cj4gPiA+ICsgIEJhc2VMaWINCj4gPiA+DQo+ID4gPiArICBCYXNlTWVtb3J5TGliDQo+ID4gPg0K PiA+ID4gKyAgRGVidWdMaWINCj4gPiA+DQo+ID4gPiArICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ ID4gPg0KPiA+ID4gKyAgQmFzZUNyeXB0TGliDQo+ID4gPg0KPiA+ID4gKyAgUGNkTGliDQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICtbUGNkXQ0KPiA+ID4NCj4gPiA+ICsgIGdFZmlTZWN1 cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN5c3RlbUhhc2hQb2xpY3kgICAgIyMgQ09OU1VNRVMN Cj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExp Yi9CYXNlSGFzaExpYkR4ZS51bmkNCj4gPiA+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFz aExpYi9CYXNlSGFzaExpYkR4ZS51bmkNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLjE4NjU3NzNiNGEyNQ0KPiA+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ID4gKysrIGIvU2VjdXJpdHlQa2cvTGlicmFyeS9CYXNlSGFzaExpYi9CYXNlSGFzaExpYkR4 ZS51bmkNCj4gPiA+IEBAIC0wLDAgKzEsMTggQEANCj4gPiA+ICsvLyAvKiogQGZpbGUNCj4gPiA+ DQo+ID4gPiArLy8gUHJvdmlkZXMgaGFzaCBzZXJ2aWNlIGJ5IHJlZ2lzdGVyZWQgaGFzaCBoYW5k bGVyDQo+ID4gPg0KPiA+ID4gKy8vDQo+ID4gPg0KPiA+ID4gKy8vIFRoaXMgbGlicmFyeSBpcyBV bmlmaWVkIEhhc2ggQVBJLiBJdCB3aWxsIHJlZGlyZWN0IGhhc2ggcmVxdWVzdA0KPiA+ID4gK3Rv IGVhY2ggaW5kaXZpZHVhbA0KPiA+ID4NCj4gPiA+ICsvLyBoYXNoIGhhbmRsZXIgcmVnaXN0ZXJl ZCwgc3VjaCBhcyBTSEExLCBTSEEyNTYuIFBsYXRmb3JtIGNhbiB1c2UNCj4gPiA+IFBjZFRwbTJI YXNoTWFzayB0bw0KPiA+ID4NCj4gPiA+ICsvLyBtYXNrIHNvbWUgaGFzaCBlbmdpbmVzLg0KPiA+ ID4NCj4gPiA+ICsvLw0KPiA+ID4NCj4gPiA+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDIw LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gK3Jlc2VydmVkLjxCUj4NCj4g PiA+DQo+ID4gPiArLy8NCj4gPiA+DQo+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+DQo+ID4gPiArLy8NCj4gPiA+DQo+ID4gPiArLy8g KiovDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArI3N0cmlu ZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiUHJvdmlk ZXMgaGFzaA0KPiA+ID4gc2VydmljZSBieSBzcGVjaWZpZWQgaGFzaCBoYW5kbGVyIg0KPiA+ID4N Cj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAg ICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGhpcyBsaWJyYXJ5IGlzDQo+ID4gPiBVbmlmaWVkIEhh c2ggQVBJLiBJdCB3aWxsIHJlZGlyZWN0IGhhc2ggcmVxdWVzdCB0byB0aGUgaGFzaCBoYW5kbGVy DQo+ID4gPiBzcGVjaWZpZWQgYnkgUGNkU3lzdGVtSGFzaFBvbGljeS4iDQo+ID4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNo TGliL0Jhc2VIYXNoTGliUGVpLmluZg0KPiA+ID4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VI YXNoTGliL0Jhc2VIYXNoTGliUGVpLmluZg0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNGQzNjAzMDc0NGJkDQo+ID4gPiAtLS0gL2Rldi9udWxs DQo+ID4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGli UGVpLmluZg0KPiA+ID4gQEAgLTAsMCArMSw1MiBAQA0KPiA+ID4gKyMjIEBmaWxlDQo+ID4gPg0K PiA+ID4gKyMgIFByb3ZpZGVzIGhhc2ggc2VydmljZSBieSByZWdpc3RlcmVkIGhhc2ggaGFuZGxl cg0KPiA+ID4NCj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKyMgIFRoaXMgbGlicmFyeSBpcyBCYXNl Q3J5cHRvIHJvdXRlci4gSXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3QNCj4gPiA+ICt0byBl YWNoDQo+ID4gPiBpbmRpdmlkdWFsDQo+ID4gPg0KPiA+ID4gKyMgIGhhc2ggaGFuZGxlciByZWdp c3RlcmVkLCBzdWNoIGFzIFNIQTEsIFNIQTI1Ni4NCj4gPiA+DQo+ID4gPiArIw0KPiA+ID4NCj4g PiA+ICsjIENvcHlyaWdodCAoYykgMjAxOCAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+ID4NCj4gPiA+ICsjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPg0KPiA+ID4gKyMNCj4gPiA+ DQo+ID4gPiArIyMNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gK1tEZWZpbmVzXQ0KPiA+ ID4NCj4gPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUN Cj4gPiA+DQo+ID4gPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBCYXNlSGFz aExpYlBlaQ0KPiA+ID4NCj4gPiA+ICsgIE1PRFVMRV9VTklfRklMRSAgICAgICAgICAgICAgICA9 IEJhc2VIYXNoTGliUGVpLnVuaQ0KPiA+ID4NCj4gPiA+ICsgIEZJTEVfR1VJRCAgICAgICAgICAg ICAgICAgICAgICA9IEREQ0JDRkJBLThFRUItNDg4YS05NkQ2LTA5NzgzMUE2RTUwQg0KPiA+ID4N Cj4gPiA+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IFBFSU0NCj4gPiA+DQo+ ID4gPiArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPiA+DQo+ID4g PiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBCYXNlSGFzaExpYnxQRUlNDQo+ ID4gPg0KPiA+ID4gKyAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0gQmFzZUhhc2hM aWJBcGlQZWlDb25zdHJ1Y3Rvcg0KPiA+ID4NCj4gPg0KPiA+IDkuIFRoZSBzYW1lIGFzIDgNCj4g Pg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKyMgVGhlIGZvbGxvd2lu ZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZA0KPiA+ ID4gK2J5IHRoZSBidWlsZA0KPiA+ID4gdG9vbHMuDQo+ID4gPg0KPiA+ID4gKyMNCj4gPiA+DQo+ ID4gPiArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBJQTMyIFg2NA0KPiA+ID4N Cj4gPiA+ICsjDQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ICtbU291cmNlc10NCj4gPiA+ DQo+ID4gPiArICBCYXNlSGFzaExpYkNvbW1vbi5oDQo+ID4gPg0KPiA+ID4gKyAgQmFzZUhhc2hM aWJDb21tb24uYw0KPiA+ID4NCj4gPiA+ICsgIEJhc2VIYXNoTGliUGVpLmMNCj4gPiA+DQo+ID4g PiArDQo+ID4gPg0KPiA+ID4gK1tQYWNrYWdlc10NCj4gPiA+DQo+ID4gPiArICBNZGVQa2cvTWRl UGtnLmRlYw0KPiA+ID4NCj4gPiA+ICsgIFNlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRlYw0KPiA+ ID4NCj4gPiA+ICsgIENyeXB0b1BrZy9DcnlwdG9Qa2cuZGVjDQo+ID4gPg0KPiA+ID4gKyAgTWRl TW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4g K1tMaWJyYXJ5Q2xhc3Nlc10NCj4gPiA+DQo+ID4gPiArICBCYXNlTGliDQo+ID4gPg0KPiA+ID4g KyAgQmFzZU1lbW9yeUxpYg0KPiA+ID4NCj4gPiA+ICsgIERlYnVnTGliDQo+ID4gPg0KPiA+ID4g KyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ID4NCj4gPiA+ICsgIEJhc2VDcnlwdExpYg0KPiA+ ID4NCj4gPiA+ICsgIFBjZExpYg0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArW0d1aWRz XQ0KPiA+ID4NCj4gPiA+ICsgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICMjIEdVSUQNCj4gPiA+ DQo+ID4gPiArICBnWmVyb0d1aWQNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gK1tQY2Rd DQo+ID4gPg0KPiA+ID4gKyAgZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkU3lzdGVt SGFzaFBvbGljeSAgICAjIyBDT05TVU1FUw0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9TZWN1 cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLnVuaQ0KPiA+ID4gYi9T ZWN1cml0eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLnVuaQ0KPiA+ID4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjEzMWI2MWJk MjM1DQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLnVuaQ0KPiA+ID4gQEAgLTAsMCArMSwxNyBAQA0K PiA+ID4gKy8vIC8qKiBAZmlsZQ0KPiA+ID4NCj4gPiA+ICsvLyBQcm92aWRlcyBoYXNoIHNlcnZp Y2UgYnkgcmVnaXN0ZXJlZCBoYXNoIGhhbmRsZXINCj4gPiA+DQo+ID4gPiArLy8NCj4gPiA+DQo+ ID4gPiArLy8gVGhpcyBsaWJyYXJ5IGlzIFVuaWZpZWQgSGFzaCBBUEkuIEl0IHdpbGwgcmVkaXJl Y3QgaGFzaCByZXF1ZXN0DQo+ID4gPiArdG8gZWFjaCBpbmRpdmlkdWFsDQo+ID4gPg0KPiA+ID4g Ky8vIGhhc2ggaGFuZGxlciByZWdpc3RlcmVkLCBzdWNoIGFzIFNIQTEsIFNIQTI1Ni4NCj4gPiA+ DQo+ID4gPiArLy8NCj4gPiA+DQo+ID4gPiArLy8gQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4g Pg0KPiA+ID4gKy8vDQo+ID4gPg0KPiA+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPg0KPiA+ID4gKy8vDQo+ID4gPg0KPiA+ID4gKy8vICoq Lw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyNzdHJpbmcg U1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlByb3ZpZGVz IGhhc2gNCj4gPiA+IHNlcnZpY2UgYnkgc3BlY2lmaWVkIGhhc2ggaGFuZGxlciINCj4gPiA+DQo+ ID4gPiArDQo+ID4gPg0KPiA+ID4gKyNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAg ICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlRoaXMgbGlicmFyeSBpcw0KPiA+ID4gVW5pZmllZCBIYXNo IEFQSS4gSXQgd2lsbCByZWRpcmVjdCBoYXNoIHJlcXVlc3QgdG8gdGhlIGhhc2ggaGFuZGxlcg0K PiA+ID4gc3BlY2lmaWVkIGJ5IFBjZFN5c3RlbUhhc2hQb2xpY3kuIg0KPiA+ID4NCj4gPiA+ICsN Cj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cuZGVjDQo+ ID4gPiBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRlYyBpbmRleCBjYWMzNmNhZjBhMGQuLmUw ZTE0NDEyNGRkZA0KPiA+ID4gMTAwNjQ0DQo+ID4gPiAtLS0gYS9TZWN1cml0eVBrZy9TZWN1cml0 eVBrZy5kZWMNCj4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRlYw0KPiA+ID4g QEAgLTUsNyArNSw3IEBADQo+ID4gPiAgIyAgSXQgYWxzbyBwcm92aWRlcyB0aGUgZGVmaW5pdGlv bnMoaW5jbHVkaW5nIFBQSXMvUFJPVE9DT0xzL0dVSURzDQo+ID4gPiBhbmQgbGlicmFyeQ0KPiA+ ID4gY2xhc3NlcykNCj4gPiA+DQo+ID4gPiAgIyAgYW5kIGxpYnJhcmllcyBpbnN0YW5jZXMsIHdo aWNoIGFyZSB1c2VkIGZvciB0aG9zZSBmZWF0dXJlcy4NCj4gPiA+DQo+ID4gPiAgIw0KPiA+ID4N Cj4gPiA+IC0jIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzDQo+ID4gPiByZXNlcnZlZC48QlI+DQo+ID4gPg0KPiA+ID4gKyMgQ29weXJpZ2h0 IChjKSAyMDA5IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ICty ZXNlcnZlZC48QlI+DQo+ID4gPg0KPiA+ID4gICMgKEMpIENvcHlyaWdodCAyMDE1IEhld2xldHQg UGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQIDxCUj4NCj4gPiA+DQo+ID4gPiAgIyBD b3B5cmlnaHQgKGMpIDIwMTcsIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQo+ID4gPiA8QlI+DQo+ID4gPg0KPiA+ID4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+DQo+ID4gPiBAQCAtMjcsNiArMjcsMTAgQEAg W0xpYnJhcnlDbGFzc2VzXQ0KPiA+ID4gICAgIw0KPiA+ID4NCj4gPiA+ICAgIEhhc2hMaWJ8SW5j bHVkZS9MaWJyYXJ5L0hhc2hMaWIuaA0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gKyAgIyMg IEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIGhhc2ggaW50ZXJmYWNlcyBmcm9tIGRpZmZlcmVudCBp bXBsZW1lbnRhdGlvbnMuDQo+ID4gPg0KPiA+ID4gKyAgIw0KPiA+ID4NCj4gPiA+ICsgIEJhc2VI YXNoTGlifEluY2x1ZGUvTGlicmFyeS9IYXNoTGliLmgNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0K PiA+ID4gICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIGEgcGxhdGZvcm0gc3BlY2lmaWMg aW50ZXJmYWNlIHRvDQo+ID4gPiBkZXRlY3QgcGh5c2ljYWxseSBwcmVzZW50IHVzZXIuDQo+ID4g Pg0KPiA+ID4gICAgIw0KPiA+ID4NCj4gPiA+ICAgIFBsYXRmb3JtU2VjdXJlTGlifEluY2x1ZGUv TGlicmFyeS9QbGF0Zm9ybVNlY3VyZUxpYi5oDQo+ID4gPg0KPiA+ID4gQEAgLTQ5Niw1ICs1MDAs MjIgQEAgW1BjZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4XQ0KPiA+ID4gICAgIyBAUHJvbXB0IFRw bTJBY3BpVGFibGVMYXNhIExBU0EgZmllbGQgaW4gVFBNMiBBQ1BJIHRhYmxlLg0KPiA+ID4NCj4g PiA+DQo+ID4gPiBnRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RUcG0yQWNwaVRhYmxl TGFzYXwwfFVJTlQ2NHwweDAwMDEwMA0KPiA+ID4gMjMNCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4g PiA+ICtbUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc1BhdGNoYWJsZUluTW9kdWxlLCBQY2RzRHluYW1p YywNCj4gPiA+ICtQY2RzRHluYW1pY0V4XQ0KPiA+ID4NCj4gPiA+ICsgICMjIFRoaXMgUENEIGlu ZGljYXRlcyB0aGUgSEFTSCBhbGdvcml0aG0gdG8gdmVyaWZ5IHVuc2lnbmVkDQo+ID4gPiArIFBF L0NPRkYgaW1hZ2UNCj4gPiA+DQo+ID4gPiArICAjICBCYXNlZCBvbiB0aGUgdmFsdWUgc2V0LCB0 aGUgcmVxdWlyZWQgYWxnb3JpdGhtIGlzIGNob3NlbiB0bw0KPiA+ID4gKyB2ZXJpZnkNCj4gPiA+ DQo+ID4gPiArICAjICB0aGUgdW5zaWduZWQgaW1hZ2UgZHVyaW5nIFNlY3VyZSBCb290LjxCUj4N Cj4gPiA+DQo+ID4gPiArICAjICBUaGUgaGFzaGluZyBhbGdvcml0aG0gc2VsZWN0ZWQgbXVzdCBt YXRjaCB0aGUgaGFzaGluZw0KPiA+ID4gKyBhbGdvcml0aG0gdXNlZCB0bw0KPiA+ID4NCj4gPiA+ ICsgICMgIGhhc2ggdGhlIGltYWdlIHRvIGJlIGFkZGVkIHRvIERCIHVzaW5nIHRvb2xzIHN1Y2gg YXMNCj4gPiA+ICsgS2V5RW5yb2xsLjxCUj4NCj4gPiA+DQo+ID4gPiArICAjICAgICAweDAwMDAw MDAxICAgIC0gTUQ0LjxCUj4NCj4gPiA+DQo+ID4gPiArICAjICAgICAweDAwMDAwMDAyICAgIC0g TUQ1LjxCUj4NCj4gPiA+DQo+ID4gPiArICAjICAgICAweDAwMDAwMDAzICAgIC0gU0hBMS48QlI+ DQo+ID4gPg0KPiA+ID4gKyAgIyAgICAgMHgwMDAwMDAwNCAgICAtIFNIQTI1Ni48QlI+DQo+ID4g Pg0KPiA+ID4gKyAgIyAgICAgMHgwMDAwMDAwNSAgICAtIFNIQTM4NC48QlI+DQo+ID4gPg0KPiA+ ID4gKyAgIyAgICAgMHgwMDAwMDAwNiAgICAtIFNIQTUxMi48QlI+DQo+ID4gPg0KPiA+ID4gKyAg IyAgICAgMHgwMDAwMDAwNyAgICAtIFNNM18yNTYuPEJSPg0KPiA+ID4NCj4gPiA+ICsgICMgQFBy b21wdCBTZXQgcG9saWN5IGZvciBoYXNoaW5nIHVuc2lnbmVkIGltYWdlIGZvciBTZWN1cmUgQm9v dC4NCj4gPiA+DQo+ID4gPiArICAjIEBWYWxpZFJhbmdlIDB4ODAwMDAwMDEgfCAweDAwMDAwMDAx IC0gMHgwMDAwMDAwNw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+IGdFZmlTZWN1cml0eVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZFN5c3RlbUhhc2hQb2xpY3l8MHgwNHxVSU5UOHwweDAwMDEwDQo+ID4gPiAw Mg0KPiA+ID4gNA0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiAgW1VzZXJFeHRlbnNpb25z LlRpYW5vQ29yZS4iRXh0cmFGaWxlcyJdDQo+ID4gPg0KPiA+ID4gICAgU2VjdXJpdHlQa2dFeHRy YS51bmkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cu ZHNjDQo+ID4gPiBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRzYyBpbmRleCBhMmVlYWRkYTdh N2UuLjg2YTU4NDdlMjUwOQ0KPiA+ID4gMTAwNjQ0DQo+ID4gPiAtLS0gYS9TZWN1cml0eVBrZy9T ZWN1cml0eVBrZy5kc2MNCj4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLmRzYw0K PiA+ID4gQEAgLTEsNyArMSw3IEBADQo+ID4gPiAgIyMgQGZpbGUNCj4gPiA+DQo+ID4gPiAgIyAg U2VjdXJpdHkgTW9kdWxlIFBhY2thZ2UgZm9yIEFsbCBBcmNoaXRlY3R1cmVzLg0KPiA+ID4NCj4g PiA+ICAjDQo+ID4gPg0KPiA+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxOSwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+IHJlc2VydmVkLjxCUj4NCj4gPiA+DQo+ID4g PiArIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cw0KPiA+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPiA+DQo+ID4gPiAgIyAoQykgQ29weXJpZ2h0 IDIwMTUgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4g Pg0KPiA+ID4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+DQo+ID4gPiAgIw0KPiA+ID4NCj4gPiA+IEBAIC05NSw2ICs5NSw3IEBAIFtMaWJyYXJ5 Q2xhc3Nlcy5jb21tb24uUEVJTV0NCj4gPiA+DQo+ID4gPiBUcG0yRGV2aWNlTGlifFNlY3VyaXR5 UGtnL0xpYnJhcnkvVHBtMkRldmljZUxpYkRUcG0vVHBtMkRldmljZUxpYkRUcG0uDQo+ID4gPiBp bmYNCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJ8U2VjdXJpdHlQ a2cvTGlicmFyeS9QZWlUY2cyUGh5c2ljYWxQcmVzZW5jZUwNCj4gPiA+IFRjZzJQaHlzaWNhbFBy ZXNlbmNlTGlifGliDQo+ID4gPiBUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYnwvUGVpVGMNCj4gPiA+ IGcyUGh5c2ljYWxQcmVzZW5jZUxpYi5pbmYNCj4gPiA+DQo+ID4gPiAgICBSbmdMaWJ8TWRlUGtn L0xpYnJhcnkvQmFzZVJuZ0xpYi9CYXNlUm5nTGliLmluZg0KPiA+ID4NCj4gPiA+ICsgIEJhc2VI YXNoTGlifFNlY3VyaXR5UGtnL0xpYnJhcnkvQmFzZUhhc2hMaWIvQmFzZUhhc2hMaWJQZWkuaW5m DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5EWEVf RFJJVkVSXQ0KPiA+ID4NCj4gPiA+ICAgIEhvYkxpYnxNZGVQa2cvTGlicmFyeS9EeGVIb2JMaWIv RHhlSG9iTGliLmluZg0KPiA+ID4NCj4gPiA+IEBAIC0xMTAsNiArMTExLDcgQEAgW0xpYnJhcnlD bGFzc2VzLmNvbW1vbi5EWEVfRFJJVkVSXQ0KPiA+ID4NCj4gPiA+IFRwbTEyRGV2aWNlTGlifFNl Y3VyaXR5UGtnL0xpYnJhcnkvVHBtMTJEZXZpY2VMaWJUY2cvVHBtMTJEZXZpY2VMaWJUDQo+ID4g PiBUcG0xMkRldmljZUxpYnxjZw0KPiA+ID4gVHBtMTJEZXZpY2VMaWJ8LmkNCj4gPiA+IG5mDQo+ ID4gPg0KPiA+ID4NCj4gPiA+IFRwbTJEZXZpY2VMaWJ8U2VjdXJpdHlQa2cvTGlicmFyeS9UcG0y RGV2aWNlTGliVGNnMi9UcG0yRGV2aWNlTGliVGNnMi4NCj4gPiA+IFRwbTJEZXZpY2VMaWJ8aW4N Cj4gPiA+IGYNCj4gPiA+DQo+ID4gPg0KPiA+ID4gRmlsZUV4cGxvcmVyTGlifE1kZU1vZHVsZVBr Zy9MaWJyYXJ5L0ZpbGVFeHBsb3JlckxpYi9GaWxlRXhwbG9yZXJMaWINCj4gPiA+IEZpbGVFeHBs b3JlckxpYnwuaQ0KPiA+ID4gbmYNCj4gPiA+DQo+ID4gPiArICBCYXNlSGFzaExpYnxTZWN1cml0 eVBrZy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliRHhlLmluZg0KPiA+ID4NCj4gPiA+ DQo+ID4gPg0KPiA+ID4gIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uVUVGSV9EUklWRVIsDQo+ID4g PiBMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uRFhFX1JVTlRJTUVfRFJJVkVSLA0KPiA+ID4gTGlicmFy eUNsYXNzZXMuY29tbW9uLkRYRV9TQUxfRFJJVkVSLF0NCj4gPiA+DQo+ID4gPiAgICBIb2JMaWJ8 TWRlUGtnL0xpYnJhcnkvRHhlSG9iTGliL0R4ZUhvYkxpYi5pbmYNCj4gPiA+DQo+ID4gPiBAQCAt MjExLDYgKzIxMywxMiBAQCBbQ29tcG9uZW50c10NCj4gPiA+DQo+ID4gPg0KPiA+ID4gICAgU2Vj dXJpdHlQa2cvTGlicmFyeS9IYXNoTGliVHBtMi9IYXNoTGliVHBtMi5pbmYNCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+ICsgICMNCj4gPiA+DQo+ID4gPiArICAjIFVuaWZpZWQgSGFzaCBBUEkN Cj4gPiA+DQo+ID4gPiArICAjDQo+ID4gPg0KPiA+ID4gKyAgU2VjdXJpdHlQa2cvTGlicmFyeS9C YXNlSGFzaExpYi9CYXNlSGFzaExpYkR4ZS5pbmYNCj4gPiA+DQo+ID4gPiArICBTZWN1cml0eVBr Zy9MaWJyYXJ5L0Jhc2VIYXNoTGliL0Jhc2VIYXNoTGliUGVpLmluZg0KPiA+ID4NCj4gPiA+ICsN Cj4gPiA+DQo+ID4gPiAgICAjDQo+ID4gPg0KPiA+ID4gICAgIyBUQ0cgU3RvcmFnZS4NCj4gPiA+ DQo+ID4gPiAgICAjDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1NlY3Vy aXR5UGtnLnVuaQ0KPiA+ID4gYi9TZWN1cml0eVBrZy9TZWN1cml0eVBrZy51bmkgaW5kZXggNjg1 ODczMDRkNzc5Li4zMmVmOTdmODE0NjENCj4gPiA+IDEwMDY0NA0KPiA+ID4gLS0tIGEvU2VjdXJp dHlQa2cvU2VjdXJpdHlQa2cudW5pDQo+ID4gPiArKysgYi9TZWN1cml0eVBrZy9TZWN1cml0eVBr Zy51bmkNCj4gPiA+IEBAIC01LDcgKzUsNyBAQA0KPiA+ID4gIC8vIEl0IGFsc28gcHJvdmlkZXMg dGhlIGRlZmluaXRpb25zKGluY2x1ZGluZyBQUElzL1BST1RPQ09Mcy9HVUlEcw0KPiA+ID4gYW5k IGxpYnJhcnkNCj4gPiA+IGNsYXNzZXMpDQo+ID4gPg0KPiA+ID4gIC8vIGFuZCBsaWJyYXJpZXMg aW5zdGFuY2VzLCB3aGljaCBhcmUgdXNlZCBmb3IgdGhvc2UgZmVhdHVyZXMuDQo+ID4gPg0KPiA+ ID4gIC8vDQo+ID4gPg0KPiA+ID4gLS8vIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTgsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiByZXNlcnZlZC48QlI+DQo+ID4gPg0KPiA+ ID4gKy8vIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+ID4NCj4gPiA+ICAvLw0KPiA+ID4NCj4g PiA+ICAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4NCj4gPiA+ICAvLw0KPiA+ID4NCj4gPiA+IEBAIC0yOTUsMyArMjk1LDE2IEBADQo+ID4gPg0K PiA+ID4NCj4gPiA+ICAjc3RyaW5nIFNUUl9nRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZF9Q Y2RUcG0yQWNwaVRhYmxlTGFzYV9IRUxQDQo+ID4gPiAjbGFuZ3VhZ2UgZW4tVVMgIlRoaXMgUENE IGRlZmluZXMgTEFTQSBvZiBUUE0yIEFDUEkgdGFibGVcblxuIg0KPiA+ID4NCj4gPiA+DQo+ID4g PiAiMCBtZWFucyB0aGlzIGZpZWxkIGlzIHVuc3VwcG9ydGVkXG4iDQo+ID4gPg0KPiA+ID4gKw0K PiA+ID4NCj4gPiA+DQo+ID4gPiArDQo+ID4gPiAgICAgICNzdHJpbmcNCj4gPiA+IFNUUl9nRWZp U2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZF9QY2RTeXN0ZW1IYXNoUG9saWN5X1BST01QVA0KPiA+ ID4gI2xhbmd1YWdlIGVuLVVTICJIQVNIIGFsZ29yaXRobSB0byB2ZXJpZnkgdW5zaWduZWQgUEUv Q09GRiBpbWFnZSINCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gKyNzdHJpbmcgU1RSX2dF ZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkX1BjZFN5c3RlbUhhc2hQb2xpY3lfSEVMUA0KPiA+ ID4gI2xhbmd1YWdlIGVuLVVTICJUaGlzIFBDRCBpbmRpY2F0ZXMgdGhlIEhBU0ggYWxnb3JpdGht IHVzZWQgYnkNCj4gPiA+IFVuaWZpZWQgSGFzaCBBUEkuPEJSPjxCUj5cbiINCj4gPiA+DQo+ID4g PiArDQo+ID4gPiArICJCYXNlZCBvbiB0aGUgdmFsdWUgc2V0LCB0aGUNCj4gPiA+IHJlcXVpcmVk IGFsZ29yaXRobSBpcyBjaG9zZW4gdG8gY2FsY3VsYXRlXG4iDQo+ID4gPg0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGhhc2ggZGVzaXJlZC48QlI+XG4iDQo+ID4g Pg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMHgwMDAwMDAwMSAgLSAg TUQ0LjxCUj5cbiINCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIweDAwMDAwMDAyICAtICBNRDUuPEJSPlxuIg0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIjB4MDAwMDAwMDMgIC0gIFNIQTEuPEJSPlxuIg0KPiA+ID4NCj4g PiA+ICsNCj4gPiA+ICsgIjB4MDAwMDAwMDQgIC0NCj4gPiA+IFNIQTI1Ni48QlI+XG4iDQo+ID4g Pg0KPiA+ID4gKw0KPiA+ID4gKyAiMHgwMDAwMDAwNSAgLQ0KPiA+ID4gU0hBMzg0LjxCUj5cbiIN Cj4gPiA+DQo+ID4gPiArDQo+ID4gPiArICIweDAwMDAwMDA2ICAtDQo+ID4gPiBTSEE1MTIuPEJS PlxuIg0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjB4MDAw MDAwMDcgIC0gIFNNMy48QlI+Ig0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiAyLjE2LjIud2luZG93 cy4xDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCg0K