From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.4.80; helo=nam02-cy1-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-oln040092004080.outbound.protection.outlook.com [40.92.4.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4AD432034AB39 for ; Sun, 5 Nov 2017 17:56:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=t7sLuaFaszu1/1n7psidZwhBWQm+FRsFdWkDPFPP/C8=; b=uN15N1I4j1z+4lAOacaENc4aj4MVCTIIEe01eTikIPhrxZ9gnBT0FyLCvhi7mhk5MWODRqjieK1nq7LJjx0N5MM+60PecuXxgCYubUCPcuUVR/vGlXiDvIglk+aI2nbEQRl7GuELrZ0Mi85Q5YJpKA/NdxLfDJDUjK+Fyps++rfj6PN0LcXSwCX5M5R0JsVqFmsYX8HoPmTXPH2RT2R4JZjMuZ8lFyuQzIJn9aWhxGuRc6Xa9d8W78wyOcQC98mCHDgOusKPo0gK4fN+vweT9A3Pyp/1rSltAGNYQ+WiAt5XGjHfMD1KUcIUcRIHviXTyi5OXo/DP6DuEB0p91jkVw== Received: from BL2NAM02FT007.eop-nam02.prod.protection.outlook.com (10.152.76.52) by BL2NAM02HT220.eop-nam02.prod.protection.outlook.com (10.152.77.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.197.9; Mon, 6 Nov 2017 02:00:36 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com (10.152.76.53) by BL2NAM02FT007.mail.protection.outlook.com (10.152.77.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.197.9 via Frontend Transport; Mon, 6 Nov 2017 02:00:36 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) by CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) with mapi id 15.20.0197.019; Mon, 6 Nov 2017 02:00:36 +0000 From: Fan Jeff To: "Wang, Jian J" , "Yao, Jiewen" , "Kinney, Michael D" , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUrSw3pJrU3cRZEmMYx4YdaVISaL+y3RDgADfOwCAAjUBgIAAcILqgAANEIaABCo5gIAAGNJU Date: Mon, 6 Nov 2017 02:00:35 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> , <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com>, , In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hotmail.com; x-incomingtopheadermarker: OriginalChecksum:02A4B515406A5030E46DB0F5D87ABEE0C7D06D0A0503144208ECBE4D4CDDEAF9; UpperCasedChecksum:329861AD72C08FD4D95C10E06DA1A8564CF2DD9E355AFD27477A9AC896CFF34B; SizeAsReceived:7948; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [a5wn3SibShlhTi57U8KQlyISco6830U3] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BL2NAM02HT220; 7:pRwz86aXkJAfvpowtm0JwiJ0gvGkXdl/25QBVMn/X4J8IzX8GFwP4vRhy5k/IDo1XUoxb3VmY/AJttqULiHSkrziOQBkSNLU14llpGODglt6if66SGiC5L55JwMgPV/Qih0/H0I5KP78oKmeLCq/EnuJTqfu/dF0M5daYMS2s6MnMoqdThW96Qxu0uG9K6I7nUNm0MQpkhu+RSKomqRoRZFyY6F0NdTOVf+K96t+dPaft1jiKX8fZPqqadpSBqdZ x-incomingheadercount: 47 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 1321c542-00e1-4b52-3afd-08d524ba2bcd x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:BL2NAM02HT220; x-ms-traffictypediagnostic: BL2NAM02HT220: x-exchange-antispam-report-test: UriScan:(166708455590820)(788757137089)(162533806227266)(130873036417446)(194151415913766)(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:BL2NAM02HT220; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BL2NAM02HT220; x-forefront-prvs: 048396AFA0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:BL2NAM02HT220; H:CY1PR19MB0283.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1321c542-00e1-4b52-3afd-08d524ba2bcd X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2017 02:00:35.8461 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2NAM02HT220 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= 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: Mon, 06 Nov 2017 01:56:40 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SmlhbiwNCg0KSW4gRURLSUksIERTID09IFNTIG9uIG1vc3Qgb2YgY2FzZXMuIEkgZG9uoa90IHRo aW5rIHRoZXJlIGlzIGFueSBpc3N1ZSB0byB1c2UgZGF0YSByYW5nZSBmb3Igc3RhY2suDQoNCkpl ZmYNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KU2VudDogTW9uZGF5LCBOb3ZlbWJlciA2LCAyMDE3 IDg6MzA6MjkgQU0NClRvOiBGYW4gSmVmZjsgWWFvLCBKaWV3ZW47IEtpbm5leSwgTWljaGFlbCBE OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IERvbmcsIEVyaWM7IFplbmcsIFN0YXINClN1 YmplY3Q6IFJFOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6 IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KDQpKZWZmLA0KDQpUaGF0oa9zIGEgZ29vZCBzdWdn ZXN0aW9uLiBEbyB5b3Uga25vdyBpZiB0aGVyZaGvcyBhbnkgcGl0ZmFsbCBpbiB1c2luZyBkYXRh IHNlZ21lbnQgbWVtb3J5IGFzIHN0YWNrPw0KDQpUaGFua3MsDQpKaWFuDQoNCkZyb206IEZhbiBK ZWZmIFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBGcmlkYXksIE5vdmVt YmVyIDAzLCAyMDE3IDQ6NTkgUE0NClRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5j b20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBXYW5n LCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3Jn DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIu emVuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiC08Li0OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KDQoNCkppYW4s DQoNCg0KDQpGb3IgZXhhbXBsZSwgeW91IGNvdWxkIHVzZSB0aGUgZ2xvYmFsIHZhcmlhYmxlIFVJ TlQ4IE5ld1N0YWNrWzI1Nl0gaW5zdGVhZCBvZiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHN0YWNrIGFu ZCB0cnkgdG8gdXNlIHRoZSBvdGhlciBnbG9iYWwgdmFyaWFibGVzIGZvciBvdGhlciBhbGxvY2F0 ZWQgZGF0YS4NCg0KDQoNCkRvZXMgaXQgd29yayBmb3IgeW91ciBjYXNlPw0KDQoNCg0KVGhhbmtz IQ0KDQpKZWZmDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTog ZWRrMi1kZXZlbCA8ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1k ZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZz4+IG9uIGJlaGFsZiBvZiBGYW4gSmVmZiA8dmFuamVm Zl85MTlAaG90bWFpbC5jb208bWFpbHRvOnZhbmplZmZfOTE5QGhvdG1haWwuY29tPj4NClNlbnQ6 IEZyaWRheSwgTm92ZW1iZXIgMywgMjAxNyA0OjIxOjIyIFBNDQpUbzogWWFvLCBKaWV3ZW47IEtp bm5leSwgTWljaGFlbCBEOyBXYW5nLCBKaWFuIEo7IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1h aWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCkNjOiBEb25nLCBFcmljOyBaZW5nLCBTdGFy DQpTdWJqZWN0OiBbZWRrMl0gtPC4tDogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRp b25IYW5kbGVyTGliOiBBZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSmlhbiwNCg0KQ291bGQg eW91IHVzZSBzb21lIGdsb2JhbCB2YXJpYWJsZXMgaW4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5v Y29yZS9lZGsyL2Jsb2IvbWFzdGVyL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0R4ZUV4Y2VwdGlvbi5jIHRvIGF2b2lkIGFkZGluZyBuZXcgQVBJPw0KDQpKZWZmDQq3 orz+yMs6IFlhbywgSmlld2VuPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4NCreiy83Ksbzk OiAyMDE3xOoxMdTCM8jVIDk6MjQNCsrVvP7IyzogS2lubmV5LCBNaWNoYWVsIEQ8bWFpbHRvOm1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgRmFuIEplZmY8bWFpbHRvOnZhbmplZmZfOTE5QGhv dG1haWwuY29tPjsgV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFp bHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnJTNjbWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEu b3JnPj4NCrOty806IERvbmcsIEVyaWM8bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5n LCBTdGFyPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPg0K1vfM4jogUkU6IFtQQVRDSCAzLzNd IFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3aXRjaCBzdXBw b3J0DQoNCkhJIEppYW4NClRoZXJlIGlzIGFub3RoZXIgcG90ZW50aWFsIHByb2JsZW0uDQoNClRo aXMgZmVhdHVyZSBpcyBlbmFibGVkIGluIEluaXRpYWxpemVDcHVJbnRlcnJ1cHRIYW5kbGVycygp LiBIb3dldmVyLCB3ZSBleHBlY3QgdGhpcyBpcyBlbmFibGVkIGluIEluaXRpYWxpemVDcHVFeGNl cHRpb25IYW5kbGVycygpLg0KDQpJbiBvcmRlciB0byBnZXQgdGhlIGV4Y2VwdGlvbiBzdGFjayBp biBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKS4gV2UgY2FuIGhhdmUgMiB3YXlzOg0K QSkgTGV0IEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpIGFsbG9jYXRlIHRoZSBleGNl cHRpb24gc3RhY2suDQpCKSBMZXQgY2FsbGVyIHRvIHBhc3MgdGhlIGV4Y2VwdGlvbiBzdGFjayB0 byBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKS4NCg0KRm9yIEEpLCBpdCBpcyBoYXJk LCBiZWNhdXNlIER4ZUNvcmUgY2FsbHMgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkg ZWFybGllciB0aGFuIENvcmVJbml0aWFsaXplTWVtb3J5U2VydmljZXMoKS4NCkZvciBCKSwgSW5p dGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkgaW50ZXJmYWNlIGRvZXMgbm90IGNvbnRhaW4g c3VjaCBpbmZvcm1hdGlvbi4gV2UgbWlnaHQgbmVlZCBhZGQgYSBuZXcgQVBJIHRvIGFkZCB0aGUg ZXhjZXB0aW9uIHN0YWNrIGluZm9ybWF0aW9uLCBzdWNoIGFzIEluaXRpYWxpemVDcHVTd2l0Y2hT dGFja0V4Y2VwdGlvbkhhbmRsZXJzICgpLg0KDQpPbmNlIHRoaXMgZmVhdHVyZSBpcyBkb25lLCBj YW4gd2UgY2xlYW4gdXAgdGhlIFNNTSBjb2RlIHRvIHVzZSB0aGUgbmV3IEFQSSwgaW5zdGVhZCBv ZiBkdXBsaWNhdGUgdGhlIFNNTSBjb3B5IG9mIGV4Y2VwdGlvbiBoYW5kbGVyID8gVGhlIGV4aXN0 aW5nIFNNTSBjb3B5IGhhcyBzb21lIGFzc3VtcHRpb24gb24gQ1I0IGFuZCBGWFNBVkUvUkVTVE9S RSwgYW5kIGl0IGJyb2tlIFF1YXJrIHBsYXRmb3JtLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4N Cg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNo YWVsIEQNCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAxLCAyMDE3IDExOjQzIFBNDQo+IFRv OiBGYW4gSmVmZiA8dmFuamVmZl85MTlAaG90bWFpbC5jb208bWFpbHRvOnZhbmplZmZfOTE5QGhv dG1haWwuY29tPj47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amll d2VuLnlhb0BpbnRlbC5jb20+PjsNCj4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9y ZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBLaW5uZXksIE1pY2hhZWwNCj4gRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPj4NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMu ZG9uZ0BpbnRlbC5jb20+PjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86 c3Rhci56ZW5nQGludGVsLmNvbT4+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1 UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2gNCj4gc3VwcG9ydA0K Pg0KPiBJIGFncmVlIHRoYXQgYWRkaW5nIEFzbVdyaXRlVHIsIElBMzJfVEFTS19TVEFURV9TRUdN RU5ULA0KPiBJQTMyX1RTU19ERVNDUklQVE9SIHRvIE1kZVBrZyBCYXNlTGliIGlzIGEgZ29vZCBp ZGVhLg0KPg0KPiBNaWtlDQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBC ZWhhbGYgT2YgRmFuDQo+IEplZmYNCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAzMSwgMjAxNyA3 OjMzIFBNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmpp ZXdlbi55YW9AaW50ZWwuY29tPj47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPiBDYzogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4+OyBEb25nLCBFcmljDQo+IDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmlj LmRvbmdAaW50ZWwuY29tPj47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb208bWFpbHRv OnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KPiBTdWJqZWN0OiBbZWRrMl0gtPC4tDogW1BBVENIIDMv M10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQNCj4gc3RhY2sgc3dpdGNo IHN1cHBvcnQNCj4NCj4gUGVyIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MTA5LCBUUiBzaG91bGQgYmUgc2V0dXANCj4gKFN1Y2ggYXMgaW4gRHhlSXBsUGVp bSkgZXZlbiB0aG91Z2ggTlVMTCBDcHUgRXhjZXB0aW9uIEhhbmRsZXIgaW5zdGFuY2UgaXMNCj4g Y2hvc2VuLg0KPg0KPiBGb3IgbG9uZyB0ZXJtLCBJIGFncmVlIHdlIG5lZWQgdG8gbW92ZSBBc21X cml0ZVRyLA0KPiBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCwgSUEzMl9UU1NfREVTQ1JJUFRPUiB0 byBNZGVQa2coU3VjaCBhcyBCYXNlTGliKQ0KPiBGb3IgdGhpcyBwYXRjaCwgSSBoYXZlIG5vIHN0 cm9uZyBvcGluaW9uLg0KPg0KPg0KPiC3orz+yMs6IFlhbywgSmlld2VuPG1haWx0bzpqaWV3ZW4u eWFvQGludGVsLmNvbT4NCj4gt6LLzcqxvOQ6IDIwMTfE6jEx1MIxyNUgOTo1Ng0KPiDK1bz+yMs6 IFdhbmcsIEppYW4gSjxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsy LWRldmVsQGxpc3RzLjAxLm9yZyUzY21haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4+DQo+ ILOty806IEtpbm5leSwgTWljaGFlbCBEPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IERvbmcsDQo+IEVyaWM8bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFy PG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPg0KPiDW98ziOiBSZTogW2VkazJdIFtQQVRDSCAz LzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+IHN3aXRj aCBzdXBwb3J0DQo+DQo+IEhpIEppYW4NCj4gVGhhbmtzIGZvciB0aGUgcGF0Y2guDQo+DQo+IENh biB3ZSBtb3ZlIGFsbCBJQTMyIGRlZmluZWQgZGF0YSBzdHJ1Y3R1cmUgb3IgZnVuY3Rpb24gdG8g TWRlUGtnPw0KPiBTdWNoIGFzOiBBc21Xcml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCwg SUEzMl9UU1NfREVTQ1JJUFRPUg0KPg0KPiBJIGFtIGFsc28gY3VyaW91cyB3aHkgd2UgdXNlIGRp ZmZlcmVudCBwb2xpY3kgZm9yIG90aGVyIGJvb3QgbW9kZS4NCj4gQ2FuIHdlIHVzZSBjb25zaXN0 ZW50IHBvbGljeT8NCj4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNkQ3B1U3RhY2tHdWFyZCkpIHsN Cj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBTdGFjayBHdWFyZCB3b3JrcyB3aXRoIHRoZSBzdXBw b3J0IG9mIHBhZ2UgdGFibGUgZXN0YWJsaXNoZWQgYW5kDQo+ID4gKyAgICAvLyBtZW1vcnkgbWFu YWdlbWVudC4gU28gd2UgaGF2ZSB0byBleGNsdWRlIHRob3NlIGJvb3QgbW9kZXMNCj4gPiB3aXRo b3V0DQo+ID4gKyAgICAvLyB0aGVtLg0KPiA+ICsgICAgLy8NCj4gPiArICAgIHN3aXRjaCAoR2V0 Qm9vdE1vZGVIb2IoKSkgew0KPiA+ICsgICAgY2FzZSBCT09UX09OX0ZMQVNIX1VQREFURToNCj4g PiArICAgIGNhc2UgQk9PVF9JTl9SRUNPVkVSWV9NT0RFOg0KPiA+ICsgICAgY2FzZSBCT09UX09O X1MzX1JFU1VNRToNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgZGVmYXVsdDoN Cj4gPiArICAgICAgQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKElkdFRhYmxlKTsNCj4gPiArICAg ICAgYnJlYWs7DQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0KPg0KPg0KPiBUaGFuayB5b3UNCj4gWWFv IEppZXdlbg0KPg0KPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog V2FuZywgSmlhbiBKDQo+ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAzMSwgMjAxNyAxMDoyNCBQ TQ0KPiA+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc+DQo+ID4gQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb208bWFpbHRv OnN0YXIuemVuZ0BpbnRlbC5jb20+PjsgRG9uZywgRXJpYw0KPiA+IDxlcmljLmRvbmdAaW50ZWwu Y29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFv QGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgS2lubmV5LA0KPiA+IE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPj4NCj4gPiBTdWJqZWN0OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjaw0KPiA+IHN3aXRjaCBzdXBwb3J0DQo+ID4NCj4g PiBJZiBTdGFjayBHdWFyZCBpcyBlbmFibGVkIGFuZCB0aGVyZSdzIHJlYWxseSBhIHN0YWNrIG92 ZXJmbG93IGhhcHBlbmVkDQo+ID4gZHVyaW5nIGJvb3QsIGEgUGFnZSBGYXVsdCBleGNlcHRpb24g d2lsbCBiZSB0cmlnZ2VyZWQuIEJlY2F1c2UgdGhlDQo+ID4gc3RhY2sgaXMgb3V0IG9mIHVzYWdl LCB0aGUgZXhjZXB0aW9uIGhhbmRsZXIsIHdoaWNoIHNoYXJlcyB0aGUgc3RhY2sNCj4gPiB3aXRo IG5vcm1hbCBVRUZJIGRyaXZlciwgY2Fubm90IGJlIGV4ZWN1dGVkIGFuZCBjYW5ub3QgZHVtcCB0 aGUgcHJvY2Vzc29yDQo+IGluZm9ybWF0aW9uLg0KPiA+DQo+ID4gV2l0aG91dCB0aG9zZSBpbmZv cm1hdGlvbiwgaXQncyB2ZXJ5IGRpZmZpY3VsdCBmb3IgdGhlIEJJT1MgZGV2ZWxvcGVycw0KPiA+ IGxvY2F0ZSB0aGUgcm9vdCBjYXVzZSBvZiBzdGFjayBvdmVyZmxvdy4gQW5kIHdpdGhvdXQgYSB3 b3JrYWJsZSBzdGFjaywNCj4gPiB0aGUgZGV2ZWxvcGVyIGNhbm5vdCBldmVudCB1c2Ugc2luZ2xl IHN0ZXAgdG8gZGVidWcgdGhlIFVFRkkgZHJpdmVyIHdpdGggSlRBRw0KPiBkZWJ1Z2dlci4NCj4g Pg0KPiA+IEluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgdG8gZXhl Y3V0ZSBub3JtYWxseSBhZnRlcg0KPiA+IHN0YWNrIG92ZXJmbG93LiBXZSBuZWVkIHNlcGFyYXRl IHN0YWNrcyBmb3IgZXhjZXB0aW9uIGhhbmRsZXJzIGluIGNhc2UNCj4gPiBvZiB1bnVzYWJsZSBz dGFjay4NCj4gPg0KPiA+IElBIHByb2Nlc3NvciBhbGxvd3MgdG8gc3dpdGNoIHRvIGEgbmV3IHN0 YWNrIGR1cmluZyBoYW5kbGluZyBpbnRlcnJ1cHQNCj4gPiBhbmQgZXhjZXB0aW9uLiBCdXQgWDY0 IGFuZCBJQTMyIHByb3ZpZGVzIGRpZmZlcmVudCB3YXlzIHRvIG1ha2UgaXQuDQo+ID4gWDY0IHBy b3ZpZGVzIGludGVycnVwdCBzdGFjayB0YWJsZSAoSVNUKSB0byBhbGxvdyBtYXhpbXVtIDcgZGlm ZmVyZW50DQo+ID4gZXhjZXB0aW9ucyB0byBoYXZlIG5ldyBzdGFjayBmb3IgaXRzIGhhbmRsZXIu IElBMzIgZG9lc24ndCBoYXZlIElTVA0KPiA+IG1lY2hhbmlzbSBhbmQgY2FuIG9ubHkgdXNlIHRh c2sgZ2F0ZSB0byBkbyBpdCBzaW5jZSB0YXNrIHN3aXRjaCBhbGxvd3MNCj4gPiB0byBsb2FkIGEg bmV3IHN0YWNrIHRocm91Z2ggaXRzIHRhc2stc3RhdGUgc2VnbWVudCAoVFNTKS4NCj4gPg0KPiA+ IE5vdGU6IFN0YWNrIHN3aXRjaCBuZWVkcyB0byBhbGxvY2F0ZSBtZW1vcnkgcGFnZXMgdG8gYmUg bmV3IHN0YWNrcy4gU28gdGhpcw0KPiA+ICAgICAgIGZ1bmN0aW9uYWxpdHkgd29ya3Mgb25seSBp biB0aGUgYm9vdCBwaGFzZXMgY2FwYWJsZSBvZiBtZW1vcnkNCj4gPiAgICAgICBhbGxvY2F0aW9u IChiZXNpZGVzIHRoZSBwYWdpbmcsIGZvciB0aGUgc2FrZSBvZiBTdGFjayBHdWFyZCkuIEluDQo+ ID4gICAgICAgb3RoZXIgd29yZHMsIG9ubHkgRFhFIHBoYXNlIGNhbiBzdXBwb3J0cyBTdGFjayBH dWFyZCB3aXRoIHN0YWNrDQo+IHN3aXRjaC4NCj4gPg0KPiA+IENjOiBTdGFyIFplbmcgPHN0YXIu emVuZ0BpbnRlbC5jb208bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KPiA+IENjOiBFcmlj IERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+Pg0K PiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlh b0BpbnRlbC5jb20+Pg0KPiA+IENjOiBNaWNoYWVsIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj4NCj4gPiBTdWdnZXN0 ZWQtYnk6IEF5ZWxsZXQgV29sbWFuIDxheWVsbGV0LndvbG1hbkBpbnRlbC5jb208bWFpbHRvOmF5 ZWxsZXQud29sbWFuQGludGVsLmNvbT4+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29y ZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEppYW4gSiBX YW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+ DQo+ID4gLS0tDQo+ID4gIC4uLi9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNv bW1vbi5oICAgIHwgIDIyICsrDQo+ID4gIC4uLi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLmlu ZiAgICAgICAgICAgICAgICAgIHwgICA1ICsNCj4gPiAgLi4uL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYyAgfCAgMTkgKw0KPiA+ICAuLi4vSWEzMi9BcmNoRXhj ZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICB8IDEzNSArKysrKysrDQo+ID4gIC4u Li9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTM2ICsr KysrKysNCj4gPiAgLi4uL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbSAgICAgICAgICAg ICAgICAgfCAzOTgNCj4gPiArKysrKysrKysrKysrKysrKysrKysNCj4gPiAgLi4uL1BlaUNwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAuLi4v U2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICB8ICAgMyArDQo+ ID4gIC4uLi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwg ICAxICsNCj4gPiAgLi4uL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAg ICAgICAgfCAxMDggKysrKysrDQo+ID4gIC4uLi9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9B cmNoSW50ZXJydXB0RGVmcy5oIHwgIDQwICsrKw0KPiA+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRs ZXJBc20uUyAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ID4gIC4uLi9YNjQvRXhjZXB0 aW9uSGFuZGxlckFzbS5hc20gICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4gPiAgLi4uL1g2 NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20gICAgICAgICAgICAgICAgICAgfCAgMTIgKw0KPiA+ ICAxNCBmaWxlcyBjaGFuZ2VkLCA5MDQgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiBVZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMy L0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hDQo+ID4gc20NCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4g PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlv bkNvbW1vbi5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+IGluZGV4IDc0MGE1ODgyOGIuLmZkNGEyNmE0NTgg MTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+IEBAIC0yNSw2ICsy NSw3IEBADQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPiAgI2lu Y2x1ZGUgPExpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmg+ICAjaW5jbHVkZQ0KPiA+IDxMaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvTWVt b3J5QWxsb2NhdGlvbkxpYi5oPg0KPiA+DQo+ID4gICNkZWZpbmUgIENQVV9FWENFUFRJT05fTlVN ICAgICAgICAgIDMyDQo+ID4gICNkZWZpbmUgIENQVV9JTlRFUlJVUFRfTlVNICAgICAgICAgMjU2 DQo+ID4gQEAgLTI4OCw1ICsyODksMjYgQEAgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcldvcmtlciAo DQo+ID4gICAgSU4gRVhDRVBUSU9OX0hBTkRMRVJfREFUQSAgICAgICpFeGNlcHRpb25IYW5kbGVy RGF0YQ0KPiA+ICAgICk7DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgTG9hZCBnaXZlbiBzZWxlY3Rv ciBpbnRvIFRSIHJlZ2lzdGVyDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSBTZWxlY3RvciAgICAgICAg IFRhc2sgc2VnbWVudCBzZWxlY3Rvcg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtBc21Xcml0 ZVRyICgNCj4gPiArICBVSU5UMTYgU2VsZWN0b3INCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAgU2V0dXAgc2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0K PiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArQXJjaFNldHVwRXhjcGV0aW9u U3RhY2sgKA0KPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklk dFRhYmxlDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gICNlbmRpZg0KPiA+DQo+ID4gZGlmZiAtLWdp dA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5m DQo+ID4gaW5kZXggZjRhOGQwMWM4MC4uYjA5OWVmNGRhZCAxMDA2NDQNCj4gPiAtLS0NCj4gPiBh L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGlu Zg0KPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ID4gIFtTb3VyY2VzLklhMzJdDQo+ID4gICAgSWEz Mi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFz bS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQo+ID4gICAgSWEz Mi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVy LmMNCj4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiBAQCAtNDcsNiArNDgsOSBA QA0KPiA+ICAgIFBlaUR4ZVNtbUNwdUV4Y2VwdGlvbi5jDQo+ID4gICAgRHhlRXhjZXB0aW9uLmMN Cj4gPg0KPiA+ICtbUGNkXQ0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RDcHVTdGFja0d1YXJkDQo+ID4gKw0KPiA+ICBbUGFja2FnZXNdDQo+ID4gICAgTWRlUGtnL01k ZVBrZy5kZWMNCj4gPiAgICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+IEBAIC02 MSwzICs2NSw0IEBADQo+ID4gICAgUGVDb2ZmR2V0RW50cnlQb2ludExpYg0KPiA+ICAgIE1lbW9y eUFsbG9jYXRpb25MaWINCj4gPiAgICBEZWJ1Z0xpYg0KPiA+ICsgIEhvYkxpYg0KPiA+IGRpZmYg LS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNl cHRpb24uYw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv RHhlRXhjZXB0aW9uLmMNCj4gPiBpbmRleCAzMWZlYmVjOTc2Li5lOWRjZDAwZTAyIDEwMDY0NA0K PiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4 Y2VwdGlvbi5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiBAQCAtMTYsNiArMTYsNyBAQA0KPiA+ICAjaW5jbHVk ZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGli Lmg+DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gPiAr I2luY2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQo+ID4NCj4gPiAgQ09OU1QgVUlOVE4gICAgbURv RmFyUmV0dXJuRmxhZyAgPSAwOw0KPiA+DQo+ID4gQEAgLTE1NSw2ICsxNTYsMjQgQEAgSW5pdGlh bGl6ZUNwdUludGVycnVwdEhhbmRsZXJzICgNCj4gPg0KPiA+ICAgIFVwZGF0ZUlkdFRhYmxlIChJ ZHRUYWJsZSwgJlRlbXBsYXRlTWFwLCAmbUV4Y2VwdGlvbkhhbmRsZXJEYXRhKTsNCj4gPg0KPiA+ ICsgIGlmIChQY2RHZXRCb29sIChQY2RDcHVTdGFja0d1YXJkKSkgew0KPiA+ICsgICAgLy8NCj4g PiArICAgIC8vIFN0YWNrIEd1YXJkIHdvcmtzIHdpdGggdGhlIHN1cHBvcnQgb2YgcGFnZSB0YWJs ZSBlc3RhYmxpc2hlZCBhbmQNCj4gPiArICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50LiBTbyB3ZSBo YXZlIHRvIGV4Y2x1ZGUgdGhvc2UgYm9vdCBtb2Rlcw0KPiA+IHdpdGhvdXQNCj4gPiArICAgIC8v IHRoZW0uDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7 DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fRkxBU0hfVVBEQVRFOg0KPiA+ICsgICAgY2FzZSBCT09U X0lOX1JFQ09WRVJZX01PREU6DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ ICsgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICBkZWZhdWx0Og0KPiA+ICsgICAgICBBcmNo U2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUpOw0KPiA+ICsgICAgICBicmVhazsNCj4gPiAr ICAgIH0NCj4gPiArICB9DQo+ID4gKw0KPiA+ICAgIC8vDQo+ID4gICAgLy8gTG9hZCBJbnRlcnJ1 cHQgRGVzY3JpcHRvciBUYWJsZQ0KPiA+ICAgIC8vDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9u SGFuZGxlci4NCj4gPiBjDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBpbmRleCBmMmMz OWViMTkzLi4zZDQxZGY3NWE1IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci4NCj4g PiBjDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBAQCAtMTQsNiArMTQs MTkgQEANCj4gPg0KPiA+ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQo+ID4NCj4g PiArLy8NCj4gPiArLy8gTGlzdCBvZiBleGNlcHRpb25zIG5lZWRpbmcgc2VwYXJhdGUgc3RhY2sg Ly8gU1RBVElDDQo+ID4gK0lBMzJfRVhDRVBUSU9OX1RTX0VOVFJZIG1FeGNlcHRpb25zV2l0aFN0 YWNrW10gPSB7DQo+ID4gKyAgezYsICBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk2fSwgIC8vI1VE OiBJbnZhbGlkIE9wY29kZSBFeGNlcHRpb24NCj4gPiArICB7OCwgIEV4Y2VwdGlvblRhc2tTd3Rp Y2hFbnRyeTh9LCAgLy8jREY6IERvdWJsZSBGYXVsdCBFeGNlcHRpb24NCj4gPiArICB7MTIsIEV4 Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEyfSwgLy8jU1M6IFN0YWNrIEZhdWx0IEV4Y2VwdGlvbg0K PiA+ICsgIHsxMywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTN9LCAvLyNHUDogR2VuZXJhbCBQ cm90ZWN0aW9uDQo+ID4gK0V4Y2VwdGlvbg0KPiA+ICsgIHsxNCwgRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5MTR9LCAvLyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCj4gPiArICB7MTcsIEV4Y2Vw dGlvblRhc2tTd3RpY2hFbnRyeTE3fSwgLy8jQUM6IEFsaWdubWVudCBDaGVjayBFeGNlcHRpb24N Cj4gPiArICB7MTgsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4fSAgLy8jTUM6IE1hY2hpbmUt Q2hlY2sgRXhjZXB0aW9uIH07DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBSZXR1cm4gYWRkcmVz cyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUgY2FuDQo+ ID4gZ2VuZXJhdGUNCj4gPiAgICBleGNlcHRpb24gdGFibGVzLg0KPiA+IEBAIC0xMDcsNiArMTIw LDEyOCBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiA+ICAgIFN5c3RlbUNvbnRl eHQuU3lzdGVtQ29udGV4dElhMzItPkV4Y2VwdGlvbkRhdGEgPQ0KPiA+IFJlc2VydmVkVmVjdG9y c1tFeGNlcHRpb25UeXBlXS5FeGNlcHRpb25EYXRhOw0KPiA+ICB9DQo+ID4NCj4gPiArLyoqDQo+ ID4gKyAgU2V0dXAgc2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ID4g Kw0KPiA+ICsgICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4NCj4g PiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK0FyY2hTZXR1cEV4Y3BldGlvblN0 YWNrICgNCj4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRU YWJsZQ0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFZPSUQgICAgICAgICAgICAgICAgICAgICAg Kk5ld0dkdDsNCj4gPiArICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdkdERlc2M7DQo+ID4g KyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBPbGRHZHRTaXplOw0KPiA+ICsgIFRTU19FTlRS SUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1Ig ICAgICAgKlRzc0Rlc2M7DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAqVHNzOw0K PiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tCYXNlOw0KPiA+ICsgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgU3RhY2tUb3A7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICBTdGFja1NpemU7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBJbmRl eDsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjsNCj4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gQWxsb2NhdGUgUnVudGltZSBEYXRhIGZvciB0aGUgR0RUICAvLyAgQXNtUmVhZEdkdHIoJkdk dERlc2MpOw0KPiA+ICsgT2xkR2R0U2l6ZSA9IEdkdERlc2MuTGltaXQgKyAxOyAgTmV3R2R0ID0N Cj4gPiArIEFsbG9jYXRlUnVudGltZVplcm9Qb29sKE9sZEdkdFNpemUgKyBzaXplb2YoVFNTX0VO VFJJRVMpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJQTMyX0dE VF9BTElHTk1FTlQpOyAgaWYNCj4gKE5ld0dkdA0KPiA+ICsgPT0gTlVMTCkgew0KPiA+ICsgICAg cmV0dXJuOw0KPiA+ICsgIH0NCj4gPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVSIChOZXdHZHQs IElBMzJfR0RUX0FMSUdOTUVOVCk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gSW5pdGlh bGl6ZSBuZXcgR0RUIGVudHJpZXMNCj4gPiArICAvLw0KPiA+ICsgIENvcHlNZW0oTmV3R2R0LCAo Vk9JRCAqKUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7ICBHZHREZXNjLkJhc2UgPQ0KPiA+ICsg KFVJTlROKShWT0lEKilOZXdHZHQ7ICBHZHREZXNjLkxpbWl0ID0gKFVJTlQxNikoT2xkR2R0U2l6 ZSArDQo+ID4gKyBUU1NfT0ZGU0VUIC0gMSk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8g UmVzZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBnaXZlbiBleGNlcHRpb25zICAvLyAgU3RhY2tTaXpl ID0NCj4gPiArIEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAqIEVYQ0VQVElPTl9T VEFDS19TSVpFOyAgU3RhY2tTaXplDQo+ID4gKyA9IEVGSV9QQUdFU19UT19TSVpFIChFRklfU0la RV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBTdGFja0Jhc2UgPQ0KPiA+ICsgKFVJTlQ2NCkoVUlO VE4pQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMNCj4gPiAoU3RhY2tTaXplKSk7DQo+ ID4gKyAgaWYgKFN0YWNrQmFzZSA9PSAwKSB7DQo+ID4gKyAgICBGcmVlUG9vbCAoTmV3R2R0KTsN Cj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8g Rml4dXAgVFNTIGRlc2NyaXB0b3JzIGFuZCBzZWdtZW50cyAgLy8gIFRzc0VudHJ5ID0gKFZPSUQN Cj4gPiArICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUpOw0KPiA+ICsNCj4gPiArICBUc3NC YXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5Uc3M7DQo+ID4gKyAgVHNzRW50cnktPlRz c1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9DQo+ID4gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9T RUdNRU5UKSAtIDE7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMTVfMCAgICAgICAgICAg ICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UyM18xNiAg ICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCj4gPiArICBUc3NFbnRyeS0+VHNz U2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4gKyAgVHNz RW50cnktPlRzc1NlZy5MaW1pdDE5XzE2X2FuZF9mbGFncyA9IDA7DQo+ID4gKyAgVHNzRW50cnkt PlRzc1NlZy5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQo+ ID4gKw0KPiA+ICsgIFN0YWNrVG9wICA9IFN0YWNrQmFzZSArIFN0YWNrU2l6ZSAtIENQVV9TVEFD S19BTElHTk1FTlQ7ICBTdGFja1RvcA0KPiA+ICsgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAoU3Rh Y2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOyAgZm9yIChJbmRleA0KPiA+ICsgPSAwOyBJbmRl eCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsgKytJbmRleCkgew0KPiA+ICsg ICAgLy8NCj4gPiArICAgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9yDQo+ID4gKyAgICAvLw0KPiA+ ICsgICAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+RXhjZXB0aW9uVHNzW0lu ZGV4XTsNCj4gPiArICAgIFRzc0Rlc2MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1NlZ1tJbmRl eF07DQo+ID4gKw0KPiA+ICsgICAgVHNzRGVzYy0+TGltaXQxNV8wICAgICAgICAgICAgPSBzaXpl b2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0NCj4gMTsNCj4gPiArICAgIFRzc0Rlc2MtPkJh c2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ICsgICAgVHNzRGVzYy0+ QmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiA+ICsgICAg VHNzRGVzYy0+VHlwZSAgICAgICAgICAgICAgICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCj4gPiAr ICAgIFRzc0Rlc2MtPkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsNCj4gPiArICAgIFRzc0Rlc2Mt PkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gPiArDQo+ ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRml4dXAgVFNTDQo+ID4gKyAgICAvLw0KPiA+ICsgICAg VHNzID0gJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ICsgICAgVHNzLT5DUjMg ICAgPSBBc21SZWFkQ3IzKCk7DQo+ID4gKyAgICBUc3MtPkVJUCAgICA9IChVSU5UMzIpbUV4Y2Vw dGlvbnNXaXRoU3RhY2tbSW5kZXhdLkVudHJ5UG9pbnQ7DQo+ID4gKyAgICBUc3MtPkVGTEFHUyA9 IDB4MjsNCj4gPiArICAgIFRzcy0+RVNQICAgID0gU3RhY2tUb3A7DQo+ID4gKyAgICBUc3MtPkVT ICAgICA9IEFzbVJlYWRFcygpOw0KPiA+ICsgICAgVHNzLT5DUyAgICAgPSBBc21SZWFkQ3MoKTsN Cj4gPiArICAgIFRzcy0+U1MgICAgID0gQXNtUmVhZFNzKCk7DQo+ID4gKyAgICBUc3MtPkRTICAg ICA9IEFzbVJlYWREcygpOw0KPiA+ICsgICAgVHNzLT5GUyAgICAgPSBBc21SZWFkRnMoKTsNCj4g PiArICAgIFRzcy0+R1MgICAgID0gQXNtUmVhZEdzKCk7DQo+ID4gKyAgICBTdGFja1RvcCAgIC09 IEVYQ0VQVElPTl9TVEFDS19TSVpFOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBD aGFuZ2Ugc3BlY2lmaWVkIGV4Y2VwdGlvbnMgaW4gSURUIHRvIHVzZSBUU1MNCj4gPiArICAgIC8v DQo+ID4gKyAgICBWZWN0b3IgPSBtRXhjZXB0aW9uc1dpdGhTdGFja1tJbmRleF0uVmVjdG9yOw0K PiA+ICsNCj4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRMb3cgID0gMDsNCj4g PiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5TZWxlY3RvciAgID0gT2xkR2R0U2l6ZSArDQo+ ID4gRVhDRVBUSU9OX1RTU19TRUwoSW5kZXgpOw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5C aXRzLlJlc2VydmVkXzAgPSAwOw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLkdhdGVU eXBlICAgPSBJQTMyX0lEVF9HQVRFX1RZUEVfVEFTSzsNCj4gPiArICAgIElkdFRhYmxlW1ZlY3Rv cl0uQml0cy5PZmZzZXRIaWdoID0gMDsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBQ dWJsaXNoIHRoZSBjaGFuZ2VzDQo+ID4gKyAgLy8NCj4gPiArICBBc21Xcml0ZUdkdHIoJkdkdERl c2MpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIExvYWQgdGFzayByZWdpc3Rlcg0KPiA+ ICsgIC8vDQo+ID4gKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19TRUwp KTsgfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAgRGlzcGxheSBwcm9jZXNzb3IgY29udGV4dC4N Cj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ ID4gaW5kZXggYThkMzU1NmE4MC4uNzdjYzZmOTkxOSAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVw dERlZnMuaA0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0lhMzIvQXJjaEludGVycnVwdERlZnMNCj4gPiArKysgLmgNCj4gPiBAQCAtNDEsNCArNDEs MTQwIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiAgICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHVi SGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCj4gPiAgfSBSRVNFUlZFRF9WRUNUT1JT X0RBVEE7DQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrICgxKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBF WENFUFRJT05fTElTVF9NQVggICAgICAgICAgNw0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9TVEFD S19TSVpFICAgICAgICBFRklfUEFHRV9TSVpFDQo+ID4gKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9U U1MgICAgICAgICAgIDB4ODkNCj4gPiArI2RlZmluZSBJQTMyX0dEVF9BTElHTk1FTlQgICAgICAg ICAgOA0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gSUEzMiBUU1MgRGVmaW5pdGlvbg0KPiA+ICsv Lw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDE2ICAgIFByZXZpb3VzVGFza0xp bms7IC8vIDAwDQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI7DQo+ID4gKyAgVUlOVDMyICAg IEVTUDA7ICAgICAgICAgICAgIC8vIDA0DQo+ID4gKyAgVUlOVDE2ICAgIFNTMDsgICAgICAgICAg ICAgIC8vIDA4DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzEwOw0KPiA+ICsgIFVJTlQzMiAg ICBFU1AxOyAgICAgICAgICAgICAvLyAwQw0KPiA+ICsgIFVJTlQxNiAgICBTUzE7ICAgICAgICAg ICAgICAvLyAxMA0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xODsNCj4gPiArICBVSU5UMzIg ICAgRVNQMjsgICAgICAgICAgICAgLy8gMTQNCj4gPiArICBVSU5UMTYgICAgU1MyOyAgICAgICAg ICAgICAgLy8gMTgNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMjY7DQo+ID4gKyAgVUlOVDMy ICAgIENSMzsgICAgICAgICAgICAgIC8vIDFDDQo+ID4gKyAgVUlOVDMyICAgIEVJUDsgICAgICAg ICAgICAgIC8vIDIwDQo+ID4gKyAgVUlOVDMyICAgIEVGTEFHUzsgICAgICAgICAgIC8vIDI0DQo+ ID4gKyAgVUlOVDMyICAgIEVBWDsgICAgICAgICAgICAgIC8vIDI4DQo+ID4gKyAgVUlOVDMyICAg IEVDWDsgICAgICAgICAgICAgIC8vIDJDDQo+ID4gKyAgVUlOVDMyICAgIEVEWDsgICAgICAgICAg ICAgIC8vIDMwDQo+ID4gKyAgVUlOVDMyICAgIEVCWDsgICAgICAgICAgICAgIC8vIDM0DQo+ID4g KyAgVUlOVDMyICAgIEVTUDsgICAgICAgICAgICAgIC8vIDM4DQo+ID4gKyAgVUlOVDMyICAgIEVC UDsNCj4gPiArICBVSU5UMzIgICAgRVNJOw0KPiA+ICsgIFVJTlQzMiAgICBFREk7DQo+ID4gKyAg VUlOVDE2ICAgIEVTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF83NDsNCj4gPiArICBVSU5U MTYgICAgQ1M7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzc4Ow0KPiA+ICsgIFVJTlQxNiAg ICBTUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfODI7DQo+ID4gKyAgVUlOVDE2ICAgIERT Ow0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84NjsNCj4gPiArICBVSU5UMTYgICAgRlM7DQo+ ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzkwOw0KPiA+ICsgIFVJTlQxNiAgICBHUzsNCj4gPiAr ICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTQ7DQo+ID4gKyAgVUlOVDE2ICAgIExEVFNlZ21lbnRTZWxl Y3RvcjsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTg7DQo+ID4gKyAgVUlOVDE2ICAgIFQ7 DQo+ID4gKyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ID4gK30gSUEzMl9UQVNLX1NU QVRFX1NFR01FTlQ7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDE2 ICAgIExpbWl0MTVfMDsNCj4gPiArICBVSU5UMTYgICAgQmFzZTE1XzA7DQo+ID4gKyAgVUlOVDgg ICAgIEJhc2UyM18xNjsNCj4gPiArICBVSU5UOCAgICAgVHlwZTsNCj4gPiArICBVSU5UOCAgICAg TGltaXQxOV8xNl9hbmRfZmxhZ3M7DQo+ID4gKyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCj4gPiAr fSBJQTMyX1RTU19ERVNDUklQVE9SOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsNCj4gPiArICBJQTMyX1RT U19ERVNDUklQVE9SDQo+IEV4Y2VwdGlvblRzc1NlZ1tFWENFUFRJT05fTElTVF9NQVhdOw0KPiA+ ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIFRzczsNCj4gPiArICBJQTMyX1RBU0tf U1RBVEVfU0VHTUVOVCAgICAgICBFeGNlcHRpb25Uc3NbRVhDRVBUSU9OX0xJU1RfTUFYXTsNCj4g PiArfSBUU1NfRU5UUklFUzsNCj4gPiArDQo+ID4gKyNwcmFnbWEgcGFjayAoKQ0KPiA+ICsNCj4g PiArI2RlZmluZSBUU1NfU0VMICAgICAgICAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywg VHNzU2VnKQ0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9UU1NfU0VMKG4pICBPRkZTRVRfT0YgKFRT U19FTlRSSUVTLA0KPiA+IEV4Y2VwdGlvblRzc1NlZ1tuXSkNCj4gPiArI2RlZmluZSBUU1NfT0ZG U0VUICAgICAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KPiA+ICsNCj4gPiAr dHlwZWRlZiBWT0lEICgqRVhDRVBUSU9OX0VOVFJZKSAoVk9JRCk7DQo+ID4gKw0KPiA+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgVmVjdG9yOw0KPiA+ICsgIEVY Q0VQVElPTl9FTlRSWSAgIEVudHJ5UG9pbnQ7DQo+ID4gK30gSUEzMl9FWENFUFRJT05fVFNfRU5U Ulk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJv dWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNVRC4NCj4gPiArICoqLw0KPiA+ICtWT0lEDQo+ ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTYgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0K PiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0 YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjREYuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtF eGNlcHRpb25UYXNrU3d0aWNoRW50cnk4ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4gPiAr DQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBn YXRlIGZvciBleGNlcHRpb24gI1NTLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5MTIgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUg Zm9yIGV4Y2VwdGlvbiAjR1AuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkxMyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsv KioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3Ig ZXhjZXB0aW9uICNQRi4NCj4gPiArICoqLw0KPiA+ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeTE0ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gKy8qKg0K PiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNl cHRpb24gI0FDLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5MTcgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4g KyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlv biAjTUMuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50 cnkxOCAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICAjZW5kaWYNCj4gPiBk aWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLg0KPiA+IG5hcw0KPiA+IG0NCj4gPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50 cnlBc20uDQo+ID4gbmFzDQo+ID4gbQ0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMDAwMC4uZGJmYmNmY2Y1MQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysNCj4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0 aW9uVHNzRW50cnlBc20uDQo+ID4gbmFzDQo+ID4gbQ0KPiA+IEBAIC0wLDAgKzEsMzk4IEBADQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tIDsgOyBDb3B5cmlnaHQgKGMpIDIwMTcs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gK3Jlc2VydmVkLjxCUj4gOyBUaGlz IHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIDsgYXJlDQo+ID4gK2xpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEJTRA0KPiA+IExpY2Vuc2UNCj4gPiArOyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiArbWF5IGJlIGZvdW5k DQo+ID4gYXQNCj4gPiArOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vu c2UucGhwLg0KPiA+ICs7DQo+ID4gKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIg VEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPiArQkFTSVMsIDsgV0lUSE9VVCBXQVJS QU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ID4gK0VYUFJF U1MNCj4gPiBPUiBJTVBMSUVELg0KPiA+ICs7DQo+ID4gKzsgTW9kdWxlIE5hbWU6DQo+ID4gKzsN Cj4gPiArOyAgIEV4Y2VwdGlvblRzc0VudHJ5QXNtLkFzbQ0KPiA+ICs7DQo+ID4gKzsgQWJzdHJh Y3Q6DQo+ID4gKzsNCj4gPiArOyAgIElBMzIgQ1BVIEV4Y2VwdGlvbiBIYW5kbGVyIHdpdGggU2Vw YXJhdGUgU3RhY2sNCj4gPiArOw0KPiA+ICs7IE5vdGVzOg0KPiA+ICs7DQo+ID4gKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICs7DQo+ID4gKzsgSUEzMiBUU1MgTWVt b3J5IExheW91dCBEZXNjcmlwdGlvbg0KPiA+ICs7DQo+ID4gK3N0cnVjIElBMzJfVFNTDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVz dyAxDQo+ID4gKyAgLkVTUDA6ICAgIHJlc2QgMQ0KPiA+ICsgIC5TUzA6ICAgICByZXN3IDENCj4g PiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuRVNQMTogICAgcmVzZCAxDQo+ ID4gKyAgLlNTMTogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0K PiA+ICsgIC5FU1AyOiAgICByZXNkIDENCj4gPiArICAuU1MyOiAgICAgcmVzdyAxDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9DUjM6ICAgIHJlc2QgMQ0KPiA+ICsg IC5FSVA6ICAgICByZXNkIDENCj4gPiArICAuRUZMQUdTOiAgcmVzZCAxDQo+ID4gKyAgLl9FQVg6 ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRUNYOiAgICByZXNkIDENCj4gPiArICAuX0VEWDogICAgcmVz ZCAxDQo+ID4gKyAgLl9FQlg6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRVNQOiAgICByZXNkIDENCj4g PiArICAuX0VCUDogICAgcmVzZCAxDQo+ID4gKyAgLl9FU0k6ICAgIHJlc2QgMQ0KPiA+ICsgIC5f RURJOiAgICByZXNkIDENCj4gPiArICAuX0VTOiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9DUzogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fU1M6ICAgICByZXN3IDENCj4gPiArICAgICAgICAg ICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0RTOiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9GUzogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fR1M6ICAgICByZXN3IDENCj4gPiArICAgICAg ICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuTERUOiAgICAgcmVzdyAxDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gK2VuZHN0cnVjDQo+ID4gKw0KPiA+ ICs7DQo+ID4gKzsgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcigpDQo+ID4gKzsNCj4gPiArZXh0ZXJu IEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCj4gPiArDQo+ID4gK1NFQ1RJT04gLmRh dGENCj4gPiArDQo+ID4gK1NFQ1RJT04gLnRleHQNCj4gPiArDQo+ID4gK0FMSUdOICAgOA0KPiA+ ICsNCj4gPiArOw0KPiA+ICs7IGV4Y2VwdGlvbiBoYW5kbGVyIHN0dWIgdGFibGUNCj4gPiArOw0K PiA+ICslbWFjcm8gRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDENCj4gPiArJSVEb0lyZXQ6 DQo+ID4gKyAgICBpcmV0ZA0KPiA+ICsNCj4gPiArZ2xvYmFsIEFTTV9QRlgoRXhjZXB0aW9uVGFz a1N3dGljaEVudHJ5JTEpDQo+ID4gK0FTTV9QRlgoRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5JTEp Og0KPiA+ICsgICAgZGIgICAgICAweDZhICAgICAgICA7IHB1c2ggICNWZWN0b3JOdW0NCj4gPiAr ICAgIGRiICAgICAgJTEgICAgICAgICAgOyBWZWN0b3JOdW0NCj4gPiArICAgIG1vdiAgICAgZWF4 LCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiA+ICsgICAgY2FsbCAgICBl YXgNCj4gPiArICAgIG1vdiAgICAgZXNwLCBlYXggICAgOyBSZXN0b3JlIHN0YWNrIHRvcA0KPiA+ ICsgICAgam1wICAgICAlJURvSXJldA0KPiA+ICslZW5kbWFjcm8NCj4gPiArDQo+ID4gK2dsb2Jh bCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiA+ICtBU01fUEZYKENvbW1v blRhc2tTd3RpY2hFbnRyeVBvaW50KToNCj4gPiArICAgIDsNCj4gPiArICAgIDsgU3RhY2s6DQo+ ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA4DQo+ID4gKyAgICA7 ICsgICAgICAgVFNTIEJhc2UgICAgICArDQo+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0rIDwtLSBFQlAgLSA0DQo+ID4gKyAgICA7ICsgICAgICBDUFVJRC5FRFggICAgICArDQo+ID4g KyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlANCj4gPiArICAgIDsgKyAgICAg ICAgIEVJUCAgICAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0t IEVCUCArIDQNCj4gPiArICAgIDsgKyAgICBWZWN0b3IgTnVtYmVyICAgICsNCj4gPiArICAgIDsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCArIDgNCj4gPiArICAgIDsgKyAgICBFcnJv ciBDb2RlICAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiAr ICAgIDsNCj4gPiArOw0KPiA+ICs7IEdldCBUU1Mgb2YgaW50ZXJydXB0ZWQgdGFzaw0KPiA+ICs7 DQo+ID4gKyAgICBtb3YgICAgIGVicCwgZXNwICAgICAgICAgICAgICAgICAgICA7IFN0YWNrIGZy YW1lDQo+ID4gKw0KPiA+ICs7IFVzZSBDUFVJRCB0byBkZXRlcm1pbmUgaWYgRlhTQVZFL0ZYUkVT VE9SIGFuZCBERSBhcmUgc3VwcG9ydGVkDQo+ID4gKyAgICBtb3YgICAgIGVheCwgMQ0KPiA+ICsg ICAgY3B1aWQNCj4gPiArICAgIHB1c2ggICAgZWR4DQo+ID4gKw0KPiA+ICs7IEdldCBUU1MgYmFz ZSBvZiBpbnRlcnJ1cHRlZCB0YXNrIHRocm91Z2ggUHJldmlvdXNUYXNrTGluayBmaWVsZCBpbg0K PiA+ICs7IGN1cnJlbnQgVFNTIGJhc2UNCj4gPiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gKyAg ICBzZ2R0ICAgIFtlc3AgKyAyXQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyA0XSAgICAg ICAgICAgICAgOyBHRFQgYmFzZQ0KPiA+ICsgICAgYWRkICAgICBlc3AsIDgNCj4gPiArDQo+ID4g KyAgICB4b3IgICAgIGVieCwgZWJ4DQo+ID4gKyAgICBzdHIgICAgIGJ4ICAgICAgICAgICAgICAg ICAgICAgICAgICA7IEN1cnJlbnQgVFINCj4gPiArDQo+ID4gKyAgICBtb3YgICAgIGVjeCwgW2Vh eCArIGVieCArIDJdDQo+ID4gKyAgICBzaGwgICAgIGVjeCwgOA0KPiA+ICsgICAgbW92ICAgICBj bCwgW2VheCArIGVieCArIDddDQo+ID4gKyAgICByb3IgICAgIGVjeCwgOCAgICAgICAgICAgICAg ICAgICAgICA7IGVjeCA9IEN1cnJlbnQgVFNTIGJhc2UNCj4gPiArICAgIHB1c2ggICAgZWN4ICAg ICAgICAgICAgICAgICAgICAgICAgIDsga2VlcCBpdCBpbiBzdGFjayBmb3IgbGF0ZXIgdXNlDQo+ ID4gKw0KPiA+ICsgICAgbW92enggICBlYngsIHdvcmQgW2VjeF0gICAgICAgICAgICAgOyBQcmV2 aW91cyBUYXNrIExpbmsNCj4gPiArICAgIG1vdiAgICAgZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCj4g PiArICAgIHNobCAgICAgZWN4LCA4DQo+ID4gKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsg N10NCj4gPiArICAgIHJvciAgICAgZWN4LCA4ICAgICAgICAgICAgICAgICAgICAgIDsgZWN4ID0g UHJldmlvdXMgVFNTIGJhc2UNCj4gPiArDQo+ID4gKzsNCj4gPiArOyBBbGlnbiBzdGFjayB0byBt YWtlIHN1cmUgdGhhdCBFRklfRlhfU0FWRV9TVEFURV9JQTMyIG9mDQo+ID4gRUZJX1NZU1RFTV9D T05URVhUX0lBMzINCj4gPiArOyBpcyAxNi1ieXRlIGFsaWduZWQNCj4gPiArOw0KPiA+ICsgICAg YW5kICAgICBlc3AsIDB4ZmZmZmZmZjANCj4gPiArICAgIHN1YiAgICAgZXNwLCAxMg0KPiA+ICsN Cj4gPiArOzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsN Cj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQo+ID4gKyAgICBw dXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUNYXQ0KPiA+ICsgICAgcHVzaCAgICBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FQlhdDQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQ XQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCUF0NCj4gPiArICAg IHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ID4gKyAgICBwdXNoICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBHcywgRnMs IEVzLCBEcywgQ3MsIFNzOw0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJf VFNTLl9TU10NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1v dnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRFNdDQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU10NCj4gPiAr ICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9U U1MuX0ZTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fR1NdDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsNCj4gPiAr OzsgVUlOVDMyICBFaXA7DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5F SVBdDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQo+ID4gKyAgICBz dWIgICAgIGVzcCwgOA0KPiA+ICsgICAgc2lkdCAgICBbZXNwXQ0KPiA+ICsgICAgbW92ICAgICBl YXgsIFtlc3AgKyAyXQ0KPiA+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ID4gKyAgICBhbmQg ICAgIGVheCwgMHhGRkZGDQo+ID4gKyAgICBtb3YgICAgIFtlc3ArNF0sIGVheA0KPiA+ICsNCj4g PiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gKyAgICBzZ2R0ICAgIFtlc3BdDQo+ID4gKyAgICBt b3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gKyAgICB4Y2hnICAgIGVheCwgW2VzcF0NCj4gPiAr ICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCj4gPiArICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQo+ ID4gKw0KPiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ICsgICAgbW92ICAgICBlYXgsIGVi eCAgICA7IGVieCBzdGlsbCBrZWVwcyBzZWxlY3RvciBvZiBpbnRlcnJ1cHRlZCB0YXNrDQo+ID4g KyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJf VFNTLkxEVF0NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVG bGFnczsNCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4g PiArDQo+ID4gKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ID4gKyAgICBt b3YgICAgIGVheCwgY3I0DQo+ID4gKyAgICBwdXNoICAgIGVheCAgICAgICAgICAgICA7IHB1c2gg Y3I0IGZpcnN0bHkNCj4gPiArDQo+ID4gKyAgICBtb3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNw dWlkLmVkeA0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0ICAgICAgOyBUZXN0IGZvciBGWFNB VkUvRlhSRVNUT1Igc3VwcG9ydA0KPiA+ICsgICAganogICAgICAuMQ0KPiA+ICsgICAgb3IgICAg ICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0Lk9TRlhTUg0KPiA+ICsuMToNCj4gPiArICAgIHRl c3QgICAgZWR4LCBCSVQyICAgICAgIDsgVGVzdCBmb3IgRGVidWdnaW5nIEV4dGVuc2lvbnMgc3Vw cG9ydA0KPiA+ICsgICAganogICAgICAuMg0KPiA+ICsgICAgb3IgICAgICBlYXgsIEJJVDMgICAg ICAgOyBTZXQgQ1I0LkRFDQo+ID4gKy4yOg0KPiA+ICsgICAgbW92ICAgICBjcjQsIGVheA0KPiA+ ICsNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjMNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4g KyAgICBtb3YgICAgIGVheCwgY3IyDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgeG9y ICAgICBlYXgsIGVheA0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4 LCBjcjANCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIERyMCwg RHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHI3DQo+ID4g KyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyNg0KPiA+ICsgICAgcHVz aCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkcjMNCj4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHIyDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsg ICAgbW92ICAgICBlYXgsIGRyMQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAg ICAgZWF4LCBkcjANCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBGWF9TQVZF X1NUQVRFX0lBMzIgRnhTYXZlU3RhdGU7DQo+ID4gKzs7IENsZWFyIFRTIGJpdCBpbiBDUjAgdG8g YXZvaWQgRGV2aWNlIE5vdCBBdmFpbGFibGUgRXhjZXB0aW9uICgjTk0pDQo+ID4gKzs7IHdoZW4g ZXhlY3V0aW5nIGZ4c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQo+ID4gKyAgICB0ZXN0ICAgIGVk eCwgQklUMjQgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQuDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIDsgZWR4IHN0aWxsIGNvbnRhaW5zIHJlc3VsdCBmcm9tIENQVUlE IGFib3ZlDQo+ID4gKyAgICBqeiAgICAgIC4zDQo+ID4gKyAgICBjbHRzDQo+ID4gKyAgICBzdWIg ICAgIGVzcCwgNTEyDQo+ID4gKyAgICBtb3YgICAgIGVkaSwgZXNwDQo+ID4gKyAgICBkYiAgICAg IDB4ZiwgMHhhZSwgMHg3IDtmeHNhdmUgW2VkaV0NCj4gPiArLjM6DQo+ID4gKw0KPiA+ICs7OyBV SU5UMzIgIEV4Y2VwdGlvbkRhdGE7DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlYnAgKyA4XQ0K PiA+ICsNCj4gPiArOzsgVUVGSSBjYWxsaW5nIGNvbnZlbnRpb24gZm9yIElBMzIgcmVxdWlyZXMg dGhhdCBEaXJlY3Rpb24gZmxhZyBpbiBFRkxBR3MgaXMgY2xlYXINCj4gPiArICAgIGNsZA0KPiA+ ICsNCj4gPiArOzsgY2FsbCBpbnRvIGV4Y2VwdGlvbiBoYW5kbGVyDQo+ID4gKyAgICBtb3YgICAg IGVzaSwgZWN4ICAgICAgICAgICAgOyBLZWVwIFRTUyBiYXNlIHRvIGF2b2lkIG92ZXJ3cml0ZQ0K PiA+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCj4g PiArDQo+ID4gKzs7IFByZXBhcmUgcGFyYW1ldGVyIGFuZCBjYWxsDQo+ID4gKyAgICBtb3YgICAg IGVkeCwgZXNwDQo+ID4gKyAgICBwdXNoICAgIGVkeCAgICAgICAgICAgICAgICAgOyBFRklfU1lT VEVNX0NPTlRFWFQNCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VicCArIDRdICAgICA7IEVGSV9F WENFUFRJT05fVFlQRSAodmVjdG9yIG51bWJlcikNCj4gPiArDQo+ID4gKyAgICA7DQo+ID4gKyAg ICA7IENhbGwgRXh0ZXJuYWwgRXhjZXB0aW9uIEhhbmRsZXINCj4gPiArICAgIDsNCj4gPiArICAg IGNhbGwgICAgZWF4DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgOCAgICAgICAgICAgICAgOyBSZXN0 b3JlIHN0YWNrIGJlZm9yZSBjYWxsaW5nDQo+ID4gKyAgICBtb3YgICAgIGVjeCwgZXNpICAgICAg ICAgICAgOyBSZXN0b3JlIFRTUyBiYXNlDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEV4Y2VwdGlv bkRhdGE7DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNA0KPiA+ICsNCj4gPiArOzsgRlhfU0FWRV9T VEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KPiA+ICsgICAgbW92ICAgICBlZHgsIFtlYnAgLSA0XSAg OyBjcHVpZC5lZHgNCj4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgICAgIDsgVGVzdCBmb3Ig RlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gPiArICAgIGp6ICAgICAgLjQNCj4gPiArICAgIG1v diAgICAgZXNpLCBlc3ANCj4gPiArICAgIGRiICAgICAgMHhmLCAweGFlLCAweGUgIDsgZnhyc3Rv ciBbZXNpXQ0KPiA+ICsuNDoNCj4gPiArICAgIGFkZCAgICAgZXNwLCA1MTINCj4gPiArDQo+ID4g Kzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsgOzsgU2tpcCByZXN0b3Jh dGlvbiBvZiBEUngNCj4gPiArcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZGVidWdnZXJzIDs7IHRoYXQg c2V0IGJyZWFrcG9pbnRzIGluDQo+ID4gK2ludGVycnVwdC9leGNlcHRpb24gY29udGV4dA0KPiA+ ICsgICAgYWRkICAgICBlc3AsIDQgKiA2DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIENyMCwgQ3Ix LCBDcjIsIENyMywgQ3I0Ow0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAg Y3IwLCBlYXgNCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgIDsgbm90IGZvciBDcjENCj4gPiAr ICAgIHBvcCAgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGNyMiwgZWF4DQo+ID4gKyAgICBwb3Ag ICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NSM10sIGVh eA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgY3I0LCBlYXgNCj4gPiAr DQo+ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuRUZMQUdTXQ0KPiA+ICsgICAgbW92ICAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5FRkxBR1NdDQo+ID4gKyAgICBidHIgICAgIGVieCwgOSAgICAgIDsgRG8gJ2NsaScNCj4g PiArICAgIG1vdiAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10sIGVieA0KPiA+ICsN Cj4gPiArOzsgVUlOVDMyICBMZHRyLCBUcjsNCj4gPiArOzsgVUlOVDMyICBHZHRyWzJdLCBJZHRy WzJdOw0KPiA+ICs7OyBCZXN0IG5vdCBsZXQgYW55b25lIG1lc3Mgd2l0aCB0aGVzZSBwYXJ0aWN1 bGFyIHJlZ2lzdGVycy4uLg0KPiA+ICsgICAgYWRkICAgICBlc3AsIDI0DQo+ID4gKw0KPiA+ICs7 OyBVSU5UMzIgIEVpcDsNCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJ UF0NCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBTczsNCj4gPiAr OzsgTk9URSAtIG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNvdWxkIGhhbmcgdGhlIGRlYnVn Z2VyLi4uICBXZQ0KPiA+ICs7OyAgICAgICAgY291bGQgYXR0ZW1wdCB0byBpbnN1bGF0ZSBvdXJz ZWx2ZXMgYWdhaW5zdCB0aGlzIHBvc3NpYmlsaXR5LA0KPiA+ICs7OyAgICAgICAgYnV0IHRoYXQg cG9zZXMgcmlza3MgYXMgd2VsbC4NCj4gPiArOzsNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g K28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fR1NdLCBheA0KPiA+ICsgICAgcG9wICAgICBl YXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9GU10sIGF4DQo+ID4gKyAgICBw b3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0VTXSwgYXgNCj4g PiArICAgIHBvcCAgICAgZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRFNd LCBheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJf VFNTLl9DU10sIGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4 ICsgSUEzMl9UU1MuX1NTXSwgYXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWRpLCBFc2ksIEVi cCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQo+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3gg KyBJQTMyX1RTUy5fRURJXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VTSV0NCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgOyBub3QgZm9yIGVicA0KPiA+ICsgICAg YWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3IgZXNwDQo+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtl Y3ggKyBJQTMyX1RTUy5fRUJYXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VEWF0NCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQ1hdDQo+ ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUFYXQ0KPiA+ICsNCj4gPiAr OyBTZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2VyIHRvIGFibGUgdG8gZ28gYmFj ayB0byB0aGUgRUlQDQo+ID4gKzsgd2hlcmUgdGhlIGV4Y2VwdGlvbiBpcyB0cmlnZ2VyZWQuDQo+ ID4gKw0KPiA+ICs7OyBDcmVhdGUgcmV0dXJuIGNvbnRleHQgZm9yIGlyZXRkIGluIHN0dWIgZnVu Y3Rpb24NCj4gPiArICAgIG1vdiAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSAg ICAgIDsgR2V0IG9sZCBzdGFjayBwb2ludGVyDQo+ID4gKyAgICBtb3YgICAgZWJ4LCBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ICsgICAgbW92ICAgIFtlYXggLSAweGNdLCBlYnggICAg ICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgRUlQIGluIG9sZCBzdGFjaw0KPiA+ICsgICAgbW92 enggIGVieCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ICsgICAgbW92ICAgIFtlYXgg LSAweDhdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgQ1MgaW4gb2xkIHN0YWNr DQo+ID4gKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiA+ ICsgICAgYnRzICAgIGVieCwgOA0KPiA+ICsgICAgbW92ICAgIFtlYXggLSAweDRdLCBlYnggICAg ICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgZWZsYWdzIGluIG9sZA0KPiBzdGFjaw0KPiA+ICsg ICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYnggICAgOyB1cGRhdGUg ZWZsYWdzIGluIG9sZA0KPiBUU1MNCj4gPiArICAgIG1vdiAgICBlYXgsIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fRVNQXSAgICAgIDsgR2V0IG9sZCBzdGFjayBwb2ludGVyDQo+ID4gKyAgICBzdWIg ICAgZWF4LCAweGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IG1pbnVzIDEyIGJ5dGUN Cj4gPiArICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVheCAgICAgIDsg U2V0IG5ldyBzdGFjayBwb2ludGVyDQo+ID4gKw0KPiA+ICs7OyBSZXBsYWNlIHRoZSBFSVAgb2Yg aW50ZXJydXB0ZWQgdGFzayB3aXRoIHN0dWIgZnVuY3Rpb24NCj4gPiArICAgIG1vdiAgICBlYXgs IEFTTV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiArICAgIG1vdiAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXSwgZWF4DQo+ID4gKw0KPiA+ICsgICAgbW92ICAgICBlY3gsIFtl YnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAgOyBHZXQgY3VycmVudCBUU1MgYmFzZQ0KPiA+ ICsgICAgbW92ICAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSAgICAgOyBSZXR1 cm4gY3VycmVudCBzdGFjaw0KPiB0b3ANCj4gPiArICAgIG1vdiAgICAgZXNwLCBlYnANCj4gPiAr DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gK2dsb2JhbCBBU01fUEZYKFNpbmdsZVN0ZXBTdHVi RnVuY3Rpb24pDQo+ID4gK0FTTV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbik6DQo+ID4gKzsN Cj4gPiArOyB3ZSBuZWVkIGNsZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZSA7IHg4Nw0KPiA+ ICtGUFUvTU1YL1NTRS9TU0UyL1NTRTMvU1NTRTMvU1NFNCBpbnN0cnVjdGlvbnMuDQo+ID4gKzsN Cj4gPiArICAgIGNsdHMNCj4gPiArICAgIGlyZXRkDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gPiArLS0tLS0tLS0tLQ0KPiA+ICs7IFZPSUQNCj4gPiArOyBBc21Xcml0ZVRyICgNCj4gPiAr OyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICs7ICAgKTsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Ky0tLS0tLS0tLS0NCj4gPiArZ2xvYmFsIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4gPiArQVNNX1BG WChBc21Xcml0ZVRyKToNCj4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwKzRdDQo+ID4gKyAgICBs dHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3Rp Y2hFbnRyeSA2DQo+ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSA4DQo+ID4gK0RlZkV4 Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxMg0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50 cnkgMTMNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE0DQo+ID4gK0RlZkV4Y2Vw dGlvblRhc2tTd3RpY2hFbnRyeSAxNw0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkg MTgNCj4gPiArDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gaW5kZXggNzU0NDMyODhhOS4uNGMwZDQzNTEz NiAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gKysrDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNl cHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ID4gIFtT b3VyY2VzLklhMzJdDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ICAg IElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NF bnRyeUFzbS5uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiAgICBJ YTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZz LmgNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTA0KPiA+IGliLmkNCj4gPiBuZg0K PiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1 RXhjZXB0aW9uSGFuZGxlckwNCj4gPiBpYi5pDQo+ID4gbmYNCj4gPiBpbmRleCBkNzBhOTljMTAw Li5hZGI0MTViYTVhIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckwNCj4gPiBpYi5p DQo+ID4gbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMDQo+ID4gaWIuaQ0KPiA+IG5mDQo+ ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAgICBJYTMyL0V4 Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5h c20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiAgICBJYTMyL0V4 Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0K PiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IEBAIC01NywzICs1OCw1IEBADQo+ ID4gICAgUHJpbnRMaWINCj4gPiAgICBMb2NhbEFwaWNMaWINCj4gPiAgICBQZUNvZmZHZXRFbnRy eVBvaW50TGliDQo+ID4gKyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ICsNCj4gPiBkaWZmIC0t Z2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1D cHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBp bmYNCj4gPiBpbmRleCA2MzRmZmNiMjFkLi41NmI4NzViN2M4IDEwMDY0NA0KPiA+IC0tLQ0KPiA+ IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4g aW5mDQo+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAgICBJ YTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVy QXNtLm5hc20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiAgICBJ YTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRs ZXIuYw0KPiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGRpZmYgLS1naXQNCj4g PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhj ZXB0aW9uSGFuZGxlci5jDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+IGluZGV4IDY1ZjBjZmY2ODAu LjI0ZjJhODQ4NmEgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ICsrKyBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0 aW9uSGFuZGwNCj4gPiArKysgZXIuYw0KPiA+IEBAIC0xNCw2ICsxNCwxOSBAQA0KPiA+DQo+ID4g ICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCj4gPg0KPiA+ICsvLw0KPiA+ICsvLyBM aXN0IG9mIGV4Y2VwdGlvbnMgbmVlZGluZyBzZXBhcmF0ZSBzdGFjayAvLyBTVEFUSUMgVUlOVE4N Cj4gPiArbUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiArICA2LCAgLy8jVUQ6IEludmFs aWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ICsgIDgsICAvLyNERjogRG91YmxlIEZhdWx0IEV4Y2Vw dGlvbg0KPiA+ICsgIDEyLCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgMTMs IC8vI0dQOiBHZW5lcmFsIFByb3RlY3Rpb24gRXhjZXB0aW9uDQo+ID4gKyAgMTQsIC8vI1BGOiBQ YWdlLUZhdWx0IEV4Y2VwdGlvbg0KPiA+ICsgIDE3LCAvLyNBQzogQWxpZ25tZW50IENoZWNrIEV4 Y2VwdGlvbg0KPiA+ICsgIDE4ICAvLyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRpb24NCj4gPiAr ICB9Ow0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAgUmV0dXJuIGFkZHJlc3MgbWFwIG9mIGV4Y2Vw dGlvbiBoYW5kbGVyIHRlbXBsYXRlIHNvIHRoYXQgQyBjb2RlIGNhbg0KPiA+IGdlbmVyYXRlDQo+ ID4gICAgZXhjZXB0aW9uIHRhYmxlcy4NCj4gPiBAQCAtMTEyLDYgKzEyNSwxMDEgQEAgQXJjaFJl c3RvcmVFeGNlcHRpb25Db250ZXh0ICgNCj4gPiAgICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRl eHRYNjQtPkV4Y2VwdGlvbkRhdGEgPQ0KPiA+IFJlc2VydmVkVmVjdG9yc1tFeGNlcHRpb25UeXBl XS5FeGNlcHRpb25EYXRhOw0KPiA+ICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgU2V0dXAgc2Vw YXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ID4gKw0KPiA+ICsgIEBwYXJh bVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KPiA+ICsqKi8NCj4gPiArVk9J RA0KPiA+ICtFRklBUEkNCj4gPiArQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KPiA+ICsgIElO IElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQo+ID4gKyAgKQ0K PiA+ICt7DQo+ID4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiA+ICsg IElBMzJfREVTQ1JJUFRPUiAgICAgICAgICAgR2R0RGVzYzsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgIE9sZEdkdFNpemU7DQo+ID4gKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAg ICAqVHNzRW50cnk7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja0Jhc2U7 DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gPiArICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgIFRzc0Jhc2U7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBJbmRl eDsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBBbGxvY2F0ZSBSdW50aW1lIERhdGEgZm9y IHRoZSBHRFQgIC8vICBBc21SZWFkR2R0cigmR2R0RGVzYyk7DQo+ID4gKyBPbGRHZHRTaXplID0g R2R0RGVzYy5MaW1pdCArIDE7ICBOZXdHZHQgPQ0KPiA+ICsgQWxsb2NhdGVSdW50aW1lWmVyb1Bv b2woT2xkR2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7ICBpZiAoTmV3R2R0DQo+ID09 DQo+ID4gKyBOVUxMKSB7DQo+ID4gKyAgICByZXR1cm47DQo+ID4gKyAgfQ0KPiA+ICsgIE5ld0dk dCA9IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05NRU5UKTsNCj4gPiArDQo+ ID4gKyAgLy8NCj4gPiArICAvLyBJbml0aWFsaXplIG5ldyBHRFQgZW50cmllcw0KPiA+ICsgIC8v DQo+ID4gKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRHZHRTaXpl KTsgIEdkdERlc2MuQmFzZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2Mu TGltaXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsNCj4gPiArIFRTU19PRkZTRVQgLSAxKTsNCj4g PiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkgZm9yIHN1cHBv cnRlZCBleGNlcHRpb25zICAvLyAgU3RhY2tTaXplID0NCj4gPiArIEFSUkFZX1NJWkUgKG1FeGNl cHRpb25zV2l0aFN0YWNrKSAqIEVYQ0VQVElPTl9TVEFDS19TSVpFOyAgU3RhY2tTaXplDQo+ID4g KyA9IEVGSV9QQUdFU19UT19TSVpFIChFRklfU0laRV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBT dGFja0Jhc2UgPQ0KPiA+ICsgKFVJTlQ2NClBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdF UyAoU3RhY2tTaXplKSk7ICBpZg0KPiA+ICsgKFN0YWNrQmFzZSA9PSAwKSB7DQo+ID4gKyAgICBG cmVlUG9vbCAoTmV3R2R0KTsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ID4gKw0KPiA+ ICsgIC8vDQo+ID4gKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzDQo+ID4gKyAgLy8NCj4gPiAr ICBUc3NFbnRyeSA9IChWT0lEICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUpOyAgVHNzQmFz ZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRzczsNCj4gPiArDQo+ID4gKyAg VHNzRW50cnktPlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9DQo+ID4gc2l6ZW9mKElBMzJf VEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMTVf MCAgICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2Vn LkJhc2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCj4gPiArICBU c3NFbnRyeS0+VHNzU2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7 DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE5XzE2X2FuZF9mbGFncyA9IDA7DQo+ID4g KyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFz ZSA+PiAyNCk7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlNjNfMzIgICAgICAgICAgICA9 IChVSU5UMzIpKFRzc0Jhc2UgPj4gMzIpOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuUmVzZXJ2 ZWQgICAgICAgICAgICAgPSAwOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEVuYWJsZSBJ bnRlcnJ1cHQgU3RhY2sgVGFibGUgKElTVCkgZm9yIGVhY2ggcmVxdWlyZWQgZXhjZXB0aW9uDQo+ ID4gKyAvLyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tTaXplIC0gQ1BVX1NUQUNLX0FM SUdOTUVOVDsNCj4gPiArIFN0YWNrVG9wICA9IChVSU5UTilBTElHTl9QT0lOVEVSIChTdGFja1Rv cCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7DQo+ID4gKyBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBB UlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCj4gPiArICAgIC8v DQo+ID4gKyAgICAvLyBGaXh1cCBUU1MNCj4gPiArICAgIC8vDQo+ID4gKyAgICBUc3NFbnRyeS0+ VHNzLklTVFtJbmRleF0gPSBTdGFja1RvcDsNCj4gPiArICAgIFN0YWNrVG9wIC09IEVYQ0VQVElP Tl9TVEFDS19TSVpFOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBTZXQgdGhlIElT VCBmaWVsZCB0byAxIHRvIGVuYWJsZSBjb3JyZXNwb25kaW5nIElTVA0KPiA+ICsgICAgLy8NCj4g PiArICAgIElkdFRhYmxlW21FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XV0uQml0cy5SZXNlcnZl ZF8wID0NCj4gPiArIChVSU5UOCkoSW5kZXggKw0KPiA+IDEpOw0KPiA+ICsgIH0NCj4gPiArDQo+ ID4gKyAgLy8NCj4gPiArICAvLyBQdWJsaXNoIHRoZSBjaGFuZ2VzDQo+ID4gKyAgLy8NCj4gPiAr ICBBc21Xcml0ZUdkdHIoJkdkdERlc2MpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIExv YWQgdGFzayByZWdpc3Rlcg0KPiA+ICsgIC8vDQo+ID4gKyAgQXNtV3JpdGVUciAoKFVJTlQxNiko T2xkR2R0U2l6ZSArIFRTU19TRUwpKTsgfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAgRGlzcGxh eSBDUFUgaW5mb3JtYXRpb24uDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0K PiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJ bnRlcnJ1cHREZWZzLmgNCj4gPiBpbmRleCA5MDY0ODAxMzRhLi41YTkxM2JhZTdiIDEwMDY0NA0K PiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv WDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuDQo+ID4gKysrIGgNCj4g PiBAQCAtNDMsNCArNDMsNDQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICAgIFVJTlQ4ICAgICAg IEhvb2tBZnRlclN0dWJIZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0KPiA+ICB9IFJF U0VSVkVEX1ZFQ1RPUlNfREFUQTsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2sgKDEpDQo+ID4gKw0K PiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgNw0KPiA+ICsjZGVmaW5lIEVY Q0VQVElPTl9TVEFDS19TSVpFICAgICAgRUZJX1BBR0VfU0laRQ0KPiA+ICsjZGVmaW5lIElBMzJf R0RUX1RZUEVfVFNTICAgICAgICAgMHg4OQ0KPiA+ICsjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVO VCAgICAgICAgOA0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlQzMiAg ICBSZXNlcnZlZF8wOw0KPiA+ICsgIFVJTlQ2NCAgICBSU1AwOw0KPiA+ICsgIFVJTlQ2NCAgICBS U1AxOw0KPiA+ICsgIFVJTlQ2NCAgICBSU1AyOw0KPiA+ICsgIFVJTlQ2NCAgICBSZXNlcnZlZF8y ODsNCj4gPiArICBVSU5UNjQgICAgSVNUWzddOw0KPiA+ICsgIFVJTlQ2NCAgICBSZXNlcnZlZF85 MjsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTAwOw0KPiA+ICsgIFVJTlQxNiAgICBJT01h cEJhc2VBZGRyZXNzOw0KPiA+ICt9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0KPiA+ICsNCj4g PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ID4gKyAg VUlOVDE2ICAgIEJhc2UxNV8wOw0KPiA+ICsgIFVJTlQ4ICAgICBCYXNlMjNfMTY7DQo+ID4gKyAg VUlOVDggICAgIFR5cGU7DQo+ID4gKyAgVUlOVDggICAgIExpbWl0MTlfMTZfYW5kX2ZsYWdzOw0K PiA+ICsgIFVJTlQ4ICAgICBCYXNlMzFfMjQ7DQo+ID4gKyAgVUlOVDMyICAgIEJhc2U2M18zMjsN Cj4gPiArICBVSU5UMzIgICAgUmVzZXJ2ZWQ7DQo+ID4gK30gSUEzMl9UU1NfREVTQ1JJUFRPUjsN Cj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBJQTMyX1RTU19ERVNDUklQVE9S ICAgICAgICAgICBUc3NTZWc7DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAg VHNzOw0KPiA+ICt9IFRTU19FTlRSSUVTOw0KPiA+ICsNCj4gPiArI3ByYWdtYSBwYWNrICgpDQo+ ID4gKw0KPiA+ICsjZGVmaW5lIFRTU19TRUwgICAgICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJ RVMsIFRzc1NlZykNCj4gPiArI2RlZmluZSBUU1NfT0ZGU0VUICAgICAgICBPRkZTRVRfT0YgKFRT U19FTlRSSUVTLCBUc3MpDQo+ID4gKw0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0DQo+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9u SGFuZGxlckFzbS5TDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gaW5kZXggZWRkMzYzY2RhYS4uYmRh ZjEzMmNmNSAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiArKysNCj4gPiBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25I YW5kbGVyQXNtLlMNCj4gPiBAQCAtNDI5LDYgKzQyOSwxOCBAQCBBU01fUEZYKEFzbVZlY3Rvck51 bUZpeHVwKToNCj4gPiAgICAgIHBvcHEgICAgICAlcmJwDQo+ID4gICAgICByZXQNCj4gPg0KPiA+ ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICsjIFZPSUQNCj4gPiArIyBBc21X cml0ZVRyICgNCj4gPiArIyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICsjICAgKTsNCj4gPiArIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArQVNNX0dMT0JBTCBBU01fUEZYKEFzbVdy aXRlVHIpDQo+ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gKyAgICBtb3ZsICAgICVlY3gs ICVlYXgNCj4gPiArICAgIGx0cncgICAgJWF4DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gICNF TkQNCj4gPg0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiBtDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0 aW9uSGFuZGxlckFzbS5hcw0KPiA+IG0NCj4gPiBpbmRleCA3MjZjNjRhMTQwLi5hZWM1NmVmNGJm IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiBtDQo+ID4gKysrDQo+ID4N Cj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0 aW9uSGFuZGxlckFzbS5hc20NCj4gPiBAQCAtMzg2LDQgKzM4NiwxNiBAQCBBc21WZWN0b3JOdW1G aXh1cCAgIFBST0MNCj4gPiAgICAgIHJldA0KPiA+ICBBc21WZWN0b3JOdW1GaXh1cCAgIEVORFAN Cj4gPg0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICs7IFZPSUQNCj4g PiArOyBBc21Xcml0ZVRyICgNCj4gPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICs7ICAgKTsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArQXNtV3JpdGVUciBQUk9D IFBVQkxJQw0KPiA+ICsgICAgbW92ICAgICBlYXgsIGVjeA0KPiA+ICsgICAgbHRyICAgICBheA0K PiA+ICsgICAgcmV0DQo+ID4gK0FzbVdyaXRlVHIgRU5EUA0KPiA+ICsNCj4gPiAgRU5EDQo+ID4g ZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmENCj4gPiBzbQ0KPiA+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmEN Cj4gPiBzbQ0KPiA+IGluZGV4IGJhODk5M2Q4NGIuLjFlMmFjNDExYjAgMTAwNjQ0DQo+ID4gLS0t DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhj ZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+IHNtDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0K PiA+IHNtIEBAIC0zODUsMyArMzg1LDE1IEBAIEFTTV9QRlgoQXNtVmVjdG9yTnVtRml4dXApOg0K PiA+ICAgICAgbW92ICAgICBbcmN4ICsgKEBWZWN0b3JOdW0gLSBIb29rQWZ0ZXJTdHViSGVhZGVy QmVnaW4pXSwgYWwNCj4gPiAgICAgIHJldA0KPiA+DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICst LS0tLS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ICs7ICAgVUlO VDE2IFNlbGVjdG9yDQo+ID4gKzsgICApOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0t LS0tLQ0KPiA+ICtnbG9iYWwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiA+ICtBU01fUEZYKEFzbVdy aXRlVHIpOg0KPiA+ICsgICAgbW92ICAgICBlYXgsIGVjeA0KPiA+ICsgICAgbHRyICAgICBheA0K PiA+ICsgICAgcmV0DQo+ID4gKw0KPiA+IC0tDQo+ID4gMi4xNC4xLndpbmRvd3MuMQ0KPg0KPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBlZGsyLWRl dmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc+DQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu Zm8vZWRrMi1kZXZlbA0KPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+IGh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVk azItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCmh0 dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K