From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.33.56; helo=nam01-bn3-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0056.outbound.protection.outlook.com [104.47.33.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 990162034C086 for ; Thu, 19 Oct 2017 09:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=95ugYXRbwL4rBUd7vCZH1yNAOrRoOEVavHHF3a4ff2k=; b=dODeefY+TvNyZYEXznE3cpvbP2mUWUBC4nuoDshRvGFpFWC2gqBL8s2EaOWYx2/G+Tew5emxruO38rcs8L7qj9QHoEa133ONzC0KMlV06kG/lDoLDgEua0E9sOhsGt6Xk2X7Kmzd4/lIsRXqNziOasrtsP3cCVB/EYn4ZCw1jwM= Received: from DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) by DM5PR12MB1244.namprd12.prod.outlook.com (10.168.237.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 19 Oct 2017 17:02:16 +0000 Received: from DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) by DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) with mapi id 15.20.0077.022; Thu, 19 Oct 2017 17:02:16 +0000 From: "Duran, Leo" To: 'Laszlo Ersek' , "'Yao, Jiewen'" , Paolo Bonzini , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , "Justen, Jordan L" , "Gao, Liming" , "Kinney, Michael D" Thread-Topic: [edk2] [PATCH v5 1/2] UefiCpuPkg/SmmCpuFeaturesLib: Use global variables to replace macros Thread-Index: AQHTQsmHT6q8s1uDn0G572ZIQNr16aLoF+FAgAARNYCAAAaiAIAAsa4AgADUD1CAARTnAIAApuHQ Date: Thu, 19 Oct 2017 17:02:15 +0000 Message-ID: References: <1507751131-32404-1-git-send-email-leo.duran@amd.com> <1507751131-32404-2-git-send-email-leo.duran@amd.com> <585e96dd-b15d-0710-9ad7-825e85f47b22@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C503A9F94AB@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM5PR12MB1244; 20:pLeJjt1OuIUQuvvkYjCF30+1mtDa5E/uPs2OgiTuW0MiLWdzY1THACQScNVCzDVCXbYf5Qx2pozLZsAyBFSjXTz7JeOfrsdZ8TSnU1uZ9ajTQ67ayFoJux0RgjE/bcPsgnnJlrFm6IY1zpiMyA7Rvtp9ak8KS1GcCjGUr+6TMHZ8F+A6mo3axMAhMR8Ps6xDwmgyTrocNBvA/LgbR2nRujTzYpF19r3rmEounWVO+XpwpbStQ1HMeqVrmCWanJts x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: ccfb3025-21f6-47f9-e879-08d517132681 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254171)(48565401081)(4534019)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199)(201703131423094); SRVR:DM5PR12MB1244; x-ms-traffictypediagnostic: DM5PR12MB1244: x-exchange-antispam-report-test: UriScan:(20558992708506)(767451399110)(788757137089)(162533806227266)(228905959029699); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR12MB1244; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR12MB1244; x-forefront-prvs: 0465429B7F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(13464003)(24454002)(189002)(199003)(74316002)(86362001)(3660700001)(110136005)(93886005)(15188155005)(81156014)(14454004)(575784001)(81166006)(53936002)(229853002)(4326008)(5660300001)(53376002)(305945005)(6246003)(1720100001)(3280700002)(33656002)(9686003)(8676002)(2906002)(106356001)(316002)(6306002)(66066001)(53946003)(7696004)(54356999)(77096006)(2900100001)(2501003)(68736007)(966005)(50986999)(7736002)(76176999)(105586002)(189998001)(2950100002)(478600001)(16200700003)(101416001)(6506006)(6116002)(16799955002)(97736004)(6436002)(102836003)(54906003)(8936002)(55016002)(25786009)(53546010)(99286003)(3846002)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1244; H:DM5PR12MB1243.namprd12.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2017 17:02:15.9252 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1244 Subject: Re: [PATCH v5 1/2] UefiCpuPkg/SmmCpuFeaturesLib: Use global variables to replace macros 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: Thu, 19 Oct 2017 16:58:41 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2VrIFtt YWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE5LCAy MDE3IDI6MDEgQU0NCj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgJ1lhbywg Smlld2VuJw0KPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBQYW9sbyBCb256aW5pIDxwYm9uemlu aUByZWRoYXQuY29tPjsgZWRrMi0NCj4gZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBOaSwgUnVp eXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPGpvcmRhbi5sLmp1 c3RlbkBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5u ZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6 IFJlOiBbZWRrMl0gW1BBVENIIHY1IDEvMl0gVWVmaUNwdVBrZy9TbW1DcHVGZWF0dXJlc0xpYjog VXNlDQo+IGdsb2JhbCB2YXJpYWJsZXMgdG8gcmVwbGFjZSBtYWNyb3MNCj4gDQo+IE9uIDEwLzE4 LzE3IDE2OjM2LCBEdXJhbiwgTGVvIHdyb3RlOg0KPiA+IFlhbywgUGFvbG8sIExhemxvLCBldCBh bCwNCj4gPg0KPiA+IFRoZSBvZmZzZXQgZGlzcGFyaXR5IGhhcyBwcm92ZWQgbWFuYWdlYWJsZSB3 aXRoaW4gU21tQ3B1RmVhdHVyZXNMaWIsIHNvDQo+IEnigJltIGluY2xpbmVkIHRvIGxlYXZlIG1h Y3JvIGRlZmluaXRpb25zIGFzLWlzIGFuZCBqdXN0IGRyb3AgdGhpcyBwYXRjaC1zZXQuDQo+ID4N Cj4gPiBBZ3JlZWQ/DQo+IA0KPiBTdXJlLg0KPiANCj4gT3V0IG9mIGN1cmlvc2l0eSwgd2hhdCBk b2VzIGl0IG1lYW4gZm9yIHlvdSB0aGF0IHRoZSBvZmZzZXQgZGlzcGFyaXR5IGlzDQo+IG1hbmFn ZWFibGUgaW4gU21tQ3B1RmVhdHVyZXNMaWI/IFdpbGwgeW91IHNlbmQgYSBkaWZmZXJlbnQgcGF0 Y2ggKHNldCkgZm9yDQo+IFVlZmlDcHVQa2cvU21tQ3B1RmVhdHVyZXNMaWIsIG9yIGRvZXMgaXQg Y29uY2VybiBhbiBTbW1DcHVGZWF0dXJlc0xpYg0KPiBpbnN0YW5jZSB0aGF0IGlzIHByaXZhdGUg dG8gQU1EPw0KTGF6bG8sDQoNCkl0IG1lYW50IHRoYXQgSSBjYW4gYWNjb3VudCBmb3IgdGhlIG9m ZnNldCBkaXNwYXJpdGllcyBpbiBhIHBsYXRmb3JtLXNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBT bW1DcHVGZWF0dXJlc0xpYiBsaWJyYXJ5Lg0KQW5kIG5vLCBJIHdpbGwgbm90IGJlIHB1c2hpbmcg Y2hhbmdlcyB0byB0aGUgZGVmYXVsdCBTbW1DcHVGZWF0dXJlc0xpYiBsaWJyYXJ5IGluIEVES0lJ Li4uIE5vciB0byB0aGUgUGlTbW1DcHVEeGVTbW0gZHJpdmVyLg0KDQpUaGFua3MsDQpMZW8uDQoN Cj4gDQo+IFRoYW5rcyENCj4gTGFzemxvDQo+IA0KPiANCj4gPiBGcm9tOiBZYW8sIEppZXdlbiBb bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tXQ0KPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIg MTcsIDIwMTcgODo1MSBQTQ0KPiA+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PjsgRHVyYW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+DQo+ID4gQ2M6IE5pLCBSdWl5dSA8cnVp eXUubmlAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA+IDxqb3JkYW4ubC5qdXN0ZW5A aW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEdhbywgTGltaW5nDQo+ID4gPGxp bWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+OyBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPg0KPiA+ IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIHY1IDEvMl0gVWVmaUNwdVBrZy9TbW1DcHVGZWF0 dXJlc0xpYjogVXNlDQo+ID4gZ2xvYmFsIHZhcmlhYmxlcyB0byByZXBsYWNlIG1hY3Jvcw0KPiA+ DQo+ID4gVGhhbmtzLiBUaGVuIEkgdGhpbmsgUGFvbG/igJlzIHN1Z2dlc3Rpb24gbWFrZXMgbW9y ZSBzZW5zZS4NCj4gPg0KPiA+IElmIHdlIGNhbiB1c2Ugc2FtZSBvZmYsIHRoYXQgd291bGQgYmUg Z3JlYXQuDQo+ID4gSWYgbm8sIGp1c3QgY2hlY2sgQU1EIHZlcnNpb24gSUQgaW4gU2F2ZVN0YXRl Lg0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ID4gRnJvbTogZWRr Mi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFs ZiBPZg0KPiA+IExhc3psbyBFcnNlaw0KPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMTcsIDIw MTcgMTE6MTUgUE0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1h aWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+Ow0KPiA+IER1cmFuLCBMZW8gPGxlby5kdXJhbkBh bWQuY29tPG1haWx0bzpsZW8uZHVyYW5AYW1kLmNvbT4+DQo+ID4gQ2M6IE5pLCBSdWl5dSA8cnVp eXUubmlAaW50ZWwuY29tPG1haWx0bzpydWl5dS5uaUBpbnRlbC5jb20+PjsgSnVzdGVuLA0KPiA+ IEpvcmRhbiBMDQo+ID4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb208bWFpbHRvOmpvcmRhbi5s Lmp1c3RlbkBpbnRlbC5jb20+PjsNCj4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86 ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBHYW8sIExpbWluZw0KPiA+IDxsaW1pbmcuZ2FvQGlu dGVsLmNvbTxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsgS2lubmV5LCBNaWNoYWVsIEQN Cj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPj47DQo+IFBhb2xvDQo+ID4gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0LmNvbTxt YWlsdG86cGJvbnppbmlAcmVkaGF0LmNvbT4+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFU Q0ggdjUgMS8yXSBVZWZpQ3B1UGtnL1NtbUNwdUZlYXR1cmVzTGliOiBVc2UNCj4gPiBnbG9iYWwg dmFyaWFibGVzIHRvIHJlcGxhY2UgbWFjcm9zDQo+ID4NCj4gPiBPbiAxMC8xNy8xNyAxNjo1MCwg WWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4+IEkgdGhpbmsgaXQgaXMgdW5uZWNlc3NhcnkuIEFsbCBp bnRlbCBDUFUgaXMgdXNpbmcgc2FtZSBvZmZzZXQuIEFsbCBhbWQgQ1BVIGlzDQo+IHVzaW5nIHNh bWUgb2Zmc2V0LiBJdCBjYW4gYmUgaWRlbnRpZmllZCBlYXNpbHkgYnkgY29kZS4NCj4gPj4gQWRk aW5nIGEgbmV3IEFQSSBub3cgaXMgYWxzbyBhbiBpbmNvbXBhdGlibGUgY2hhbmdlIGJlY2F1c2Ug dGhhdA0KPiByZXF1aXJlcyBhbGwgZXhpc3RpbmcgZmVhdHVyZWxpYiBjaGFuZ2UgdG8gYWRkIGEg bmV3IEFQSS4gV2UgaGF2ZSBsb3RzIG9mIGNsb3NlDQo+IHNvdXJjZSBwbGF0Zm9ybSB1c2luZyBp dHMgb3duIGZlYXR1cmVsaWIuDQo+ID4+DQo+ID4+IE1heSBJIGtub3cgd2hhdCBwcm9ibGVtIHdl IGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBieSBhZGRpbmcgYSBuZXcgQVBJPw0KPiA+DQo+ID4gUUVN VSAoYW5kIGhlbmNlIE9WTUYpIHVzZXMgdGhlIEFNRCBzYXZlIHN0YXRlIG1hcCBldmVuIHdoZW4g aXQNCj4gPiBlbXVsYXRlcyBJbnRlbCBDUFVzLg0KPiA+DQo+ID4gVGhlIHJlYXNvbiBpcyB0aGF0 IHRoZSBJbnRlbCBTRE0gZG9lcyBub3Qgc3BlY2lmeSB0aGUgSW50ZWwgc2F2ZSBzdGF0ZQ0KPiA+ IG1hcCBpbiBzdWZmaWNpZW50IGRldGFpbCAoZm9yIGVtdWxhdGlvbiBieSBRRU1VKSwgd2hpbGUg dGhlIEFNRCBzcGVjDQo+ID4gZG9lcy4gU28sIGFzIGFuIGVtdWxhdGlvbiB0YXJnZXQsIG9ubHkg dGhlIEFNRCBvbmUgaXMgaW1wbGVtZW50YWJsZSBpbg0KPiA+IFFFTVUgKGFuZCBzdXBwb3J0YWJs ZSBpbiBPVk1GKSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIFFFTVUgcmVwb3J0cw0KPiB0aGUNCj4g PiB2aXJ0dWFsIENQVSBtYW51ZmFjdHVyZXIgYXMgSW50ZWwgdnMuIEFNRC4NCj4gPg0KPiA+IElm IFBpU21tQ3B1RHhlU21tIHVzZWQgYSBDUFVJRCBjaGVjaywgc2F3ICJJbnRlbCIgYXMgbWFudWZh Y3R1cmVyLA0KPiBhbmQNCj4gPiB0aGVuIHVzZWQgdGhlIEludGVsIGRlZmluaXRpb24gb2YgdGhl IHNhdmUgc3RhdGUgbWFwLCB0aGVuDQo+ID4gUGlTbW1DcHVEeGVTbW0gd291bGQgYnJlYWsgb24g UUVNVSAvIGFzIHBhcnQgb2YgT1ZNRi4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBMYXN6bG8NCj4g Pg0KPiA+Pg0KPiA+Pg0KPiA+PiB0aGFuayB5b3UhDQo+ID4+IFlhbywgSmlld2VuDQo+ID4+DQo+ ID4+DQo+ID4+PiDlnKggMjAxN+W5tDEw5pyIMTfml6XvvIzkuIvljYgxMDoyMO+8jER1cmFuLCBM ZW8NCj4gPj4+IDxsZW8uZHVyYW5AYW1kLmNvbTxtYWlsdG86bGVvLmR1cmFuQGFtZC5jb20+PiDl hpnpgZPvvJoNCj4gPj4+DQo+ID4+PiBZYW8sIExhemxvLCBldCBhbCwNCj4gPj4+DQo+ID4+PiBG b3IgdGhlIFNSQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUOg0KPiA+Pj4gSSBwcm9wb3NlIHJldHVy bmluZyB0aGUgdmFsdWUgYnkgYSBmdW5jdGlvbiBpbiBTbW1DcHVGZWF0dXJlc0xpYi4uLg0KPiBI ZXJlJ3MgdGhlIHJhdGlvbmFsZToNCj4gPj4+IC0gVGhlIHZhbHVlIGlzIGZpeGVkIHBlciBDUFUg YXJjaGl0ZWN0dXJlLCBzbyB0aGlzIHF1YWxpZmllcyBhcyBhIENQVQ0KPiBmZWF0dXJlLg0KPiA+ Pj4gLSBUaGUgbG9naWMgZm9yIENQVSBhcmNoaXRlY3R1cmUgZGV0ZWN0aW9uIHdvdWxkIGJlIGlu IG9uZSBwbGFjZQ0KPiA+Pj4gKGUuZy4sIFBpU21tQ3B1RHhlU21tIHdvdWxkIGNhbGwgdGhlIGxp YnJhcnkgZnVuY3Rpb24pDQo+ID4+PiAtIFRoZSBPVk1GIGFuZCBRdWFyayBpbnN0YW5jZXMgb2Yg dGhlIGxpYnJhcnkgY291bGQganVzdCByZXR1cm4gdGhlDQo+IGN1cnJlbnQgKGRlZmF1bHQpIHZh bHVlLCBzbyBubyBjb21wYXRpYmlsaXR5IGlzc3Vlcy4NCj4gPj4+DQo+ID4+PiBpZiB5b3UgYWdy ZWUgd2l0aCB0aGlzIGlzIGFuIGFjY2VwdGFibGUgc29sdXRpb24sIEkgd2lsbCBzdWJtaXQgYSBy ZXZpc2VkDQo+IHBhdGNoLXNldCB0byBhZGRyZXNzIGp1c3QgdGhlIFNSQU1fU0FWRV9TVEFURV9N QVBfT0ZGU0VULg0KPiA+Pj4gKEJUVywgSSdtIHJlLWV2YWx1YXRpbmcgdGhlIGNoYW5nZXMgc3Vi bWl0dGVkIGZvciB0aGUgUFNEIG9mZnNldCwNCj4gPj4+IHdpdGggdGhlIGdvYWwgb2YganVzdCB1 c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBhbmQgZHJvcHBpbmcgdGhvc2UNCj4gPj4+IGNoYW5nZXMp DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gTGVvLg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IER1cmFuLCBMZW8NCj4gPj4+PiBTZW50 OiBXZWRuZXNkYXksIE9jdG9iZXIgMTEsIDIwMTcgMjo0NiBQTQ0KPiA+Pj4+IFRvOiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+ID4+Pj4g Q2M6IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPG1haWx0bzpsZW8uZHVyYW5AYW1kLmNv bT4+Ow0KPiA+Pj4+IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3 ZW4ueWFvQGludGVsLmNvbT4+Ow0KPiA+Pj4+IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRlbC5jb208 bWFpbHRvOnJ1aXl1Lm5pQGludGVsLmNvbT4+OyBNaWNoYWVsIEQNCj4gPj4+PiBLaW5uZXkNCj4g Pj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPj47DQo+ID4+Pj4gSm9yZGFuIEp1c3Rlbg0KPiA+Pj4+IDxqb3JkYW4ubC5qdXN0 ZW5AaW50ZWwuY29tPG1haWx0bzpqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPj47DQo+ID4+Pj4g TGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb208bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwu Y29tPj4NCj4gPj4+PiBTdWJqZWN0OiBbUEFUQ0ggdjUgMS8yXSBVZWZpQ3B1UGtnL1NtbUNwdUZl YXR1cmVzTGliOiBVc2UgZ2xvYmFsDQo+ID4+Pj4gdmFyaWFibGVzIHRvIHJlcGxhY2UgbWFjcm9z DQo+ID4+Pj4NCj4gPj4+PiBTZXQgZ2xvYmFsIHZhcmlhYmxlcyBvbiBDb25zdHJ1Y3RvciBmdW5j dGlvbiBiYXNlZCBvbiBDUFVJRCBjaGVja3MuDQo+ID4+Pj4gVGhlIHZhcmlhYmxlcyByZXBsYWNl IEludGVsIG1hY3JvcyB0byBhbGxvdyBzdXBwb3J0IG9uIEFNRCB4ODYNCj4gc3lzdGVtcy4NCj4g Pj4+Pg0KPiA+Pj4+IFNwZWNpZmljYWxseSwgdGhlIHJlcGxhY2VkIG1hY3JvcyBhcmU6DQo+ID4+ Pj4gMSkgU1JBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQNCj4gPj4+PiAyKSBUWFRfU01NX1BTRF9P RkZTRVQNCj4gPj4+Pg0KPiA+Pj4+IENjOiBKaWV3ZW4gWWFvDQo+IDxqaWV3ZW4ueWFvQGludGVs LmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+Pg0KPiA+Pj4+IENjOiBSdWl5dSBOaSA8 cnVpeXUubmlAaW50ZWwuY29tPG1haWx0bzpydWl5dS5uaUBpbnRlbC5jb20+Pg0KPiA+Pj4+IENj OiBNaWNoYWVsIEQgS2lubmV5DQo+ID4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1h aWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQo+ID4+Pj4gQ2M6IEpvcmRhbiBKdXN0 ZW4NCj4gPj4+PiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbTxtYWlsdG86am9yZGFuLmwuanVz dGVuQGludGVsLmNvbT4+DQo+ID4+Pj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwu Y29tPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT4+DQo+ID4+Pj4gQ29udHJpYnV0ZWQtdW5k ZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+Pj4+IFNpZ25lZC1v ZmYtYnk6IExlbyBEdXJhbg0KPiA+Pj4+IDxsZW8uZHVyYW5AYW1kLmNvbTxtYWlsdG86bGVvLmR1 cmFuQGFtZC5jb20+Pg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+IC4uLi9MaWJyYXJ5L1NtbUNwdUZlYXR1 cmVzTGliL0lhMzIvU21pRW50cnkuUyAgICAgIHwgMjggKysrKysrLS0tLQ0KPiA+Pj4+IC4uLi9M aWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuYXNtICAgIHwgMjkgKysrKysr Ky0tLS0NCj4gPj4+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5 Lm5hc20gICB8IDQzDQo+ICsrKysrKysrKysrKy0tLQ0KPiA+Pj4+IC0NCj4gPj4+PiBVZWZpQ3B1 UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmggICB8IDQ4DQo+ID4+Pj4g KysrKysrKysrKysrKysrKysrDQo+ID4+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIv U21tQ3B1RmVhdHVyZXNMaWIuYyAgfCA1OQ0KPiA+Pj4+ICsrKysrKysrKysrKysrKysrKy0tLS0N Cj4gPj4+PiAuLi4vU21tQ3B1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIuaW5mICAgICAg ICB8ICAzICsrDQo+ID4+Pj4gLi4uL1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGli U3RtLmluZiAgICAgfCAgMyArKw0KPiA+Pj4+IFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0 dXJlc0xpYi9TbW1TdG0uYyAgICAgIHwgMzkNCj4gPj4+PiArKysrKysrKysrKystLQ0KPiA+Pj4+ IC4uLi9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5TICAgICAgIHwgMjgg KysrKysrLS0tLQ0KPiA+Pj4+IC4uLi9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlF bnRyeS5hc20gICAgIHwgMzAgKysrKysrKy0tLS0NCj4gPj4+PiAuLi4vTGlicmFyeS9TbW1DcHVG ZWF0dXJlc0xpYi9YNjQvU21pRW50cnkubmFzbSAgICB8IDQ3DQo+ICsrKysrKysrKysrKy0tLQ0K PiA+Pj4+IC0tDQo+ID4+Pj4gMTEgZmlsZXMgY2hhbmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDc1 IGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUNCj4gPj4+PiAxMDA2NDQgVWVmaUNwdVBrZy9MaWJy YXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNvbW1vbi5oDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnku Uw0KPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21p RW50cnkuUw0KPiA+Pj4+IGluZGV4IDRjMGY4YzguLmM3YjQ5ZDcgMTAwNjQ0DQo+ID4+Pj4gLS0t IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuUw0K PiA+Pj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1Nt aUVudHJ5LlMNCj4gPj4+PiBAQCAtMSw2ICsxLDggQEANCj4gPj4+PiAjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ Pj4gLS0tLS0tLS0tLS0tDQo+ID4+Pj4gIw0KPiA+Pj4+ICMgQ29weXJpZ2h0IChjKSAyMDA5IC0g MjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPj4+PiByZXNlcnZlZC48QlI+ DQo+ID4+Pj4gKyMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4gIw0KPiA+Pj4+ICMgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscyAgIyBhcmUgbGljZW5zZWQgYW5kDQo+ID4+Pj4gbWFkZSBhdmFpbGFi bGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgIw0K PiA+Pj4+IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZQ0KPiA+Pj4+IG1heSBiZSBmb3VuZCBhdCBAQCAtMjgsNiArMzAsOSBA QCBBU01fR0xPQkFMDQo+IEFTTV9QRlgoZ1N0bVNtYmFzZSkNCj4gPj4+PiBBU01fR0xPQkFMDQo+ ID4+Pj4gQVNNX1BGWChnU3RtWGRTdXBwb3J0ZWQpICBBU01fR0xPQkFMDQo+IEFTTV9QRlgoRmVh dHVyZVBjZEdldA0KPiA+Pj4+IChQY2RDcHVTbW1TdGFja0d1YXJkKSkgIEFTTV9HTE9CQUwNCj4g QVNNX1BGWChnU3RtU21pSGFuZGxlcklkdHIpDQo+ID4+Pj4gK0FTTV9HTE9CQUwgIEFTTV9QRlgo Z1N0bVBzZE9mZnNldCkgQVNNX0dMT0JBTA0KPiA+Pj4+ICtBU01fUEZYKGdTdG1HZHRTaXplKSBB U01fR0xPQkFMICBBU01fUEZYKGdTdG1HZHRQdHIpDQo+ID4+Pj4NCj4gPj4+PiAuZXF1ICAgICAg ICAgICAgTVNSX0lBMzJfTUlTQ19FTkFCTEUsIDB4MUEwDQo+ID4+Pj4gLmVxdSAgICAgICAgICAg IE1TUl9FRkVSLCAweGMwMDAwMDgwDQo+ID4+Pj4gQEAgLTM2LDEyICs0MSwxMyBAQCBBU01fR0xP QkFMICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4gIyAgIw0KPiA+Pj4+IENvbnN0YW50 cyByZWxhdGluZyB0byBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICAjDQo+ID4+Pj4gLS5l cXUgICAgICAgICAgICBEU0NfT0ZGU0VULCAweGZiMDANCj4gPj4+PiAtLmVxdSAgICAgICAgICAg IERTQ19HRFRQVFIsIDB4NDgNCj4gPj4+PiAtLmVxdSAgICAgICAgICAgIERTQ19HRFRTSVosIDB4 NTANCj4gPj4+PiAtLmVxdSAgICAgICAgICAgIERTQ19DUywgMHgxNA0KPiA+Pj4+IC0uZXF1ICAg ICAgICAgICAgRFNDX0RTLCAweDE2DQo+ID4+Pj4gLS5lcXUgICAgICAgICAgICBEU0NfU1MsIDB4 MTgNCj4gPj4+PiArIyAuZXF1ICAgICAgICAgIERTQ19PRkZTRVQsICAgMHhmYjAwDQo+ID4+Pj4g KyMgLmVxdSAgICAgICAgICBEU0NfR0RUUFRSLCAgIDB4NDgNCj4gPj4+PiArIyAuZXF1ICAgICAg ICAgIERTQ19HRFRTSVosICAgMHg1MA0KPiA+Pj4+ICsjDQo+ID4+Pj4gKy5lcXUgICAgICAgICAg ICBEU0NfQ1MsICAgICAgIDB4MTQNCj4gPj4+PiArLmVxdSAgICAgICAgICAgIERTQ19EUywgICAg ICAgMHgxNg0KPiA+Pj4+ICsuZXF1ICAgICAgICAgICAgRFNDX1NTLCAgICAgICAweDE4DQo+ID4+ Pj4gLmVxdSAgICAgICAgICAgIERTQ19PVEhFUlNFRywgMHgxQQ0KPiA+Pj4+DQo+ID4+Pj4gLmVx dSAgICAgICAgICAgIFBST1RFQ1RfTU9ERV9DUywgMHgwOA0KPiA+Pj4+IEBAIC01NSwxMSArNjEs MTEgQEAgX1N0bVNtaUVudHJ5UG9pbnQ6DQo+ID4+Pj4gICAgIC5ieXRlIDB4YmIgICAgICAgICAg ICAgICAgICAgICAgICAgICMgbW92IGJ4LCBpbW0xNg0KPiA+Pj4+ICAgICAud29yZCBfU3RtR2R0 RGVzYyAtIF9TdG1TbWlFbnRyeVBvaW50ICsgMHg4MDAwDQo+ID4+Pj4gICAgIC5ieXRlIDB4MmUs MHhhMSAgICAgICAgICAgICAgICAgICAgICMgbW92IGF4LCBjczpbb2Zmc2V0MTZdDQo+ID4+Pj4g LSAgICAud29yZCBEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWg0KPiA+Pj4+ICtBU01fUEZYKGdTdG1H ZHRTaXplKTogLnNwYWNlIDIgICAgICAgICAgIyAud29yZCBEU0NfT0ZGU0VUICsNCj4gRFNDX0dE VFNJWg0KPiA+Pj4+ICAgICBkZWNsICAgICVlYXgNCj4gPj4+PiAgICAgbW92bCAgICAlZWF4LCAl Y3M6KCVlZGkpICAgICAgICAgICAgIyBtb3YgY3M6W2J4XSwgYXgNCj4gPj4+PiAgICAgLmJ5dGUg MHg2NiwweDJlLDB4YTEgICAgICAgICAgICAgICAgIyBtb3YgZWF4LCBjczpbb2Zmc2V0MTZdDQo+ ID4+Pj4gLSAgICAud29yZCAgIERTQ19PRkZTRVQgKyBEU0NfR0RUUFRSDQo+ID4+Pj4gK0FTTV9Q RlgoZ1N0bUdkdFB0cik6IC5zcGFjZSAyICAgICAgICAgICAjIC53b3JkIERTQ19PRkZTRVQgKw0K PiBEU0NfR0RUUFRSDQo+ID4+Pj4gICAgIG1vdncgICAgJWF4LCAlY3M6MiglZWRpKQ0KPiA+Pj4+ ICAgICBtb3Z3ICAgICVheCwgJWJwICAgICAgICAgICAgICAgICAgICAjIGVicCA9IEdEVCBiYXNl DQo+ID4+Pj4gICAgIC5ieXRlIDB4NjYNCj4gPj4+PiBAQCAtMTY3LDcgKzE3MywxMSBAQCBYZERv bmU6DQo+ID4+Pj4gICAgIG1vdmwgICAgJWNyMCwgJWVieA0KPiA+Pj4+ICAgICBvcmwgICAgICQw eDA4MDAxMDAyMywgJWVieCAgICAgICAgICAgICAjIGVuYWJsZSBwYWdpbmcgKyBXUCArIE5FICsg TVAgKyBQRQ0KPiA+Pj4+ICAgICBtb3ZsICAgICVlYngsICVjcjANCj4gPj4+PiAtICAgIGxlYWwg ICAgRFNDX09GRlNFVCglZWRpKSwlZWJ4DQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAgbW92bCAgICAk QVNNX1BGWChnU3RtUHNkT2Zmc2V0KSwgJWVieCAgIyBsZWFsDQo+IERTQ19PRkZTRVQoJWVkaSks DQo+ID4+Pj4gJWVieA0KPiA+Pj4+ICsgICAgbW92enh3ICAoJWVieCksICVlc2kNCj4gPj4+PiAr ICAgIGxlYWwgICAgKCVlZGksICVlc2kpLCAlZWJ4DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBtb3Z3 ICAgIERTQ19EUyglZWJ4KSwlYXgNCj4gPj4+PiAgICAgbW92bCAgICAlZWF4LCAlZHMNCj4gPj4+ PiAgICAgbW92dyAgICBEU0NfT1RIRVJTRUcoJWVieCksJWF4DQo+ID4+Pj4gZGlmZiAtLWdpdA0K PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5LmFz bQ0KPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21p RW50cnkuYXNtDQo+ID4+Pj4gaW5kZXggOTFkYzFlYi4uNGRiZTI3NiAxMDA2NDQNCj4gPj4+PiAt LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5h c20NCj4gPj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEz Mi9TbWlFbnRyeS5hc20NCj4gPj4+PiBAQCAtMSw1ICsxLDcgQEANCj4gPj4+PiA7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4+Pj4gLS0tLS0tLS0tLS0tIDsgIDsgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxNywgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbA0KPiA+Pj4+IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+Pj4g KzsgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4gOw0KPiA+Pj4+IDsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1h dGVyaWFscyAgOyBhcmUgbGljZW5zZWQgYW5kDQo+ID4+Pj4gbWFkZSBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgOw0KPiA+Pj4+IHdo aWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUg bGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gPj4+PiBAQCAtMjksMTMgKzMxLDE0IEBAIE1T Ul9FRkVSX1hEICAgRVFVICAgICAwODAwaA0KPiA+Pj4+IDsNCj4gPj4+PiA7IENvbnN0YW50cyBy ZWxhdGluZyB0byBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICA7DQo+ID4+Pj4gLURTQ19P RkZTRVQgICAgRVFVICAgICAwZmIwMGgNCj4gPj4+PiAtRFNDX0dEVFBUUiAgICBFUVUgICAgIDQ4 aA0KPiA+Pj4+IC1EU0NfR0RUU0laICAgIEVRVSAgICAgNTBoDQo+ID4+Pj4gLURTQ19DUyAgICAg ICAgRVFVICAgICAxNGgNCj4gPj4+PiAtRFNDX0RTICAgICAgICBFUVUgICAgIDE2aA0KPiA+Pj4+ IC1EU0NfU1MgICAgICAgIEVRVSAgICAgMThoDQo+ID4+Pj4gLURTQ19PVEhFUlNFRyAgRVFVICAg ICAxQWgNCj4gPj4+PiArOyBEU0NfT0ZGU0VUIEVRVSAgICAgMGZiMDBoDQo+ID4+Pj4gKzsgRFND X0dEVFBUUiBFUVUgICAgIDQ4aA0KPiA+Pj4+ICs7IERTQ19HRFRTSVogRVFVICAgICA1MGgNCj4g Pj4+PiArOw0KPiA+Pj4+ICtEU0NfQ1MgICAgICAgRVFVICAgICAxNGgNCj4gPj4+PiArRFNDX0RT ICAgICAgIEVRVSAgICAgMTZoDQo+ID4+Pj4gK0RTQ19TUyAgICAgICBFUVUgICAgIDE4aA0KPiA+ Pj4+ICtEU0NfT1RIRVJTRUcgRVFVICAgICAxQWgNCj4gPj4+Pg0KPiA+Pj4+IFBST1RFQ1RfTU9E RV9DUyBFUVUgICAwOGgNCj4gPj4+PiBQUk9URUNUX01PREVfRFMgRVFVICAgMjBoDQo+ID4+Pj4g QEAgLTU0LDYgKzU3LDkgQEAgRVhURVJOREVGICAgZ1N0bVNtYmFzZTpEV09SRA0KPiA+Pj4+IEVY VEVSTkRFRiAgIGdTdG1YZFN1cHBvcnRlZDpCWVRFDQo+ID4+Pj4gRVhURVJOREVGICAgRmVhdHVy ZVBjZEdldCAoUGNkQ3B1U21tU3RhY2tHdWFyZCk6QllURQ0KPiA+Pj4+IEVYVEVSTkRFRiAgIGdT dG1TbWlIYW5kbGVySWR0cjpGV09SRA0KPiA+Pj4+ICtFWFRFUk5ERUYgICBnU3RtUHNkT2Zmc2V0 OldPUkQNCj4gPj4+PiArRVhURVJOREVGICAgZ1N0bUdkdFNpemU6V09SRA0KPiA+Pj4+ICtFWFRF Uk5ERUYgICBnU3RtR2R0UHRyOldPUkQNCj4gPj4+Pg0KPiA+Pj4+ICAgICAuY29kZQ0KPiA+Pj4+ DQo+ID4+Pj4gQEAgLTYzLDExICs2OSwxMSBAQCBfU3RtU21pRW50cnlQb2ludDoNCj4gPj4+PiAg ICAgREIgICAgICAwYmJoICAgICAgICAgICAgICAgICAgICAgICAgOyBtb3YgYngsIGltbTE2DQo+ ID4+Pj4gICAgIERXICAgICAgb2Zmc2V0IF9TdG1HZHREZXNjIC0gX1N0bVNtaUVudHJ5UG9pbnQg KyA4MDAwaA0KPiA+Pj4+ICAgICBEQiAgICAgIDJlaCwgMGExaCAgICAgICAgICAgICAgICAgICA7 IG1vdiBheCwgY3M6W29mZnNldDE2XQ0KPiA+Pj4+IC0gICAgRFcgICAgICBEU0NfT0ZGU0VUICsg RFNDX0dEVFNJWg0KPiA+Pj4+ICtnU3RtR2R0U2l6ZSAgIERXICAgID8gICAgICAgICAgICAgICAg ICAgOyBEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWg0KPiA+Pj4+ICAgICBkZWMgICAgIGVheA0KPiA+ Pj4+ICAgICBtb3YgICAgIGNzOltlZGldLCBlYXggICAgICAgICAgICAgICA7IG1vdiBjczpbYnhd LCBheA0KPiA+Pj4+ICAgICBEQiAgICAgIDY2aCwgMmVoLCAwYTFoICAgICAgICAgICAgICA7IG1v diBlYXgsIGNzOltvZmZzZXQxNl0NCj4gPj4+PiAtICAgIERXICAgICAgRFNDX09GRlNFVCArIERT Q19HRFRQVFINCj4gPj4+PiArZ1N0bUdkdFB0ciAgICBEVyAgICA/ICAgICAgICAgICAgICAgICAg IDsgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4gPj4+PiAgICAgbW92ICAgICBjczpbZWRpICsg Ml0sIGF4ICAgICAgICAgICAgOyBtb3YgY3M6W2J4ICsgMl0sIGVheA0KPiA+Pj4+ICAgICBtb3Yg ICAgIGJwLCBheCAgICAgICAgICAgICAgICAgICAgICA7IGVicCA9IEdEVCBiYXNlDQo+ID4+Pj4g ICAgIERCICAgICAgNjZoDQo+ID4+Pj4gQEAgLTE3NCw3ICsxODAsMTAgQEAgZ1N0bVhkU3VwcG9y dGVkICAgICBEQiAgICAgIDENCj4gPj4+PiAgICAgbW92ICAgICBlYngsIGNyMA0KPiA+Pj4+ICAg ICBvciAgICAgIGVieCwgMDgwMDEwMDIzaCAgICAgICAgICAgICA7IGVuYWJsZSBwYWdpbmcgKyBX UCArIE5FICsgTVAgKyBQRQ0KPiA+Pj4+ICAgICBtb3YgICAgIGNyMCwgZWJ4DQo+ID4+Pj4gLSAg ICBsZWEgICAgIGVieCwgW2VkaSArIERTQ19PRkZTRVRdDQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAg bW92enggICBlc2ksIHdvcmQgcHRyIFtnU3RtUHNkT2Zmc2V0XSAgIDsgbGVhICAgICBlYngsIFtl ZGkgKw0KPiBEU0NfT0ZGU0VUXQ0KPiA+Pj4+ICsgICAgbGVhICAgICBlYngsIFtlZGkgKyBlc2ld ICAgICAgICAgICAgICAgIDsNCj4gPj4+PiArDQo+ID4+Pj4gICAgIG1vdiAgICAgYXgsIFtlYngg KyBEU0NfRFNdDQo+ID4+Pj4gICAgIG1vdiAgICAgZHMsIGVheA0KPiA+Pj4+ICAgICBtb3YgICAg IGF4LCBbZWJ4ICsgRFNDX09USEVSU0VHXQ0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4+PiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5Lm5hc20NCj4g Pj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5 Lm5hc20NCj4gPj4+PiBpbmRleCAwMGMwZjA2Ny4uMDIzOTIzYSAxMDA2NDQNCj4gPj4+PiAtLS0g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5uYXNt DQo+ID4+Pj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIv U21pRW50cnkubmFzbQ0KPiA+Pj4+IEBAIC0xLDUgKzEsNyBAQA0KPiA+Pj4+IDstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gPj4+PiAtLS0tLS0tLS0tLS0gOyAgOyBDb3B5cmlnaHQgKGMpIDIwMTYgLSAyMDE3LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsDQo+ID4+Pj4gcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4+PiAr OyBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPiA7DQo+ID4+Pj4gOyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0 ZXJpYWxzICA7IGFyZSBsaWNlbnNlZCBhbmQNCj4gPj4+PiBtYWRlIGF2YWlsYWJsZSB1bmRlciB0 aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICA7DQo+ID4+Pj4gd2hp Y2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBs aWNlbnNlDQo+ID4+Pj4gbWF5IGJlIGZvdW5kIGF0IEBAIC0yNSwxNyArMjcsMTggQEAgIDsgIDsg Q29uc3RhbnRzIHJlbGF0aW5nIHRvDQo+ID4+Pj4gVFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRP UiAgOyAtJWRlZmluZSBEU0NfT0ZGU0VUIDB4ZmIwMCAtDQo+ID4+Pj4gJWRlZmluZSBEU0NfR0RU UFRSIDB4NDggLSVkZWZpbmUgRFNDX0dEVFNJWiAweDUwIC0lZGVmaW5lDQo+IERTQ19DUw0KPiA+ Pj4+IDB4MTQgLSVkZWZpbmUgRFNDX0RTIDB4MTYgLSVkZWZpbmUgRFNDX1NTIDB4MTggLSVkZWZp bmUNCj4gPj4+PiBEU0NfT1RIRVJTRUcgMHgxYQ0KPiA+Pj4+ICs7ICVkZWZpbmUgRFNDX09GRlNF VCAgIDB4ZmIwMA0KPiA+Pj4+ICs7ICVkZWZpbmUgRFNDX0dEVFBUUiAgIDB4NDgNCj4gPj4+PiAr OyAlZGVmaW5lIERTQ19HRFRTSVogICAweDUwDQo+ID4+Pj4gKzsNCj4gPj4+PiArJWRlZmluZSAg IERTQ19DUyAgICAgICAweDE0DQo+ID4+Pj4gKyVkZWZpbmUgICBEU0NfRFMgICAgICAgMHgxNg0K PiA+Pj4+ICslZGVmaW5lICAgRFNDX1NTICAgICAgIDB4MTgNCj4gPj4+PiArJWRlZmluZSAgIERT Q19PVEhFUlNFRyAweDFhDQo+ID4+Pj4NCj4gPj4+PiAlZGVmaW5lIFBST1RFQ1RfTU9ERV9DUyAw eDgNCj4gPj4+PiAlZGVmaW5lIFBST1RFQ1RfTU9ERV9EUyAweDIwDQo+ID4+Pj4gLSVkZWZpbmUg VFNTX1NFR01FTlQgMHg0MA0KPiA+Pj4+ICslZGVmaW5lIFRTU19TRUdNRU5UICAgICAweDQwDQo+ ID4+Pj4NCj4gPj4+PiBleHRlcm4gQVNNX1BGWChTbWlSZW5kZXp2b3VzKQ0KPiA+Pj4+IGV4dGVy biBBU01fUEZYKEZlYXR1cmVQY2RHZXQgKFBjZENwdVNtbVN0YWNrR3VhcmQpKSBAQCAtNTEsNg0K PiA+Pj4+ICs1NCwxMCBAQCBnbG9iYWwgQVNNX1BGWChnU3RtU21iYXNlKSAgZ2xvYmFsDQo+ID4+ Pj4gQVNNX1BGWChnU3RtWGRTdXBwb3J0ZWQpICBleHRlcm4gQVNNX1BGWChnU3RtU21pSGFuZGxl cklkdHIpDQo+ID4+Pj4NCj4gPj4+PiArZXh0ZXJuIEFTTV9QRlgoZ1N0bVBzZE9mZnNldCkNCj4g Pj4+PiArZ2xvYmFsIEFTTV9QRlgoZ1N0bUdkdFNpemUpDQo+ID4+Pj4gK2dsb2JhbCBBU01fUEZY KGdTdG1HZHRQdHIpDQo+ID4+Pj4gKw0KPiA+Pj4+IEFTTV9QRlgoZ1N0bVNtaUNyMykgICAgICBF UVUgU3RtU21pQ3IzUGF0Y2ggLSA0DQo+ID4+Pj4gQVNNX1BGWChnU3RtU21pU3RhY2spICAgIEVR VSBTdG1TbWlTdGFja1BhdGNoIC0gNA0KPiA+Pj4+IEFTTV9QRlgoZ1N0bVNtYmFzZSkgICAgICBF UVUgU3RtU21iYXNlUGF0Y2ggLSA0DQo+ID4+Pj4gQEAgLTYyLDEwICs2OSwxOCBAQCBCSVRTIDE2 DQo+ID4+Pj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJUZW1wbGF0ZSk6DQo+ID4+Pj4gX1N0bVNt aUVudHJ5UG9pbnQ6DQo+ID4+Pj4gICAgIG1vdiAgICAgYngsIF9TdG1HZHREZXNjIC0gX1N0bVNt aUVudHJ5UG9pbnQgKyAweDgwMDANCj4gPj4+PiAtICAgIG1vdiAgICAgYXgsW2NzOkRTQ19PRkZT RVQgKyBEU0NfR0RUU0laXQ0KPiA+Pj4+ICsNCj4gPj4+PiArICAgIG1vdiAgICAgZWF4LCBBU01f UEZYKGdTdG1HZHRTaXplKSAgICAgOyBtb3YgICAgIGF4LCBbY3M6RFNDX09GRlNFVCArDQo+ID4+ Pj4gRFNDX0dEVFNJWl0NCj4gPj4+PiArICAgIG1vdiAgICAgc2ksIFtjczplYXhdICAgICAgICAg ICAgICAgICAgOw0KPiA+Pj4+ICsgICAgbW92ICAgICBheCwgW2NzOnNpXSAgICAgICAgICAgICAg ICAgICA7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBkZWMgICAgIGF4DQo+ID4+Pj4gICAgIG1vdiAg ICAgW2NzOmJ4XSwgYXgNCj4gPj4+PiAtICAgIG1vdiAgICAgZWF4LCBbY3M6RFNDX09GRlNFVCAr IERTQ19HRFRQVFJdDQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgo Z1N0bUdkdFB0cikgICAgICA7IG1vdiAgICAgZWF4LCBbY3M6RFNDX09GRlNFVA0KPiArDQo+ID4+ Pj4gRFNDX0dEVFBUUl0NCj4gPj4+PiArICAgIG1vdiAgICAgc2ksIFtjczplYXhdICAgICAgICAg ICAgICAgICAgOw0KPiA+Pj4+ICsgICAgbW92ICAgICBlYXgsIFtjczpzaV0gICAgICAgICAgICAg ICAgICA7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBtb3YgICAgIFtjczpieCArIDJdLCBlYXgNCj4g Pj4+PiAgICAgbW92ICAgICBlYnAsIGVheCAgICAgICAgICAgICAgICAgICAgICA7IGVicCA9IEdE VCBiYXNlDQo+ID4+Pj4gbzMyIGxnZHQgICAgW2NzOmJ4XSAgICAgICAgICAgICAgICAgICAgICAg OyBsZ2R0IGZ3b3JkIHB0ciBjczpbYnhdDQo+ID4+Pj4gQEAgLTE2Niw3ICsxODEsMTAgQEAgU3Rt WGRTdXBwb3J0ZWRQYXRjaDoNCj4gPj4+PiAgICAgbW92ICAgICBlYngsIGNyMA0KPiA+Pj4+ICAg ICBvciAgICAgIGVieCwgMHg4MDAxMDAyMyAgICAgICAgICAgICA7IGVuYWJsZSBwYWdpbmcgKyBX UCArIE5FICsgTVAgKyBQRQ0KPiA+Pj4+ICAgICBtb3YgICAgIGNyMCwgZWJ4DQo+ID4+Pj4gLSAg ICBsZWEgICAgIGVieCwgW2VkaSArIERTQ19PRkZTRVRdDQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAg bW92enggICBlc2ksIHdvcmQgW0FTTV9QRlgoZ1N0bVBzZE9mZnNldCldICA7IGxlYSAgICAgZWJ4 LCBbZWRpICsNCj4gPj4+PiBEU0NfT0ZGU0VUXQ0KPiA+Pj4+ICsgICAgbGVhICAgICBlYngsIFtl ZGkgKyBlc2ldICAgICAgICAgICAgICAgICAgICA7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBtb3Yg ICAgIGF4LCBbZWJ4ICsgRFNDX0RTXQ0KPiA+Pj4+ICAgICBtb3YgICAgIGRzLCBlYXgNCj4gPj4+ PiAgICAgbW92ICAgICBheCwgW2VieCArIERTQ19PVEhFUlNFR10NCj4gPj4+PiBAQCAtMjcxLDUg KzI4OSw4IEBAIF9TdG1TbWlIYW5kbGVyOg0KPiA+Pj4+ICAgICA7IFNUTSBpbml0IGZpbmlzaA0K PiA+Pj4+ICAgICBqbXAgICAgIENvbW1vbkhhbmRsZXINCj4gPj4+Pg0KPiA+Pj4+ICtBU01fUEZY KGdTdG1HZHRTaXplKSAgICAgICAgICAgOiBSRVNXICAgICAgMQ0KPiA+Pj4+ICtBU01fUEZYKGdT dG1HZHRQdHIpICAgICAgICAgICAgOiBSRVNXICAgICAgMQ0KPiA+Pj4+ICsNCj4gPj4+PiBBU01f UEZYKGdjU3RtU21pSGFuZGxlclNpemUpICAgOiBEVyAgICAgICAgJCAtIF9TdG1TbWlFbnRyeVBv aW50DQo+ID4+Pj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJPZmZzZXQpIDogRFcgICAgICAgIF9T dG1TbWlIYW5kbGVyIC0NCj4gPj4+PiBfU3RtU21pRW50cnlQb2ludA0KPiA+Pj4+IGRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmgNCj4g Pj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1Db21tb24uaA0K PiA+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+Pj4gaW5kZXggMDAwMDAwMC4uNzhiM2E1 Yg0KPiA+Pj4+IC0tLSAvZGV2L251bGwNCj4gPj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkv U21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmgNCj4gPj4+PiBAQCAtMCwwICsxLDQ4IEBADQo+ ID4+Pj4gKy8qKiBAZmlsZQ0KPiA+Pj4+ICsgIENvbW1vbiBkZWNsYXJhdGlvbnMNCj4gPj4+PiAr DQo+ID4+Pj4gKyAgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPj4+PiArDQo+ID4+Pj4gKyAgVGhpcyBwcm9ncmFtIGFuZCB0 aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIGFuZA0KPiA+Pj4+ICsgbWFk ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGlj ZW5zZQ0KPiA+Pj4+ICsgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUg ZnVsbCB0ZXh0IG9mIHRoZQ0KPiA+Pj4+ICsgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQgIGh0dHA6 Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtDQo+IGxpY2Vuc2UucGhwLg0KPiA+Pj4+ICsN Cj4gPj4+PiArICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VO U0UgT04gQU4gIkFTDQo+IElTIg0KPiA+Pj4+IEJBU0lTLA0KPiA+Pj4+ICsgV0lUSE9VVCBXQVJS QU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ID4+Pj4gRVhQ UkVTUyBPUiBJTVBMSUVELg0KPiA+Pj4+ICsNCj4gPj4+PiArKiovDQo+ID4+Pj4gKw0KPiA+Pj4+ ICsjaWZuZGVmIF9TTU1fQ09NTU9OX0hfDQo+ID4+Pj4gKyNkZWZpbmUgX1NNTV9DT01NT05fSF8N Cj4gPj4+PiArDQo+ID4+Pj4gKyNpbmNsdWRlIDxSZWdpc3Rlci9BbWQvQ3B1aWQuaD4NCj4gPj4+ PiArDQo+ID4+Pj4gKy8vDQo+ID4+Pj4gKy8vIERlZmluaXRpb25zIGZvciBBTUQgc3lzdGVtcyBh cmUgYmFzZWQgb24gY29udGVudHMgb2YgdGhlIC8vDQo+ID4+Pj4gK0FNRDY0IEFyY2hpdGVjdHVy ZSBQcm9ncmFtbWVyJ3MgTWFudWFsIC8vIFZvbHVtZSAyOiBTeXN0ZW0NCj4gPj4+PiArUHJvZ3Jh bW1pbmcsIFNlY3Rpb24gMTAgU3lzdGVtLU1hbmFnZW1lbnQgTW9kZSAvLyAjZGVmaW5lDQo+ID4+ Pj4gK0FNRF9TTVJBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQgMHhmZTAwDQo+ID4+Pj4gKyNkZWZp bmUgICAgICAgQU1EX1NNTV9QU0RfT0ZGU0VUICAgICAgICAgMHhmYzAwDQo+ID4+Pj4gKw0KPiA+ Pj4+ICsvLw0KPiA+Pj4+ICsvLyBFeHRlcm5hbCBnbG9iYWwgdmFyaWFibGVzIGZvciBTTVJBTSBv ZmZzZXRzIC8vIGV4dGVybiBVSU5UMTYNCj4gPj4+PiArZ1NtcmFtU3RhdGVNYXBPZmZzZXQ7IGV4 dGVybiBVSU5UMTYgIGdTbW1Qc2RPZmZzZXQ7DQo+ID4+Pj4gKw0KPiA+Pj4+ICsNCj4gPj4+PiAr LyoqDQo+ID4+Pj4gKyAgRGV0ZXJtaW5lIGlmIHRoZSBzdGFuZGFyZCBDUFUgc2lnbmF0dXJlIGlz ICJBdXRoZW50aWNBTUQiLg0KPiA+Pj4+ICsNCj4gPj4+PiArICBAcmV0dmFsIFRSVUUgIFRoZSBD UFUgc2lnbmF0dXJlIG1hdGNoZXMuDQo+ID4+Pj4gKyAgQHJldHZhbCBGQUxTRSBUaGUgQ1BVIHNp Z25hdHVyZSBkb2VzIG5vdCBtYXRjaC4NCj4gPj4+PiArDQo+ID4+Pj4gKyoqLw0KPiA+Pj4+ICtC T09MRUFODQo+ID4+Pj4gK1NtbVN0YW5kYXJkU2lnbmF0dXJlSXNBdXRoZW50aWNBTUQgKA0KPiA+ Pj4+ICsgIFZPSUQNCj4gPj4+PiArICApOw0KPiA+Pj4+ICsNCj4gPj4+PiArI2VuZGlmDQo+ID4+ Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVz TGliL1NtbUNwdUZlYXR1cmVzTGliLmMNCj4gPj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5jDQo+ID4+Pj4gaW5kZXggMmQyYmM2ZC4u MWMxMjA5NSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVh dHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIuYw0KPiA+Pj4+ICsrKyBiL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5jDQo+ID4+Pj4gQEAgLTEs MTQgKzEsMTYgQEANCj4gPj4+PiAvKiogQGZpbGUNCj4gPj4+PiAtVGhlIENQVSBzcGVjaWZpYyBw cm9ncmFtbWluZyBmb3IgUGlTbW1DcHVEeGVTbW0gbW9kdWxlLg0KPiA+Pj4+ICsgIFRoZSBDUFUg c3BlY2lmaWMgcHJvZ3JhbW1pbmcgZm9yIFBpU21tQ3B1RHhlU21tIG1vZHVsZS4NCj4gPj4+Pg0K PiA+Pj4+IC1Db3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cw0KPiA+Pj4+IHJlc2VydmVkLjxCUj4gLVRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29t cGFueWluZyBtYXRlcmlhbHMgLWFyZQ0KPiA+Pj4+IGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJs ZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+ID4+Pj4gQlNEIExpY2Vu c2UgLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv Zg0KPiA+Pj4+IHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdCAtDQo+ID4+Pj4gaHR0cDovL29w ZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiA+Pj4+ICsgIENvcHlyaWdo dCAoYykgMjAxMCAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4+Pj4g KyByZXNlcnZlZC48QlI+ICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFs bCByaWdodHMNCj4gPj4+PiArIHJlc2VydmVkLjxCUj4NCj4gPj4+Pg0KPiA+Pj4+IC1USEUgUFJP R1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTDQo+IElT Ig0KPiA+Pj4+IEJBU0lTLCAtV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBP RiBBTlkgS0lORCwNCj4gRUlUSEVSDQo+ID4+Pj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+Pj4+ ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBsaWNl bnNlZCBhbmQNCj4gPj4+PiArIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UNCj4gPj4+PiArIHdoaWNoIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUNCj4gPj4+PiArIGxpY2Vuc2Ug bWF5IGJlIGZvdW5kIGF0DQo+ID4+Pj4gKyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMv YnNkLWxpY2Vuc2UucGhwDQo+ID4+Pj4gKw0KPiA+Pj4+ICsgIFRIRSBQUk9HUkFNIElTIERJU1RS SUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMNCj4gSVMiDQo+ID4+Pj4gQkFT SVMsDQo+ID4+Pj4gKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFO WSBLSU5ELCBFSVRIRVINCj4gPj4+PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4+Pj4NCj4gPj4+ PiAqKi8NCj4gPj4+Pg0KPiA+Pj4+IEBAIC0yMiw2ICsyNCw4IEBAIFdJVEhPVVQgV0FSUkFOVElF UyBPUiBSRVBSRVNFTlRBVElPTlMgT0YNCj4gQU5ZDQo+ID4+Pj4gS0lORCwgRUlUSEVSIEVYUFJF U1MgT1IgSU1QTElFRC4NCj4gPj4+PiAjaW5jbHVkZSA8UmVnaXN0ZXIvQ3B1aWQuaD4NCj4gPj4+ PiAjaW5jbHVkZSA8UmVnaXN0ZXIvU21yYW1TYXZlU3RhdGVNYXAuaD4NCj4gPj4+Pg0KPiA+Pj4+ ICsjaW5jbHVkZSAiU21tQ29tbW9uLmgiDQo+ID4+Pj4gKw0KPiA+Pj4+IC8vDQo+ID4+Pj4gLy8g TWFjaGluZSBTcGVjaWZpYyBSZWdpc3RlcnMgKE1TUnMpIC8vIEBAIC00MSw2ICs0NSw3IEBAIFdJ VEhPVVQNCj4gPj4+PiBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwg RUlUSEVSIEVYUFJFU1MgT1INCj4gPj4+PiBJTVBMSUVELg0KPiA+Pj4+ICNkZWZpbmUgU01NX0ZF QVRVUkVTX0xJQl9JQTMyX01DQV9DQVAgICAgICAgICAgICAgIDB4MTdEDQo+ID4+Pj4gI2RlZmlu ZSAgIFNNTV9DT0RFX0FDQ0VTU19DSEtfQklUICAgICAgICAgICAgICAgICAgQklUNTgNCj4gPj4+ Pg0KPiA+Pj4+ICsNCj4gPj4+PiAvKioNCj4gPj4+PiAgIEludGVybmFsIHdvcmtlciBmdW5jdGlv biB0aGF0IGlzIGNhbGxlZCB0byBjb21wbGV0ZSBDUFUgaW5pdGlhbGl6YXRpb24gYXQNCj4gdGhl DQo+ID4+Pj4gICBlbmQgb2YgU21tQ3B1RmVhdHVyZXNJbml0aWFsaXplUHJvY2Vzc29yKCkuDQo+ ID4+Pj4gQEAgLTc3LDYgKzgyLDEzIEBAIEJPT0xFQU4gIG1OZWVkQ29uZmlndXJlTXRycnMgPSBU UlVFOyAgLy8NCj4gQk9PTEVBTg0KPiA+Pj4+ICptU21yckVuYWJsZWQ7DQo+ID4+Pj4NCj4gPj4+ PiArLy8NCj4gPj4+PiArLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIFNNUkFNIG9mZnNldCAvLyAg ZnJvbQ0KPiA+Pj4+ICs8UmVnaXN0ZXIvU21yYW1TYXZlU3RhdGVNYXAuaD4gLy8NCj4gPj4+PiAr VUlOVDE2ICBnU21yYW1TdGF0ZU1hcE9mZnNldCA9DQo+IFNNUkFNX1NBVkVfU1RBVEVfTUFQX09G RlNFVDsNCj4gPj4+PiArDQo+ID4+Pj4gKw0KPiA+Pj4+IC8qKg0KPiA+Pj4+ICAgVGhlIGNvbnN0 cnVjdG9yIGZ1bmN0aW9uDQo+ID4+Pj4NCj4gPj4+PiBAQCAtOTksNiArMTExLDEzIEBAIFNtbUNw dUZlYXR1cmVzTGliQ29uc3RydWN0b3IgKA0KPiA+Pj4+ICAgVUlOVE4gICBNb2RlbElkOw0KPiA+ Pj4+DQo+ID4+Pj4gICAvLw0KPiA+Pj4+ICsgIC8vIE92ZXJyaWRlIFNNUkFNIG9mZnNldCBmb3Ig QU1EICAvLyAgaWYNCj4gPj4+PiArIChTbW1TdGFuZGFyZFNpZ25hdHVyZUlzQXV0aGVudGljQU1E ICgpKSB7DQo+ID4+Pj4gKyAgICBnU21yYW1TdGF0ZU1hcE9mZnNldCA9DQo+IEFNRF9TTVJBTV9T QVZFX1NUQVRFX01BUF9PRkZTRVQ7ICB9DQo+ID4+Pj4gKw0KPiA+Pj4+ICsgIC8vDQo+ID4+Pj4g ICAvLyBSZXRyaWV2ZSBDUFUgRmFtaWx5IGFuZCBNb2RlbA0KPiA+Pj4+ICAgLy8NCj4gPj4+PiAg IEFzbUNwdWlkIChDUFVJRF9WRVJTSU9OX0lORk8sICZSZWdFYXgsIE5VTEwsIE5VTEwsICZSZWdF ZHgpOw0KPiBAQCAtDQo+ID4+Pj4gMjI0LDcgKzI0Myw3IEBAIFNtbUNwdUZlYXR1cmVzSW5pdGlh bGl6ZVByb2Nlc3NvciAoDQo+ID4+Pj4gICAvLw0KPiA+Pj4+ICAgLy8gQ29uZmlndXJlIFNNQkFT RS4NCj4gPj4+PiAgIC8vDQo+ID4+Pj4gLSAgQ3B1U3RhdGUgPSAoU01SQU1fU0FWRV9TVEFURV9N QVANCj4gKikoVUlOVE4pKFNNTV9ERUZBVUxUX1NNQkFTRSArDQo+ID4+Pj4gU01SQU1fU0FWRV9T VEFURV9NQVBfT0ZGU0VUKTsNCj4gPj4+PiArICBDcHVTdGF0ZSA9IChTTVJBTV9TQVZFX1NUQVRF X01BUA0KPiA+Pj4+ICopKFVJTlROKShTTU1fREVGQVVMVF9TTUJBU0UgKw0KPiA+Pj4+ICsgZ1Nt cmFtU3RhdGVNYXBPZmZzZXQpOw0KPiA+Pj4+ICAgQ3B1U3RhdGUtPng4Ni5TTUJBU0UgPSAoVUlO VDMyKUNwdUhvdFBsdWdEYXRhLQ0KPiA+U21CYXNlW0NwdUluZGV4XTsNCj4gPj4+Pg0KPiA+Pj4+ ICAgLy8NCj4gPj4+PiBAQCAtNjMwLDMgKzY0OSwyNSBAQCBTbW1DcHVGZWF0dXJlc0FsbG9jYXRl UGFnZVRhYmxlTWVtb3J5ICgNCj4gPj4+PiAgIHJldHVybiBOVUxMOw0KPiA+Pj4+IH0NCj4gPj4+ Pg0KPiA+Pj4+ICsNCj4gPj4+PiArLyoqDQo+ID4+Pj4gKyAgRGV0ZXJtaW5lIGlmIHRoZSBzdGFu ZGFyZCBDUFUgc2lnbmF0dXJlIGlzICJBdXRoZW50aWNBTUQiLg0KPiA+Pj4+ICsNCj4gPj4+PiAr ICBAcmV0dmFsIFRSVUUgIFRoZSBDUFUgc2lnbmF0dXJlIG1hdGNoZXMuDQo+ID4+Pj4gKyAgQHJl dHZhbCBGQUxTRSBUaGUgQ1BVIHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaC4NCj4gPj4+PiArDQo+ ID4+Pj4gKyoqLw0KPiA+Pj4+ICtCT09MRUFODQo+ID4+Pj4gK1NtbVN0YW5kYXJkU2lnbmF0dXJl SXNBdXRoZW50aWNBTUQgKA0KPiA+Pj4+ICsgIFZPSUQNCj4gPj4+PiArICApDQo+ID4+Pj4gK3sN Cj4gPj4+PiArICBVSU5UMzIgIFJlZ0VieDsNCj4gPj4+PiArICBVSU5UMzIgIFJlZ0VjeDsNCj4g Pj4+PiArICBVSU5UMzIgIFJlZ0VkeDsNCj4gPj4+PiArDQo+ID4+Pj4gKyAgQXNtQ3B1aWQgKENQ VUlEX1NJR05BVFVSRSwgTlVMTCwgJlJlZ0VieCwgJlJlZ0VjeCwgJlJlZ0VkeCk7DQo+ID4+Pj4g KyAgcmV0dXJuIChSZWdFYnggPT0gQ1BVSURfU0lHTkFUVVJFX0FVVEhFTlRJQ19BTURfRUJYICYm DQo+ID4+Pj4gKyAgICAgICAgICBSZWdFY3ggPT0gQ1BVSURfU0lHTkFUVVJFX0FVVEhFTlRJQ19B TURfRUNYICYmDQo+ID4+Pj4gKyAgICAgICAgICBSZWdFZHggPT0gQ1BVSURfU0lHTkFUVVJFX0FV VEhFTlRJQ19BTURfRURYKTsNCj4gPj4+PiArfQ0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4+PiBh L1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5p bmYNCj4gPj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVG ZWF0dXJlc0xpYi5pbmYNCj4gPj4+PiBpbmRleCA3NzkwOGIwLi42YTM5ZDRiIDEwMDY0NA0KPiA+ Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0 dXJlc0xpYi5pbmYNCj4gPj4+PiArKysNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVh dHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIuaW5mDQo+ID4+Pj4gQEAgLTIsNiArMiw4IEBADQo+ ID4+Pj4gIyAgVGhlIENQVSBzcGVjaWZpYyBwcm9ncmFtbWluZyBmb3IgUGlTbW1DcHVEeGVTbW0g bW9kdWxlLg0KPiA+Pj4+ICMNCj4gPj4+PiAjICBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE2LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+Pj4+IHJlc2VydmVkLjxCUj4NCj4gPj4+ PiArIyAgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gPj4+PiArIw0KPiA+Pj4+ICMgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFj Y29tcGFueWluZyBtYXRlcmlhbHMgICMgIGFyZSBsaWNlbnNlZCBhbmQNCj4gPj4+PiBtYWRlIGF2 YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNl ICAjDQo+ID4+Pj4gd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4+Pj4gbWF5IGJlIGZvdW5kIGF0IEBAIC0yNCw2ICsy Niw3IEBADQo+ID4+Pj4NCj4gPj4+PiBbU291cmNlc10NCj4gPj4+PiAgIFNtbUNwdUZlYXR1cmVz TGliLmMNCj4gPj4+PiArICBTbW1Db21tb24uaA0KPiA+Pj4+ICAgU21tQ3B1RmVhdHVyZXNMaWJO b1N0bS5jDQo+ID4+Pj4NCj4gPj4+PiBbUGFja2FnZXNdDQo+ID4+Pj4gZGlmZiAtLWdpdA0KPiA+ Pj4+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1 cmVzTGliU3RtLmluZg0KPiA+Pj4+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1 cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliU3RtLmluZg0KPiA+Pj4+IGluZGV4IGRiOGRjZGMuLmE3 NmJlZDYgMTAwNjQ0DQo+ID4+Pj4gLS0tDQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZl YXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliU3RtLmluZg0KPiA+Pj4+ICsrKw0KPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYlN0bS5pbmYN Cj4gPj4+PiBAQCAtMyw2ICszLDggQEANCj4gPj4+PiAjICBpcyBpbmNsdWRlZC4NCj4gPj4+PiAj DQo+ID4+Pj4gIyAgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMNCj4gPj4+PiByZXNlcnZlZC48QlI+DQo+ID4+Pj4gKyMgIENvcHlyaWdodCAo YykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+ Pj4gKyMNCj4gPj4+PiAjICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJp YWxzICAjICBhcmUgbGljZW5zZWQgYW5kDQo+ID4+Pj4gbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgIw0KPiA+Pj4+IHdoaWNo IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGlj ZW5zZQ0KPiA+Pj4+IG1heSBiZSBmb3VuZCBhdCBAQCAtMjUsNiArMjcsNyBAQA0KPiA+Pj4+DQo+ ID4+Pj4gW1NvdXJjZXNdDQo+ID4+Pj4gICBTbW1DcHVGZWF0dXJlc0xpYi5jDQo+ID4+Pj4gKyAg U21tQ29tbW9uLmgNCj4gPj4+PiAgIFNtbVN0bS5jDQo+ID4+Pj4gICBTbW1TdG0uaA0KPiA+Pj4+ DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xp Yi9TbW1TdG0uYw0KPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGli L1NtbVN0bS5jDQo+ID4+Pj4gaW5kZXggNDUwMTViOC4uNWY3YzNkYiAxMDA2NDQNCj4gPj4+PiAt LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMNCj4gPj4+ PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMNCj4g Pj4+PiBAQCAtMiw2ICsyLDggQEANCj4gPj4+PiAgIFNNTSBTVE0gc3VwcG9ydCBmdW5jdGlvbnMN Cj4gPj4+Pg0KPiA+Pj4+ICAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNywgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMNCj4gPj4+PiByZXNlcnZlZC48QlI+DQo+ID4+Pj4gKyAgQ29weXJp Z2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gPj4+PiArDQo+ID4+Pj4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0 ZXJpYWxzDQo+ID4+Pj4gICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZg0KPiA+Pj4+IHRoZSBCU0QgTGljZW5zZQ0KPiA+Pj4+ ICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9m IHRoZQ0KPiA+Pj4+IGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0IEBAIC0yOCw2ICszMCw4IEBAICAj aW5jbHVkZQ0KPiA+Pj4+IDxQcm90b2NvbC9NcFNlcnZpY2UuaD4NCj4gPj4+Pg0KPiA+Pj4+ICNp bmNsdWRlICJTbW1TdG0uaCINCj4gPj4+PiArI2luY2x1ZGUgIlNtbUNvbW1vbi5oIg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICNkZWZpbmUgVFhUX0VWVFlQRV9CQVNFICAgICAgICAgICAgICAg ICAgMHg0MDANCj4gPj4+PiAjZGVmaW5lIFRYVF9FVlRZUEVfU1RNX0hBU0ggICAgICAgICAgICAg IChUWFRfRVZUWVBFX0JBU0UgKyAxNCkNCj4gPj4+PiBAQCAtOTcsNiArMTAxLDIwIEBAIGV4dGVy biB2b2xhdGlsZSBVSU5UOA0KPiA+Pj4+IGdjU3RtU21pSGFuZGxlclRlbXBsYXRlW107DQo+ID4+ Pj4gZXh0ZXJuIENPTlNUIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgIGdjU3RtU21pSGFu ZGxlclNpemU7DQo+ID4+Pj4gZXh0ZXJuIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdjU3RtU21pSGFuZGxlck9mZnNldDsNCj4gPj4+PiBleHRlcm4gQk9PTEVBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ1N0bVhkU3VwcG9ydGVkOw0KPiA+Pj4+ICtleHRlcm4gVUlO VDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1N0bUdkdFNpemU7DQo+ID4+Pj4gK2V4 dGVybiBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnU3RtR2R0UHRyOw0KPiA+ Pj4+ICsNCj4gPj4+PiArLy8NCj4gPj4+PiArLy8gQ29uc3RhbnRzIHJlbGF0aW5nIHRvIFRYVF9Q Uk9DRVNTT1JfU01NX0RFU0NSSVBUT1IgLy8NCj4gPj4+PiArI2RlZmluZSBUWFRfUFNEX0dEVFBU UiAgIDB4NDgNCj4gPj4+PiArI2RlZmluZSBUWFRfUFNEX0dEVFNJWkUgIDB4NTANCj4gPj4+PiAr DQo+ID4+Pj4gKy8vDQo+ID4+Pj4gKy8vIFNldCBkZWZhdWx0IHZhbHVlIGZvciBQU0Qgb2Zmc2V0 IGluIFNNUkFNIC8vICBmcm9tDQo+ID4+Pj4gKzxSZWdpc3Rlci9TdG1BcGkuaD4gLy8NCj4gPj4+ PiArVUlOVDE2ICBnU3RtUHNkT2Zmc2V0ID0gVFhUX1NNTV9QU0RfT0ZGU0VUOw0KPiA+Pj4+DQo+ ID4+Pj4gLy8NCj4gPj4+PiAvLyBWYXJpYWJsZXMgdXNlZCBieSBTTUkgSGFuZGxlcg0KPiA+Pj4+ IEBAIC0xNDUsNiArMTYzLDE5IEBAIFNtbUNwdUZlYXR1cmVzTGliU3RtQ29uc3RydWN0b3IgKA0K PiA+Pj4+ICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPj4+Pg0KPiA+Pj4+ICAgLy8N Cj4gPj4+PiArICAvLyBPdmVycmlkZSBQU0Qgb2Zmc2V0IGZvciBBTUQNCj4gPj4+PiArICAvLw0K PiA+Pj4+ICsgIGlmIChTbW1TdGFuZGFyZFNpZ25hdHVyZUlzQXV0aGVudGljQU1EICgpKSB7DQo+ ID4+Pj4gKyAgICBnU3RtUHNkT2Zmc2V0ID0gQU1EX1NNTV9QU0RfT0ZGU0VUOyAgfQ0KPiA+Pj4+ ICsNCj4gPj4+PiArICAvLw0KPiA+Pj4+ICsgIC8vIEluaXRpYWxpemUgU1RNIGdsb2JhbCB2YXJp YWJsZXMgYXNzb2NpYXRlZCB3aXRoIFNNSSBIYW5kbGVyDQo+ID4+Pj4gKyAvLyBnU3RtR2R0U2l6 ZSA9IGdTdG1Qc2RPZmZzZXQgKyBUWFRfUFNEX0dEVFNJWkU7ICBnU3RtR2R0UHRyICA9DQo+ID4+ Pj4gKyBnU3RtUHNkT2Zmc2V0ICsgVFhUX1BTRF9HRFRQVFI7DQo+ID4+Pj4gKw0KPiA+Pj4+ICsg IC8vDQo+ID4+Pj4gICAvLyBMb29rdXAgdGhlIE1QIFNlcnZpY2VzIFByb3RvY29sDQo+ID4+Pj4g ICAvLw0KPiA+Pj4+ICAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQo+ID4+Pj4gQEAg LTI3Niw4ICszMDcsOCBAQCBTbW1DcHVGZWF0dXJlc0luc3RhbGxTbWlIYW5kbGVyICgNCj4gPj4+ PiAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBSZWdFZHg7DQo+ID4+Pj4gICBFRklf UFJPQ0VTU09SX0lORk9STUFUSU9OICAgICAgUHJvY2Vzc29ySW5mbzsNCj4gPj4+Pg0KPiA+Pj4+ IC0gIENvcHlNZW0gKChWT0lEICopKChVSU5UTilTbUJhc2UgKyBUWFRfU01NX1BTRF9PRkZTRVQp LA0KPiA+Pj4+ICZnY1N0bVBzZCwgc2l6ZW9mIChnY1N0bVBzZCkpOw0KPiA+Pj4+IC0gIFBzZCA9 IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICopKFZPSUQNCj4gKikoKFVJTlROKVNtQmFz ZSArDQo+ID4+Pj4gVFhUX1NNTV9QU0RfT0ZGU0VUKTsNCj4gPj4+PiArICBDb3B5TWVtICgoVk9J RCAqKSgoVUlOVE4pU21CYXNlICsgZ1N0bVBzZE9mZnNldCksICZnY1N0bVBzZCwNCj4gPj4+PiBz aXplb2YNCj4gPj4+PiArIChnY1N0bVBzZCkpOyAgUHNkID0gKFRYVF9QUk9DRVNTT1JfU01NX0RF U0NSSVBUT1IgKikoVk9JRA0KPiA+Pj4+ICsgKikoKFVJTlROKVNtQmFzZSArIGdTdG1Qc2RPZmZz ZXQpOw0KPiA+Pj4+ICAgUHNkLT5TbW1HZHRQdHIgPSBHZHRCYXNlOw0KPiA+Pj4+ICAgUHNkLT5T bW1HZHRTaXplID0gKFVJTlQzMilHZHRTaXplOw0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQxNiw3ICs0 NDcsNyBAQCBTbW1FbmRPZkR4ZUV2ZW50Tm90aWZ5ICgNCj4gPj4+PiAgIH0NCj4gPj4+Pg0KPiA+ Pj4+ICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgZ1Ntc3QtPk51bWJlck9mQ3B1czsgSW5kZXgr Kykgew0KPiA+Pj4+IC0gICAgUHNkID0gKFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1IgKiko KFVJTlROKWdTbXN0LQ0KPiA+Pj4+PiBDcHVTYXZlU3RhdGVbSW5kZXhdIC0gU01SQU1fU0FWRV9T VEFURV9NQVBfT0ZGU0VUICsNCj4gPj4+PiBUWFRfU01NX1BTRF9PRkZTRVQpOw0KPiA+Pj4+ICsg ICAgUHNkID0gKFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1INCj4gPj4+PiArICopKChVSU5U TilnU21zdC0+Q3B1U2F2ZVN0YXRlW0luZGV4XSAtIGdTbXJhbVN0YXRlTWFwT2Zmc2V0ICsNCj4g Pj4+PiArIGdTdG1Qc2RPZmZzZXQpOw0KPiA+Pj4+ICAgICBERUJVRyAoKERFQlVHX0lORk8sICJJ bmRleD0lZCAgUHNkPSVwICBSc2RwPSVwXG4iLCBJbmRleCwNCj4gUHNkLA0KPiA+Pj4+IFJzZHAp KTsNCj4gPj4+PiAgICAgUHNkLT5BY3BpUnNkcCA9IChVSU5UNjQpKFVJTlROKVJzZHA7DQo+ID4+ Pj4gICB9DQo+ID4+Pj4gQEAgLTEyNjYsNyArMTI5Nyw3IEBAIE5vdGlmeVN0bVJlc291cmNlQ2hh bmdlICgNCj4gPj4+PiAgIFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1IgICpQc2Q7DQo+ID4+ Pj4NCj4gPj4+PiAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IGdTbXN0LT5OdW1iZXJPZkNwdXM7 IEluZGV4KyspIHsNCj4gPj4+PiAtICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQ VE9SICopKChVSU5UTilnU21zdC0NCj4gPj4+Pj4gQ3B1U2F2ZVN0YXRlW0luZGV4XSAtIFNNUkFN X1NBVkVfU1RBVEVfTUFQX09GRlNFVCArDQo+ID4+Pj4gVFhUX1NNTV9QU0RfT0ZGU0VUKTsNCj4g Pj4+PiArICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SDQo+ID4+Pj4gKyAq KSgoVUlOVE4pZ1Ntc3QtPkNwdVNhdmVTdGF0ZVtJbmRleF0gLSBnU21yYW1TdGF0ZU1hcE9mZnNl dCArDQo+ID4+Pj4gKyBnU3RtUHNkT2Zmc2V0KTsNCj4gPj4+PiAgICAgUHNkLT5CaW9zSHdSZXNv dXJjZVJlcXVpcmVtZW50c1B0ciA9DQo+IChVSU5UNjQpKFVJTlROKVN0bVJlc291cmNlOw0KPiA+ Pj4+ICAgfQ0KPiA+Pj4+ICAgcmV0dXJuIDsNCj4gPj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5TDQo+ID4+Pj4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5LlMNCj4gPj4+PiBp bmRleCAxZjlmOTFjLi41ZjMzODZhIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPiA+Pj4+ICsrKyBiL1VlZmlD cHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPiA+Pj4+IEBA IC0xLDYgKzEsOCBAQA0KPiA+Pj4+ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4+PiAtLS0tLS0tLS0tLS0NCj4g Pj4+PiAjDQo+ID4+Pj4gIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE2LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cw0KPiA+Pj4+IHJlc2VydmVkLjxCUj4NCj4gPj4+PiArIyBDb3B5cmln aHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAj DQo+ID4+Pj4gIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICAj IGFyZSBsaWNlbnNlZCBhbmQNCj4gPj4+PiBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICAjDQo+ID4+Pj4gd2hpY2ggYWNjb21w YW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ ID4+Pj4gbWF5IGJlIGZvdW5kIGF0IEBAIC0yNyw2ICsyOSw5IEBAIEFTTV9HTE9CQUwNCj4gQVNN X1BGWChnU3RtU21pU3RhY2spDQo+ID4+Pj4gQVNNX0dMT0JBTA0KPiA+Pj4+IEFTTV9QRlgoZ1N0 bVNtYmFzZSkgIEFTTV9HTE9CQUwgIEFTTV9QRlgoZ1N0bVhkU3VwcG9ydGVkKQ0KPiA+Pj4+IEFT TV9HTE9CQUwgIEFTTV9QRlgoZ1N0bVNtaUhhbmRsZXJJZHRyKQ0KPiA+Pj4+ICtBU01fR0xPQkFM ICBBU01fUEZYKGdTdG1Qc2RPZmZzZXQpIEFTTV9HTE9CQUwNCj4gPj4+PiArQVNNX1BGWChnU3Rt R2R0U2l6ZSkgQVNNX0dMT0JBTCAgQVNNX1BGWChnU3RtR2R0UHRyKQ0KPiA+Pj4+DQo+ID4+Pj4g LmVxdSAgICAgICAgICAgIE1TUl9JQTMyX01JU0NfRU5BQkxFLCAweDFBMA0KPiA+Pj4+IC5lcXUg ICAgICAgICAgICBNU1JfRUZFUiwgMHhjMDAwMDA4MA0KPiA+Pj4+IEBAIC0zNSwxMiArNDAsMTMg QEAgQVNNX0dMT0JBTCAgQVNNX1BGWChnU3RtU21pSGFuZGxlcklkdHIpDQo+ICMgICMNCj4gPj4+ PiBDb25zdGFudHMgcmVsYXRpbmcgdG8gVFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAgIw0K PiA+Pj4+IC0uZXF1ICAgICAgICAgICAgRFNDX09GRlNFVCwgMHhmYjAwDQo+ID4+Pj4gLS5lcXUg ICAgICAgICAgICBEU0NfR0RUUFRSLCAweDQ4DQo+ID4+Pj4gLS5lcXUgICAgICAgICAgICBEU0Nf R0RUU0laLCAweDUwDQo+ID4+Pj4gLS5lcXUgICAgICAgICAgICBEU0NfQ1MsIDB4MTQNCj4gPj4+ PiAtLmVxdSAgICAgICAgICAgIERTQ19EUywgMHgxNg0KPiA+Pj4+IC0uZXF1ICAgICAgICAgICAg RFNDX1NTLCAweDE4DQo+ID4+Pj4gKyMgLmVxdSAgICAgICAgICBEU0NfT0ZGU0VULCAgIDB4ZmIw MA0KPiA+Pj4+ICsjIC5lcXUgICAgICAgICAgRFNDX0dEVFBUUiwgICAweDQ4DQo+ID4+Pj4gKyMg LmVxdSAgICAgICAgICBEU0NfR0RUU0laLCAgIDB4NTANCj4gPj4+PiArIw0KPiA+Pj4+ICsuZXF1 ICAgICAgICAgICAgRFNDX0NTLCAgICAgICAweDE0DQo+ID4+Pj4gKy5lcXUgICAgICAgICAgICBE U0NfRFMsICAgICAgIDB4MTYNCj4gPj4+PiArLmVxdSAgICAgICAgICAgIERTQ19TUywgICAgICAg MHgxOA0KPiA+Pj4+IC5lcXUgICAgICAgICAgICBEU0NfT1RIRVJTRUcsIDB4MWENCj4gPj4+PiAj DQo+ID4+Pj4gIyBDb25zdGFudHMgcmVsYXRpbmcgdG8gQ1BVIFN0YXRlIFNhdmUgQXJlYSBAQCAt NzEsMTIgKzc3LDEyIEBADQo+ID4+Pj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+ID4+Pj4gICAgICMg Zml4IEdEVCBkZXNjcmlwdG9yDQo+ID4+Pj4gICAgICMNCj4gPj4+PiAgICAgLmJ5dGUgMHgyZSww eGExICAgICAgICAgICAgICAgICAgICAgIyBtb3YgYXgsIGNzOltvZmZzZXQxNl0NCj4gPj4+PiAt ICAgIC53b3JkICAgICAgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4gPj4+PiArQVNNX1BGWChn U3RtR2R0U2l6ZSk6IC5zcGFjZSAyICAgICAgICAgICMgLndvcmQgRFNDX09GRlNFVCArDQo+IERT Q19HRFRTSVoNCj4gPj4+PiAgICAgLmJ5dGUgMHg0OCAgICAgICAgICAgICAgICAgICAgICAgICAg IyBkZWMgYXgNCj4gPj4+PiAgICAgLmJ5dGUgMHgyZQ0KPiA+Pj4+ICAgICBtb3ZsICAgICVlYXgs ICglcmRpKSAgICAgICAgICAgICAgICAjIG1vdiBjczpbYnhdLCBheA0KPiA+Pj4+ICAgICAuYnl0 ZSAweDY2LDB4MmUsMHhhMSAgICAgICAgICAgICAgICAjIG1vdiBlYXgsIGNzOltvZmZzZXQxNl0N Cj4gPj4+PiAtICAgIC53b3JkICAgICAgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4gPj4+PiAr QVNNX1BGWChnU3RtR2R0UHRyKTogLnNwYWNlIDIgICAgICAgICAgICMgLndvcmQgRFNDX09GRlNF VCArDQo+IERTQ19HRFRQVFINCj4gPj4+PiAgICAgLmJ5dGUgMHgyZQ0KPiA+Pj4+ICAgICBtb3Z3 ICAgICVheCwgMiglcmRpKQ0KPiA+Pj4+ICAgICAuYnl0ZSAweDY2LDB4MmUNCj4gPj4+PiBAQCAt MTgzLDcgKzE4OSwxMSBAQCBCYXNlOg0KPiA+Pj4+IExvbmdNb2RlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIGxvbmcgbW9kZSAoNjQtYml0IGNvZGUpIHN0YXJ0cyBoZXJlDQo+ID4+ Pj4gICAgIG1vdmFic3EgJEFTTV9QRlgoZ1N0bVNtaUhhbmRsZXJJZHRyKSwgJXJheA0KPiA+Pj4+ ICAgICBsaWR0ICAgICglcmF4KQ0KPiA+Pj4+IC0gICAgbGVhICAgICAoRFNDX09GRlNFVCkoJXJk aSksICVlYngNCj4gPj4+PiArDQo+ID4+Pj4gKyAgICBtb3ZsICAgICRBU01fUEZYKGdTdG1Qc2RP ZmZzZXQpLCAlZWJ4ICAjIGxlYQ0KPiAoRFNDX09GRlNFVCkoJXJkaSksDQo+ID4+Pj4gJWVieA0K PiA+Pj4+ICsgICAgbW92enh3ICAoJWVieCksICVyc2kNCj4gPj4+PiArICAgIGxlYWwgICAgKCVy ZGksICVyc2kpLCAlZWJ4DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBtb3Z3ICAgIERTQ19EUyglcmJ4 KSwgJWF4DQo+ID4+Pj4gICAgIG1vdmwgICAgJWVheCwlZHMNCj4gPj4+PiAgICAgbW92dyAgICBE U0NfT1RIRVJTRUcoJXJieCksICVheA0KPiA+Pj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5LmFzbQ0KPiA+Pj4+IGIvVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5hc20NCj4gPj4+PiBp bmRleCBhZDUxZTA3Li4xMDkxM2RmIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+ID4+Pj4gKysrIGIvVWVm aUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5hc20NCj4gPj4+ PiBAQCAtMSw1ICsxLDcgQEANCj4gPj4+PiA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+Pj4gLS0tLS0tLS0tLS0t IDsgIDsgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbA0K PiA+Pj4+IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+Pj4gKzsgQ29weXJpZ2h0IChjKSAyMDE3 LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gOw0KPiA+Pj4+IDsg VGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgOyBhcmUgbGljZW5z ZWQgYW5kDQo+ID4+Pj4gbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRp b25zIG9mIHRoZSBCU0QgTGljZW5zZSAgOw0KPiA+Pj4+IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMg ZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91 bmQgYXQNCj4gPj4+PiBAQCAtMzIsNiArMzQsMTAgQEAgRVhURVJOREVGICAgZ1N0bVNtaVN0YWNr OkRXT1JEDQo+ID4+Pj4gRVhURVJOREVGICAgZ1N0bVNtYmFzZTpEV09SRA0KPiA+Pj4+IEVYVEVS TkRFRiAgIGdTdG1YZFN1cHBvcnRlZDpCWVRFDQo+ID4+Pj4gRVhURVJOREVGICAgZ1N0bVNtaUhh bmRsZXJJZHRyOkZXT1JEDQo+ID4+Pj4gK0VYVEVSTkRFRiAgIGdTdG1Qc2RPZmZzZXQ6V09SRA0K PiA+Pj4+ICtFWFRFUk5ERUYgICBnU3RtR2R0U2l6ZTpXT1JEDQo+ID4+Pj4gK0VYVEVSTkRFRiAg IGdTdG1HZHRQdHI6V09SRA0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+IE1TUl9JQTMyX01JU0Nf RU5BQkxFICBFUVUgICAgIDFBMGgNCj4gPj4+PiBNU1JfRUZFUiAgICAgIEVRVSAgICAgMGMwMDAw MDgwaA0KPiA+Pj4+IEBAIC00MCwxMyArNDYsMTQgQEAgTVNSX0VGRVJfWEQgICBFUVUgICAgIDA4 MDBoDQo+ID4+Pj4gOw0KPiA+Pj4+IDsgQ29uc3RhbnRzIHJlbGF0aW5nIHRvIFRYVF9QUk9DRVNT T1JfU01NX0RFU0NSSVBUT1IgIDsNCj4gPj4+PiAtRFNDX09GRlNFVCAgICBFUVUgICAgIDBmYjAw aA0KPiA+Pj4+IC1EU0NfR0RUUFRSICAgIEVRVSAgICAgNDhoDQo+ID4+Pj4gLURTQ19HRFRTSVog ICAgRVFVICAgICA1MGgNCj4gPj4+PiAtRFNDX0NTICAgICAgICBFUVUgICAgIDE0aA0KPiA+Pj4+ IC1EU0NfRFMgICAgICAgIEVRVSAgICAgMTZoDQo+ID4+Pj4gLURTQ19TUyAgICAgICAgRVFVICAg ICAxOGgNCj4gPj4+PiAtRFNDX09USEVSU0VHICBFUVUgICAgIDFhaA0KPiA+Pj4+ICs7IERTQ19P RkZTRVQgRVFVICAgICAwZmIwMGgNCj4gPj4+PiArOyBEU0NfR0RUUFRSIEVRVSAgICAgNDhoDQo+ ID4+Pj4gKzsgRFNDX0dEVFNJWiBFUVUgICAgIDUwaA0KPiA+Pj4+ICs7DQo+ID4+Pj4gK0RTQ19D UyAgICAgICBFUVUgICAgIDE0aA0KPiA+Pj4+ICtEU0NfRFMgICAgICAgRVFVICAgICAxNmgNCj4g Pj4+PiArRFNDX1NTICAgICAgIEVRVSAgICAgMThoDQo+ID4+Pj4gK0RTQ19PVEhFUlNFRyBFUVUg ICAgIDFhaA0KPiA+Pj4+IDsNCj4gPj4+PiA7IENvbnN0YW50cyByZWxhdGluZyB0byBDUFUgU3Rh dGUgU2F2ZSBBcmVhICA7IEBAIC03NCwxMiArODEsMTIgQEANCj4gPj4+PiBfU3RtU21pRW50cnlQ b2ludDoNCj4gPj4+PiAgICAgRFcgICAgICBvZmZzZXQgX1N0bUdkdERlc2MgLSBfU3RtU21pRW50 cnlQb2ludCArIDgwMDBoICA7IGJ4ID0NCj4gR2R0RGVzYw0KPiA+Pj4+IG9mZnNldA0KPiA+Pj4+ IDsgZml4IEdEVCBkZXNjcmlwdG9yDQo+ID4+Pj4gICAgIERCICAgICAgMmVoLCAwYTFoICAgICAg ICAgICAgICAgICAgIDsgbW92IGF4LCBjczpbb2Zmc2V0MTZdDQo+ID4+Pj4gLSAgICBEVyAgICAg IERTQ19PRkZTRVQgKyBEU0NfR0RUU0laDQo+ID4+Pj4gK2dTdG1HZHRTaXplICAgRFcgICAgPyAg ICAgICAgICAgICAgICAgICA7IERTQ19PRkZTRVQgKyBEU0NfR0RUU0laDQo+ID4+Pj4gICAgIERC ICAgICAgNDhoICAgICAgICAgICAgICAgICAgICAgICAgIDsgZGVjIGF4DQo+ID4+Pj4gICAgIERC ICAgICAgMmVoDQo+ID4+Pj4gICAgIG1vdiAgICAgW3JkaV0sIGVheCAgICAgICAgICAgICAgICAg IDsgbW92IGNzOltieF0sIGF4DQo+ID4+Pj4gICAgIERCICAgICAgNjZoLCAyZWgsIDBhMWggICAg ICAgICAgICAgIDsgbW92IGVheCwgY3M6W29mZnNldDE2XQ0KPiA+Pj4+IC0gICAgRFcgICAgICBE U0NfT0ZGU0VUICsgRFNDX0dEVFBUUg0KPiA+Pj4+ICtnU3RtR2R0UHRyICAgIERXICAgID8gICAg ICAgICAgICAgICAgICAgOyBEU0NfT0ZGU0VUICsgRFNDX0dEVFBUUg0KPiA+Pj4+ICAgICBEQiAg ICAgIDJlaA0KPiA+Pj4+ICAgICBtb3YgICAgIFtyZGkgKyAyXSwgYXggICAgICAgICAgICAgICA7 IG1vdiBjczpbYnggKyAyXSwgZWF4DQo+ID4+Pj4gICAgIERCICAgICAgNjZoLCAyZWgNCj4gPj4+ PiBAQCAtMTc4LDcgKzE4NSwxMCBAQCBCYXNlOg0KPiA+Pj4+IEBMb25nTW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IGxvbmcgbW9kZSAoNjQtYml0IGNvZGUpIHN0YXJ0cyBoZXJl DQo+ID4+Pj4gICAgIG1vdiAgICAgcmF4LCBvZmZzZXQgZ1N0bVNtaUhhbmRsZXJJZHRyDQo+ID4+ Pj4gICAgIGxpZHQgICAgZndvcmQgcHRyIFtyYXhdDQo+ID4+Pj4gLSAgICBsZWEgICAgIGVieCwg W3JkaSArIERTQ19PRkZTRVRdDQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAgbW92enggICByc2ksIHdv cmQgcHRyIFtnU3RtUHNkT2Zmc2V0XSAgIDsgbGVhICAgICBlYngsIFtyZGkgKw0KPiBEU0NfT0ZG U0VUXQ0KPiA+Pj4+ICsgICAgbGVhICAgICBlYngsIFtyZGkgKyByc2ldICAgICAgICAgICAgICAg IDsNCj4gPj4+PiArDQo+ID4+Pj4gICAgIG1vdiAgICAgYXgsIFtyYnggKyBEU0NfRFNdDQo+ID4+ Pj4gICAgIG1vdiAgICAgZHMsIGVheA0KPiA+Pj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4ICsgRFND X09USEVSU0VHXQ0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21t Q3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5Lm5hc20NCj4gPj4+PiBiL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkubmFzbQ0KPiA+Pj4+IGluZGV4IGJj YWM2NDMuLmRmNGM1YTIgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1Nt bUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5uYXNtDQo+ID4+Pj4gKysrIGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5uYXNtDQo+ID4+Pj4gQEAg LTEsNSArMSw3IEBADQo+ID4+Pj4gOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4+IC0tLS0tLS0tLS0tLSA7ICA7 IENvcHlyaWdodCAoYykgMjAxNiAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwNCj4gPj4+ PiByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+Pj4+ICs7IENvcHlyaWdodCAoYykgMjAxNywgQU1E IEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+IDsNCj4gPj4+PiA7IFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIDsgYXJlIGxpY2Vuc2VkIGFu ZA0KPiA+Pj4+IG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv ZiB0aGUgQlNEIExpY2Vuc2UgIDsNCj4gPj4+PiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPj4+PiBtYXkgYmUgZm91 bmQgYXQgQEAgLTI5LDEzICszMSwxNCBAQCAgOyAgOyBDb25zdGFudHMgcmVsYXRpbmcgdG8NCj4g Pj4+PiBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICA7IC0lZGVmaW5lIERTQ19PRkZTRVQg MHhmYjAwIC0NCj4gPj4+PiAlZGVmaW5lIERTQ19HRFRQVFIgMHg0OCAtJWRlZmluZSBEU0NfR0RU U0laIDB4NTAgLSVkZWZpbmUNCj4gRFNDX0NTDQo+ID4+Pj4gMHgxNCAtJWRlZmluZSBEU0NfRFMg MHgxNiAtJWRlZmluZSBEU0NfU1MgMHgxOCAtJWRlZmluZQ0KPiA+Pj4+IERTQ19PVEhFUlNFRyAw eDFhDQo+ID4+Pj4gKzsgJWRlZmluZSBEU0NfT0ZGU0VUICAgMHhmYjAwDQo+ID4+Pj4gKzsgJWRl ZmluZSBEU0NfR0RUUFRSICAgMHg0OA0KPiA+Pj4+ICs7ICVkZWZpbmUgRFNDX0dEVFNJWiAgIDB4 NTANCj4gPj4+PiArOw0KPiA+Pj4+ICslZGVmaW5lICAgRFNDX0NTICAgICAgIDB4MTQNCj4gPj4+ PiArJWRlZmluZSAgIERTQ19EUyAgICAgICAweDE2DQo+ID4+Pj4gKyVkZWZpbmUgICBEU0NfU1Mg ICAgICAgMHgxOA0KPiA+Pj4+ICslZGVmaW5lICAgRFNDX09USEVSU0VHIDB4MWENCj4gPj4+PiA7 DQo+ID4+Pj4gOyBDb25zdGFudHMgcmVsYXRpbmcgdG8gQ1BVIFN0YXRlIFNhdmUgQXJlYSAgOyBA QCAtNDQsOSArNDcsOSBAQA0KPiA+Pj4+DQo+ID4+Pj4gJWRlZmluZSBQUk9URUNUX01PREVfQ1Mg MHg4DQo+ID4+Pj4gJWRlZmluZSBQUk9URUNUX01PREVfRFMgMHgyMA0KPiA+Pj4+IC0lZGVmaW5l IExPTkdfTU9ERV9DUyAweDM4DQo+ID4+Pj4gLSVkZWZpbmUgVFNTX1NFR01FTlQgMHg0MA0KPiA+ Pj4+IC0lZGVmaW5lIEdEVF9TSVpFIDB4NTANCj4gPj4+PiArJWRlZmluZSBMT05HX01PREVfQ1Mg ICAgMHgzOA0KPiA+Pj4+ICslZGVmaW5lIFRTU19TRUdNRU5UICAgICAweDQwDQo+ID4+Pj4gKyVk ZWZpbmUgR0RUX1NJWkUgICAgICAgIDB4NTANCj4gPj4+Pg0KPiA+Pj4+IGV4dGVybiBBU01fUEZY KFNtaVJlbmRlenZvdXMpDQo+ID4+Pj4gZXh0ZXJuIEFTTV9QRlgoZ1N0bVNtaUhhbmRsZXJJZHRy KQ0KPiA+Pj4+IEBAIC02MSw2ICs2NCwxMCBAQCBnbG9iYWwgQVNNX1BGWChnY1N0bVNtaUhhbmRs ZXJUZW1wbGF0ZSkNCj4gZ2xvYmFsDQo+ID4+Pj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJTaXpl KSAgZ2xvYmFsDQo+IEFTTV9QRlgoZ2NTdG1TbWlIYW5kbGVyT2Zmc2V0KQ0KPiA+Pj4+DQo+ID4+ Pj4gK2V4dGVybiBBU01fUEZYKGdTdG1Qc2RPZmZzZXQpDQo+ID4+Pj4gK2dsb2JhbCBBU01fUEZY KGdTdG1HZHRTaXplKQ0KPiA+Pj4+ICtnbG9iYWwgQVNNX1BGWChnU3RtR2R0UHRyKQ0KPiA+Pj4+ ICsNCj4gPj4+PiBBU01fUEZYKGdTdG1TbWJhc2UpICAgICAgRVFVIFN0bVNtYmFzZVBhdGNoIC0g NA0KPiA+Pj4+IEFTTV9QRlgoZ1N0bVNtaVN0YWNrKSAgICBFUVUgU3RtU21pU3RhY2tQYXRjaCAt IDQNCj4gPj4+PiBBU01fUEZYKGdTdG1TbWlDcjMpICAgICAgRVFVIFN0bVNtaUNyM1BhdGNoIC0g NA0KPiA+Pj4+IEBAIC03MywxMCArODAsMTggQEAgQklUUyAxNg0KPiA+Pj4+IEFTTV9QRlgoZ2NT dG1TbWlIYW5kbGVyVGVtcGxhdGUpOg0KPiA+Pj4+IF9TdG1TbWlFbnRyeVBvaW50Og0KPiA+Pj4+ ICAgICBtb3YgICAgIGJ4LCBfU3RtR2R0RGVzYyAtIF9TdG1TbWlFbnRyeVBvaW50ICsgMHg4MDAw DQo+ID4+Pj4gLSAgICBtb3YgICAgIGF4LFtjczpEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWl0NCj4g Pj4+PiArDQo+ID4+Pj4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChnU3RtR2R0U2l6ZSkgICAg IDsgbW92ICAgICBheCwgW2NzOkRTQ19PRkZTRVQgKw0KPiA+Pj4+IERTQ19HRFRTSVpdDQo+ID4+ Pj4gKyAgICBtb3YgICAgIHNpLCBbY3M6ZWF4XSAgICAgICAgICAgICAgICAgIDsNCj4gPj4+PiAr ICAgIG1vdiAgICAgYXgsIFtjczpzaV0gICAgICAgICAgICAgICAgICAgOw0KPiA+Pj4+ICsNCj4g Pj4+PiAgICAgZGVjICAgICBheA0KPiA+Pj4+ICAgICBtb3YgICAgIFtjczpieF0sIGF4DQo+ID4+ Pj4gLSAgICBtb3YgICAgIGVheCwgW2NzOkRTQ19PRkZTRVQgKyBEU0NfR0RUUFRSXQ0KPiA+Pj4+ ICsNCj4gPj4+PiArICAgIG1vdiAgICAgZWF4LCBBU01fUEZYKGdTdG1HZHRQdHIpICAgICAgOyBt b3YgICAgIGVheCwgW2NzOkRTQ19PRkZTRVQNCj4gKw0KPiA+Pj4+IERTQ19HRFRQVFJdDQo+ID4+ Pj4gKyAgICBtb3YgICAgIHNpLCBbY3M6ZWF4XSAgICAgICAgICAgICAgICAgIDsNCj4gPj4+PiAr ICAgIG1vdiAgICAgZWF4LCBbY3M6c2ldICAgICAgICAgICAgICAgICAgOw0KPiA+Pj4+ICsNCj4g Pj4+PiAgICAgbW92ICAgICBbY3M6YnggKyAyXSwgZWF4DQo+ID4+Pj4gbzMyIGxnZHQgICAgW2Nz OmJ4XSAgICAgICAgICAgICAgICAgICAgICAgOyBsZ2R0IGZ3b3JkIHB0ciBjczpbYnhdDQo+ID4+ Pj4gICAgIG1vdiAgICAgYXgsIFBST1RFQ1RfTU9ERV9DUw0KPiA+Pj4+IEBAIC0xNjYsNyArMTgx LDEwIEBAIEJhc2U6DQo+ID4+Pj4gQExvbmdNb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgbG9uZyBtb2RlICg2NC1iaXQgY29kZSkgc3RhcnRzIGhlcmUNCj4gPj4+PiAgICAgbW92 ICAgICByYXgsIEFTTV9QRlgoZ1N0bVNtaUhhbmRsZXJJZHRyKQ0KPiA+Pj4+ICAgICBsaWR0ICAg IFtyYXhdDQo+ID4+Pj4gLSAgICBsZWEgICAgIGVieCwgW3JkaSArIERTQ19PRkZTRVRdDQo+ID4+ Pj4gKw0KPiA+Pj4+ICsgICAgbW92enggICByc2ksIHdvcmQgW0FTTV9QRlgoZ1N0bVBzZE9mZnNl dCldICA7IGxlYSAgICAgZWJ4LCBbcmRpICsNCj4gPj4+PiBEU0NfT0ZGU0VUXQ0KPiA+Pj4+ICsg ICAgbGVhICAgICBlYngsIFtyZGkgKyByc2ldICAgICAgICAgICAgICAgICAgICA7DQo+ID4+Pj4g Kw0KPiA+Pj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4ICsgRFNDX0RTXQ0KPiA+Pj4+ICAgICBtb3Yg ICAgIGRzLCBlYXgNCj4gPj4+PiAgICAgbW92ICAgICBheCwgW3JieCArIERTQ19PVEhFUlNFR10N Cj4gPj4+PiBAQCAtMjYyLDUgKzI4MCw4IEBAIF9TdG1TbWlIYW5kbGVyOg0KPiA+Pj4+ICAgICA7 IFNUTSBpbml0IGZpbmlzaA0KPiA+Pj4+ICAgICBqbXAgICAgIENvbW1vbkhhbmRsZXINCj4gPj4+ Pg0KPiA+Pj4+ICtBU01fUEZYKGdTdG1HZHRTaXplKSAgICAgICAgICAgOiBSRVNXICAgIDENCj4g Pj4+PiArQVNNX1BGWChnU3RtR2R0UHRyKSAgICAgICAgICAgIDogUkVTVyAgICAxDQo+ID4+Pj4g Kw0KPiA+Pj4+IEFTTV9QRlgoZ2NTdG1TbWlIYW5kbGVyU2l6ZSkgICA6IERXICAgICAgJCAtIF9T dG1TbWlFbnRyeVBvaW50DQo+ID4+Pj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJPZmZzZXQpIDog RFcgICAgICBfU3RtU21pSGFuZGxlciAtDQo+ID4+Pj4gX1N0bVNtaUVudHJ5UG9pbnQNCj4gPj4+ PiAtLQ0KPiA+Pj4+IDIuNy40DQo+ID4+Pg0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0K PiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9y Zz4NCj4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwN Cj4gPg0KDQo=