From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 9DF2921CE740D for ; Tue, 17 Oct 2017 07:47:21 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2017 07:50:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,391,1503385200"; d="scan'208";a="163613680" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 17 Oct 2017 07:50:57 -0700 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 17 Oct 2017 07:50:57 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX125.amr.corp.intel.com (10.18.125.40) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 17 Oct 2017 07:50:56 -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; Tue, 17 Oct 2017 22:50:54 +0800 From: "Yao, Jiewen" To: "Duran, Leo" CC: "edk2-devel@lists.01.org" , Laszlo Ersek , Paolo Bonzini , "Ni, Ruiyu" , "Kinney, Michael D" , "Justen, Jordan L" , "Gao, Liming" Thread-Topic: [PATCH v5 1/2] UefiCpuPkg/SmmCpuFeaturesLib: Use global variables to replace macros Thread-Index: AQHTQsmOAxHXukorkkOhZRIU0mJsxqLnmlKAgACOxCA= Date: Tue, 17 Oct 2017 14:50:53 +0000 Message-ID: References: <1507751131-32404-1-git-send-email-leo.duran@amd.com> <1507751131-32404-2-git-send-email-leo.duran@amd.com>, In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 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: Tue, 17 Oct 2017 14:47:21 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SSB0aGluayBpdCBpcyB1bm5lY2Vzc2FyeS4gQWxsIGludGVsIENQVSBpcyB1c2luZyBzYW1lIG9m ZnNldC4gQWxsIGFtZCBDUFUgaXMgdXNpbmcgc2FtZSBvZmZzZXQuIEl0IGNhbiBiZSBpZGVudGlm aWVkIGVhc2lseSBieSBjb2RlLg0KQWRkaW5nIGEgbmV3IEFQSSBub3cgaXMgYWxzbyBhbiBpbmNv bXBhdGlibGUgY2hhbmdlIGJlY2F1c2UgdGhhdCByZXF1aXJlcyBhbGwgZXhpc3RpbmcgZmVhdHVy ZWxpYiBjaGFuZ2UgdG8gYWRkIGEgbmV3IEFQSS4gV2UgaGF2ZSBsb3RzIG9mIGNsb3NlIHNvdXJj ZSBwbGF0Zm9ybSB1c2luZyBpdHMgb3duIGZlYXR1cmVsaWIuDQoNCk1heSBJIGtub3cgd2hhdCBw cm9ibGVtIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBieSBhZGRpbmcgYSBuZXcgQVBJPw0KDQoN CnRoYW5rIHlvdSENCllhbywgSmlld2VuDQoNCg0KPiDU2iAyMDE3xOoxMNTCMTfI1aOsz8LO5zEw OjIwo6xEdXJhbiwgTGVvIDxsZW8uZHVyYW5AYW1kLmNvbT4g0LS1wKO6DQo+IA0KPiBZYW8sIExh emxvLCBldCBhbCwNCj4gDQo+IEZvciB0aGUgU1JBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQ6DQo+ IEkgcHJvcG9zZSByZXR1cm5pbmcgdGhlIHZhbHVlIGJ5IGEgZnVuY3Rpb24gaW4gU21tQ3B1RmVh dHVyZXNMaWIuLi4gSGVyZSdzIHRoZSByYXRpb25hbGU6DQo+IC0gVGhlIHZhbHVlIGlzIGZpeGVk IHBlciBDUFUgYXJjaGl0ZWN0dXJlLCBzbyB0aGlzIHF1YWxpZmllcyBhcyBhIENQVSBmZWF0dXJl Lg0KPiAtIFRoZSBsb2dpYyBmb3IgQ1BVIGFyY2hpdGVjdHVyZSBkZXRlY3Rpb24gd291bGQgYmUg aW4gb25lIHBsYWNlIChlLmcuLCBQaVNtbUNwdUR4ZVNtbSB3b3VsZCBjYWxsIHRoZSBsaWJyYXJ5 IGZ1bmN0aW9uKQ0KPiAtIFRoZSBPVk1GIGFuZCBRdWFyayBpbnN0YW5jZXMgb2YgdGhlIGxpYnJh cnkgY291bGQganVzdCByZXR1cm4gdGhlIGN1cnJlbnQgKGRlZmF1bHQpIHZhbHVlLCBzbyBubyBj b21wYXRpYmlsaXR5IGlzc3Vlcy4NCj4gDQo+IGlmIHlvdSBhZ3JlZSB3aXRoIHRoaXMgaXMgYW4g YWNjZXB0YWJsZSBzb2x1dGlvbiwgSSB3aWxsIHN1Ym1pdCBhIHJldmlzZWQgcGF0Y2gtc2V0IHRv IGFkZHJlc3MganVzdCB0aGUgU1JBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQuDQo+IChCVFcsIEkn bSByZS1ldmFsdWF0aW5nIHRoZSBjaGFuZ2VzIHN1Ym1pdHRlZCBmb3IgdGhlIFBTRCBvZmZzZXQs IHdpdGggdGhlIGdvYWwgb2YganVzdCB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBhbmQgZHJvcHBp bmcgdGhvc2UgY2hhbmdlcykNCj4gDQo+IFRoYW5rcywNCj4gTGVvLg0KPiANCj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBEdXJhbiwgTGVvDQo+PiBTZW50OiBXZWRuZXNk YXksIE9jdG9iZXIgMTEsIDIwMTcgMjo0NiBQTQ0KPj4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+PiBDYzogRHVyYW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+OyBKaWV3ZW4gWWFvDQo+ PiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBSdWl5dSBOaSA8cnVpeXUubmlAaW50ZWwuY29tPjsg TWljaGFlbCBEIEtpbm5leQ0KPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgSm9yZGFu IEp1c3RlbiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47DQo+PiBMaW1pbmcgR2FvIDxsaW1p bmcuZ2FvQGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFtQQVRDSCB2NSAxLzJdIFVlZmlDcHVQa2cv U21tQ3B1RmVhdHVyZXNMaWI6IFVzZSBnbG9iYWwNCj4+IHZhcmlhYmxlcyB0byByZXBsYWNlIG1h Y3Jvcw0KPj4gDQo+PiBTZXQgZ2xvYmFsIHZhcmlhYmxlcyBvbiBDb25zdHJ1Y3RvciBmdW5jdGlv biBiYXNlZCBvbiBDUFVJRCBjaGVja3MuDQo+PiBUaGUgdmFyaWFibGVzIHJlcGxhY2UgSW50ZWwg bWFjcm9zIHRvIGFsbG93IHN1cHBvcnQgb24gQU1EIHg4NiBzeXN0ZW1zLg0KPj4gDQo+PiBTcGVj aWZpY2FsbHksIHRoZSByZXBsYWNlZCBtYWNyb3MgYXJlOg0KPj4gMSkgU1JBTV9TQVZFX1NUQVRF X01BUF9PRkZTRVQNCj4+IDIpIFRYVF9TTU1fUFNEX09GRlNFVA0KPj4gDQo+PiBDYzogSmlld2Vu IFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+PiBDYzogUnVpeXUgTmkgPHJ1aXl1Lm5pQGlu dGVsLmNvbT4NCj4+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPg0K Pj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4gQ29udHJpYnV0ZWQt dW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPj4gU2lnbmVkLW9m Zi1ieTogTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4NCj4+IC0tLQ0KPj4gLi4uL0xpYnJh cnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TICAgICAgfCAyOCArKysrKystLS0t DQo+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5LmFzbSAgICB8 IDI5ICsrKysrKystLS0tDQo+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1Nt aUVudHJ5Lm5hc20gICB8IDQzICsrKysrKysrKysrKy0tLQ0KPj4gLQ0KPj4gVWVmaUNwdVBrZy9M aWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNvbW1vbi5oICAgfCA0OA0KPj4gKysrKysrKysr KysrKysrKysrDQo+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJl c0xpYi5jICB8IDU5DQo+PiArKysrKysrKysrKysrKysrKystLS0tDQo+PiAuLi4vU21tQ3B1RmVh dHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIuaW5mICAgICAgICB8ICAzICsrDQo+PiAuLi4vU21t Q3B1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWJTdG0uaW5mICAgICB8ICAzICsrDQo+PiBV ZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMgICAgICB8IDM5DQo+ PiArKysrKysrKysrKystLQ0KPj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvWDY0L1Nt aUVudHJ5LlMgICAgICAgfCAyOCArKysrKystLS0tDQo+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0 dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtICAgICB8IDMwICsrKysrKystLS0tDQo+PiAuLi4vTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkubmFzbSAgICB8IDQ3ICsrKysrKysr KysrKy0tLQ0KPj4gLS0NCj4+IDExIGZpbGVzIGNoYW5nZWQsIDI4MiBpbnNlcnRpb25zKCspLCA3 NSBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4gVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNvbW1vbi5oDQo+PiANCj4+IGRpZmYgLS1naXQgYS9VZWZp Q3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+PiBiL1Vl ZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5LlMNCj4+IGlu ZGV4IDRjMGY4YzguLmM3YjQ5ZDcgMTAwNjQ0DQo+PiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv U21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+PiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+PiBAQCAtMSw2ICsxLDgg QEANCj4+ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICMNCj4+ICMgQ29weXJpZ2h0IChjKSAy MDA5IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K Pj4gKyMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4gIw0KPj4gIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0 ZXJpYWxzICAjIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4gYXZhaWxhYmxlIHVuZGVyIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgICMgd2hpY2gNCj4+IGFjY29t cGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBt YXkgYmUgZm91bmQgYXQNCj4+IEBAIC0yOCw2ICszMCw5IEBAIEFTTV9HTE9CQUwgIEFTTV9QRlgo Z1N0bVNtYmFzZSkgIEFTTV9HTE9CQUwNCj4+IEFTTV9QRlgoZ1N0bVhkU3VwcG9ydGVkKSAgQVNN X0dMT0JBTCAgQVNNX1BGWChGZWF0dXJlUGNkR2V0DQo+PiAoUGNkQ3B1U21tU3RhY2tHdWFyZCkp ICBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4+ICtBU01fR0xPQkFM ICBBU01fUEZYKGdTdG1Qc2RPZmZzZXQpDQo+PiArQVNNX0dMT0JBTCAgQVNNX1BGWChnU3RtR2R0 U2l6ZSkNCj4+ICtBU01fR0xPQkFMICBBU01fUEZYKGdTdG1HZHRQdHIpDQo+PiANCj4+IC5lcXUg ICAgICAgICAgICBNU1JfSUEzMl9NSVNDX0VOQUJMRSwgMHgxQTANCj4+IC5lcXUgICAgICAgICAg ICBNU1JfRUZFUiwgMHhjMDAwMDA4MA0KPj4gQEAgLTM2LDEyICs0MSwxMyBAQCBBU01fR0xPQkFM ICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikgICMgICMNCj4+IENvbnN0YW50cyByZWxhdGlu ZyB0byBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICAjDQo+PiAtLmVxdSAgICAgICAgICAg IERTQ19PRkZTRVQsIDB4ZmIwMA0KPj4gLS5lcXUgICAgICAgICAgICBEU0NfR0RUUFRSLCAweDQ4 DQo+PiAtLmVxdSAgICAgICAgICAgIERTQ19HRFRTSVosIDB4NTANCj4+IC0uZXF1ICAgICAgICAg ICAgRFNDX0NTLCAweDE0DQo+PiAtLmVxdSAgICAgICAgICAgIERTQ19EUywgMHgxNg0KPj4gLS5l cXUgICAgICAgICAgICBEU0NfU1MsIDB4MTgNCj4+ICsjIC5lcXUgICAgICAgICAgRFNDX09GRlNF VCwgICAweGZiMDANCj4+ICsjIC5lcXUgICAgICAgICAgRFNDX0dEVFBUUiwgICAweDQ4DQo+PiAr IyAuZXF1ICAgICAgICAgIERTQ19HRFRTSVosICAgMHg1MA0KPj4gKyMNCj4+ICsuZXF1ICAgICAg ICAgICAgRFNDX0NTLCAgICAgICAweDE0DQo+PiArLmVxdSAgICAgICAgICAgIERTQ19EUywgICAg ICAgMHgxNg0KPj4gKy5lcXUgICAgICAgICAgICBEU0NfU1MsICAgICAgIDB4MTgNCj4+IC5lcXUg ICAgICAgICAgICBEU0NfT1RIRVJTRUcsIDB4MUENCj4+IA0KPj4gLmVxdSAgICAgICAgICAgIFBS T1RFQ1RfTU9ERV9DUywgMHgwOA0KPj4gQEAgLTU1LDExICs2MSwxMSBAQCBfU3RtU21pRW50cnlQ b2ludDoNCj4+ICAgICAuYnl0ZSAweGJiICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1vdiBi eCwgaW1tMTYNCj4+ICAgICAud29yZCBfU3RtR2R0RGVzYyAtIF9TdG1TbWlFbnRyeVBvaW50ICsg MHg4MDAwDQo+PiAgICAgLmJ5dGUgMHgyZSwweGExICAgICAgICAgICAgICAgICAgICAgIyBtb3Yg YXgsIGNzOltvZmZzZXQxNl0NCj4+IC0gICAgLndvcmQgRFNDX09GRlNFVCArIERTQ19HRFRTSVoN Cj4+ICtBU01fUEZYKGdTdG1HZHRTaXplKTogLnNwYWNlIDIgICAgICAgICAgIyAud29yZCBEU0Nf T0ZGU0VUICsgRFNDX0dEVFNJWg0KPj4gICAgIGRlY2wgICAgJWVheA0KPj4gICAgIG1vdmwgICAg JWVheCwgJWNzOiglZWRpKSAgICAgICAgICAgICMgbW92IGNzOltieF0sIGF4DQo+PiAgICAgLmJ5 dGUgMHg2NiwweDJlLDB4YTEgICAgICAgICAgICAgICAgIyBtb3YgZWF4LCBjczpbb2Zmc2V0MTZd DQo+PiAtICAgIC53b3JkICAgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4+ICtBU01fUEZYKGdT dG1HZHRQdHIpOiAuc3BhY2UgMiAgICAgICAgICAgIyAud29yZCBEU0NfT0ZGU0VUICsgRFNDX0dE VFBUUg0KPj4gICAgIG1vdncgICAgJWF4LCAlY3M6MiglZWRpKQ0KPj4gICAgIG1vdncgICAgJWF4 LCAlYnAgICAgICAgICAgICAgICAgICAgICMgZWJwID0gR0RUIGJhc2UNCj4+ICAgICAuYnl0ZSAw eDY2DQo+PiBAQCAtMTY3LDcgKzE3MywxMSBAQCBYZERvbmU6DQo+PiAgICAgbW92bCAgICAlY3Iw LCAlZWJ4DQo+PiAgICAgb3JsICAgICAkMHgwODAwMTAwMjMsICVlYnggICAgICAgICAgICAgIyBl bmFibGUgcGFnaW5nICsgV1AgKyBORSArIE1QICsgUEUNCj4+ICAgICBtb3ZsICAgICVlYngsICVj cjANCj4+IC0gICAgbGVhbCAgICBEU0NfT0ZGU0VUKCVlZGkpLCVlYngNCj4+ICsNCj4+ICsgICAg bW92bCAgICAkQVNNX1BGWChnU3RtUHNkT2Zmc2V0KSwgJWVieCAgIyBsZWFsICAgIERTQ19PRkZT RVQoJWVkaSksDQo+PiAlZWJ4DQo+PiArICAgIG1vdnp4dyAgKCVlYngpLCAlZXNpDQo+PiArICAg IGxlYWwgICAgKCVlZGksICVlc2kpLCAlZWJ4DQo+PiArDQo+PiAgICAgbW92dyAgICBEU0NfRFMo JWVieCksJWF4DQo+PiAgICAgbW92bCAgICAlZWF4LCAlZHMNCj4+ICAgICBtb3Z3ICAgIERTQ19P VEhFUlNFRyglZWJ4KSwlYXgNCj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21t Q3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5hc20NCj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuYXNtDQo+PiBpbmRleCA5MWRjMWViLi40 ZGJlMjc2IDEwMDY0NA0KPj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVz TGliL0lhMzIvU21pRW50cnkuYXNtDQo+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1 RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5hc20NCj4+IEBAIC0xLDUgKzEsNyBAQA0KPj4gOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSA7ICA7DQo+PiBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE3LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiArOyBDb3B5cmln aHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiA7 DQo+PiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIDsgYXJl IGxpY2Vuc2VkIGFuZCBtYWRlDQo+PiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgOyB3aGljaA0KPj4gYWNjb21wYW5pZXMgdGhpcyBk aXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBh dA0KPj4gQEAgLTI5LDEzICszMSwxNCBAQCBNU1JfRUZFUl9YRCAgIEVRVSAgICAgMDgwMGgNCj4+ IDsNCj4+IDsgQ29uc3RhbnRzIHJlbGF0aW5nIHRvIFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBU T1IgIDsNCj4+IC1EU0NfT0ZGU0VUICAgIEVRVSAgICAgMGZiMDBoDQo+PiAtRFNDX0dEVFBUUiAg ICBFUVUgICAgIDQ4aA0KPj4gLURTQ19HRFRTSVogICAgRVFVICAgICA1MGgNCj4+IC1EU0NfQ1Mg ICAgICAgIEVRVSAgICAgMTRoDQo+PiAtRFNDX0RTICAgICAgICBFUVUgICAgIDE2aA0KPj4gLURT Q19TUyAgICAgICAgRVFVICAgICAxOGgNCj4+IC1EU0NfT1RIRVJTRUcgIEVRVSAgICAgMUFoDQo+ PiArOyBEU0NfT0ZGU0VUIEVRVSAgICAgMGZiMDBoDQo+PiArOyBEU0NfR0RUUFRSIEVRVSAgICAg NDhoDQo+PiArOyBEU0NfR0RUU0laIEVRVSAgICAgNTBoDQo+PiArOw0KPj4gK0RTQ19DUyAgICAg ICBFUVUgICAgIDE0aA0KPj4gK0RTQ19EUyAgICAgICBFUVUgICAgIDE2aA0KPj4gK0RTQ19TUyAg ICAgICBFUVUgICAgIDE4aA0KPj4gK0RTQ19PVEhFUlNFRyBFUVUgICAgIDFBaA0KPj4gDQo+PiBQ Uk9URUNUX01PREVfQ1MgRVFVICAgMDhoDQo+PiBQUk9URUNUX01PREVfRFMgRVFVICAgMjBoDQo+ PiBAQCAtNTQsNiArNTcsOSBAQCBFWFRFUk5ERUYgICBnU3RtU21iYXNlOkRXT1JEDQo+PiBFWFRF Uk5ERUYgICBnU3RtWGRTdXBwb3J0ZWQ6QllURQ0KPj4gRVhURVJOREVGICAgRmVhdHVyZVBjZEdl dCAoUGNkQ3B1U21tU3RhY2tHdWFyZCk6QllURQ0KPj4gRVhURVJOREVGICAgZ1N0bVNtaUhhbmRs ZXJJZHRyOkZXT1JEDQo+PiArRVhURVJOREVGICAgZ1N0bVBzZE9mZnNldDpXT1JEDQo+PiArRVhU RVJOREVGICAgZ1N0bUdkdFNpemU6V09SRA0KPj4gK0VYVEVSTkRFRiAgIGdTdG1HZHRQdHI6V09S RA0KPj4gDQo+PiAgICAgLmNvZGUNCj4+IA0KPj4gQEAgLTYzLDExICs2OSwxMSBAQCBfU3RtU21p RW50cnlQb2ludDoNCj4+ICAgICBEQiAgICAgIDBiYmggICAgICAgICAgICAgICAgICAgICAgICA7 IG1vdiBieCwgaW1tMTYNCj4+ICAgICBEVyAgICAgIG9mZnNldCBfU3RtR2R0RGVzYyAtIF9TdG1T bWlFbnRyeVBvaW50ICsgODAwMGgNCj4+ICAgICBEQiAgICAgIDJlaCwgMGExaCAgICAgICAgICAg ICAgICAgICA7IG1vdiBheCwgY3M6W29mZnNldDE2XQ0KPj4gLSAgICBEVyAgICAgIERTQ19PRkZT RVQgKyBEU0NfR0RUU0laDQo+PiArZ1N0bUdkdFNpemUgICBEVyAgICA/ICAgICAgICAgICAgICAg ICAgIDsgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4+ICAgICBkZWMgICAgIGVheA0KPj4gICAg IG1vdiAgICAgY3M6W2VkaV0sIGVheCAgICAgICAgICAgICAgIDsgbW92IGNzOltieF0sIGF4DQo+ PiAgICAgREIgICAgICA2NmgsIDJlaCwgMGExaCAgICAgICAgICAgICAgOyBtb3YgZWF4LCBjczpb b2Zmc2V0MTZdDQo+PiAtICAgIERXICAgICAgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4+ICtn U3RtR2R0UHRyICAgIERXICAgID8gICAgICAgICAgICAgICAgICAgOyBEU0NfT0ZGU0VUICsgRFND X0dEVFBUUg0KPj4gICAgIG1vdiAgICAgY3M6W2VkaSArIDJdLCBheCAgICAgICAgICAgIDsgbW92 IGNzOltieCArIDJdLCBlYXgNCj4+ICAgICBtb3YgICAgIGJwLCBheCAgICAgICAgICAgICAgICAg ICAgICA7IGVicCA9IEdEVCBiYXNlDQo+PiAgICAgREIgICAgICA2NmgNCj4+IEBAIC0xNzQsNyAr MTgwLDEwIEBAIGdTdG1YZFN1cHBvcnRlZCAgICAgREIgICAgICAxDQo+PiAgICAgbW92ICAgICBl YngsIGNyMA0KPj4gICAgIG9yICAgICAgZWJ4LCAwODAwMTAwMjNoICAgICAgICAgICAgIDsgZW5h YmxlIHBhZ2luZyArIFdQICsgTkUgKyBNUCArIFBFDQo+PiAgICAgbW92ICAgICBjcjAsIGVieA0K Pj4gLSAgICBsZWEgICAgIGVieCwgW2VkaSArIERTQ19PRkZTRVRdDQo+PiArDQo+PiArICAgIG1v dnp4ICAgZXNpLCB3b3JkIHB0ciBbZ1N0bVBzZE9mZnNldF0gICA7IGxlYSAgICAgZWJ4LCBbZWRp ICsgRFNDX09GRlNFVF0NCj4+ICsgICAgbGVhICAgICBlYngsIFtlZGkgKyBlc2ldICAgICAgICAg ICAgICAgIDsNCj4+ICsNCj4+ICAgICBtb3YgICAgIGF4LCBbZWJ4ICsgRFNDX0RTXQ0KPj4gICAg IG1vdiAgICAgZHMsIGVheA0KPj4gICAgIG1vdiAgICAgYXgsIFtlYnggKyBEU0NfT1RIRVJTRUdd DQo+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lh MzIvU21pRW50cnkubmFzbQ0KPj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNM aWIvSWEzMi9TbWlFbnRyeS5uYXNtDQo+PiBpbmRleCAwMGMwZjA2Ny4uMDIzOTIzYSAxMDA2NDQN Cj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVu dHJ5Lm5hc20NCj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9J YTMyL1NtaUVudHJ5Lm5hc20NCj4+IEBAIC0xLDUgKzEsNyBAQA0KPj4gOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSA7ICA7DQo+PiBDb3B5cmlnaHQgKGMpIDIwMTYgLSAyMDE3LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiArOyBDb3B5cmlnaHQgKGMpIDIwMTcs IEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiA7DQo+PiA7IFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIDsgYXJlIGxpY2Vuc2VkIGFu ZCBtYWRlDQo+PiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRo ZSBCU0QgTGljZW5zZSAgOyB3aGljaA0KPj4gYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24u ICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPj4gQEAgLTI1 LDE3ICsyNywxOCBAQCAgOyAgOyBDb25zdGFudHMgcmVsYXRpbmcgdG8NCj4+IFRYVF9QUk9DRVNT T1JfU01NX0RFU0NSSVBUT1IgIDsgLSVkZWZpbmUgRFNDX09GRlNFVCAweGZiMDAgLQ0KPj4gJWRl ZmluZSBEU0NfR0RUUFRSIDB4NDggLSVkZWZpbmUgRFNDX0dEVFNJWiAweDUwIC0lZGVmaW5lIERT Q19DUw0KPj4gMHgxNCAtJWRlZmluZSBEU0NfRFMgMHgxNiAtJWRlZmluZSBEU0NfU1MgMHgxOCAt JWRlZmluZSBEU0NfT1RIRVJTRUcNCj4+IDB4MWENCj4+ICs7ICVkZWZpbmUgRFNDX09GRlNFVCAg IDB4ZmIwMA0KPj4gKzsgJWRlZmluZSBEU0NfR0RUUFRSICAgMHg0OA0KPj4gKzsgJWRlZmluZSBE U0NfR0RUU0laICAgMHg1MA0KPj4gKzsNCj4+ICslZGVmaW5lICAgRFNDX0NTICAgICAgIDB4MTQN Cj4+ICslZGVmaW5lICAgRFNDX0RTICAgICAgIDB4MTYNCj4+ICslZGVmaW5lICAgRFNDX1NTICAg ICAgIDB4MTgNCj4+ICslZGVmaW5lICAgRFNDX09USEVSU0VHIDB4MWENCj4+IA0KPj4gJWRlZmlu ZSBQUk9URUNUX01PREVfQ1MgMHg4DQo+PiAlZGVmaW5lIFBST1RFQ1RfTU9ERV9EUyAweDIwDQo+ PiAtJWRlZmluZSBUU1NfU0VHTUVOVCAweDQwDQo+PiArJWRlZmluZSBUU1NfU0VHTUVOVCAgICAg MHg0MA0KPj4gDQo+PiBleHRlcm4gQVNNX1BGWChTbWlSZW5kZXp2b3VzKQ0KPj4gZXh0ZXJuIEFT TV9QRlgoRmVhdHVyZVBjZEdldCAoUGNkQ3B1U21tU3RhY2tHdWFyZCkpIEBAIC01MSw2DQo+PiAr NTQsMTAgQEAgZ2xvYmFsIEFTTV9QRlgoZ1N0bVNtYmFzZSkgIGdsb2JhbA0KPj4gQVNNX1BGWChn U3RtWGRTdXBwb3J0ZWQpICBleHRlcm4gQVNNX1BGWChnU3RtU21pSGFuZGxlcklkdHIpDQo+PiAN Cj4+ICtleHRlcm4gQVNNX1BGWChnU3RtUHNkT2Zmc2V0KQ0KPj4gK2dsb2JhbCBBU01fUEZYKGdT dG1HZHRTaXplKQ0KPj4gK2dsb2JhbCBBU01fUEZYKGdTdG1HZHRQdHIpDQo+PiArDQo+PiBBU01f UEZYKGdTdG1TbWlDcjMpICAgICAgRVFVIFN0bVNtaUNyM1BhdGNoIC0gNA0KPj4gQVNNX1BGWChn U3RtU21pU3RhY2spICAgIEVRVSBTdG1TbWlTdGFja1BhdGNoIC0gNA0KPj4gQVNNX1BGWChnU3Rt U21iYXNlKSAgICAgIEVRVSBTdG1TbWJhc2VQYXRjaCAtIDQNCj4+IEBAIC02MiwxMCArNjksMTgg QEAgQklUUyAxNg0KPj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJUZW1wbGF0ZSk6DQo+PiBfU3Rt U21pRW50cnlQb2ludDoNCj4+ICAgICBtb3YgICAgIGJ4LCBfU3RtR2R0RGVzYyAtIF9TdG1TbWlF bnRyeVBvaW50ICsgMHg4MDAwDQo+PiAtICAgIG1vdiAgICAgYXgsW2NzOkRTQ19PRkZTRVQgKyBE U0NfR0RUU0laXQ0KPj4gKw0KPj4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChnU3RtR2R0U2l6 ZSkgICAgIDsgbW92ICAgICBheCwgW2NzOkRTQ19PRkZTRVQgKw0KPj4gRFNDX0dEVFNJWl0NCj4+ ICsgICAgbW92ICAgICBzaSwgW2NzOmVheF0gICAgICAgICAgICAgICAgICA7DQo+PiArICAgIG1v diAgICAgYXgsIFtjczpzaV0gICAgICAgICAgICAgICAgICAgOw0KPj4gKw0KPj4gICAgIGRlYyAg ICAgYXgNCj4+ICAgICBtb3YgICAgIFtjczpieF0sIGF4DQo+PiAtICAgIG1vdiAgICAgZWF4LCBb Y3M6RFNDX09GRlNFVCArIERTQ19HRFRQVFJdDQo+PiArDQo+PiArICAgIG1vdiAgICAgZWF4LCBB U01fUEZYKGdTdG1HZHRQdHIpICAgICAgOyBtb3YgICAgIGVheCwgW2NzOkRTQ19PRkZTRVQgKw0K Pj4gRFNDX0dEVFBUUl0NCj4+ICsgICAgbW92ICAgICBzaSwgW2NzOmVheF0gICAgICAgICAgICAg ICAgICA7DQo+PiArICAgIG1vdiAgICAgZWF4LCBbY3M6c2ldICAgICAgICAgICAgICAgICAgOw0K Pj4gKw0KPj4gICAgIG1vdiAgICAgW2NzOmJ4ICsgMl0sIGVheA0KPj4gICAgIG1vdiAgICAgZWJw LCBlYXggICAgICAgICAgICAgICAgICAgICAgOyBlYnAgPSBHRFQgYmFzZQ0KPj4gbzMyIGxnZHQg ICAgW2NzOmJ4XSAgICAgICAgICAgICAgICAgICAgICAgOyBsZ2R0IGZ3b3JkIHB0ciBjczpbYnhd DQo+PiBAQCAtMTY2LDcgKzE4MSwxMCBAQCBTdG1YZFN1cHBvcnRlZFBhdGNoOg0KPj4gICAgIG1v diAgICAgZWJ4LCBjcjANCj4+ICAgICBvciAgICAgIGVieCwgMHg4MDAxMDAyMyAgICAgICAgICAg ICA7IGVuYWJsZSBwYWdpbmcgKyBXUCArIE5FICsgTVAgKyBQRQ0KPj4gICAgIG1vdiAgICAgY3Iw LCBlYngNCj4+IC0gICAgbGVhICAgICBlYngsIFtlZGkgKyBEU0NfT0ZGU0VUXQ0KPj4gKw0KPj4g KyAgICBtb3Z6eCAgIGVzaSwgd29yZCBbQVNNX1BGWChnU3RtUHNkT2Zmc2V0KV0gIDsgbGVhICAg ICBlYngsIFtlZGkgKw0KPj4gRFNDX09GRlNFVF0NCj4+ICsgICAgbGVhICAgICBlYngsIFtlZGkg KyBlc2ldICAgICAgICAgICAgICAgICAgICA7DQo+PiArDQo+PiAgICAgbW92ICAgICBheCwgW2Vi eCArIERTQ19EU10NCj4+ICAgICBtb3YgICAgIGRzLCBlYXgNCj4+ICAgICBtb3YgICAgIGF4LCBb ZWJ4ICsgRFNDX09USEVSU0VHXQ0KPj4gQEAgLTI3MSw1ICsyODksOCBAQCBfU3RtU21pSGFuZGxl cjoNCj4+ICAgICA7IFNUTSBpbml0IGZpbmlzaA0KPj4gICAgIGptcCAgICAgQ29tbW9uSGFuZGxl cg0KPj4gDQo+PiArQVNNX1BGWChnU3RtR2R0U2l6ZSkgICAgICAgICAgIDogUkVTVyAgICAgIDEN Cj4+ICtBU01fUEZYKGdTdG1HZHRQdHIpICAgICAgICAgICAgOiBSRVNXICAgICAgMQ0KPj4gKw0K Pj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJTaXplKSAgIDogRFcgICAgICAgICQgLSBfU3RtU21p RW50cnlQb2ludA0KPj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJPZmZzZXQpIDogRFcgICAgICAg IF9TdG1TbWlIYW5kbGVyIC0NCj4+IF9TdG1TbWlFbnRyeVBvaW50DQo+PiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNvbW1vbi5oDQo+PiBiL1Vl ZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1Db21tb24uaA0KPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAuLjc4YjNhNWINCj4+IC0tLSAvZGV2L251 bGwNCj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1Db21t b24uaA0KPj4gQEAgLTAsMCArMSw0OCBAQA0KPj4gKy8qKiBAZmlsZQ0KPj4gKyAgQ29tbW9uIGRl Y2xhcmF0aW9ucw0KPj4gKw0KPj4gKyAgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3Jh dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsNCj4+ICsgIFRoaXMgcHJvZ3JhbSBh bmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4g KyBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGlj ZW5zZSAgd2hpY2gNCj4+ICsgYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPj4gKyBmb3VuZCBhdCAgaHR0cDovL29wZW5z b3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4+ICsNCj4+ICsgIFRIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ PiBCQVNJUywNCj4+ICsgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBB TlkgS0lORCwgRUlUSEVSDQo+PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+PiArDQo+PiArKiovDQo+ PiArDQo+PiArI2lmbmRlZiBfU01NX0NPTU1PTl9IXw0KPj4gKyNkZWZpbmUgX1NNTV9DT01NT05f SF8NCj4+ICsNCj4+ICsjaW5jbHVkZSA8UmVnaXN0ZXIvQW1kL0NwdWlkLmg+DQo+PiArDQo+PiAr Ly8NCj4+ICsvLyBEZWZpbml0aW9ucyBmb3IgQU1EIHN5c3RlbXMgYXJlIGJhc2VkIG9uIGNvbnRl bnRzIG9mIHRoZSAvLyBBTUQ2NA0KPj4gK0FyY2hpdGVjdHVyZSBQcm9ncmFtbWVyJ3MgTWFudWFs IC8vIFZvbHVtZSAyOiBTeXN0ZW0gUHJvZ3JhbW1pbmcsDQo+PiArU2VjdGlvbiAxMCBTeXN0ZW0t TWFuYWdlbWVudCBNb2RlIC8vICNkZWZpbmUNCj4+ICtBTURfU01SQU1fU0FWRV9TVEFURV9NQVBf T0ZGU0VUIDB4ZmUwMA0KPj4gKyNkZWZpbmUgICAgICAgQU1EX1NNTV9QU0RfT0ZGU0VUICAgICAg ICAgMHhmYzAwDQo+PiArDQo+PiArLy8NCj4+ICsvLyBFeHRlcm5hbCBnbG9iYWwgdmFyaWFibGVz IGZvciBTTVJBTSBvZmZzZXRzIC8vIGV4dGVybiBVSU5UMTYNCj4+ICtnU21yYW1TdGF0ZU1hcE9m ZnNldDsgZXh0ZXJuIFVJTlQxNiAgZ1NtbVBzZE9mZnNldDsNCj4+ICsNCj4+ICsNCj4+ICsvKioN Cj4+ICsgIERldGVybWluZSBpZiB0aGUgc3RhbmRhcmQgQ1BVIHNpZ25hdHVyZSBpcyAiQXV0aGVu dGljQU1EIi4NCj4+ICsNCj4+ICsgIEByZXR2YWwgVFJVRSAgVGhlIENQVSBzaWduYXR1cmUgbWF0 Y2hlcy4NCj4+ICsgIEByZXR2YWwgRkFMU0UgVGhlIENQVSBzaWduYXR1cmUgZG9lcyBub3QgbWF0 Y2guDQo+PiArDQo+PiArKiovDQo+PiArQk9PTEVBTg0KPj4gK1NtbVN0YW5kYXJkU2lnbmF0dXJl SXNBdXRoZW50aWNBTUQgKA0KPj4gKyAgVk9JRA0KPj4gKyAgKTsNCj4+ICsNCj4+ICsjZW5kaWYN Cj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21t Q3B1RmVhdHVyZXNMaWIuYw0KPj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNM aWIvU21tQ3B1RmVhdHVyZXNMaWIuYw0KPj4gaW5kZXggMmQyYmM2ZC4uMWMxMjA5NSAxMDA2NDQN Cj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0 dXJlc0xpYi5jDQo+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIv U21tQ3B1RmVhdHVyZXNMaWIuYw0KPj4gQEAgLTEsMTQgKzEsMTYgQEANCj4+IC8qKiBAZmlsZQ0K Pj4gLVRoZSBDUFUgc3BlY2lmaWMgcHJvZ3JhbW1pbmcgZm9yIFBpU21tQ3B1RHhlU21tIG1vZHVs ZS4NCj4+ICsgIFRoZSBDUFUgc3BlY2lmaWMgcHJvZ3JhbW1pbmcgZm9yIFBpU21tQ3B1RHhlU21t IG1vZHVsZS4NCj4+IA0KPj4gLUNvcHlyaWdodCAoYykgMjAxMCAtIDIwMTYsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gLVRoaXMNCj4+IHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxl DQo+PiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIC13 aGljaCBhY2NvbXBhbmllcyB0aGlzDQo+PiBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdCAtDQo+PiBodHRwOi8vb3BlbnNvdXJjZS5vcmcv bGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE2 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPj4gKyByZXNlcnZlZC48QlI+ICBDb3B5 cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMNCj4+ICsgcmVzZXJ2 ZWQuPEJSPg0KPj4gDQo+PiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJT RCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+IEJBU0lTLCAtV0lUSE9VVCBXQVJSQU5USUVTIE9S IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBFWFBSRVNTIE9SIElNUExJ RUQuDQo+PiArICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBh cmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+ICsgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIHdoaWNoDQo+PiArIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4+ ICsgZm91bmQgYXQgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5w aHANCj4+ICsNCj4+ICsgIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+PiBCQVNJUywNCj4+ICsgV0lUSE9VVCBXQVJSQU5USUVT IE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBFWFBSRVNTIE9SIElN UExJRUQuDQo+PiANCj4+ICoqLw0KPj4gDQo+PiBAQCAtMjIsNiArMjQsOCBAQCBXSVRIT1VUIFdB UlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWQ0KPj4gS0lORCwgRUlUSEVSIEVYUFJF U1MgT1IgSU1QTElFRC4NCj4+ICNpbmNsdWRlIDxSZWdpc3Rlci9DcHVpZC5oPg0KPj4gI2luY2x1 ZGUgPFJlZ2lzdGVyL1NtcmFtU2F2ZVN0YXRlTWFwLmg+DQo+PiANCj4+ICsjaW5jbHVkZSAiU21t Q29tbW9uLmgiDQo+PiArDQo+PiAvLw0KPj4gLy8gTWFjaGluZSBTcGVjaWZpYyBSZWdpc3RlcnMg KE1TUnMpDQo+PiAvLw0KPj4gQEAgLTQxLDYgKzQ1LDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9S IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkNCj4+IEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJ RUQuDQo+PiAjZGVmaW5lIFNNTV9GRUFUVVJFU19MSUJfSUEzMl9NQ0FfQ0FQICAgICAgICAgICAg ICAweDE3RA0KPj4gI2RlZmluZSAgIFNNTV9DT0RFX0FDQ0VTU19DSEtfQklUICAgICAgICAgICAg ICAgICAgQklUNTgNCj4+IA0KPj4gKw0KPj4gLyoqDQo+PiAgIEludGVybmFsIHdvcmtlciBmdW5j dGlvbiB0aGF0IGlzIGNhbGxlZCB0byBjb21wbGV0ZSBDUFUgaW5pdGlhbGl6YXRpb24gYXQgdGhl DQo+PiAgIGVuZCBvZiBTbW1DcHVGZWF0dXJlc0luaXRpYWxpemVQcm9jZXNzb3IoKS4NCj4+IEBA IC03Nyw2ICs4MiwxMyBAQCBCT09MRUFOICBtTmVlZENvbmZpZ3VyZU10cnJzID0gVFJVRTsgIC8v DQo+PiBCT09MRUFOICAqbVNtcnJFbmFibGVkOw0KPj4gDQo+PiArLy8NCj4+ICsvLyBTZXQgZGVm YXVsdCB2YWx1ZSBmb3IgU01SQU0gb2Zmc2V0DQo+PiArLy8gIGZyb20gPFJlZ2lzdGVyL1NtcmFt U2F2ZVN0YXRlTWFwLmg+IC8vDQo+PiArVUlOVDE2ICBnU21yYW1TdGF0ZU1hcE9mZnNldCA9IFNN UkFNX1NBVkVfU1RBVEVfTUFQX09GRlNFVDsNCj4+ICsNCj4+ICsNCj4+IC8qKg0KPj4gICBUaGUg Y29uc3RydWN0b3IgZnVuY3Rpb24NCj4+IA0KPj4gQEAgLTk5LDYgKzExMSwxMyBAQCBTbW1DcHVG ZWF0dXJlc0xpYkNvbnN0cnVjdG9yICgNCj4+ICAgVUlOVE4gICBNb2RlbElkOw0KPj4gDQo+PiAg IC8vDQo+PiArICAvLyBPdmVycmlkZSBTTVJBTSBvZmZzZXQgZm9yIEFNRA0KPj4gKyAgLy8NCj4+ ICsgIGlmIChTbW1TdGFuZGFyZFNpZ25hdHVyZUlzQXV0aGVudGljQU1EICgpKSB7DQo+PiArICAg IGdTbXJhbVN0YXRlTWFwT2Zmc2V0ID0gQU1EX1NNUkFNX1NBVkVfU1RBVEVfTUFQX09GRlNFVDsg IH0NCj4+ICsNCj4+ICsgIC8vDQo+PiAgIC8vIFJldHJpZXZlIENQVSBGYW1pbHkgYW5kIE1vZGVs DQo+PiAgIC8vDQo+PiAgIEFzbUNwdWlkIChDUFVJRF9WRVJTSU9OX0lORk8sICZSZWdFYXgsIE5V TEwsIE5VTEwsICZSZWdFZHgpOyBAQCAtDQo+PiAyMjQsNyArMjQzLDcgQEAgU21tQ3B1RmVhdHVy ZXNJbml0aWFsaXplUHJvY2Vzc29yICgNCj4+ICAgLy8NCj4+ICAgLy8gQ29uZmlndXJlIFNNQkFT RS4NCj4+ICAgLy8NCj4+IC0gIENwdVN0YXRlID0gKFNNUkFNX1NBVkVfU1RBVEVfTUFQDQo+PiAq KShVSU5UTikoU01NX0RFRkFVTFRfU01CQVNFICsNCj4+IFNNUkFNX1NBVkVfU1RBVEVfTUFQX09G RlNFVCk7DQo+PiArICBDcHVTdGF0ZSA9IChTTVJBTV9TQVZFX1NUQVRFX01BUA0KPj4gKikoVUlO VE4pKFNNTV9ERUZBVUxUX1NNQkFTRSArDQo+PiArIGdTbXJhbVN0YXRlTWFwT2Zmc2V0KTsNCj4+ ICAgQ3B1U3RhdGUtPng4Ni5TTUJBU0UgPSAoVUlOVDMyKUNwdUhvdFBsdWdEYXRhLT5TbUJhc2Vb Q3B1SW5kZXhdOw0KPj4gDQo+PiAgIC8vDQo+PiBAQCAtNjMwLDMgKzY0OSwyNSBAQCBTbW1DcHVG ZWF0dXJlc0FsbG9jYXRlUGFnZVRhYmxlTWVtb3J5ICgNCj4+ICAgcmV0dXJuIE5VTEw7DQo+PiB9 DQo+PiANCj4+ICsNCj4+ICsvKioNCj4+ICsgIERldGVybWluZSBpZiB0aGUgc3RhbmRhcmQgQ1BV IHNpZ25hdHVyZSBpcyAiQXV0aGVudGljQU1EIi4NCj4+ICsNCj4+ICsgIEByZXR2YWwgVFJVRSAg VGhlIENQVSBzaWduYXR1cmUgbWF0Y2hlcy4NCj4+ICsgIEByZXR2YWwgRkFMU0UgVGhlIENQVSBz aWduYXR1cmUgZG9lcyBub3QgbWF0Y2guDQo+PiArDQo+PiArKiovDQo+PiArQk9PTEVBTg0KPj4g K1NtbVN0YW5kYXJkU2lnbmF0dXJlSXNBdXRoZW50aWNBTUQgKA0KPj4gKyAgVk9JRA0KPj4gKyAg KQ0KPj4gK3sNCj4+ICsgIFVJTlQzMiAgUmVnRWJ4Ow0KPj4gKyAgVUlOVDMyICBSZWdFY3g7DQo+ PiArICBVSU5UMzIgIFJlZ0VkeDsNCj4+ICsNCj4+ICsgIEFzbUNwdWlkIChDUFVJRF9TSUdOQVRV UkUsIE5VTEwsICZSZWdFYngsICZSZWdFY3gsICZSZWdFZHgpOw0KPj4gKyAgcmV0dXJuIChSZWdF YnggPT0gQ1BVSURfU0lHTkFUVVJFX0FVVEhFTlRJQ19BTURfRUJYICYmDQo+PiArICAgICAgICAg IFJlZ0VjeCA9PSBDUFVJRF9TSUdOQVRVUkVfQVVUSEVOVElDX0FNRF9FQ1ggJiYNCj4+ICsgICAg ICAgICAgUmVnRWR4ID09IENQVUlEX1NJR05BVFVSRV9BVVRIRU5USUNfQU1EX0VEWCk7DQo+PiAr fQ0KPj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9T bW1DcHVGZWF0dXJlc0xpYi5pbmYNCj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1 cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliLmluZg0KPj4gaW5kZXggNzc5MDhiMC4uNmEzOWQ0YiAx MDA2NDQNCj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1D cHVGZWF0dXJlc0xpYi5pbmYNCj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0 dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5pbmYNCj4+IEBAIC0yLDYgKzIsOCBAQA0KPj4gIyAg VGhlIENQVSBzcGVjaWZpYyBwcm9ncmFtbWluZyBmb3IgUGlTbW1DcHVEeGVTbW0gbW9kdWxlLg0K Pj4gIw0KPj4gIyAgQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKyMgIENvcHlyaWdodCAoYykgMjAxNywgQU1E IEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ICMNCj4+ICMgIFRoaXMgcHJv Z3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgICMgIGFyZSBsaWNlbnNlZCBhbmQg bWFkZQ0KPj4gYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg QlNEIExpY2Vuc2UgICMgIHdoaWNoDQo+PiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4g IFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0DQo+PiBAQCAtMjQs NiArMjYsNyBAQA0KPj4gDQo+PiBbU291cmNlc10NCj4+ICAgU21tQ3B1RmVhdHVyZXNMaWIuYw0K Pj4gKyAgU21tQ29tbW9uLmgNCj4+ICAgU21tQ3B1RmVhdHVyZXNMaWJOb1N0bS5jDQo+PiANCj4+ IFtQYWNrYWdlc10NCj4+IGRpZmYgLS1naXQNCj4+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNw dUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliU3RtLmluZg0KPj4gYi9VZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWJTdG0uaW5mDQo+PiBpbmRl eCBkYjhkY2RjLi5hNzZiZWQ2IDEwMDY0NA0KPj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1Nt bUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliU3RtLmluZg0KPj4gKysrIGIvVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliU3RtLmluZg0K Pj4gQEAgLTMsNiArMyw4IEBADQo+PiAjICBpcyBpbmNsdWRlZC4NCj4+ICMNCj4+ICMgIENvcHly aWdodCAoYykgMjAwOSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4+ICsjICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAjDQo+PiAjICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2Nv bXBhbnlpbmcgbWF0ZXJpYWxzICAjICBhcmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+IGF2YWlsYWJs ZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICAjICB3 aGljaA0KPj4gYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPj4gQEAgLTI1LDYgKzI3LDcgQEANCj4+IA0K Pj4gW1NvdXJjZXNdDQo+PiAgIFNtbUNwdUZlYXR1cmVzTGliLmMNCj4+ICsgIFNtbUNvbW1vbi5o DQo+PiAgIFNtbVN0bS5jDQo+PiAgIFNtbVN0bS5oDQo+PiANCj4+IGRpZmYgLS1naXQgYS9VZWZp Q3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMNCj4+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbVN0bS5jDQo+PiBpbmRleCA0NTAxNWI4Li41 ZjdjM2RiIDEwMDY0NA0KPj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVz TGliL1NtbVN0bS5jDQo+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNM aWIvU21tU3RtLmMNCj4+IEBAIC0yLDYgKzIsOCBAQA0KPj4gICBTTU0gU1RNIHN1cHBvcnQgZnVu Y3Rpb25zDQo+PiANCj4+ICAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNywgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKyAgQ29weXJpZ2h0IChjKSAyMDE3 LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsNCj4+ICAg VGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPj4gICBhcmUgbGlj ZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv ZiB0aGUgQlNEDQo+PiBMaWNlbnNlDQo+PiAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJp YnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4+IGZvdW5kIGF0 IEBAIC0yOCw2ICszMCw4IEBAICAjaW5jbHVkZSA8UHJvdG9jb2wvTXBTZXJ2aWNlLmg+DQo+PiAN Cj4+ICNpbmNsdWRlICJTbW1TdG0uaCINCj4+ICsjaW5jbHVkZSAiU21tQ29tbW9uLmgiDQo+PiAr DQo+PiANCj4+ICNkZWZpbmUgVFhUX0VWVFlQRV9CQVNFICAgICAgICAgICAgICAgICAgMHg0MDAN Cj4+ICNkZWZpbmUgVFhUX0VWVFlQRV9TVE1fSEFTSCAgICAgICAgICAgICAgKFRYVF9FVlRZUEVf QkFTRSArIDE0KQ0KPj4gQEAgLTk3LDYgKzEwMSwyMCBAQCBleHRlcm4gdm9sYXRpbGUgVUlOVDgN Cj4+IGdjU3RtU21pSGFuZGxlclRlbXBsYXRlW107DQo+PiBleHRlcm4gQ09OU1QgVUlOVDE2ICAg ICAgICAgICAgICAgICAgICAgICAgZ2NTdG1TbWlIYW5kbGVyU2l6ZTsNCj4+IGV4dGVybiBVSU5U MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY1N0bVNtaUhhbmRsZXJPZmZzZXQ7DQo+ PiBleHRlcm4gQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ1N0bVhkU3VwcG9y dGVkOw0KPj4gK2V4dGVybiBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnU3Rt R2R0U2l6ZTsNCj4+ICtleHRlcm4gVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z1N0bUdkdFB0cjsNCj4+ICsNCj4+ICsvLw0KPj4gKy8vIENvbnN0YW50cyByZWxhdGluZyB0byBU WFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SIC8vDQo+PiArI2RlZmluZSBUWFRfUFNEX0dEVFBU UiAgIDB4NDgNCj4+ICsjZGVmaW5lIFRYVF9QU0RfR0RUU0laRSAgMHg1MA0KPj4gKw0KPj4gKy8v DQo+PiArLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIFBTRCBvZmZzZXQgaW4gU01SQU0gLy8gIGZy b20NCj4+ICs8UmVnaXN0ZXIvU3RtQXBpLmg+IC8vDQo+PiArVUlOVDE2ICBnU3RtUHNkT2Zmc2V0 ID0gVFhUX1NNTV9QU0RfT0ZGU0VUOw0KPj4gDQo+PiAvLw0KPj4gLy8gVmFyaWFibGVzIHVzZWQg YnkgU01JIEhhbmRsZXINCj4+IEBAIC0xNDUsNiArMTYzLDE5IEBAIFNtbUNwdUZlYXR1cmVzTGli U3RtQ29uc3RydWN0b3IgKA0KPj4gICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPj4gDQo+ PiAgIC8vDQo+PiArICAvLyBPdmVycmlkZSBQU0Qgb2Zmc2V0IGZvciBBTUQNCj4+ICsgIC8vDQo+ PiArICBpZiAoU21tU3RhbmRhcmRTaWduYXR1cmVJc0F1dGhlbnRpY0FNRCAoKSkgew0KPj4gKyAg ICBnU3RtUHNkT2Zmc2V0ID0gQU1EX1NNTV9QU0RfT0ZGU0VUOyAgfQ0KPj4gKw0KPj4gKyAgLy8N Cj4+ICsgIC8vIEluaXRpYWxpemUgU1RNIGdsb2JhbCB2YXJpYWJsZXMgYXNzb2NpYXRlZCB3aXRo IFNNSSBIYW5kbGVyICAvLw0KPj4gKyBnU3RtR2R0U2l6ZSA9IGdTdG1Qc2RPZmZzZXQgKyBUWFRf UFNEX0dEVFNJWkU7ICBnU3RtR2R0UHRyICA9DQo+PiArIGdTdG1Qc2RPZmZzZXQgKyBUWFRfUFNE X0dEVFBUUjsNCj4+ICsNCj4+ICsgIC8vDQo+PiAgIC8vIExvb2t1cCB0aGUgTVAgU2VydmljZXMg UHJvdG9jb2wNCj4+ICAgLy8NCj4+ICAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQo+ PiBAQCAtMjc2LDggKzMwNyw4IEBAIFNtbUNwdUZlYXR1cmVzSW5zdGFsbFNtaUhhbmRsZXIgKA0K Pj4gICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgUmVnRWR4Ow0KPj4gICBFRklfUFJP Q0VTU09SX0lORk9STUFUSU9OICAgICAgUHJvY2Vzc29ySW5mbzsNCj4+IA0KPj4gLSAgQ29weU1l bSAoKFZPSUQgKikoKFVJTlROKVNtQmFzZSArIFRYVF9TTU1fUFNEX09GRlNFVCksDQo+PiAmZ2NT dG1Qc2QsIHNpemVvZiAoZ2NTdG1Qc2QpKTsNCj4+IC0gIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NN TV9ERVNDUklQVE9SICopKFZPSUQgKikoKFVJTlROKVNtQmFzZSArDQo+PiBUWFRfU01NX1BTRF9P RkZTRVQpOw0KPj4gKyAgQ29weU1lbSAoKFZPSUQgKikoKFVJTlROKVNtQmFzZSArIGdTdG1Qc2RP ZmZzZXQpLCAmZ2NTdG1Qc2QsDQo+PiBzaXplb2YNCj4+ICsgKGdjU3RtUHNkKSk7ICBQc2QgPSAo VFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAqKShWT0lEDQo+PiArICopKChVSU5UTilTbUJh c2UgKyBnU3RtUHNkT2Zmc2V0KTsNCj4+ICAgUHNkLT5TbW1HZHRQdHIgPSBHZHRCYXNlOw0KPj4g ICBQc2QtPlNtbUdkdFNpemUgPSAoVUlOVDMyKUdkdFNpemU7DQo+PiANCj4+IEBAIC00MTYsNyAr NDQ3LDcgQEAgU21tRW5kT2ZEeGVFdmVudE5vdGlmeSAoDQo+PiAgIH0NCj4+IA0KPj4gICBmb3Ig KEluZGV4ID0gMDsgSW5kZXggPCBnU21zdC0+TnVtYmVyT2ZDcHVzOyBJbmRleCsrKSB7DQo+PiAt ICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICopKChVSU5UTilnU21zdC0N Cj4+PiBDcHVTYXZlU3RhdGVbSW5kZXhdIC0gU01SQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUICsN Cj4+IFRYVF9TTU1fUFNEX09GRlNFVCk7DQo+PiArICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NN TV9ERVNDUklQVE9SDQo+PiArICopKChVSU5UTilnU21zdC0+Q3B1U2F2ZVN0YXRlW0luZGV4XSAt IGdTbXJhbVN0YXRlTWFwT2Zmc2V0ICsNCj4+ICsgZ1N0bVBzZE9mZnNldCk7DQo+PiAgICAgREVC VUcgKChERUJVR19JTkZPLCAiSW5kZXg9JWQgIFBzZD0lcCAgUnNkcD0lcFxuIiwgSW5kZXgsIFBz ZCwNCj4+IFJzZHApKTsNCj4+ICAgICBQc2QtPkFjcGlSc2RwID0gKFVJTlQ2NCkoVUlOVE4pUnNk cDsNCj4+ICAgfQ0KPj4gQEAgLTEyNjYsNyArMTI5Nyw3IEBAIE5vdGlmeVN0bVJlc291cmNlQ2hh bmdlICgNCj4+ICAgVFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAgKlBzZDsNCj4+IA0KPj4g ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBnU21zdC0+TnVtYmVyT2ZDcHVzOyBJbmRleCsrKSB7 DQo+PiAtICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICopKChVSU5UTiln U21zdC0NCj4+PiBDcHVTYXZlU3RhdGVbSW5kZXhdIC0gU01SQU1fU0FWRV9TVEFURV9NQVBfT0ZG U0VUICsNCj4+IFRYVF9TTU1fUFNEX09GRlNFVCk7DQo+PiArICAgIFBzZCA9IChUWFRfUFJPQ0VT U09SX1NNTV9ERVNDUklQVE9SDQo+PiArICopKChVSU5UTilnU21zdC0+Q3B1U2F2ZVN0YXRlW0lu ZGV4XSAtIGdTbXJhbVN0YXRlTWFwT2Zmc2V0ICsNCj4+ICsgZ1N0bVBzZE9mZnNldCk7DQo+PiAg ICAgUHNkLT5CaW9zSHdSZXNvdXJjZVJlcXVpcmVtZW50c1B0ciA9IChVSU5UNjQpKFVJTlROKVN0 bVJlc291cmNlOw0KPj4gICB9DQo+PiAgIHJldHVybiA7DQo+PiBkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5TDQo+PiBiL1VlZmlD cHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPj4gaW5kZXgg MWY5ZjkxYy4uNWYzMzg2YSAxMDA2NDQNCj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5TDQo+PiBAQCAtMSw2ICsxLDggQEANCj4+ ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICMNCj4+ICMgQ29weXJpZ2h0IChjKSAyMDA5IC0g MjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKyMg Q29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4gIw0KPj4gIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxz ICAjIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4gYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgICMgd2hpY2gNCj4+IGFjY29tcGFuaWVz IHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUg Zm91bmQgYXQNCj4+IEBAIC0yNyw2ICsyOSw5IEBAIEFTTV9HTE9CQUwgIEFTTV9QRlgoZ1N0bVNt aVN0YWNrKSAgQVNNX0dMT0JBTA0KPj4gQVNNX1BGWChnU3RtU21iYXNlKSAgQVNNX0dMT0JBTCAg QVNNX1BGWChnU3RtWGRTdXBwb3J0ZWQpDQo+PiBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1TbWlI YW5kbGVySWR0cikNCj4+ICtBU01fR0xPQkFMICBBU01fUEZYKGdTdG1Qc2RPZmZzZXQpDQo+PiAr QVNNX0dMT0JBTCAgQVNNX1BGWChnU3RtR2R0U2l6ZSkNCj4+ICtBU01fR0xPQkFMICBBU01fUEZY KGdTdG1HZHRQdHIpDQo+PiANCj4+IC5lcXUgICAgICAgICAgICBNU1JfSUEzMl9NSVNDX0VOQUJM RSwgMHgxQTANCj4+IC5lcXUgICAgICAgICAgICBNU1JfRUZFUiwgMHhjMDAwMDA4MA0KPj4gQEAg LTM1LDEyICs0MCwxMyBAQCBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikg ICMgICMNCj4+IENvbnN0YW50cyByZWxhdGluZyB0byBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQ VE9SICAjDQo+PiAtLmVxdSAgICAgICAgICAgIERTQ19PRkZTRVQsIDB4ZmIwMA0KPj4gLS5lcXUg ICAgICAgICAgICBEU0NfR0RUUFRSLCAweDQ4DQo+PiAtLmVxdSAgICAgICAgICAgIERTQ19HRFRT SVosIDB4NTANCj4+IC0uZXF1ICAgICAgICAgICAgRFNDX0NTLCAweDE0DQo+PiAtLmVxdSAgICAg ICAgICAgIERTQ19EUywgMHgxNg0KPj4gLS5lcXUgICAgICAgICAgICBEU0NfU1MsIDB4MTgNCj4+ ICsjIC5lcXUgICAgICAgICAgRFNDX09GRlNFVCwgICAweGZiMDANCj4+ICsjIC5lcXUgICAgICAg ICAgRFNDX0dEVFBUUiwgICAweDQ4DQo+PiArIyAuZXF1ICAgICAgICAgIERTQ19HRFRTSVosICAg MHg1MA0KPj4gKyMNCj4+ICsuZXF1ICAgICAgICAgICAgRFNDX0NTLCAgICAgICAweDE0DQo+PiAr LmVxdSAgICAgICAgICAgIERTQ19EUywgICAgICAgMHgxNg0KPj4gKy5lcXUgICAgICAgICAgICBE U0NfU1MsICAgICAgIDB4MTgNCj4+IC5lcXUgICAgICAgICAgICBEU0NfT1RIRVJTRUcsIDB4MWEN Cj4+ICMNCj4+ICMgQ29uc3RhbnRzIHJlbGF0aW5nIHRvIENQVSBTdGF0ZSBTYXZlIEFyZWEgQEAg LTcxLDEyICs3NywxMiBAQA0KPj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+PiAgICAgIyBmaXggR0RU IGRlc2NyaXB0b3INCj4+ICAgICAjDQo+PiAgICAgLmJ5dGUgMHgyZSwweGExICAgICAgICAgICAg ICAgICAgICAgIyBtb3YgYXgsIGNzOltvZmZzZXQxNl0NCj4+IC0gICAgLndvcmQgICAgICBEU0Nf T0ZGU0VUICsgRFNDX0dEVFNJWg0KPj4gK0FTTV9QRlgoZ1N0bUdkdFNpemUpOiAuc3BhY2UgMiAg ICAgICAgICAjIC53b3JkIERTQ19PRkZTRVQgKyBEU0NfR0RUU0laDQo+PiAgICAgLmJ5dGUgMHg0 OCAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWMgYXgNCj4+ICAgICAuYnl0ZSAweDJlDQo+ PiAgICAgbW92bCAgICAlZWF4LCAoJXJkaSkgICAgICAgICAgICAgICAgIyBtb3YgY3M6W2J4XSwg YXgNCj4+ICAgICAuYnl0ZSAweDY2LDB4MmUsMHhhMSAgICAgICAgICAgICAgICAjIG1vdiBlYXgs IGNzOltvZmZzZXQxNl0NCj4+IC0gICAgLndvcmQgICAgICBEU0NfT0ZGU0VUICsgRFNDX0dEVFBU Ug0KPj4gK0FTTV9QRlgoZ1N0bUdkdFB0cik6IC5zcGFjZSAyICAgICAgICAgICAjIC53b3JkIERT Q19PRkZTRVQgKyBEU0NfR0RUUFRSDQo+PiAgICAgLmJ5dGUgMHgyZQ0KPj4gICAgIG1vdncgICAg JWF4LCAyKCVyZGkpDQo+PiAgICAgLmJ5dGUgMHg2NiwweDJlDQo+PiBAQCAtMTgzLDcgKzE4OSwx MSBAQCBCYXNlOg0KPj4gTG9uZ01vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg bG9uZyBtb2RlICg2NC1iaXQgY29kZSkgc3RhcnRzIGhlcmUNCj4+ICAgICBtb3ZhYnNxICRBU01f UEZYKGdTdG1TbWlIYW5kbGVySWR0ciksICVyYXgNCj4+ICAgICBsaWR0ICAgICglcmF4KQ0KPj4g LSAgICBsZWEgICAgIChEU0NfT0ZGU0VUKSglcmRpKSwgJWVieA0KPj4gKw0KPj4gKyAgICBtb3Zs ICAgICRBU01fUEZYKGdTdG1Qc2RPZmZzZXQpLCAlZWJ4ICAjIGxlYSAgICAgKERTQ19PRkZTRVQp KCVyZGkpLA0KPj4gJWVieA0KPj4gKyAgICBtb3Z6eHcgICglZWJ4KSwgJXJzaQ0KPj4gKyAgICBs ZWFsICAgICglcmRpLCAlcnNpKSwgJWVieA0KPj4gKw0KPj4gICAgIG1vdncgICAgRFNDX0RTKCVy YngpLCAlYXgNCj4+ICAgICBtb3ZsICAgICVlYXgsJWRzDQo+PiAgICAgbW92dyAgICBEU0NfT1RI RVJTRUcoJXJieCksICVheA0KPj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9T bW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+PiBpbmRleCBhZDUxZTA3Li4xMDkx M2RmIDEwMDY0NA0KPj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGli L1g2NC9TbWlFbnRyeS5hc20NCj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0 dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+PiBAQCAtMSw1ICsxLDcgQEANCj4+IDstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gOyAgOw0KPj4gQ29weXJpZ2h0IChjKSAyMDA5IC0gMjAxNiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKzsgQ29weXJpZ2h0IChj KSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gOw0KPj4g OyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICA7IGFyZSBsaWNl bnNlZCBhbmQgbWFkZQ0KPj4gYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBvZiB0aGUgQlNEIExpY2Vuc2UgIDsgd2hpY2gNCj4+IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJp YnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+ IEBAIC0zMiw2ICszNCwxMCBAQCBFWFRFUk5ERUYgICBnU3RtU21pU3RhY2s6RFdPUkQNCj4+IEVY VEVSTkRFRiAgIGdTdG1TbWJhc2U6RFdPUkQNCj4+IEVYVEVSTkRFRiAgIGdTdG1YZFN1cHBvcnRl ZDpCWVRFDQo+PiBFWFRFUk5ERUYgICBnU3RtU21pSGFuZGxlcklkdHI6RldPUkQNCj4+ICtFWFRF Uk5ERUYgICBnU3RtUHNkT2Zmc2V0OldPUkQNCj4+ICtFWFRFUk5ERUYgICBnU3RtR2R0U2l6ZTpX T1JEDQo+PiArRVhURVJOREVGICAgZ1N0bUdkdFB0cjpXT1JEDQo+PiArDQo+PiANCj4+IE1TUl9J QTMyX01JU0NfRU5BQkxFICBFUVUgICAgIDFBMGgNCj4+IE1TUl9FRkVSICAgICAgRVFVICAgICAw YzAwMDAwODBoDQo+PiBAQCAtNDAsMTMgKzQ2LDE0IEBAIE1TUl9FRkVSX1hEICAgRVFVICAgICAw ODAwaA0KPj4gOw0KPj4gOyBDb25zdGFudHMgcmVsYXRpbmcgdG8gVFhUX1BST0NFU1NPUl9TTU1f REVTQ1JJUFRPUiAgOw0KPj4gLURTQ19PRkZTRVQgICAgRVFVICAgICAwZmIwMGgNCj4+IC1EU0Nf R0RUUFRSICAgIEVRVSAgICAgNDhoDQo+PiAtRFNDX0dEVFNJWiAgICBFUVUgICAgIDUwaA0KPj4g LURTQ19DUyAgICAgICAgRVFVICAgICAxNGgNCj4+IC1EU0NfRFMgICAgICAgIEVRVSAgICAgMTZo DQo+PiAtRFNDX1NTICAgICAgICBFUVUgICAgIDE4aA0KPj4gLURTQ19PVEhFUlNFRyAgRVFVICAg ICAxYWgNCj4+ICs7IERTQ19PRkZTRVQgRVFVICAgICAwZmIwMGgNCj4+ICs7IERTQ19HRFRQVFIg RVFVICAgICA0OGgNCj4+ICs7IERTQ19HRFRTSVogRVFVICAgICA1MGgNCj4+ICs7DQo+PiArRFND X0NTICAgICAgIEVRVSAgICAgMTRoDQo+PiArRFNDX0RTICAgICAgIEVRVSAgICAgMTZoDQo+PiAr RFNDX1NTICAgICAgIEVRVSAgICAgMThoDQo+PiArRFNDX09USEVSU0VHIEVRVSAgICAgMWFoDQo+ PiA7DQo+PiA7IENvbnN0YW50cyByZWxhdGluZyB0byBDUFUgU3RhdGUgU2F2ZSBBcmVhICA7IEBA IC03NCwxMiArODEsMTIgQEANCj4+IF9TdG1TbWlFbnRyeVBvaW50Og0KPj4gICAgIERXICAgICAg b2Zmc2V0IF9TdG1HZHREZXNjIC0gX1N0bVNtaUVudHJ5UG9pbnQgKyA4MDAwaCAgOyBieCA9IEdk dERlc2MNCj4+IG9mZnNldA0KPj4gOyBmaXggR0RUIGRlc2NyaXB0b3INCj4+ICAgICBEQiAgICAg IDJlaCwgMGExaCAgICAgICAgICAgICAgICAgICA7IG1vdiBheCwgY3M6W29mZnNldDE2XQ0KPj4g LSAgICBEVyAgICAgIERTQ19PRkZTRVQgKyBEU0NfR0RUU0laDQo+PiArZ1N0bUdkdFNpemUgICBE VyAgICA/ICAgICAgICAgICAgICAgICAgIDsgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4+ICAg ICBEQiAgICAgIDQ4aCAgICAgICAgICAgICAgICAgICAgICAgICA7IGRlYyBheA0KPj4gICAgIERC ICAgICAgMmVoDQo+PiAgICAgbW92ICAgICBbcmRpXSwgZWF4ICAgICAgICAgICAgICAgICAgOyBt b3YgY3M6W2J4XSwgYXgNCj4+ICAgICBEQiAgICAgIDY2aCwgMmVoLCAwYTFoICAgICAgICAgICAg ICA7IG1vdiBlYXgsIGNzOltvZmZzZXQxNl0NCj4+IC0gICAgRFcgICAgICBEU0NfT0ZGU0VUICsg RFNDX0dEVFBUUg0KPj4gK2dTdG1HZHRQdHIgICAgRFcgICAgPyAgICAgICAgICAgICAgICAgICA7 IERTQ19PRkZTRVQgKyBEU0NfR0RUUFRSDQo+PiAgICAgREIgICAgICAyZWgNCj4+ICAgICBtb3Yg ICAgIFtyZGkgKyAyXSwgYXggICAgICAgICAgICAgICA7IG1vdiBjczpbYnggKyAyXSwgZWF4DQo+ PiAgICAgREIgICAgICA2NmgsIDJlaA0KPj4gQEAgLTE3OCw3ICsxODUsMTAgQEAgQmFzZToNCj4+ IEBMb25nTW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IGxvbmcgbW9kZSAoNjQt Yml0IGNvZGUpIHN0YXJ0cyBoZXJlDQo+PiAgICAgbW92ICAgICByYXgsIG9mZnNldCBnU3RtU21p SGFuZGxlcklkdHINCj4+ICAgICBsaWR0ICAgIGZ3b3JkIHB0ciBbcmF4XQ0KPj4gLSAgICBsZWEg ICAgIGVieCwgW3JkaSArIERTQ19PRkZTRVRdDQo+PiArDQo+PiArICAgIG1vdnp4ICAgcnNpLCB3 b3JkIHB0ciBbZ1N0bVBzZE9mZnNldF0gICA7IGxlYSAgICAgZWJ4LCBbcmRpICsgRFNDX09GRlNF VF0NCj4+ICsgICAgbGVhICAgICBlYngsIFtyZGkgKyByc2ldICAgICAgICAgICAgICAgIDsNCj4+ ICsNCj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4ICsgRFNDX0RTXQ0KPj4gICAgIG1vdiAgICAgZHMs IGVheA0KPj4gICAgIG1vdiAgICAgYXgsIFtyYnggKyBEU0NfT1RIRVJTRUddDQo+PiBkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5u YXNtDQo+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50 cnkubmFzbQ0KPj4gaW5kZXggYmNhYzY0My4uZGY0YzVhMiAxMDA2NDQNCj4+IC0tLSBhL1VlZmlD cHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkubmFzbQ0KPj4gKysr IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5uYXNt DQo+PiBAQCAtMSw1ICsxLDcgQEANCj4+IDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gOyAgOw0KPj4g Q29weXJpZ2h0IChjKSAyMDE2IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPj4gKzsgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVk LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gOw0KPj4gOyBUaGlzIHByb2dyYW0gYW5kIHRoZSBh Y2NvbXBhbnlpbmcgbWF0ZXJpYWxzICA7IGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4gYXZhaWxh YmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIDsg d2hpY2gNCj4+IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+IEBAIC0yOSwxMyArMzEsMTQgQEAgIDsg IDsgQ29uc3RhbnRzIHJlbGF0aW5nIHRvDQo+PiBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9S ICA7IC0lZGVmaW5lIERTQ19PRkZTRVQgMHhmYjAwIC0NCj4+ICVkZWZpbmUgRFNDX0dEVFBUUiAw eDQ4IC0lZGVmaW5lIERTQ19HRFRTSVogMHg1MCAtJWRlZmluZSBEU0NfQ1MNCj4+IDB4MTQgLSVk ZWZpbmUgRFNDX0RTIDB4MTYgLSVkZWZpbmUgRFNDX1NTIDB4MTggLSVkZWZpbmUgRFNDX09USEVS U0VHDQo+PiAweDFhDQo+PiArOyAlZGVmaW5lIERTQ19PRkZTRVQgICAweGZiMDANCj4+ICs7ICVk ZWZpbmUgRFNDX0dEVFBUUiAgIDB4NDgNCj4+ICs7ICVkZWZpbmUgRFNDX0dEVFNJWiAgIDB4NTAN Cj4+ICs7DQo+PiArJWRlZmluZSAgIERTQ19DUyAgICAgICAweDE0DQo+PiArJWRlZmluZSAgIERT Q19EUyAgICAgICAweDE2DQo+PiArJWRlZmluZSAgIERTQ19TUyAgICAgICAweDE4DQo+PiArJWRl ZmluZSAgIERTQ19PVEhFUlNFRyAweDFhDQo+PiA7DQo+PiA7IENvbnN0YW50cyByZWxhdGluZyB0 byBDUFUgU3RhdGUgU2F2ZSBBcmVhICA7IEBAIC00NCw5ICs0Nyw5IEBADQo+PiANCj4+ICVkZWZp bmUgUFJPVEVDVF9NT0RFX0NTIDB4OA0KPj4gJWRlZmluZSBQUk9URUNUX01PREVfRFMgMHgyMA0K Pj4gLSVkZWZpbmUgTE9OR19NT0RFX0NTIDB4MzgNCj4+IC0lZGVmaW5lIFRTU19TRUdNRU5UIDB4 NDANCj4+IC0lZGVmaW5lIEdEVF9TSVpFIDB4NTANCj4+ICslZGVmaW5lIExPTkdfTU9ERV9DUyAg ICAweDM4DQo+PiArJWRlZmluZSBUU1NfU0VHTUVOVCAgICAgMHg0MA0KPj4gKyVkZWZpbmUgR0RU X1NJWkUgICAgICAgIDB4NTANCj4+IA0KPj4gZXh0ZXJuIEFTTV9QRlgoU21pUmVuZGV6dm91cykN Cj4+IGV4dGVybiBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4+IEBAIC02MSw2ICs2NCwx MCBAQCBnbG9iYWwgQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJUZW1wbGF0ZSkgIGdsb2JhbA0KPj4g QVNNX1BGWChnY1N0bVNtaUhhbmRsZXJTaXplKSAgZ2xvYmFsIEFTTV9QRlgoZ2NTdG1TbWlIYW5k bGVyT2Zmc2V0KQ0KPj4gDQo+PiArZXh0ZXJuIEFTTV9QRlgoZ1N0bVBzZE9mZnNldCkNCj4+ICtn bG9iYWwgQVNNX1BGWChnU3RtR2R0U2l6ZSkNCj4+ICtnbG9iYWwgQVNNX1BGWChnU3RtR2R0UHRy KQ0KPj4gKw0KPj4gQVNNX1BGWChnU3RtU21iYXNlKSAgICAgIEVRVSBTdG1TbWJhc2VQYXRjaCAt IDQNCj4+IEFTTV9QRlgoZ1N0bVNtaVN0YWNrKSAgICBFUVUgU3RtU21pU3RhY2tQYXRjaCAtIDQN Cj4+IEFTTV9QRlgoZ1N0bVNtaUNyMykgICAgICBFUVUgU3RtU21pQ3IzUGF0Y2ggLSA0DQo+PiBA QCAtNzMsMTAgKzgwLDE4IEBAIEJJVFMgMTYNCj4+IEFTTV9QRlgoZ2NTdG1TbWlIYW5kbGVyVGVt cGxhdGUpOg0KPj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+PiAgICAgbW92ICAgICBieCwgX1N0bUdk dERlc2MgLSBfU3RtU21pRW50cnlQb2ludCArIDB4ODAwMA0KPj4gLSAgICBtb3YgICAgIGF4LFtj czpEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWl0NCj4+ICsNCj4+ICsgICAgbW92ICAgICBlYXgsIEFT TV9QRlgoZ1N0bUdkdFNpemUpICAgICA7IG1vdiAgICAgYXgsIFtjczpEU0NfT0ZGU0VUICsNCj4+ IERTQ19HRFRTSVpdDQo+PiArICAgIG1vdiAgICAgc2ksIFtjczplYXhdICAgICAgICAgICAgICAg ICAgOw0KPj4gKyAgICBtb3YgICAgIGF4LCBbY3M6c2ldICAgICAgICAgICAgICAgICAgIDsNCj4+ ICsNCj4+ICAgICBkZWMgICAgIGF4DQo+PiAgICAgbW92ICAgICBbY3M6YnhdLCBheA0KPj4gLSAg ICBtb3YgICAgIGVheCwgW2NzOkRTQ19PRkZTRVQgKyBEU0NfR0RUUFRSXQ0KPj4gKw0KPj4gKyAg ICBtb3YgICAgIGVheCwgQVNNX1BGWChnU3RtR2R0UHRyKSAgICAgIDsgbW92ICAgICBlYXgsIFtj czpEU0NfT0ZGU0VUICsNCj4+IERTQ19HRFRQVFJdDQo+PiArICAgIG1vdiAgICAgc2ksIFtjczpl YXhdICAgICAgICAgICAgICAgICAgOw0KPj4gKyAgICBtb3YgICAgIGVheCwgW2NzOnNpXSAgICAg ICAgICAgICAgICAgIDsNCj4+ICsNCj4+ICAgICBtb3YgICAgIFtjczpieCArIDJdLCBlYXgNCj4+ IG8zMiBsZ2R0ICAgIFtjczpieF0gICAgICAgICAgICAgICAgICAgICAgIDsgbGdkdCBmd29yZCBw dHIgY3M6W2J4XQ0KPj4gICAgIG1vdiAgICAgYXgsIFBST1RFQ1RfTU9ERV9DUw0KPj4gQEAgLTE2 Niw3ICsxODEsMTAgQEAgQmFzZToNCj4+IEBMb25nTW9kZTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IGxvbmcgbW9kZSAoNjQtYml0IGNvZGUpIHN0YXJ0cyBoZXJlDQo+PiAgICAgbW92 ICAgICByYXgsIEFTTV9QRlgoZ1N0bVNtaUhhbmRsZXJJZHRyKQ0KPj4gICAgIGxpZHQgICAgW3Jh eF0NCj4+IC0gICAgbGVhICAgICBlYngsIFtyZGkgKyBEU0NfT0ZGU0VUXQ0KPj4gKw0KPj4gKyAg ICBtb3Z6eCAgIHJzaSwgd29yZCBbQVNNX1BGWChnU3RtUHNkT2Zmc2V0KV0gIDsgbGVhICAgICBl YngsIFtyZGkgKw0KPj4gRFNDX09GRlNFVF0NCj4+ICsgICAgbGVhICAgICBlYngsIFtyZGkgKyBy c2ldICAgICAgICAgICAgICAgICAgICA7DQo+PiArDQo+PiAgICAgbW92ICAgICBheCwgW3JieCAr IERTQ19EU10NCj4+ICAgICBtb3YgICAgIGRzLCBlYXgNCj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4 ICsgRFNDX09USEVSU0VHXQ0KPj4gQEAgLTI2Miw1ICsyODAsOCBAQCBfU3RtU21pSGFuZGxlcjoN Cj4+ICAgICA7IFNUTSBpbml0IGZpbmlzaA0KPj4gICAgIGptcCAgICAgQ29tbW9uSGFuZGxlcg0K Pj4gDQo+PiArQVNNX1BGWChnU3RtR2R0U2l6ZSkgICAgICAgICAgIDogUkVTVyAgICAxDQo+PiAr QVNNX1BGWChnU3RtR2R0UHRyKSAgICAgICAgICAgIDogUkVTVyAgICAxDQo+PiArDQo+PiBBU01f UEZYKGdjU3RtU21pSGFuZGxlclNpemUpICAgOiBEVyAgICAgICQgLSBfU3RtU21pRW50cnlQb2lu dA0KPj4gQVNNX1BGWChnY1N0bVNtaUhhbmRsZXJPZmZzZXQpIDogRFcgICAgICBfU3RtU21pSGFu ZGxlciAtDQo+PiBfU3RtU21pRW50cnlQb2ludA0KPj4gLS0NCj4+IDIuNy40DQo+IA0K