From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3867F21FCA26B for ; Thu, 2 Nov 2017 19:23:31 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2017 19:27:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,336,1505804400"; d="scan'208";a="171378366" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 02 Nov 2017 19:27:25 -0700 Received: from fmsmsx126.amr.corp.intel.com (10.18.125.43) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 2 Nov 2017 19:27:25 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX126.amr.corp.intel.com (10.18.125.43) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 2 Nov 2017 19:27:24 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002; Fri, 3 Nov 2017 10:27:22 +0800 From: "Yao, Jiewen" To: "Wang, Jian J" , "Kinney, Michael D" , Fan Jeff , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUlQt7kMmlPjLfkaS9nSj0Ju2aqL+wnPg//+GSQCAANyYAIACuK3wgAAHbhCAAAmroA== Date: Fri, 3 Nov 2017 02:27:21 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AA0DB7C@shsmsx102.ccr.corp.intel.com> References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTM2YmZkNzYtMmRhMC00NGZhLThiNDgtOTdiODcwODExMTI2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJYcDNsOVlnU1lyT0hcL2JyaUNhdzlITkxxSzRNNUNtOEpHZFBFR1pnM3YzYTJmR2xFQXZJYWppNDRrT0tIRko0aCJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Nov 2017 02:23:32 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Smlhbg0KVGhhdCBpcyBmb3IgY29tcGF0aWJpbGl0eSBjb25zaWRlcmF0aW9uLg0KDQpPbmNlIHRo ZXJlIGlzIFVESyByZWxlYXNlLCB3ZSBuZXZlciBjaGFuZ2UgQVBJLiBXZSBjYW4gb25seSBhZGQg bmV3IG9uZS4NCk9yIHlvdSBtYXkgYnJlYWsgYW4gb2xkIHBsYXRmb3JtLCB0aGF0IG1heSB1c2Ug bmV3IFVESyByZWxlYXNlLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4gU2VudDogRnJpZGF5LCBO b3ZlbWJlciAzLCAyMDE3IDEwOjEwIEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+OyBGYW4gSmVmZiA8dmFuamVmZl85MTlAaG90bWFpbC5jb20+Ow0KPiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMy8zXSBV ZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2gNCj4gc3Vw cG9ydA0KPiANCj4gSGkgSmlld2VuLA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IFlhbywgSmlld2VuDQo+ID4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciAwMywg MjAxNyA5OjI1IEFNDQo+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IEZhbiBKZWZmDQo+ID4gPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLQ0KPiA+IGRldmVsQGxpc3Rz LjAxLm9yZw0KPiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywg U3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIIDMvM10g VWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sNCj4gc3dpdGNoDQo+ ID4gc3VwcG9ydA0KPiA+DQo+ID4gSEkgSmlhbg0KPiA+IFRoZXJlIGlzIGFub3RoZXIgcG90ZW50 aWFsIHByb2JsZW0uDQo+ID4NCj4gPiBUaGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBpbiBJbml0aWFs aXplQ3B1SW50ZXJydXB0SGFuZGxlcnMoKS4gSG93ZXZlciwgd2UgZXhwZWN0DQo+ID4gdGhpcyBp cyBlbmFibGVkIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLg0KPiA+DQo+ID4g SW4gb3JkZXIgdG8gZ2V0IHRoZSBleGNlcHRpb24gc3RhY2sgaW4gSW5pdGlhbGl6ZUNwdUV4Y2Vw dGlvbkhhbmRsZXJzKCkuIFdlIGNhbg0KPiA+IGhhdmUgMiB3YXlzOg0KPiA+IEEpIExldCBJbml0 aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBhbGxvY2F0ZSB0aGUgZXhjZXB0aW9uIHN0YWNr Lg0KPiA+IEIpIExldCBjYWxsZXIgdG8gcGFzcyB0aGUgZXhjZXB0aW9uIHN0YWNrIHRvIEluaXRp YWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLg0KPiA+DQo+ID4gRm9yIEEpLCBpdCBpcyBoYXJk LCBiZWNhdXNlIER4ZUNvcmUgY2FsbHMgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkg ZWFybGllcg0KPiA+IHRoYW4gQ29yZUluaXRpYWxpemVNZW1vcnlTZXJ2aWNlcygpLg0KPiA+IEZv ciBCKSwgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkgaW50ZXJmYWNlIGRvZXMgbm90 IGNvbnRhaW4gc3VjaA0KPiA+IGluZm9ybWF0aW9uLiBXZSBtaWdodCBuZWVkIGFkZCBhIG5ldyBB UEkgdG8gYWRkIHRoZSBleGNlcHRpb24gc3RhY2sNCj4gPiBpbmZvcm1hdGlvbiwgc3VjaCBhcyBJ bml0aWFsaXplQ3B1U3dpdGNoU3RhY2tFeGNlcHRpb25IYW5kbGVycyAoKS4NCj4gDQo+IFlvdSdy ZSByaWdodC4gRW5hYmxpbmcgc3RhY2sgc3dpdGNoIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25I YW5kbGVycygpIGlzIGEgYml0DQo+IGxhdGUgZm9yIGV4Y2VwdGlvbiBoYW5kbGluZy4gQnV0IEkg ZG9uJ3Qgc2VlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYWRkaW5nDQo+IHBhcmFtZXRlcnMgdG8g ZXhpc3RpbmcgQVBJIChJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMpIGFuZCBhZGRpbmcg YSBuZXcNCj4gQVBJIChJbml0aWFsaXplQ3B1U3dpdGNoU3RhY2tFeGNlcHRpb25IYW5kbGVycykg aW4gdGhpcyBjYXNlLiBJZiB3ZSBoYXZlIHRvDQo+IGNoYW5nZSBsaWJyYXJ5IGludGVyZmFjZSBh bnl3YXksIEknZCBzdWdnZXN0IHRvIGFkZCBwYXJhbWV0ZXJzIHRvIGV4aXN0aW5nDQo+IEFQSSB0 byBjYXJyeSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gc2V0dXAgbmV3IHN0YWNrIGZvciBleGNlcHRp b25zLg0KPiANCj4gPg0KPiA+IE9uY2UgdGhpcyBmZWF0dXJlIGlzIGRvbmUsIGNhbiB3ZSBjbGVh biB1cCB0aGUgU01NIGNvZGUgdG8gdXNlIHRoZSBuZXcgQVBJLA0KPiA+IGluc3RlYWQgb2YgZHVw bGljYXRlIHRoZSBTTU0gY29weSBvZiBleGNlcHRpb24gaGFuZGxlciA/IFRoZSBleGlzdGluZyBT TU0NCj4gPiBjb3B5IGhhcyBzb21lIGFzc3VtcHRpb24gb24gQ1I0IGFuZCBGWFNBVkUvUkVTVE9S RSwgYW5kIGl0IGJyb2tlIFF1YXJrDQo+ID4gcGxhdGZvcm0uDQo+IA0KPiBJIGFncmVlLg0KPiAN Cj4gPg0KPiA+IFRoYW5rIHlvdQ0KPiA+IFlhbyBKaWV3ZW4NCj4gPg0KPiA+DQo+ID4NCj4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwg RA0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAxLCAyMDE3IDExOjQzIFBNDQo+ID4g PiBUbzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4g PiA8amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiA+ID4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgS2lubmV5LA0KPiA+IE1pY2hh ZWwNCj4gPiA+IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IERvbmcs IEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwu Y29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+ID4gc3dpdGNoDQo+ID4gPiBzdXBwb3J0DQo+ID4g Pg0KPiA+ID4gSSBhZ3JlZSB0aGF0IGFkZGluZyBBc21Xcml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVf U0VHTUVOVCwNCj4gPiA+IElBMzJfVFNTX0RFU0NSSVBUT1IgdG8gTWRlUGtnIEJhc2VMaWIgaXMg YSBnb29kIGlkZWEuDQo+ID4gPg0KPiA+ID4gTWlrZQ0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZl bC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIEZhbg0KPiA+ID4gSmVmZg0KPiA+ ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAzMSwgMjAxNyA3OjMzIFBNDQo+ID4gPiBUbzogWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4gPGppYW4u ai53YW5nQGludGVsLmNvbT47DQo+ID4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4g Q2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IERvbmcs IEVyaWMNCj4gPiA+IDxlcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5n QGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFtlZGsyXSC08Li0OiBbUEFUQ0ggMy8zXSBVZWZp Q3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZA0KPiA+ID4gc3RhY2sgc3dpdGNoIHN1 cHBvcnQNCj4gPiA+DQo+ID4gPiBQZXIgaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD0xMDksIFRSIHNob3VsZCBiZSBzZXR1cA0KPiA+ID4gKFN1Y2ggYXMgaW4g RHhlSXBsUGVpbSkgZXZlbiB0aG91Z2ggTlVMTCBDcHUgRXhjZXB0aW9uIEhhbmRsZXIgaW5zdGFu Y2UgaXMNCj4gPiA+IGNob3Nlbi4NCj4gPiA+DQo+ID4gPiBGb3IgbG9uZyB0ZXJtLCBJIGFncmVl IHdlIG5lZWQgdG8gbW92ZSBBc21Xcml0ZVRyLA0KPiA+ID4gSUEzMl9UQVNLX1NUQVRFX1NFR01F TlQsIElBMzJfVFNTX0RFU0NSSVBUT1IgdG8gTWRlUGtnKFN1Y2ggYXMNCj4gPiBCYXNlTGliKQ0K PiA+ID4gRm9yIHRoaXMgcGF0Y2gsIEkgaGF2ZSBubyBzdHJvbmcgb3Bpbmlvbi4NCj4gPiA+DQo+ ID4gPg0KPiA+ID4gt6K8/sjLOiBZYW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5j b20+DQo+ID4gPiC3osvNyrG85DogMjAxN8TqMTHUwjHI1SA5OjU2DQo+ID4gPiDK1bz+yMs6IFdh bmcsIEppYW4gSjxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gPiA+IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gPiA+ILOt y806IEtpbm5leSwgTWljaGFlbCBEPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47 IERvbmcsDQo+ID4gPiBFcmljPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3Rh cjxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+INb3zOI6IFJlOiBbZWRrMl0gW1BB VENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQNCj4gc3RhY2sN Cj4gPiA+IHN3aXRjaCBzdXBwb3J0DQo+ID4gPg0KPiA+ID4gSGkgSmlhbg0KPiA+ID4gVGhhbmtz IGZvciB0aGUgcGF0Y2guDQo+ID4gPg0KPiA+ID4gQ2FuIHdlIG1vdmUgYWxsIElBMzIgZGVmaW5l ZCBkYXRhIHN0cnVjdHVyZSBvciBmdW5jdGlvbiB0byBNZGVQa2c/DQo+ID4gPiBTdWNoIGFzOiBB c21Xcml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCwgSUEzMl9UU1NfREVTQ1JJUFRPUg0K PiA+ID4NCj4gPiA+IEkgYW0gYWxzbyBjdXJpb3VzIHdoeSB3ZSB1c2UgZGlmZmVyZW50IHBvbGlj eSBmb3Igb3RoZXIgYm9vdCBtb2RlLg0KPiA+ID4gQ2FuIHdlIHVzZSBjb25zaXN0ZW50IHBvbGlj eT8NCj4gPiA+ID4gKyAgaWYgKFBjZEdldEJvb2wgKFBjZENwdVN0YWNrR3VhcmQpKSB7DQo+ID4g PiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICAvLyBTdGFjayBHdWFyZCB3b3JrcyB3aXRoIHRoZSBz dXBwb3J0IG9mIHBhZ2UgdGFibGUgZXN0YWJsaXNoZWQgYW5kDQo+ID4gPiA+ICsgICAgLy8gbWVt b3J5IG1hbmFnZW1lbnQuIFNvIHdlIGhhdmUgdG8gZXhjbHVkZSB0aG9zZSBib290IG1vZGVzDQo+ ID4gPiA+IHdpdGhvdXQNCj4gPiA+ID4gKyAgICAvLyB0aGVtLg0KPiA+ID4gPiArICAgIC8vDQo+ ID4gPiA+ICsgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQo+ID4gPiA+ICsgICAgY2Fz ZSBCT09UX09OX0ZMQVNIX1VQREFURToNCj4gPiA+ID4gKyAgICBjYXNlIEJPT1RfSU5fUkVDT1ZF UllfTU9ERToNCj4gPiA+ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ID4gPiAr ICAgICAgYnJlYWs7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBkZWZhdWx0Og0KPiA+ID4gPiAr ICAgICAgQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKElkdFRhYmxlKTsNCj4gPiA+ID4gKyAgICAg IGJyZWFrOw0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKyAgfQ0KPiA+ID4NCj4gPiA+DQo+ID4g PiBUaGFuayB5b3UNCj4gPiA+IFlhbyBKaWV3ZW4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4gPiA+ ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAzMSwgMjAxNyAxMDoyNCBQTQ0KPiA+ID4gPiBUbzog ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVu Z0BpbnRlbC5jb20+OyBEb25nLCBFcmljDQo+ID4gPiA+IDxlcmljLmRvbmdAaW50ZWwuY29tPjsg WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgS2lubmV5LA0KPiA+ID4gPiBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbUEFU Q0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjaw0KPiA+ ID4gPiBzd2l0Y2ggc3VwcG9ydA0KPiA+ID4gPg0KPiA+ID4gPiBJZiBTdGFjayBHdWFyZCBpcyBl bmFibGVkIGFuZCB0aGVyZSdzIHJlYWxseSBhIHN0YWNrIG92ZXJmbG93IGhhcHBlbmVkDQo+ID4g PiA+IGR1cmluZyBib290LCBhIFBhZ2UgRmF1bHQgZXhjZXB0aW9uIHdpbGwgYmUgdHJpZ2dlcmVk LiBCZWNhdXNlIHRoZQ0KPiA+ID4gPiBzdGFjayBpcyBvdXQgb2YgdXNhZ2UsIHRoZSBleGNlcHRp b24gaGFuZGxlciwgd2hpY2ggc2hhcmVzIHRoZSBzdGFjaw0KPiA+ID4gPiB3aXRoIG5vcm1hbCBV RUZJIGRyaXZlciwgY2Fubm90IGJlIGV4ZWN1dGVkIGFuZCBjYW5ub3QgZHVtcCB0aGUNCj4gcHJv Y2Vzc29yDQo+ID4gPiBpbmZvcm1hdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gV2l0aG91dCB0aG9z ZSBpbmZvcm1hdGlvbiwgaXQncyB2ZXJ5IGRpZmZpY3VsdCBmb3IgdGhlIEJJT1MgZGV2ZWxvcGVy cw0KPiA+ID4gPiBsb2NhdGUgdGhlIHJvb3QgY2F1c2Ugb2Ygc3RhY2sgb3ZlcmZsb3cuIEFuZCB3 aXRob3V0IGEgd29ya2FibGUgc3RhY2ssDQo+ID4gPiA+IHRoZSBkZXZlbG9wZXIgY2Fubm90IGV2 ZW50IHVzZSBzaW5nbGUgc3RlcCB0byBkZWJ1ZyB0aGUgVUVGSSBkcml2ZXIgd2l0aA0KPiA+IEpU QUcNCj4gPiA+IGRlYnVnZ2VyLg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBvcmRlciB0byBtYWtlIHN1 cmUgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGV4ZWN1dGUgbm9ybWFsbHkgYWZ0ZXINCj4gPiA+ ID4gc3RhY2sgb3ZlcmZsb3cuIFdlIG5lZWQgc2VwYXJhdGUgc3RhY2tzIGZvciBleGNlcHRpb24g aGFuZGxlcnMgaW4gY2FzZQ0KPiA+ID4gPiBvZiB1bnVzYWJsZSBzdGFjay4NCj4gPiA+ID4NCj4g PiA+ID4gSUEgcHJvY2Vzc29yIGFsbG93cyB0byBzd2l0Y2ggdG8gYSBuZXcgc3RhY2sgZHVyaW5n IGhhbmRsaW5nIGludGVycnVwdA0KPiA+ID4gPiBhbmQgZXhjZXB0aW9uLiBCdXQgWDY0IGFuZCBJ QTMyIHByb3ZpZGVzIGRpZmZlcmVudCB3YXlzIHRvIG1ha2UgaXQuDQo+ID4gPiA+IFg2NCBwcm92 aWRlcyBpbnRlcnJ1cHQgc3RhY2sgdGFibGUgKElTVCkgdG8gYWxsb3cgbWF4aW11bSA3IGRpZmZl cmVudA0KPiA+ID4gPiBleGNlcHRpb25zIHRvIGhhdmUgbmV3IHN0YWNrIGZvciBpdHMgaGFuZGxl ci4gSUEzMiBkb2Vzbid0IGhhdmUgSVNUDQo+ID4gPiA+IG1lY2hhbmlzbSBhbmQgY2FuIG9ubHkg dXNlIHRhc2sgZ2F0ZSB0byBkbyBpdCBzaW5jZSB0YXNrIHN3aXRjaCBhbGxvd3MNCj4gPiA+ID4g dG8gbG9hZCBhIG5ldyBzdGFjayB0aHJvdWdoIGl0cyB0YXNrLXN0YXRlIHNlZ21lbnQgKFRTUyku DQo+ID4gPiA+DQo+ID4gPiA+IE5vdGU6IFN0YWNrIHN3aXRjaCBuZWVkcyB0byBhbGxvY2F0ZSBt ZW1vcnkgcGFnZXMgdG8gYmUgbmV3IHN0YWNrcy4gU28NCj4gdGhpcw0KPiA+ID4gPiAgICAgICBm dW5jdGlvbmFsaXR5IHdvcmtzIG9ubHkgaW4gdGhlIGJvb3QgcGhhc2VzIGNhcGFibGUgb2YgbWVt b3J5DQo+ID4gPiA+ICAgICAgIGFsbG9jYXRpb24gKGJlc2lkZXMgdGhlIHBhZ2luZywgZm9yIHRo ZSBzYWtlIG9mIFN0YWNrIEd1YXJkKS4gSW4NCj4gPiA+ID4gICAgICAgb3RoZXIgd29yZHMsIG9u bHkgRFhFIHBoYXNlIGNhbiBzdXBwb3J0cyBTdGFjayBHdWFyZCB3aXRoIHN0YWNrDQo+ID4gPiBz d2l0Y2guDQo+ID4gPiA+DQo+ID4gPiA+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5j b20+DQo+ID4gPiA+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gPiA+ IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IE1pY2hh ZWwgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gU3VnZ2VzdGVk LWJ5OiBBeWVsbGV0IFdvbG1hbiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPg0KPiA+ID4gPiBD b250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgLi4uL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhj ZXB0aW9uQ29tbW9uLmggICAgfCAgMjIgKysNCj4gPiA+ID4gIC4uLi9EeGVDcHVFeGNlcHRpb25I YW5kbGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwgICA1ICsNCj4gPiA+ID4gIC4uLi9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgIHwgIDE5ICsNCj4gPiA+ ID4gIC4uLi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgICAgICAgICAgICAgICAgICAgIHwg MTM1ICsrKysrKysNCj4gPiA+ID4gIC4uLi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmggICAgICAg ICAgICAgICAgICAgICAgIHwgMTM2ICsrKysrKysNCj4gPiA+ID4gIC4uLi9JYTMyL0V4Y2VwdGlv blRzc0VudHJ5QXNtLm5hc20gICAgICAgICAgICAgICAgIHwgMzk4DQo+ID4gPiA+ICsrKysrKysr KysrKysrKysrKysrKw0KPiA+ID4gPiAgLi4uL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5m ICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4gPiAgLi4uL1NlY1BlaUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgfCAgIDMgKw0KPiA+ID4gPiAgLi4uL1NtbUNw dUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4g PiAgLi4uL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICAgfCAx MDggKysrKysrDQo+ID4gPiA+ICAuLi4vQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaElu dGVycnVwdERlZnMuaCB8ICA0MCArKysNCj4gPiA+ID4gIC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxl ckFzbS5TICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4gPiA+ID4gIC4uLi9YNjQvRXhj ZXB0aW9uSGFuZGxlckFzbS5hc20gICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4gPiA+ID4g IC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtICAgICAgICAgICAgICAgICAgIHwgIDEy ICsNCj4gPiA+ID4gIDE0IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4NCj4gVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYQ0KPiA+ID4gPiBz bQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiA+ID4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25D b21tb24uaA0KPiA+ID4gPiBpbmRleCA3NDBhNTg4MjhiLi5mZDRhMjZhNDU4IDEwMDY0NA0KPiA+ ID4gPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9D cHVFeGNlcHRpb25Db21tb24uaA0KPiA+ID4gPiArKysNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+ID4gPiBAQCAt MjUsNiArMjUsNyBAQA0KPiA+ID4gPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5o Pg0KPiA+ID4gPiAgI2luY2x1ZGUgPExpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmg+ICAjaW5j bHVkZQ0KPiA+ID4gPiA8TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliLmg+DQo+ID4gPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4gPiA+DQo+ID4g PiA+ICAjZGVmaW5lICBDUFVfRVhDRVBUSU9OX05VTSAgICAgICAgICAzMg0KPiA+ID4gPiAgI2Rl ZmluZSAgQ1BVX0lOVEVSUlVQVF9OVU0gICAgICAgICAyNTYNCj4gPiA+ID4gQEAgLTI4OCw1ICsy ODksMjYgQEAgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcldvcmtlciAoDQo+ID4gPiA+ICAgIElOIEVY Q0VQVElPTl9IQU5ETEVSX0RBVEEgICAgICAqRXhjZXB0aW9uSGFuZGxlckRhdGENCj4gPiA+ID4g ICAgKTsNCj4gPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiArICBMb2FkIGdpdmVuIHNlbGVj dG9yIGludG8gVFIgcmVnaXN0ZXINCj4gPiA+ID4gKw0KPiA+ID4gPiArICBAcGFyYW0gU2VsZWN0 b3IgICAgICAgICBUYXNrIHNlZ21lbnQgc2VsZWN0b3INCj4gPiA+ID4gKyoqLw0KPiA+ID4gPiAr Vk9JRA0KPiA+ID4gPiArQXNtV3JpdGVUciAoDQo+ID4gPiA+ICsgIFVJTlQxNiBTZWxlY3Rvcg0K PiA+ID4gPiArICApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgU2V0dXAg c2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ID4gPiA+ICsNCj4gPiA+ ID4gKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURUIHRhYmxlIGJhc2UuDQo+ID4gPiA+ ICsqKi8NCj4gPiA+ID4gK1ZPSUQNCj4gPiA+ID4gK0VGSUFQSQ0KPiA+ID4gPiArQXJjaFNldHVw RXhjcGV0aW9uU3RhY2sgKA0KPiA+ID4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1Ig ICAgICAgICAgICpJZHRUYWJsZQ0KPiA+ID4gPiArICApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAj ZW5kaWYNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiBhL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJM aWIuDQo+ID4gPiA+IGluZg0KPiA+ID4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gPiA+IGluZg0K PiA+ID4gPiBpbmRleCBmNGE4ZDAxYzgwLi5iMDk5ZWY0ZGFkIDEwMDY0NA0KPiA+ID4gPiAtLS0N Cj4gPiA+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9E eGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gPiBpbmYNCj4gPiA+ID4gKysrDQo+ID4g PiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiA+ID4gaW5mDQo+ID4gPiA+IEBAIC0zMCw2ICszMCw3 IEBADQo+ID4gPiA+ICBbU291cmNlcy5JYTMyXQ0KPiA+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhh bmRsZXJBc20uYXNtDQo+ID4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ ID4gPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KPiA+ID4gPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5k bGVyLmMNCj4gPiA+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IEBAIC00 Nyw2ICs0OCw5IEBADQo+ID4gPiA+ICAgIFBlaUR4ZVNtbUNwdUV4Y2VwdGlvbi5jDQo+ID4gPiA+ ICAgIER4ZUV4Y2VwdGlvbi5jDQo+ID4gPiA+DQo+ID4gPiA+ICtbUGNkXQ0KPiA+ID4gPiArICBn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U3RhY2tHdWFyZA0KPiA+ID4gPiAr DQo+ID4gPiA+ICBbUGFja2FnZXNdDQo+ID4gPiA+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4g PiA+ICAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gPiA+IEBAIC02MSwzICs2 NSw0IEBADQo+ID4gPiA+ICAgIFBlQ29mZkdldEVudHJ5UG9pbnRMaWINCj4gPiA+ID4gICAgTWVt b3J5QWxsb2NhdGlvbkxpYg0KPiA+ID4gPiAgICBEZWJ1Z0xpYg0KPiA+ID4gPiArICBIb2JMaWIN Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiA+ID4gaW5kZXggMzFmZWJlYzk3 Ni4uZTlkY2QwMGUwMiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiA+ID4gKysrIGIvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiA+ ID4gQEAgLTE2LDYgKzE2LDcgQEANCj4gPiA+ID4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21t b24uaCINCj4gPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gPiA+ICAj aW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4gPiA+ICsjaW5jbHVk ZSA8TGlicmFyeS9Ib2JMaWIuaD4NCj4gPiA+ID4NCj4gPiA+ID4gIENPTlNUIFVJTlROICAgIG1E b0ZhclJldHVybkZsYWcgID0gMDsNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE1NSw2ICsxNTYsMjQg QEAgSW5pdGlhbGl6ZUNwdUludGVycnVwdEhhbmRsZXJzICgNCj4gPiA+ID4NCj4gPiA+ID4gICAg VXBkYXRlSWR0VGFibGUgKElkdFRhYmxlLCAmVGVtcGxhdGVNYXAsICZtRXhjZXB0aW9uSGFuZGxl ckRhdGEpOw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNkQ3B1U3RhY2tH dWFyZCkpIHsNCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiArICAgIC8vIFN0YWNrIEd1YXJkIHdv cmtzIHdpdGggdGhlIHN1cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQNCj4gPiA+ ID4gKyAgICAvLyBtZW1vcnkgbWFuYWdlbWVudC4gU28gd2UgaGF2ZSB0byBleGNsdWRlIHRob3Nl IGJvb3QgbW9kZXMNCj4gPiA+ID4gd2l0aG91dA0KPiA+ID4gPiArICAgIC8vIHRoZW0uDQo+ID4g PiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICBzd2l0Y2ggKEdldEJvb3RNb2RlSG9iKCkpIHsNCj4g PiA+ID4gKyAgICBjYXNlIEJPT1RfT05fRkxBU0hfVVBEQVRFOg0KPiA+ID4gPiArICAgIGNhc2Ug Qk9PVF9JTl9SRUNPVkVSWV9NT0RFOg0KPiA+ID4gPiArICAgIGNhc2UgQk9PVF9PTl9TM19SRVNV TUU6DQo+ID4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIGRlZmF1 bHQ6DQo+ID4gPiA+ICsgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUpOw0K PiA+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiArICB9DQo+ID4g PiA+ICsNCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4gICAgLy8gTG9hZCBJbnRlcnJ1cHQgRGVzY3Jp cHRvciBUYWJsZQ0KPiA+ID4gPiAgICAvLw0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0 aW9uSGFuZGxlci4NCj4gPiA+ID4gYw0KPiA+ID4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ID4gPiA+ IGMNCj4gPiA+ID4gaW5kZXggZjJjMzllYjE5My4uM2Q0MWRmNzVhNSAxMDA2NDQNCj4gPiA+ID4g LS0tDQo+ID4gPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv SWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci4NCj4gPiA+ID4gYw0KPiA+ID4gPiArKysNCj4gPiA+ ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0Fy Y2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+ID4gPiBjDQo+ID4gPiA+IEBAIC0xNCw2ICsxNCwxOSBA QA0KPiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiA+ ID4gPg0KPiA+ID4gPiArLy8NCj4gPiA+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5n IHNlcGFyYXRlIHN0YWNrIC8vIFNUQVRJQw0KPiA+ID4gPiArSUEzMl9FWENFUFRJT05fVFNfRU5U UlkgbUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiA+ID4gKyAgezYsICBFeGNlcHRpb25U YXNrU3d0aWNoRW50cnk2fSwgIC8vI1VEOiBJbnZhbGlkIE9wY29kZSBFeGNlcHRpb24NCj4gPiA+ ID4gKyAgezgsICBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk4fSwgIC8vI0RGOiBEb3VibGUgRmF1 bHQgRXhjZXB0aW9uDQo+ID4gPiA+ICsgIHsxMiwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTJ9 LCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ID4gPiA+ICsgIHsxMywgRXhjZXB0aW9u VGFza1N3dGljaEVudHJ5MTN9LCAvLyNHUDogR2VuZXJhbCBQcm90ZWN0aW9uDQo+ID4gPiA+ICtF eGNlcHRpb24NCj4gPiA+ID4gKyAgezE0LCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNH0sIC8v I1BGOiBQYWdlLUZhdWx0IEV4Y2VwdGlvbg0KPiA+ID4gPiArICB7MTcsIEV4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeTE3fSwgLy8jQUM6IEFsaWdubWVudCBDaGVjayBFeGNlcHRpb24NCj4gPiA+ID4g KyAgezE4LCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxOH0gIC8vI01DOiBNYWNoaW5lLUNoZWNr IEV4Y2VwdGlvbiB9Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICAvKioNCj4gPiA+ID4gICAgUmV0dXJu IGFkZHJlc3MgbWFwIG9mIGV4Y2VwdGlvbiBoYW5kbGVyIHRlbXBsYXRlIHNvIHRoYXQgQyBjb2Rl IGNhbg0KPiA+ID4gPiBnZW5lcmF0ZQ0KPiA+ID4gPiAgICBleGNlcHRpb24gdGFibGVzLg0KPiA+ ID4gPiBAQCAtMTA3LDYgKzEyMCwxMjggQEAgQXJjaFJlc3RvcmVFeGNlcHRpb25Db250ZXh0ICgN Cj4gPiA+ID4gICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0SWEzMi0+RXhjZXB0aW9uRGF0 YSA9DQo+ID4gPiA+IFJlc2VydmVkVmVjdG9yc1tFeGNlcHRpb25UeXBlXS5FeGNlcHRpb25EYXRh Ow0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArLyoqDQo+ID4gPiA+ICsgIFNldHVwIHNl cGFyYXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNlcHRpb25zLg0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4NCj4gPiA+ID4g KyoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiArRUZJQVBJDQo+ID4gPiA+ICtBcmNoU2V0dXBF eGNwZXRpb25TdGFjayAoDQo+ID4gPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAg ICAgICAgICAgKklkdFRhYmxlDQo+ID4gPiA+ICsgICkNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAg Vk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiA+ID4gPiArICBJQTMyX0RFU0NS SVBUT1IgICAgICAgICAgIEdkdERlc2M7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAg ICAgICAgT2xkR2R0U2l6ZTsNCj4gPiA+ID4gKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAgICAq VHNzRW50cnk7DQo+ID4gPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgKlRzc0Rlc2M7 DQo+ID4gPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgKlRzczsNCj4gPiA+ID4gKyAg VUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja0Jhc2U7DQo+ID4gPiA+ICsgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgU3RhY2tUb3A7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgU3RhY2tTaXplOw0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAg IEluZGV4Ow0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjsNCj4g PiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3IgdGhl IEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCj4gPiA+ID4gKyBPbGRHZHRTaXplID0g R2R0RGVzYy5MaW1pdCArIDE7ICBOZXdHZHQgPQ0KPiA+ID4gPiArIEFsbG9jYXRlUnVudGltZVpl cm9Qb29sKE9sZEdkdFNpemUgKyBzaXplb2YoVFNTX0VOVFJJRVMpDQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsgIGlmDQo+ ID4gPiAoTmV3R2R0DQo+ID4gPiA+ICsgPT0gTlVMTCkgew0KPiA+ID4gPiArICAgIHJldHVybjsN Cj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVSIChOZXdHZHQs IElBMzJfR0RUX0FMSUdOTUVOVCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g KyAgLy8gSW5pdGlhbGl6ZSBuZXcgR0RUIGVudHJpZXMNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g KyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRHZHRTaXplKTsNCj4g R2R0RGVzYy5CYXNlID0NCj4gPiA+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2Mu TGltaXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsNCj4gPiA+ID4gKyBUU1NfT0ZGU0VUIC0gMSk7 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gUmVzZXJ2ZSBzdGF0Y2sg bWVtb3J5IGZvciBnaXZlbiBleGNlcHRpb25zICAvLyAgU3RhY2tTaXplID0NCj4gPiA+ID4gKyBB UlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjaykgKiBFWENFUFRJT05fU1RBQ0tfU0laRTsN Cj4gU3RhY2tTaXplDQo+ID4gPiA+ICsgPSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9f UEFHRVMgKFN0YWNrU2l6ZSkpOyAgU3RhY2tCYXNlID0NCj4gPiA+ID4gKyAoVUlOVDY0KShVSU5U TilBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUw0KPiA+ID4gPiAoU3RhY2tTaXplKSk7 DQo+ID4gPiA+ICsgIGlmIChTdGFja0Jhc2UgPT0gMCkgew0KPiA+ID4gPiArICAgIEZyZWVQb29s IChOZXdHZHQpOw0KPiA+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiAr DQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9ycyBhbmQg c2VnbWVudHMgIC8vICBUc3NFbnRyeSA9IChWT0lEDQo+ID4gPiA+ICsgKikoR2R0RGVzYy5CYXNl ICsgT2xkR2R0U2l6ZSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgVHNzQmFzZSA9IChVSU5UTiko Vk9JRCAqKSZUc3NFbnRyeS0+VHNzOw0KPiA+ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0 MTVfMCAgICAgICAgICAgID0NCj4gPiA+ID4gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5U KSAtIDE7DQo+ID4gPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAg PSAoVUlOVDE2KVRzc0Jhc2U7DQo+ID4gPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2 ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiA+ID4gPiArICBUc3NFbnRy eS0+VHNzU2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4g PiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGltaXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KPiA+ID4g PiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NC YXNlID4+IDI0KTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBTdGFja1RvcCAgPSBTdGFja0Jhc2Ug KyBTdGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiBTdGFja1RvcA0KPiA+ID4gPiAr ID0gKFVJTlROKUFMSUdOX1BPSU5URVIgKFN0YWNrVG9wLCBDUFVfU1RBQ0tfQUxJR05NRU5UKTsg IGZvcg0KPiA+IChJbmRleA0KPiA+ID4gPiArID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhj ZXB0aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiAr ICAgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9yDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAg ICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhd Ow0KPiA+ID4gPiArICAgIFRzc0Rlc2MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1NlZ1tJbmRl eF07DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBUc3NEZXNjLT5MaW1pdDE1XzAgICAgICAgICAg ICA9DQo+IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLQ0KPiA+ID4gMTsNCj4gPiA+ ID4gKyAgICBUc3NEZXNjLT5CYXNlMTVfMCAgICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsN Cj4gPiA+ID4gKyAgICBUc3NEZXNjLT5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5UOCkoVHNz QmFzZSA+PiAxNik7DQo+ID4gPiA+ICsgICAgVHNzRGVzYy0+VHlwZSAgICAgICAgICAgICAgICAg PSBJQTMyX0dEVF9UWVBFX1RTUzsNCj4gPiA+ID4gKyAgICBUc3NEZXNjLT5MaW1pdDE5XzE2X2Fu ZF9mbGFncyA9IDA7DQo+ID4gPiA+ICsgICAgVHNzRGVzYy0+QmFzZTMxXzI0ICAgICAgICAgICAg PSAoVUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgLy8NCj4g PiA+ID4gKyAgICAvLyBGaXh1cCBUU1MNCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiArICAgIFRz cyA9ICZUc3NFbnRyeS0+RXhjZXB0aW9uVHNzW0luZGV4XTsNCj4gPiA+ID4gKyAgICBUc3MtPkNS MyAgICA9IEFzbVJlYWRDcjMoKTsNCj4gPiA+ID4gKyAgICBUc3MtPkVJUCAgICA9IChVSU5UMzIp bUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5kZXhdLkVudHJ5UG9pbnQ7DQo+ID4gPiA+ICsgICAgVHNz LT5FRkxBR1MgPSAweDI7DQo+ID4gPiA+ICsgICAgVHNzLT5FU1AgICAgPSBTdGFja1RvcDsNCj4g PiA+ID4gKyAgICBUc3MtPkVTICAgICA9IEFzbVJlYWRFcygpOw0KPiA+ID4gPiArICAgIFRzcy0+ Q1MgICAgID0gQXNtUmVhZENzKCk7DQo+ID4gPiA+ICsgICAgVHNzLT5TUyAgICAgPSBBc21SZWFk U3MoKTsNCj4gPiA+ID4gKyAgICBUc3MtPkRTICAgICA9IEFzbVJlYWREcygpOw0KPiA+ID4gPiAr ICAgIFRzcy0+RlMgICAgID0gQXNtUmVhZEZzKCk7DQo+ID4gPiA+ICsgICAgVHNzLT5HUyAgICAg PSBBc21SZWFkR3MoKTsNCj4gPiA+ID4gKyAgICBTdGFja1RvcCAgIC09IEVYQ0VQVElPTl9TVEFD S19TSVpFOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICAvLyBDaGFu Z2Ugc3BlY2lmaWVkIGV4Y2VwdGlvbnMgaW4gSURUIHRvIHVzZSBUU1MNCj4gPiA+ID4gKyAgICAv Lw0KPiA+ID4gPiArICAgIFZlY3RvciA9IG1FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XS5WZWN0 b3I7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuT2Zmc2V0 TG93ICA9IDA7DQo+ID4gPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlNlbGVjdG9yICAg PSBPbGRHZHRTaXplICsNCj4gPiA+ID4gRVhDRVBUSU9OX1RTU19TRUwoSW5kZXgpOw0KPiA+ID4g PiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5SZXNlcnZlZF8wID0gMDsNCj4gPiA+ID4gKyAg ICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuR2F0ZVR5cGUgICA9IElBMzJfSURUX0dBVEVfVFlQRV9U QVNLOw0KPiA+ID4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRIaWdoID0gMDsg IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBQdWJsaXNoIHRoZSBj aGFuZ2VzDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gTG9hZCB0YXNrIHJlZ2lz dGVyDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIEFzbVdyaXRlVHIgKChVSU5UMTYpKE9sZEdk dFNpemUgKyBUU1NfU0VMKSk7IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAg IERpc3BsYXkgcHJvY2Vzc29yIGNvbnRleHQuDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMy L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiA+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiA+ID4gaW5kZXgg YThkMzU1NmE4MC4uNzdjYzZmOTkxOSAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0 RGVmcy5oDQo+ID4gPiA+ICsrKw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMNCj4gPiA+ID4gKysrIC5oDQo+ID4gPiA+ IEBAIC00MSw0ICs0MSwxNDAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gPiAgICBVSU5UOCAg ICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCj4gPiA+ ID4gIH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPiA+ID4gPg0KPiA+ID4gPiArI3ByYWdtYSBw YWNrICgxKQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAg ICAgICAgICA3DQo+ID4gPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9TVEFDS19TSVpFICAgICAgICBF RklfUEFHRV9TSVpFDQo+ID4gPiA+ICsjZGVmaW5lIElBMzJfR0RUX1RZUEVfVFNTICAgICAgICAg ICAweDg5DQo+ID4gPiA+ICsjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVOVCAgICAgICAgICA4DQo+ ID4gPiA+ICsNCj4gPiA+ID4gKy8vDQo+ID4gPiA+ICsvLyBJQTMyIFRTUyBEZWZpbml0aW9uDQo+ ID4gPiA+ICsvLw0KPiA+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gPiArICBVSU5UMTYg ICAgUHJldmlvdXNUYXNrTGluazsgLy8gMDANCj4gPiA+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVk XzI7DQo+ID4gPiA+ICsgIFVJTlQzMiAgICBFU1AwOyAgICAgICAgICAgICAvLyAwNA0KPiA+ID4g PiArICBVSU5UMTYgICAgU1MwOyAgICAgICAgICAgICAgLy8gMDgNCj4gPiA+ID4gKyAgVUlOVDE2 ICAgIFJlc2VydmVkXzEwOw0KPiA+ID4gPiArICBVSU5UMzIgICAgRVNQMTsgICAgICAgICAgICAg Ly8gMEMNCj4gPiA+ID4gKyAgVUlOVDE2ICAgIFNTMTsgICAgICAgICAgICAgIC8vIDEwDQo+ID4g PiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xODsNCj4gPiA+ID4gKyAgVUlOVDMyICAgIEVTUDI7 ICAgICAgICAgICAgIC8vIDE0DQo+ID4gPiA+ICsgIFVJTlQxNiAgICBTUzI7ICAgICAgICAgICAg ICAvLyAxOA0KPiA+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMjY7DQo+ID4gPiA+ICsgIFVJ TlQzMiAgICBDUjM7ICAgICAgICAgICAgICAvLyAxQw0KPiA+ID4gPiArICBVSU5UMzIgICAgRUlQ OyAgICAgICAgICAgICAgLy8gMjANCj4gPiA+ID4gKyAgVUlOVDMyICAgIEVGTEFHUzsgICAgICAg ICAgIC8vIDI0DQo+ID4gPiA+ICsgIFVJTlQzMiAgICBFQVg7ICAgICAgICAgICAgICAvLyAyOA0K PiA+ID4gPiArICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAgICAgLy8gMkMNCj4gPiA+ID4gKyAg VUlOVDMyICAgIEVEWDsgICAgICAgICAgICAgIC8vIDMwDQo+ID4gPiA+ICsgIFVJTlQzMiAgICBF Qlg7ICAgICAgICAgICAgICAvLyAzNA0KPiA+ID4gPiArICBVSU5UMzIgICAgRVNQOyAgICAgICAg ICAgICAgLy8gMzgNCj4gPiA+ID4gKyAgVUlOVDMyICAgIEVCUDsNCj4gPiA+ID4gKyAgVUlOVDMy ICAgIEVTSTsNCj4gPiA+ID4gKyAgVUlOVDMyICAgIEVESTsNCj4gPiA+ID4gKyAgVUlOVDE2ICAg IEVTOw0KPiA+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfNzQ7DQo+ID4gPiA+ICsgIFVJTlQx NiAgICBDUzsNCj4gPiA+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzc4Ow0KPiA+ID4gPiArICBV SU5UMTYgICAgU1M7DQo+ID4gPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84MjsNCj4gPiA+ID4g KyAgVUlOVDE2ICAgIERTOw0KPiA+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfODY7DQo+ID4g PiA+ICsgIFVJTlQxNiAgICBGUzsNCj4gPiA+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzkwOw0K PiA+ID4gPiArICBVSU5UMTYgICAgR1M7DQo+ID4gPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85 NDsNCj4gPiA+ID4gKyAgVUlOVDE2ICAgIExEVFNlZ21lbnRTZWxlY3RvcjsNCj4gPiA+ID4gKyAg VUlOVDE2ICAgIFJlc2VydmVkXzk4Ow0KPiA+ID4gPiArICBVSU5UMTYgICAgVDsNCj4gPiA+ID4g KyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ID4gPiA+ICt9IElBMzJfVEFTS19TVEFU RV9TRUdNRU5UOw0KPiA+ID4gPiArDQo+ID4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiA+ ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ID4gPiA+ICsgIFVJTlQxNiAgICBCYXNlMTVfMDsN Cj4gPiA+ID4gKyAgVUlOVDggICAgIEJhc2UyM18xNjsNCj4gPiA+ID4gKyAgVUlOVDggICAgIFR5 cGU7DQo+ID4gPiA+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gPiA+ID4g KyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCj4gPiA+ID4gK30gSUEzMl9UU1NfREVTQ1JJUFRPUjsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gPiArICBJQTMyX1RT U19ERVNDUklQVE9SICAgICAgICAgICBUc3NTZWc7DQo+ID4gPiA+ICsgIElBMzJfVFNTX0RFU0NS SVBUT1INCj4gPiA+IEV4Y2VwdGlvblRzc1NlZ1tFWENFUFRJT05fTElTVF9NQVhdOw0KPiA+ID4g PiArICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICBUc3M7DQo+ID4gPiA+ICsgIElBMzJf VEFTS19TVEFURV9TRUdNRU5UDQo+IEV4Y2VwdGlvblRzc1tFWENFUFRJT05fTElTVF9NQVhdOw0K PiA+ID4gPiArfSBUU1NfRU5UUklFUzsNCj4gPiA+ID4gKw0KPiA+ID4gPiArI3ByYWdtYSBwYWNr ICgpDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyNkZWZpbmUgVFNTX1NFTCAgICAgICAgICAgICAgIE9G RlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzc1NlZykNCj4gPiA+ID4gKyNkZWZpbmUgRVhDRVBUSU9O X1RTU19TRUwobikgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsDQo+ID4gPiA+IEV4Y2VwdGlvblRz c1NlZ1tuXSkNCj4gPiA+ID4gKyNkZWZpbmUgVFNTX09GRlNFVCAgICAgICAgICAgIE9GRlNFVF9P RiAoVFNTX0VOVFJJRVMsIFRzcykNCj4gPiA+ID4gKw0KPiA+ID4gPiArdHlwZWRlZiBWT0lEICgq RVhDRVBUSU9OX0VOVFJZKSAoVk9JRCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3R5cGVkZWYgc3Ry dWN0IHsNCj4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgVmVjdG9yOw0KPiA+ID4gPiArICBF WENFUFRJT05fRU5UUlkgICBFbnRyeVBvaW50Ow0KPiA+ID4gPiArfSBJQTMyX0VYQ0VQVElPTl9U U19FTlRSWTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArLyoqDQo+ID4gPiA+ICsgRXhjZXB0aW9uIGhh bmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1VELg0KPiA+ID4g PiArICoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5 NiAoDQo+ID4gPiA+ICsgIFZPSUQNCj4gPiA+ID4gKyAgKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiAr LyoqDQo+ID4gPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRl IGZvciBleGNlcHRpb24gI0RGLg0KPiA+ID4gPiArICoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4g PiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OCAoDQo+ID4gPiA+ICsgIFZPSUQNCj4gPiA+ID4g KyAgKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArLyoqDQo+ID4gPiA+ICsgRXhjZXB0aW9uIGhhbmRs aW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1NTLg0KPiA+ID4gPiAr ICoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTIg KA0KPiA+ID4gPiArICBWT0lEDQo+ID4gPiA+ICsgICk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8q Kg0KPiA+ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBm b3IgZXhjZXB0aW9uICNHUC4NCj4gPiA+ID4gKyAqKi8NCj4gPiA+ID4gK1ZPSUQNCj4gPiA+ID4g K0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCj4gPiA+ID4gKyAgVk9JRA0KPiA+ID4gPiAr ICApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyBFeGNlcHRpb24gaGFuZGxp bmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjUEYuDQo+ID4gPiA+ICsg KiovDQo+ID4gPiA+ICtWT0lEDQo+ID4gPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNCAo DQo+ID4gPiA+ICsgIFZPSUQNCj4gPiA+ID4gKyAgKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArLyoq DQo+ID4gPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZv ciBleGNlcHRpb24gI0FDLg0KPiA+ID4gPiArICoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiAr RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTcgKA0KPiA+ID4gPiArICBWT0lEDQo+ID4gPiA+ICsg ICk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGlu ZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNNQy4NCj4gPiA+ID4gKyAq Ki8NCj4gPiA+ID4gK1ZPSUQNCj4gPiA+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4ICgN Cj4gPiA+ID4gKyAgVk9JRA0KPiA+ID4gPiArICApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAjZW5k aWYNCj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4gPiA+ IG5hcw0KPiA+ID4gPiBtDQo+ID4gPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiA+ID4gbmFzDQo+ ID4gPiA+IG0NCj4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gaW5kZXggMDAw MDAwMDAwMC4uZGJmYmNmY2Y1MQ0KPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ICsrKw0K PiA+ID4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lh MzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4gPiA+IG5hcw0KPiA+ID4gPiBtDQo+ID4gPiA+ IEBAIC0wLDAgKzEsMzk4IEBADQo+ID4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gKy0tLS0t LS0tLS0gOyA7IENvcHlyaWdodCAoYykgMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMNCj4gPiA+ID4gK3Jlc2VydmVkLjxCUj4gOyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh bnlpbmcgbWF0ZXJpYWxzIDsgYXJlDQo+ID4gPiA+ICtsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFi bGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gPiA+ID4gTGlj ZW5zZQ0KPiA+ID4gPiArOyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRo ZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiA+ID4gK21heSBiZSBmb3VuZA0KPiA+ID4g PiBhdA0KPiA+ID4gPiArOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vu c2UucGhwLg0KPiA+ID4gPiArOw0KPiA+ID4gPiArOyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRF RCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiA+ID4gPiArQkFTSVMsIDsg V0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwNCj4gPiBF SVRIRVINCj4gPiA+ID4gK0VYUFJFU1MNCj4gPiA+ID4gT1IgSU1QTElFRC4NCj4gPiA+ID4gKzsN Cj4gPiA+ID4gKzsgTW9kdWxlIE5hbWU6DQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7ICAgRXhjZXB0 aW9uVHNzRW50cnlBc20uQXNtDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IEFic3RyYWN0Og0KPiA+ ID4gPiArOw0KPiA+ID4gPiArOyAgIElBMzIgQ1BVIEV4Y2VwdGlvbiBIYW5kbGVyIHdpdGggU2Vw YXJhdGUgU3RhY2sNCj4gPiA+ID4gKzsNCj4gPiA+ID4gKzsgTm90ZXM6DQo+ID4gPiA+ICs7DQo+ ID4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gKy0tLS0tLS0tLS0NCj4gPiA+ID4gKw0KPiA+ ID4gPiArOw0KPiA+ID4gPiArOyBJQTMyIFRTUyBNZW1vcnkgTGF5b3V0IERlc2NyaXB0aW9uDQo+ ID4gPiA+ICs7DQo+ID4gPiA+ICtzdHJ1YyBJQTMyX1RTUw0KPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4g PiA+ICsgIC5FU1AwOiAgICByZXNkIDENCj4gPiA+ID4gKyAgLlNTMDogICAgIHJlc3cgMQ0KPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ID4gKyAgLkVTUDE6ICAgIHJl c2QgMQ0KPiA+ID4gPiArICAuU1MxOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgIHJlc3cgMQ0KPiA+ID4gPiArICAuRVNQMjogICAgcmVzZCAxDQo+ID4gPiA+ICsgIC5T UzI6ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4g PiA+ICsgIC5fQ1IzOiAgICByZXNkIDENCj4gPiA+ID4gKyAgLkVJUDogICAgIHJlc2QgMQ0KPiA+ ID4gPiArICAuRUZMQUdTOiAgcmVzZCAxDQo+ID4gPiA+ICsgIC5fRUFYOiAgICByZXNkIDENCj4g PiA+ID4gKyAgLl9FQ1g6ICAgIHJlc2QgMQ0KPiA+ID4gPiArICAuX0VEWDogICAgcmVzZCAxDQo+ ID4gPiA+ICsgIC5fRUJYOiAgICByZXNkIDENCj4gPiA+ID4gKyAgLl9FU1A6ICAgIHJlc2QgMQ0K PiA+ID4gPiArICAuX0VCUDogICAgcmVzZCAxDQo+ID4gPiA+ICsgIC5fRVNJOiAgICByZXNkIDEN Cj4gPiA+ID4gKyAgLl9FREk6ICAgIHJlc2QgMQ0KPiA+ID4gPiArICAuX0VTOiAgICAgcmVzdyAx DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiArICAuX0NTOiAg ICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiAr ICAuX1NTOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0K PiA+ID4gPiArICAuX0RTOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KPiA+ID4gPiArICAuX0ZTOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiArICAuX0dTOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiArICAuTERUOiAgICAgcmVzdyAxDQo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4g PiA+ICtlbmRzdHJ1Yw0KPiA+ID4gPiArDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IENvbW1vbkV4 Y2VwdGlvbkhhbmRsZXIoKQ0KPiA+ID4gPiArOw0KPiA+ID4gPiArZXh0ZXJuIEFTTV9QRlgoQ29t bW9uRXhjZXB0aW9uSGFuZGxlcikNCj4gPiA+ID4gKw0KPiA+ID4gPiArU0VDVElPTiAuZGF0YQ0K PiA+ID4gPiArDQo+ID4gPiA+ICtTRUNUSU9OIC50ZXh0DQo+ID4gPiA+ICsNCj4gPiA+ID4gK0FM SUdOICAgOA0KPiA+ID4gPiArDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IGV4Y2VwdGlvbiBoYW5k bGVyIHN0dWIgdGFibGUNCj4gPiA+ID4gKzsNCj4gPiA+ID4gKyVtYWNybyBEZWZFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkgMQ0KPiA+ID4gPiArJSVEb0lyZXQ6DQo+ID4gPiA+ICsgICAgaXJldGQN Cj4gPiA+ID4gKw0KPiA+ID4gPiArZ2xvYmFsIEFTTV9QRlgoRXhjZXB0aW9uVGFza1N3dGljaEVu dHJ5JTEpDQo+ID4gPiA+ICtBU01fUEZYKEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSUxKToNCj4g PiA+ID4gKyAgICBkYiAgICAgIDB4NmEgICAgICAgIDsgcHVzaCAgI1ZlY3Rvck51bQ0KPiA+ID4g PiArICAgIGRiICAgICAgJTEgICAgICAgICAgOyBWZWN0b3JOdW0NCj4gPiA+ID4gKyAgICBtb3Yg ICAgIGVheCwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCkNCj4gPiA+ID4gKyAg ICBjYWxsICAgIGVheA0KPiA+ID4gPiArICAgIG1vdiAgICAgZXNwLCBlYXggICAgOyBSZXN0b3Jl IHN0YWNrIHRvcA0KPiA+ID4gPiArICAgIGptcCAgICAgJSVEb0lyZXQNCj4gPiA+ID4gKyVlbmRt YWNybw0KPiA+ID4gPiArDQo+ID4gPiA+ICtnbG9iYWwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNo RW50cnlQb2ludCkNCj4gPiA+ID4gK0FTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQp Og0KPiA+ID4gPiArICAgIDsNCj4gPiA+ID4gKyAgICA7IFN0YWNrOg0KPiA+ID4gPiArICAgIDsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCAtIDgNCj4gPiA+ID4gKyAgICA7ICsgICAg ICAgVFNTIEJhc2UgICAgICArDQo+ID4gPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0t KyA8LS0gRUJQIC0gNA0KPiA+ID4gPiArICAgIDsgKyAgICAgIENQVUlELkVEWCAgICAgICsNCj4g PiA+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlANCj4gPiA+ID4gKyAg ICA7ICsgICAgICAgICBFSVAgICAgICAgICArDQo+ID4gPiA+ICsgICAgOyArLS0tLS0tLS0tLS0t LS0tLS0tLS0tKyA8LS0gRUJQICsgNA0KPiA+ID4gPiArICAgIDsgKyAgICBWZWN0b3IgTnVtYmVy ICAgICsNCj4gPiA+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgKyA4 DQo+ID4gPiA+ICsgICAgOyArICAgIEVycm9yIENvZGUgICAgICAgKw0KPiA+ID4gPiArICAgIDsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiA+ID4gKyAgICA7DQo+ID4gPiA+ICs7DQo+ID4g PiA+ICs7IEdldCBUU1Mgb2YgaW50ZXJydXB0ZWQgdGFzaw0KPiA+ID4gPiArOw0KPiA+ID4gPiAr ICAgIG1vdiAgICAgZWJwLCBlc3AgICAgICAgICAgICAgICAgICAgIDsgU3RhY2sgZnJhbWUNCj4g PiA+ID4gKw0KPiA+ID4gPiArOyBVc2UgQ1BVSUQgdG8gZGV0ZXJtaW5lIGlmIEZYU0FWRS9GWFJF U1RPUiBhbmQgREUgYXJlIHN1cHBvcnRlZA0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCAxDQo+ ID4gPiA+ICsgICAgY3B1aWQNCj4gPiA+ID4gKyAgICBwdXNoICAgIGVkeA0KPiA+ID4gPiArDQo+ ID4gPiA+ICs7IEdldCBUU1MgYmFzZSBvZiBpbnRlcnJ1cHRlZCB0YXNrIHRocm91Z2ggUHJldmlv dXNUYXNrTGluayBmaWVsZCBpbg0KPiA+ID4gPiArOyBjdXJyZW50IFRTUyBiYXNlDQo+ID4gPiA+ ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiA+ID4gKyAgICBzZ2R0ICAgIFtlc3AgKyAyXQ0KPiA+ ID4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwICsgNF0gICAgICAgICAgICAgIDsgR0RUIGJhc2UN Cj4gPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgOA0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgeG9y ICAgICBlYngsIGVieA0KPiA+ID4gPiArICAgIHN0ciAgICAgYnggICAgICAgICAgICAgICAgICAg ICAgICAgIDsgQ3VycmVudCBUUg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgbW92ICAgICBlY3gs IFtlYXggKyBlYnggKyAyXQ0KPiA+ID4gPiArICAgIHNobCAgICAgZWN4LCA4DQo+ID4gPiA+ICsg ICAgbW92ICAgICBjbCwgW2VheCArIGVieCArIDddDQo+ID4gPiA+ICsgICAgcm9yICAgICBlY3gs IDggICAgICAgICAgICAgICAgICAgICAgOyBlY3ggPSBDdXJyZW50IFRTUyBiYXNlDQo+ID4gPiA+ ICsgICAgcHVzaCAgICBlY3ggICAgICAgICAgICAgICAgICAgICAgICAgOyBrZWVwIGl0IGluIHN0 YWNrIGZvciBsYXRlcg0KPiB1c2UNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIG1vdnp4ICAgZWJ4 LCB3b3JkIFtlY3hdICAgICAgICAgICAgIDsgUHJldmlvdXMgVGFzayBMaW5rDQo+ID4gPiA+ICsg ICAgbW92ICAgICBlY3gsIFtlYXggKyBlYnggKyAyXQ0KPiA+ID4gPiArICAgIHNobCAgICAgZWN4 LCA4DQo+ID4gPiA+ICsgICAgbW92ICAgICBjbCwgW2VheCArIGVieCArIDddDQo+ID4gPiA+ICsg ICAgcm9yICAgICBlY3gsIDggICAgICAgICAgICAgICAgICAgICAgOyBlY3ggPSBQcmV2aW91cyBU U1MgYmFzZQ0KPiA+ID4gPiArDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IEFsaWduIHN0YWNrIHRv IG1ha2Ugc3VyZSB0aGF0IEVGSV9GWF9TQVZFX1NUQVRFX0lBMzIgb2YNCj4gPiA+ID4gRUZJX1NZ U1RFTV9DT05URVhUX0lBMzINCj4gPiA+ID4gKzsgaXMgMTYtYnl0ZSBhbGlnbmVkDQo+ID4gPiA+ ICs7DQo+ID4gPiA+ICsgICAgYW5kICAgICBlc3AsIDB4ZmZmZmZmZjANCj4gPiA+ID4gKyAgICBz dWIgICAgIGVzcCwgMTINCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgVUlOVDMyICBFZGksIEVzaSwg RWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsNCj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRUFYXQ0KPiA+ID4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FQ1hdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VEWF0NCj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUJY XQ0KPiA+ID4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdDQo+ID4g PiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCUF0NCj4gPiA+ID4gKyAg ICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KPiA+ID4gPiArICAgIHB1c2gg ICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJ TlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBTczsNCj4gPiA+ID4gKyAgICBtb3Z6eCAgIGVheCwg d29yZCBbZWN4ICsgSUEzMl9UU1MuX1NTXQ0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4g PiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9DU10NCj4gPiA+ID4g KyAgICBwdXNoICAgIGVheA0KPiA+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fRFNdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ID4gKyAgICBtb3Z6 eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTXQ0KPiA+ID4gPiArICAgIHB1c2ggICAg ZWF4DQo+ID4gPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9GU10N Cj4gPiA+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fR1NdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ID4g Kw0KPiA+ID4gPiArOzsgVUlOVDMyICBFaXA7DQo+ID4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIEdkdHJb Ml0sIElkdHJbMl07DQo+ID4gPiA+ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiA+ID4gKyAgICBz aWR0ICAgIFtlc3BdDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KPiA+ID4g PiArICAgIHhjaGcgICAgZWF4LCBbZXNwXQ0KPiA+ID4gPiArICAgIGFuZCAgICAgZWF4LCAweEZG RkYNCj4gPiA+ID4gKyAgICBtb3YgICAgIFtlc3ArNF0sIGVheA0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiA+ID4gKyAgICBzZ2R0ICAgIFtlc3BdDQo+ID4gPiA+ ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KPiA+ID4gPiArICAgIHhjaGcgICAgZWF4LCBb ZXNwXQ0KPiA+ID4gPiArICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCj4gPiA+ID4gKyAgICBtb3Yg ICAgIFtlc3ArNF0sIGVheA0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIExkdHIsIFRy Ow0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBlYnggICAgOyBlYnggc3RpbGwga2VlcHMgc2Vs ZWN0b3Igb2YgaW50ZXJydXB0ZWQgdGFzaw0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4g PiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLkxEVF0NCj4gPiA+ID4g KyAgICBwdXNoICAgIGVheA0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIEVGbGFnczsN Cj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4g PiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ID4g PiA+ICsgICAgbW92ICAgICBlYXgsIGNyNA0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4ICAgICAg ICAgICAgIDsgcHVzaCBjcjQgZmlyc3RseQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgbW92ICAg ICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCj4gPiA+ID4gKyAgICB0ZXN0ICAgIGVkeCwg QklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0DQo+ID4gPiA+ICsg ICAganogICAgICAuMQ0KPiA+ID4gPiArICAgIG9yICAgICAgZWF4LCBCSVQ5ICAgICAgIDsgU2V0 IENSNC5PU0ZYU1INCj4gPiA+ID4gKy4xOg0KPiA+ID4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQy ICAgICAgIDsgVGVzdCBmb3IgRGVidWdnaW5nIEV4dGVuc2lvbnMgc3VwcG9ydA0KPiA+ID4gPiAr ICAgIGp6ICAgICAgLjINCj4gPiA+ID4gKyAgICBvciAgICAgIGVheCwgQklUMyAgICAgICA7IFNl dCBDUjQuREUNCj4gPiA+ID4gKy4yOg0KPiA+ID4gPiArICAgIG1vdiAgICAgY3I0LCBlYXgNCj4g PiA+ID4gKw0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBjcjMNCj4gPiA+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBjcjINCj4gPiA+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ID4gPiArICAgIHhvciAgICAgZWF4LCBlYXgNCj4gPiA+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBjcjANCj4gPiA+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIERyMCwgRHIxLCBEcjIsIERy MywgRHI2LCBEcjc7DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyNw0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyNg0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMw0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMg0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMQ0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMA0KPiA+ID4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBG eFNhdmVTdGF0ZTsNCj4gPiA+ID4gKzs7IENsZWFyIFRTIGJpdCBpbiBDUjAgdG8gYXZvaWQgRGV2 aWNlIE5vdCBBdmFpbGFibGUgRXhjZXB0aW9uICgjTk0pDQo+ID4gPiA+ICs7OyB3aGVuIGV4ZWN1 dGluZyBmeHNhdmUvZnhyc3RvciBpbnN0cnVjdGlvbg0KPiA+ID4gPiArICAgIHRlc3QgICAgZWR4 LCBCSVQyNCAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydC4NCj4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIDsgZWR4IHN0aWxsIGNvbnRhaW5zIHJlc3VsdCBmcm9tIENQ VUlEIGFib3ZlDQo+ID4gPiA+ICsgICAganogICAgICAuMw0KPiA+ID4gPiArICAgIGNsdHMNCj4g PiA+ID4gKyAgICBzdWIgICAgIGVzcCwgNTEyDQo+ID4gPiA+ICsgICAgbW92ICAgICBlZGksIGVz cA0KPiA+ID4gPiArICAgIGRiICAgICAgMHhmLCAweGFlLCAweDcgO2Z4c2F2ZSBbZWRpXQ0KPiA+ ID4gPiArLjM6DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsN Cj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlYnAgKyA4XQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICs7OyBVRUZJIGNhbGxpbmcgY29udmVudGlvbiBmb3IgSUEzMiByZXF1aXJlcyB0aGF0IERpcmVj dGlvbiBmbGFnIGluIEVGTEFHcyBpcw0KPiA+IGNsZWFyDQo+ID4gPiA+ICsgICAgY2xkDQo+ID4g PiA+ICsNCj4gPiA+ID4gKzs7IGNhbGwgaW50byBleGNlcHRpb24gaGFuZGxlcg0KPiA+ID4gPiAr ICAgIG1vdiAgICAgZXNpLCBlY3ggICAgICAgICAgICA7IEtlZXAgVFNTIGJhc2UgdG8gYXZvaWQg b3ZlcndyaXRlDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0 aW9uSGFuZGxlcikNCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgUHJlcGFyZSBwYXJhbWV0ZXIgYW5k IGNhbGwNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVkeCwgZXNwDQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlZHggICAgICAgICAgICAgICAgIDsgRUZJX1NZU1RFTV9DT05URVhUDQo+ID4gPiA+ICsgICAg cHVzaCAgICBkd29yZCBbZWJwICsgNF0gICAgIDsgRUZJX0VYQ0VQVElPTl9UWVBFICh2ZWN0b3IN Cj4gbnVtYmVyKQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgOw0KPiA+ID4gPiArICAgIDsgQ2Fs bCBFeHRlcm5hbCBFeGNlcHRpb24gSGFuZGxlcg0KPiA+ID4gPiArICAgIDsNCj4gPiA+ID4gKyAg ICBjYWxsICAgIGVheA0KPiA+ID4gPiArICAgIGFkZCAgICAgZXNwLCA4ICAgICAgICAgICAgICA7 IFJlc3RvcmUgc3RhY2sgYmVmb3JlIGNhbGxpbmcNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVjeCwg ZXNpICAgICAgICAgICAgOyBSZXN0b3JlIFRTUyBiYXNlDQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7 IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgNA0KPiA+ ID4gPiArDQo+ID4gPiA+ICs7OyBGWF9TQVZFX1NUQVRFX0lBMzIgRnhTYXZlU3RhdGU7DQo+ID4g PiA+ICsgICAgbW92ICAgICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCj4gPiA+ID4gKyAg ICB0ZXN0ICAgIGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBw b3J0DQo+ID4gPiA+ICsgICAganogICAgICAuNA0KPiA+ID4gPiArICAgIG1vdiAgICAgZXNpLCBl c3ANCj4gPiA+ID4gKyAgICBkYiAgICAgIDB4ZiwgMHhhZSwgMHhlICA7IGZ4cnN0b3IgW2VzaV0N Cj4gPiA+ID4gKy40Og0KPiA+ID4gPiArICAgIGFkZCAgICAgZXNwLCA1MTINCj4gPiA+ID4gKw0K PiA+ID4gPiArOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwgRHI3OyA7OyBTa2lw IHJlc3RvcmF0aW9uIG9mIERSeA0KPiA+ID4gPiArcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZGVidWdn ZXJzIDs7IHRoYXQgc2V0IGJyZWFrcG9pbnRzIGluDQo+ID4gPiA+ICtpbnRlcnJ1cHQvZXhjZXB0 aW9uIGNvbnRleHQNCj4gPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgNCAqIDYNCj4gPiA+ID4gKw0K PiA+ID4gPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMsIENyNDsNCj4gPiA+ID4gKyAg ICBwb3AgICAgIGVheA0KPiA+ID4gPiArICAgIG1vdiAgICAgY3IwLCBlYXgNCj4gPiA+ID4gKyAg ICBhZGQgICAgIGVzcCwgNCAgICA7IG5vdCBmb3IgQ3IxDQo+ID4gPiA+ICsgICAgcG9wICAgICBl YXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGNyMiwgZWF4DQo+ID4gPiA+ICsgICAgcG9wICAgICBl YXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1IzXSwgZWF4 DQo+ID4gPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGNyNCwgZWF4 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ID4gPiArICAgIHBv cCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiA+ID4gKyAgICBtb3YgICAg IGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiA+ID4gKyAgICBidHIgICAg IGVieCwgOSAgICAgIDsgRG8gJ2NsaScNCj4gPiA+ID4gKyAgICBtb3YgICAgIGR3b3JkIFtlY3gg KyBJQTMyX1RTUy5FRkxBR1NdLCBlYngNCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgVUlOVDMyICBM ZHRyLCBUcjsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0clsyXTsNCj4gPiA+ID4g Kzs7IEJlc3Qgbm90IGxldCBhbnlvbmUgbWVzcyB3aXRoIHRoZXNlIHBhcnRpY3VsYXIgcmVnaXN0 ZXJzLi4uDQo+ID4gPiA+ICsgICAgYWRkICAgICBlc3AsIDI0DQo+ID4gPiA+ICsNCj4gPiA+ID4g Kzs7IFVJTlQzMiAgRWlwOw0KPiA+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJf VFNTLkVJUF0NCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgVUlOVDMyICBHcywgRnMsIEVzLCBEcywg Q3MsIFNzOw0KPiA+ID4gPiArOzsgTk9URSAtIG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNv dWxkIGhhbmcgdGhlIGRlYnVnZ2VyLi4uICBXZQ0KPiA+ID4gPiArOzsgICAgICAgIGNvdWxkIGF0 dGVtcHQgdG8gaW5zdWxhdGUgb3Vyc2VsdmVzIGFnYWluc3QgdGhpcyBwb3NzaWJpbGl0eSwNCj4g PiA+ID4gKzs7ICAgICAgICBidXQgdGhhdCBwb3NlcyByaXNrcyBhcyB3ZWxsLg0KPiA+ID4gPiAr OzsNCj4gPiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gPiArbzE2IG1vdiAgICAgW2VjeCAr IElBMzJfVFNTLl9HU10sIGF4DQo+ID4gPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiA+ID4gK28x NiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRlNdLCBheA0KPiA+ID4gPiArICAgIHBvcCAgICAg ZWF4DQo+ID4gPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0VTXSwgYXgNCj4gPiA+ ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNT Ll9EU10sIGF4DQo+ID4gPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiA+ID4gK28xNiBtb3YgICAg IFtlY3ggKyBJQTMyX1RTUy5fQ1NdLCBheA0KPiA+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g PiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX1NTXSwgYXgNCj4gPiA+ID4gKw0KPiA+ ID4gPiArOzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsN Cj4gPiA+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KPiA+ID4g PiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ID4gPiA+ICsgICAg YWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3IgZWJwDQo+ID4gPiA+ICsgICAgYWRkICAgICBlc3As IDQgICA7IG5vdCBmb3IgZXNwDQo+ID4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0VCWF0NCj4gPiA+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5f RURYXQ0KPiA+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQ1hdDQo+ ID4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VBWF0NCj4gPiA+ID4g Kw0KPiA+ID4gPiArOyBTZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2VyIHRvIGFi bGUgdG8gZ28gYmFjayB0byB0aGUgRUlQDQo+ID4gPiA+ICs7IHdoZXJlIHRoZSBleGNlcHRpb24g aXMgdHJpZ2dlcmVkLg0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBDcmVhdGUgcmV0dXJuIGNvbnRl eHQgZm9yIGlyZXRkIGluIHN0dWIgZnVuY3Rpb24NCj4gPiA+ID4gKyAgICBtb3YgICAgZWF4LCBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sNCj4gcG9pbnRl cg0KPiA+ID4gPiArICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ ID4gPiA+ICsgICAgbW92ICAgIFtlYXggLSAweGNdLCBlYnggICAgICAgICAgICAgICAgICAgICAg OyBjcmVhdGUgRUlQIGluIG9sZA0KPiBzdGFjaw0KPiA+ID4gPiArICAgIG1vdnp4ICBlYngsIHdv cmQgW2VjeCArIElBMzJfVFNTLl9DU10NCj4gPiA+ID4gKyAgICBtb3YgICAgW2VheCAtIDB4OF0s IGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBDUyBpbiBvbGQNCj4gc3RhY2sNCj4g PiA+ID4gKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiA+ ID4gPiArICAgIGJ0cyAgICBlYngsIDgNCj4gPiA+ID4gKyAgICBtb3YgICAgW2VheCAtIDB4NF0s IGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBlZmxhZ3MgaW4gb2xkDQo+ID4gPiBz dGFjaw0KPiA+ID4gPiArICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXSwg ZWJ4ICAgIDsgdXBkYXRlIGVmbGFncyBpbg0KPiBvbGQNCj4gPiA+IFRTUw0KPiA+ID4gPiArICAg IG1vdiAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSAgICAgIDsgR2V0IG9sZCBz dGFjaw0KPiBwb2ludGVyDQo+ID4gPiA+ICsgICAgc3ViICAgIGVheCwgMHhjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBtaW51cyAxMiBieXRlDQo+ID4gPiA+ICsgICAgbW92ICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSwgZWF4ICAgICAgOyBTZXQgbmV3IHN0YWNrDQo+IHBv aW50ZXINCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgUmVwbGFjZSB0aGUgRUlQIG9mIGludGVycnVw dGVkIHRhc2sgd2l0aCBzdHViIGZ1bmN0aW9uDQo+ID4gPiA+ICsgICAgbW92ICAgIGVheCwgQVNN X1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKQ0KPiA+ID4gPiArICAgIG1vdiAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXSwgZWF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBtb3YgICAg IGVjeCwgW2VicCAtIDhdICAgICAgICAgICAgICAgICAgICAgICA7IEdldCBjdXJyZW50IFRTUw0K PiBiYXNlDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5f RVNQXSAgICAgOyBSZXR1cm4gY3VycmVudA0KPiBzdGFjaw0KPiA+ID4gdG9wDQo+ID4gPiA+ICsg ICAgbW92ICAgICBlc3AsIGVicA0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgcmV0DQo+ID4gPiA+ ICsNCj4gPiA+ID4gK2dsb2JhbCBBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rpb24pDQo+ID4g PiA+ICtBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rpb24pOg0KPiA+ID4gPiArOw0KPiA+ID4g PiArOyB3ZSBuZWVkIGNsZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZSA7IHg4Nw0KPiA+ID4g PiArRlBVL01NWC9TU0UvU1NFMi9TU0UzL1NTU0UzL1NTRTQgaW5zdHJ1Y3Rpb25zLg0KPiA+ID4g PiArOw0KPiA+ID4gPiArICAgIGNsdHMNCj4gPiA+ID4gKyAgICBpcmV0ZA0KPiA+ID4gPiArDQo+ ID4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gKy0tLS0tLS0tLS0NCj4gPiA+ID4gKzsgVk9J RA0KPiA+ID4gPiArOyBBc21Xcml0ZVRyICgNCj4gPiA+ID4gKzsgICBVSU5UMTYgU2VsZWN0b3IN Cj4gPiA+ID4gKzsgICApOw0KPiA+ID4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ICstLS0tLS0t LS0tDQo+ID4gPiA+ICtnbG9iYWwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiA+ID4gPiArQVNNX1BG WChBc21Xcml0ZVRyKToNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCs0XQ0KPiA+ID4g PiArICAgIGx0ciAgICAgYXgNCj4gPiA+ID4gKyAgICByZXQNCj4gPiA+ID4gKw0KPiA+ID4gPiAr RGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDYNCj4gPiA+ID4gK0RlZkV4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeSA4DQo+ID4gPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTINCj4g PiA+ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxMw0KPiA+ID4gPiArRGVmRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5IDE0DQo+ID4gPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50 cnkgMTcNCj4gPiA+ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxOA0KPiA+ID4gPiAr DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gPiBp bmYNCj4gPiA+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gPiBpbmYNCj4gPiA+ID4gaW5kZXgg NzU0NDMyODhhOS4uNGMwZDQzNTEzNiAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+DQo+IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi4NCj4gPiA+ID4gaW5mDQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuDQo+ID4gPiA+IGluZg0KPiA+ID4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ID4gPiAg W1NvdXJjZXMuSWEzMl0NCj4gPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0K PiA+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ID4gPiArICBJYTMy L0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5k bGVyQXNtLlMNCj4gPiA+ID4gICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gPiA+ ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1 RXhjZXB0aW9uSGFuZGxlckwNCj4gPiA+ID4gaWIuaQ0KPiA+ID4gPiBuZg0KPiA+ID4gPg0KPiBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2Vw dGlvbkhhbmRsZXJMDQo+ID4gPiA+IGliLmkNCj4gPiA+ID4gbmYNCj4gPiA+ID4gaW5kZXggZDcw YTk5YzEwMC4uYWRiNDE1YmE1YSAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+DQo+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckwNCj4gPiA+ID4gaWIuaQ0KPiA+ID4gPiBuZg0KPiA+ID4gPiArKysNCj4gPiA+ID4N Cj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVF eGNlcHRpb25IYW5kbGVyTA0KPiA+ID4gPiBpYi5pDQo+ID4gPiA+IG5mDQo+ID4gPiA+IEBAIC0z MCw2ICszMCw3IEBADQo+ID4gPiA+ICBbU291cmNlcy5JYTMyXQ0KPiA+ID4gPiAgICBJYTMyL0V4 Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFz bS5uYXNtDQo+ID4gPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KPiA+ID4g PiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gPiAgICBJYTMyL0FyY2hFeGNl cHRpb25IYW5kbGVyLmMNCj4gPiA+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4g PiA+IEBAIC01NywzICs1OCw1IEBADQo+ID4gPiA+ICAgIFByaW50TGliDQo+ID4gPiA+ICAgIExv Y2FsQXBpY0xpYg0KPiA+ID4gPiAgICBQZUNvZmZHZXRFbnRyeVBvaW50TGliDQo+ID4gPiA+ICsg IE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiA+ID4gKw0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4g PiA+DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1D cHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gPiBpbmYNCj4gPiA+ID4NCj4gPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuDQo+ID4gPiA+IGluZg0KPiA+ID4gPiBpbmRleCA2MzRmZmNiMjFkLi41NmI4NzViN2M4 IDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gPiA+ IGluZg0KPiA+ID4gPiArKysNCj4gPiA+ID4NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gPiA+IGlu Zg0KPiA+ID4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ID4gPiAgW1NvdXJjZXMuSWEzMl0NCj4g PiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ID4gPiAgICBJYTMyL0V4 Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ID4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5 QXNtLm5hc20NCj4gPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiA+ID4g ICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gPiA+ICAgIElhMzIvQXJjaEludGVy cnVwdERlZnMuaA0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+DQo+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMN Cj4gPiA+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Y NjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ID4gPiBpbmRleCA2NWYwY2ZmNjgwLi4yNGYy YTg0ODZhIDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ ID4gPiArKysNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Y NjQvQXJjaEV4Y2VwdGlvbkhhbmRsDQo+ID4gPiA+ICsrKyBlci5jDQo+ID4gPiA+IEBAIC0xNCw2 ICsxNCwxOSBAQA0KPiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1v bi5oIg0KPiA+ID4gPg0KPiA+ID4gPiArLy8NCj4gPiA+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9u cyBuZWVkaW5nIHNlcGFyYXRlIHN0YWNrIC8vIFNUQVRJQyBVSU5UTg0KPiA+ID4gPiArbUV4Y2Vw dGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiA+ID4gKyAgNiwgIC8vI1VEOiBJbnZhbGlkIE9wY29k ZSBFeGNlcHRpb24NCj4gPiA+ID4gKyAgOCwgIC8vI0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0aW9u DQo+ID4gPiA+ICsgIDEyLCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ID4gPiA+ICsg IDEzLCAvLyNHUDogR2VuZXJhbCBQcm90ZWN0aW9uIEV4Y2VwdGlvbg0KPiA+ID4gPiArICAxNCwg Ly8jUEY6IFBhZ2UtRmF1bHQgRXhjZXB0aW9uDQo+ID4gPiA+ICsgIDE3LCAvLyNBQzogQWxpZ25t ZW50IENoZWNrIEV4Y2VwdGlvbg0KPiA+ID4gPiArICAxOCAgLy8jTUM6IE1hY2hpbmUtQ2hlY2sg RXhjZXB0aW9uDQo+ID4gPiA+ICsgIH07DQo+ID4gPiA+ICsNCj4gPiA+ID4gIC8qKg0KPiA+ID4g PiAgICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28g dGhhdCBDIGNvZGUgY2FuDQo+ID4gPiA+IGdlbmVyYXRlDQo+ID4gPiA+ICAgIGV4Y2VwdGlvbiB0 YWJsZXMuDQo+ID4gPiA+IEBAIC0xMTIsNiArMTI1LDEwMSBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlv bkNvbnRleHQgKA0KPiA+ID4gPiAgICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRYNjQtPkV4 Y2VwdGlvbkRhdGEgPQ0KPiA+ID4gPiBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhj ZXB0aW9uRGF0YTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiAr ICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4NCj4gPiA+ID4g Kw0KPiA+ID4gPiArICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4N Cj4gPiA+ID4gKyoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiArRUZJQVBJDQo+ID4gPiA+ICtB cmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ID4gPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVT Q1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQo+ID4gPiA+ICsgICkNCj4gPiA+ID4gK3sNCj4g PiA+ID4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiA+ID4gPiArICBJ QTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdkdERlc2M7DQo+ID4gPiA+ICsgIFVJTlROICAgICAg ICAgICAgICAgICAgICAgT2xkR2R0U2l6ZTsNCj4gPiA+ID4gKyAgVFNTX0VOVFJJRVMgICAgICAg ICAgICAgICAqVHNzRW50cnk7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAg U3RhY2tCYXNlOw0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9w Ow0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gPiA+ ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0KPiA+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8vDQo+ ID4gPiA+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3IgdGhlIEdEVCAgLy8gIEFzbVJl YWRHZHRyKCZHZHREZXNjKTsNCj4gPiA+ID4gKyBPbGRHZHRTaXplID0gR2R0RGVzYy5MaW1pdCAr IDE7ICBOZXdHZHQgPQ0KPiA+ID4gPiArIEFsbG9jYXRlUnVudGltZVplcm9Qb29sKE9sZEdkdFNp emUgKyBzaXplb2YoVFNTX0VOVFJJRVMpDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsgIGlmDQo+IChOZXdHZHQNCj4gPiA+ID09 DQo+ID4gPiA+ICsgTlVMTCkgew0KPiA+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ID4gKyAgfQ0K PiA+ID4gPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVSIChOZXdHZHQsIElBMzJfR0RUX0FMSUdO TUVOVCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gSW5pdGlhbGl6 ZSBuZXcgR0RUIGVudHJpZXMNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgQ29weU1lbShOZXdH ZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRHZHRTaXplKTsNCj4gR2R0RGVzYy5CYXNlID0N Cj4gPiA+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2MuTGltaXQgPSAoVUlOVDE2 KShPbGRHZHRTaXplICsNCj4gPiA+ID4gKyBUU1NfT0ZGU0VUIC0gMSk7DQo+ID4gPiA+ICsNCj4g PiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gUmVzZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBzdXBw b3J0ZWQgZXhjZXB0aW9ucyAgLy8gIFN0YWNrU2l6ZSA9DQo+ID4gPiA+ICsgQVJSQVlfU0laRSAo bUV4Y2VwdGlvbnNXaXRoU3RhY2spICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+IFN0YWNrU2l6 ZQ0KPiA+ID4gPiArID0gRUZJX1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFj a1NpemUpKTsgIFN0YWNrQmFzZSA9DQo+ID4gPiA+ICsgKFVJTlQ2NClBbGxvY2F0ZVBhZ2VzIChF RklfU0laRV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBpZg0KPiA+ID4gPiArIChTdGFja0Jhc2Ug PT0gMCkgew0KPiA+ID4gPiArICAgIEZyZWVQb29sIChOZXdHZHQpOw0KPiA+ID4gPiArICAgIHJl dHVybjsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsg IC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9ycw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBUc3NF bnRyeSA9IChWT0lEICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUpOyAgVHNzQmFzZSA9DQo+ ID4gPiA+ICsgKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5Uc3M7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9DQo+ID4gPiA+IHNp emVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAxOw0KPiA+ID4gPiArICBUc3NFbnRyeS0+ VHNzU2VnLkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ID4gPiAr ICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNl ID4+IDE2KTsNCj4gPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5UeXBlICAgICAgICAgICAgICAg ICA9IElBMzJfR0RUX1RZUEVfVFNTOw0KPiA+ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0 MTlfMTZfYW5kX2ZsYWdzID0gMDsNCj4gPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMzFf MjQgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQo+ID4gPiA+ICsgIFRzc0Vu dHJ5LT5Uc3NTZWcuQmFzZTYzXzMyICAgICAgICAgICAgPSAoVUlOVDMyKShUc3NCYXNlID4+IDMy KTsNCj4gPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5SZXNlcnZlZCAgICAgICAgICAgICA9IDA7 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gRW5hYmxlIEludGVycnVw dCBTdGFjayBUYWJsZSAoSVNUKSBmb3IgZWFjaCByZXF1aXJlZCBleGNlcHRpb24NCj4gPiA+ID4g KyAvLyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tTaXplIC0gQ1BVX1NUQUNLX0FMSUdO TUVOVDsNCj4gPiA+ID4gKyBTdGFja1RvcCAgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tU b3AsDQo+IENQVV9TVEFDS19BTElHTk1FTlQpOw0KPiA+ID4gPiArIGZvciAoSW5kZXggPSAwOyBJ bmRleCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsgKytJbmRleCkgew0KPiA+ ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gRml4dXAgVFNTDQo+ID4gPiA+ICsgICAgLy8N Cj4gPiA+ID4gKyAgICBUc3NFbnRyeS0+VHNzLklTVFtJbmRleF0gPSBTdGFja1RvcDsNCj4gPiA+ ID4gKyAgICBTdGFja1RvcCAtPSBFWENFUFRJT05fU1RBQ0tfU0laRTsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gU2V0IHRoZSBJU1QgZmllbGQgdG8gMSB0byBl bmFibGUgY29ycmVzcG9uZGluZyBJU1QNCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiArICAgIElk dFRhYmxlW21FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XV0uQml0cy5SZXNlcnZlZF8wID0NCj4g PiA+ID4gKyAoVUlOVDgpKEluZGV4ICsNCj4gPiA+ID4gMSk7DQo+ID4gPiA+ICsgIH0NCj4gPiA+ ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBQdWJsaXNoIHRoZSBjaGFuZ2VzDQo+ ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gPiA+ ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gTG9hZCB0YXNrIHJlZ2lzdGVyDQo+ID4g PiA+ICsgIC8vDQo+ID4gPiA+ICsgIEFzbVdyaXRlVHIgKChVSU5UMTYpKE9sZEdkdFNpemUgKyBU U1NfU0VMKSk7IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgIERpc3BsYXkg Q1BVIGluZm9ybWF0aW9uLg0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1 cHREZWZzLmgNCj4gPiA+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gPiBpbmRleCA5MDY0ODAxMzRhLi41 YTkxM2JhZTdiIDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4g PiArKysNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv QXJjaEludGVycnVwdERlZnMuDQo+ID4gPiA+ICsrKyBoDQo+ID4gPiA+IEBAIC00Myw0ICs0Myw0 NCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiA+ICAgIFVJTlQ4ICAgICAgIEhvb2tBZnRlclN0 dWJIZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0KPiA+ID4gPiAgfSBSRVNFUlZFRF9W RUNUT1JTX0RBVEE7DQo+ID4gPiA+DQo+ID4gPiA+ICsjcHJhZ21hIHBhY2sgKDEpDQo+ID4gPiA+ ICsNCj4gPiA+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX0xJU1RfTUFYICAgICAgICA3DQo+ID4gPiA+ ICsjZGVmaW5lIEVYQ0VQVElPTl9TVEFDS19TSVpFICAgICAgRUZJX1BBR0VfU0laRQ0KPiA+ID4g PiArI2RlZmluZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgIDB4ODkNCj4gPiA+ID4gKyNkZWZp bmUgSUEzMl9HRFRfQUxJR05NRU5UICAgICAgICA4DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3R5cGVk ZWYgc3RydWN0IHsNCj4gPiA+ID4gKyAgVUlOVDMyICAgIFJlc2VydmVkXzA7DQo+ID4gPiA+ICsg IFVJTlQ2NCAgICBSU1AwOw0KPiA+ID4gPiArICBVSU5UNjQgICAgUlNQMTsNCj4gPiA+ID4gKyAg VUlOVDY0ICAgIFJTUDI7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgICBSZXNlcnZlZF8yODsNCj4gPiA+ ID4gKyAgVUlOVDY0ICAgIElTVFs3XTsNCj4gPiA+ID4gKyAgVUlOVDY0ICAgIFJlc2VydmVkXzky Ow0KPiA+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTAwOw0KPiA+ID4gPiArICBVSU5UMTYg ICAgSU9NYXBCYXNlQWRkcmVzczsNCj4gPiA+ID4gK30gSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQ7 DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4gKyAgVUlOVDE2 ICAgIExpbWl0MTVfMDsNCj4gPiA+ID4gKyAgVUlOVDE2ICAgIEJhc2UxNV8wOw0KPiA+ID4gPiAr ICBVSU5UOCAgICAgQmFzZTIzXzE2Ow0KPiA+ID4gPiArICBVSU5UOCAgICAgVHlwZTsNCj4gPiA+ ID4gKyAgVUlOVDggICAgIExpbWl0MTlfMTZfYW5kX2ZsYWdzOw0KPiA+ID4gPiArICBVSU5UOCAg ICAgQmFzZTMxXzI0Ow0KPiA+ID4gPiArICBVSU5UMzIgICAgQmFzZTYzXzMyOw0KPiA+ID4gPiAr ICBVSU5UMzIgICAgUmVzZXJ2ZWQ7DQo+ID4gPiA+ICt9IElBMzJfVFNTX0RFU0NSSVBUT1I7DQo+ ID4gPiA+ICsNCj4gPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4gKyAgSUEzMl9UU1Nf REVTQ1JJUFRPUiAgICAgICAgICAgVHNzU2VnOw0KPiA+ID4gPiArICBJQTMyX1RBU0tfU1RBVEVf U0VHTUVOVCAgICAgICBUc3M7DQo+ID4gPiA+ICt9IFRTU19FTlRSSUVTOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICsjcHJhZ21hIHBhY2sgKCkNCj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBUU1Nf U0VMICAgICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQo+ID4gPiA+ICsj ZGVmaW5lIFRTU19PRkZTRVQgICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzcykNCj4g PiA+ID4gKw0KPiA+ID4gPiAgI2VuZGlmDQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9u SGFuZGxlckFzbS5TDQo+ID4gPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gPiBpbmRleCBlZGQz NjNjZGFhLi5iZGFmMTMyY2Y1IDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxl ckFzbS5TDQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiA+ID4gQEAg LTQyOSw2ICs0MjksMTggQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQo+ID4gPiA+ICAg ICAgcG9wcSAgICAgICVyYnANCj4gPiA+ID4gICAgICByZXQNCj4gPiA+ID4NCj4gPiA+ID4gKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ID4gPiArLS0tLS0tLS0tLQ0KPiA+ID4gPiArIyBWT0lEDQo+ID4gPiA+ ICsjIEFzbVdyaXRlVHIgKA0KPiA+ID4gPiArIyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ID4gPiAr IyAgICk7DQo+ID4gPiA+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gKy0tLS0tLS0tLS0NCj4gPiA+ ID4gK0FTTV9HTE9CQUwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiA+ID4gPiArQVNNX1BGWChBc21X cml0ZVRyKToNCj4gPiA+ID4gKyAgICBtb3ZsICAgICVlY3gsICVlYXgNCj4gPiA+ID4gKyAgICBs dHJ3ICAgICVheA0KPiA+ID4gPiArICAgIHJldA0KPiA+ID4gPiArDQo+ID4gPiA+ICAjRU5EDQo+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gPiBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVy QXNtLmFzDQo+ID4gPiA+IG0NCj4gPiA+ID4NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzDQo+ID4gPiA+IG0N Cj4gPiA+ID4gaW5kZXggNzI2YzY0YTE0MC4uYWVjNTZlZjRiZiAxMDA2NDQNCj4gPiA+ID4gLS0t DQo+ID4gPiA+DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hcw0KPiA+ID4gPiBtDQo+ID4gPiA+ICsrKw0KPiA+ ID4gPg0KPiA+ID4NCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ID4gPiBAQCAtMzg2LDQgKzM4 NiwxNiBAQCBBc21WZWN0b3JOdW1GaXh1cCAgIFBST0MNCj4gPiA+ID4gICAgICByZXQNCj4gPiA+ ID4gIEFzbVZlY3Rvck51bUZpeHVwICAgRU5EUA0KPiA+ID4gPg0KPiA+ID4gPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gPiA+ICstLS0tLS0tLS0tDQo+ID4gPiA+ICs7IFZPSUQNCj4gPiA+ID4gKzsgQXNt V3JpdGVUciAoDQo+ID4gPiA+ICs7ICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4gPiA+ICs7ICAgKTsN Cj4gPiA+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiArLS0tLS0tLS0tLQ0KPiA+ID4gPiArQXNt V3JpdGVUciBQUk9DIFBVQkxJQw0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBlY3gNCj4gPiA+ ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gPiA+ICsgICAgcmV0DQo+ID4gPiA+ICtBc21Xcml0ZVRy IEVORFANCj4gPiA+ID4gKw0KPiA+ID4gPiAgRU5EDQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ ID4NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9F eGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gPiA+IHNtDQo+ID4gPiA+DQo+ID4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFz bS5uYQ0KPiA+ID4gPiBzbQ0KPiA+ID4gPiBpbmRleCBiYTg5OTNkODRiLi4xZTJhYzQxMWIwIDEw MDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gPiA+IHNt DQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmENCj4gPiA+ID4gc20gQEAg LTM4NSwzICszODUsMTUgQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQo+ID4gPiA+ICAg ICAgbW92ICAgICBbcmN4ICsgKEBWZWN0b3JOdW0gLSBIb29rQWZ0ZXJTdHViSGVhZGVyQmVnaW4p XSwgYWwNCj4gPiA+ID4gICAgICByZXQNCj4gPiA+ID4NCj4gPiA+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ID4gPiArLS0tLS0tLS0tLQ0KPiA+ID4gPiArOyBWT0lEDQo+ID4gPiA+ICs7IEFzbVdyaXRl VHIgKA0KPiA+ID4gPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ID4gPiArOyAgICk7DQo+ID4g PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gKy0tLS0tLS0tLS0NCj4gPiA+ID4gK2dsb2JhbCBB U01fUEZYKEFzbVdyaXRlVHIpDQo+ID4gPiA+ICtBU01fUEZYKEFzbVdyaXRlVHIpOg0KPiA+ID4g PiArICAgIG1vdiAgICAgZWF4LCBlY3gNCj4gPiA+ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gPiA+ ICsgICAgcmV0DQo+ID4gPiA+ICsNCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4xNC4xLndpbmRvd3Mu MQ0KPiA+ID4NCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+ID4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+ID4gZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmcNCj4gPiA+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v ZWRrMi1kZXZlbA0KPiA+ID4NCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+ID4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+ID4gZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vZWRrMi1kZXZlbA0K