From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.2739.1612410079074580995 for ; Wed, 03 Feb 2021 19:41:19 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=V+eUIOXm; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: star.zeng@intel.com) IronPort-SDR: zMsO3SN/2lqIV9BfebM/NTf6FGf10TJRJxyB8k8loPxnutcFhZQ+NrPZWpgfZ1KG/PC1vJFfKG SGoroufJ6yvg== X-IronPort-AV: E=McAfee;i="6000,8403,9884"; a="181308115" X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="181308115" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2021 19:41:16 -0800 IronPort-SDR: RYU+j/Rngq+lxkAPC43Wne+DlzBXq9/sbGzz5NAtrY5I+hFXkKLIWc0XpJnIeIlozLBuHpVqM/ PfJQBucJcpmg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="576125526" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga005.jf.intel.com with ESMTP; 03 Feb 2021 19:41:16 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 3 Feb 2021 19:41:15 -0800 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 3 Feb 2021 19:41:14 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 3 Feb 2021 19:41:14 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 3 Feb 2021 19:41:14 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nsd+1+ARwf5XSKc3sgFrMQZfvIlIl8QPIfS6tgRwslmu4ti+3xxxCC8S0pKepOLlpQIbNsVuYSwiEXHvdtsoWSlyVoYXmbZ+OwkW76E/7Z5KVE//0bIqcJ9ZdfMVLWFC4UoZQNHTHuJsGxzZhPEH0lu8MZJkHlvYXt/XnBD57Gf5Z554/vYCiJgcATFadXEHVJq6v44UcLEgpNeK7ZP+Qhcj3BCNi89HhEc4BswBFDnOya8Gu/G1Xp0P/rfNvNW1sRj1IXFMsGqFEHBEvyOhOnk68cywxCcdwvuajLaCJQYaqE9X+Q/6XfvHgFc62cSlO6bYpomCjMo0ITWm5j4k8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=doC2t6qpGMplnvhdfxfL5VIpkapO1YmyhMV5V0yedFQ=; b=NunrnV5SGPyOYwvioDODVzO6Jp0A5+6d0qnyv78haZJ8THjBeAe6D1qKMmhnWNYlXm37K0KCeErwp5SpUiH1vrIBUAoV7nFC9Ib1bJHIt2qzBuYHi0f4hZdCyAt6wmjWEIOVKujz4kNQ2kL10ekgwUbYmUKZNHjzl/E3SHULK4cfFEWWntSA6cjuRcoPlJKpUwmVSVao78Uu5nvugPeJUsnQrncu0CefuSJ34Dci9DNenUf+0D75PCDCtzM7z1H1DPc3bmO4E5CuVftPV/8pgwBz5w7N/RwiLDHYSsfL38qV+4NG2aAiczGB7W9GutlOnzTtcPIrY4wJu6Zbp6AmCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=doC2t6qpGMplnvhdfxfL5VIpkapO1YmyhMV5V0yedFQ=; b=V+eUIOXmRI87TfQDvarYzWEtuLF/fYc0dR24g3EKBg4u1VztQEtvydGPH39qR9wk9U4RV0yApGR2akK/KubCyqB8wpVIHm17ZTimW6ukf3nc5D+LZgZqDbwz/yzFQJ0HmjcFYjHYSqtjUct5c6dPxxhF4BNZd043gIVNZP40BH8= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM6PR11MB3483.namprd11.prod.outlook.com (2603:10b6:5:e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.19; Thu, 4 Feb 2021 03:41:12 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88%7]) with mapi id 15.20.3825.020; Thu, 4 Feb 2021 03:41:11 +0000 From: "Zeng, Star" To: "Chiu, Chasel" , "Loo, Tung Lun" , "devel@edk2.groups.io" CC: "Loo, Tung Lun" , "Ma, Maurice" , "Desimone, Nathaniel L" , "Zeng, Star" Subject: Re: [PATCH] IntelFsp2Pkg: Add YAML file generation support Thread-Topic: [PATCH] IntelFsp2Pkg: Add YAML file generation support Thread-Index: AQHW+cSOGx+9QWI4rEidgE9k8UBEk6pHJ/uAgAAy5ZA= Date: Thu, 4 Feb 2021 03:41:11 +0000 Message-ID: References: <20210203003547.551-1-tung.lun.loo@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=intel.com; x-originating-ip: [192.198.147.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c2d6b0f5-fd7d-4794-97fa-08d8c8beb771 x-ms-traffictypediagnostic: DM6PR11MB3483: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:923; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0+jadjMK3zFalUU+IWGz3qs5g2Q35WXGghEeEW9pW/fk2CwbvyTYEG5JrSMqLVDxnZ1FSW+H9GCVMtLkdyXveSMLsOkinktAEEduC48TRsEsBAAyusrtuHhg38dWtFe4lpgCzxABLC17pGtzypSfDlLFaxW0tvIofyOzWrDBoZKAbuPHolwjoTHcXVlGWjtknr3m76qRt+pgHgKixK4R40O3mpIQWhrzgO4nqNlUsO4/knla+7I1LUG1RBSLGvAiN9qh7s4AtVgyKkUXduKqHewGNHeBrfsOu0Z+kHnpl4kK9L5vvYVtuDFkqJ42O1cJ5LRqsmQ0mNl613hby75Lg6nFXPP3bRz4agBtyw08ZX3dipzYduGJdkGn20H/0BPLIyxEgNi+2GvF7iEBscvlZS37cVii4FY3ju+VqHRO5k0i1+OicNPSFxRocBk+FDc22Vax3PHXR0oxEUYl/bV4B1Ty3Q5AWVprrBkwp7OwM7VvjUzSGXegW3LquJA79Mr+YSdroqBIOKY0B1o2j1AbeWbCAj6dik1ZIT5kihinmSGtNWqO351jN91S+i3GjZLA6lvVxXGwBOJTGnHKyssAoOPY8o5LlGUt1ytDrUbg0Yi861xmfN54Vax0E14wm+7x/Fp/oRAf2wPLcZmLMY1KOcrWa/Y+9T8/kFVqwIhRk7A= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(376002)(366004)(136003)(346002)(396003)(64756008)(66556008)(66446008)(66476007)(52536014)(66946007)(76116006)(8936002)(5660300002)(26005)(53546011)(6506007)(8676002)(30864003)(107886003)(55016002)(9686003)(2906002)(86362001)(7696005)(966005)(478600001)(83380400001)(110136005)(15188155005)(54906003)(4326008)(316002)(16799955002)(19627235002)(186003)(71200400001)(33656002)(21314003)(579004)(569008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UnBEdmdaLzNRTGkvb0pmV2FUbVlLVk1jbGNqeFI4dUJDSndOWlB0YjlOWUxH?= =?utf-8?B?d2RDQmg1TzdCVXhVNlNnTDNWVjkwaVdoQ2pPQ05yQ3NJdTF6ZytQN05ZRWZH?= =?utf-8?B?Vzc1Z2JRRFZZUUVqaWlqelowVnZISkhXcnYyTzhvZFRvQndadlBDeCtVdDRu?= =?utf-8?B?VG0vbDEreU9CbC9kNUR3TjNNM1BhZy8rS2F5Q2FudnZrTlJmdFl1TDRWelo3?= =?utf-8?B?VjFoeE55cUE1TDhJTm1zVW1OaFlPM3R2Y3NEQUR5ZHQxOFliSjdHVzMyNTVl?= =?utf-8?B?eGVlcXZUaVRYQXRoSlNieWZ2ZDlNdWwzRmRMSHk2WTZjQTRrK1NHaXMwWTBu?= =?utf-8?B?Y1QybGVML0tBVmlMbU00TUdRVkt1dFh5S0JMRmFOMGxqUzJJR1dPWmhnc3BD?= =?utf-8?B?Tm85NjlmR1ExUUR1WnV1SFRUL0pxYVFBNktQK2E4Z1Y0TmIvMEdRMCs0S2tY?= =?utf-8?B?dkxjNThlZGN2OVp1Q3VtYzB2K1p1OTBtOEROTHM0SnhkRjNrSmx0bGR4dnUw?= =?utf-8?B?elEwRDVVT1FwVXV6WEpkN0pDajBYeTR0OGwyOS9qZVVrQjgxSWZJWFlGOVBn?= =?utf-8?B?VmcvTWVLVThuVUllUzZoN0N2dWhRWkcwSlpiTjlmT1pwTzZRUlBnSGw3U1cy?= =?utf-8?B?SzRtcmNHYXFpV0ZMV0R5YXpsbncxSjg3MndZaWFhVHh5Y0hOOUxZeTFSVkFz?= =?utf-8?B?b29WNXUxTlBkZDI0Q2t0Mk5hb2xDN1FUckhiWmZRR215M2FrRGJsYnJNb09L?= =?utf-8?B?dk5OS3E1UWMrSUwrMWJ5L3lmVkpjbjJQSHo0a1BOckZKM1hJRFEvZHBkWlpP?= =?utf-8?B?bWwvV0RJVDlZckRBY25kaVFxL055SHBlMU4yWStEb0Y0UjI2bm9BeDQ4WUJY?= =?utf-8?B?L0VDWksxMHJhU2ZOK3o4cXoyTWdkUndnaEZZWUlUT0Znb0xIVWFWOTlaS3pX?= =?utf-8?B?azVKNThNWENRMk0ybXQ1NDhuZnVVa0l3dWJ2dm9wcTJHMDFESnBJRFRkWnhq?= =?utf-8?B?WldyYTY5b2dqQVBzMW43LzBmM1c4QXY2bE9GZHZtSFZObmlJN0Jud0tsbFlX?= =?utf-8?B?STljUUNZUUppUENyWm95Q1BSQmYvWDY2RUp3a1ROeGtWamdveDR0d0JwS3c1?= =?utf-8?B?bk9OdU9IM216T0kzcjJrWlhucTBla0pZb1B2SElmUEwvSDJabzR0RXJJMXFF?= =?utf-8?B?VDZZODg5TmVDVVVmckorQi9IOStITGNWck5nQ3dJRGVaZlVBM29EMmRVN2Jx?= =?utf-8?B?YmlPVEtHVXZxSVBiNVpHTGpNbVhyVXJQemYvdDVGb2dPNVFWdDdFTUd5MnFZ?= =?utf-8?B?QmRoNVlyQ1BNMnhJSy9hNVRxcGdGWGhRNW92bzl0TmhtMjduZE1kMzdCdGRW?= =?utf-8?B?VlRqNDhtcGxSN1o4emU0bEVtWU1ockZEajdJaHAwUHlFNVFBZTJQb3VpR2RO?= =?utf-8?Q?T6SzRIev?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2d6b0f5-fd7d-4794-97fa-08d8c8beb771 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2021 03:41:11.7772 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pgPCJDRvjDK0uV/dciaL9uxX9dTmYAS6m3jepucXAiXDbTscayvLXtSld6s9HDu9dgjUoc6WebWXJKvkVoOYYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3483 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXMgdGhlIGZpbGUgZGVzY3JpcHRpb24gY29ycmVjdD8g8J+Yig0KDQo+ICsjIyBAIEZzcERzY0Jz ZjJZYW1sLnB5DQo+IA0KPiArIyBUaGlzIHNjcmlwdCBjb252ZXJ0IEZTUCBCU0YgZm9ybWF0IGlu dG8gRFNDIGZvcm1hdA0KDQpUaGFua3MsDQpTdGFyDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+IFNl bnQ6IFRodXJzZGF5LCBGZWJydWFyeSA0LCAyMDIxIDg6MzYgQU0NCj4gVG86IExvbywgVHVuZyBM dW4gPHR1bmcubHVuLmxvb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzog TG9vLCBUdW5nIEx1biA8dHVuZy5sdW4ubG9vQGludGVsLmNvbT47IE1hLCBNYXVyaWNlDQo+IDxt YXVyaWNlLm1hQGludGVsLmNvbT47IERlc2ltb25lLCBOYXRoYW5pZWwgTA0KPiA8bmF0aGFuaWVs LmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxGc3AyUGtnOiBBZGQgWUFNTCBmaWxlIGdlbmVy YXRpb24gc3VwcG9ydA0KPiANCj4gDQo+IFJldmlld2VkLWJ5OiBDaGFzZWwgQ2hpdSA8Y2hhc2Vs LmNoaXVAaW50ZWwuY29tPg0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiBGcm9tOiBMb28gVHVuZyBMdW4gPHR1bmcubHVuLmxvb0BpbnRlbC5jb20+DQo+ID4gU2Vu dDogV2VkbmVzZGF5LCBGZWJydWFyeSAzLCAyMDIxIDg6MzYgQU0NCj4gPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gPiBDYzogTG9vLCBUdW5nIEx1biA8dHVuZy5sdW4ubG9vQGludGVsLmNv bT47IE1hLCBNYXVyaWNlDQo+ID4gPG1hdXJpY2UubWFAaW50ZWwuY29tPjsgRGVzaW1vbmUsIE5h dGhhbmllbCBMDQo+ID4gPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+Ow0KPiBDaGl1LA0KPiA+IENoYXNlbCA8Y2hhc2VsLmNo aXVAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtQQVRDSF0gSW50ZWxGc3AyUGtnOiBBZGQgWUFN TCBmaWxlIGdlbmVyYXRpb24gc3VwcG9ydA0KPiA+DQo+ID4gQWRkIHN1cHBvcnQgZm9yIFlBTUwg Zm9ybWF0IGZpbGUgZ2VuZXJhdGlvbiBpbiBhZGRpdGlvbg0KPiA+IHRvIGN1cnJlbnQgQlNGIHN0 cnVjdHVyZS4gQ29uZmlndXJhdGlvbiBvZiBZQU1MIGZvcm1hdA0KPiA+IG91dHB1dCB3aWxsIGJl IHN1cHBvcnRlZCBieSBhbiBvcGVuIHNvdXJjZSBDb25maWdFZGl0b3IuDQo+ID4NCj4gPiBSZWZl cmVuY2UgdG8gWUFNTCBjb2RlLCB0ZXN0IGFuZCBDb25maWdFZGl0b3IgaXMgYXQNCj4gPiBodHRw czovL2dpdGh1Yi5jb20vam9zaGxvby9mc3BfeWFtbF9jZmcvdHJlZS9tYXN0ZXIvVG9vbHMNCj4g Pg0KPiA+IEEgdW5pdCB0ZXN0IGlzIGFsc28gYWRkZWQgaW4gVGVzdHMgZm9sZGVyLiBUaGlzIHRl c3QgY29tcGFyZXMNCj4gPiB0aGUgZ2VuZXJhdGVkIHlhbWwgZmlsZSBhZ2FpbnN0IHRoZSBleHBl Y3RlZCBvdXRwdXQgdG8ga25vdw0KPiA+IGlmIGl0IGlzIGNvbnN0cnVjdGluZyB0aGUgeWFtbCBk YXRhIHN0cnVjdHVyZSBhcyBleHBlY3RlZC4NCj4gPg0KPiA+IENjOiBNYXVyaWNlIE1hIDxtYXVy aWNlLm1hQGludGVsLmNvbT4NCj4gPiBDYzogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVz aW1vbmVAaW50ZWwuY29tPg0KPiA+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+ DQo+ID4gQ2M6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+ID4gU2lnbmVk LW9mZi1ieTogTG9vIFR1bmcgTHVuIDx0dW5nLmx1bi5sb29AaW50ZWwuY29tPg0KPiA+IC0tLQ0K PiA+ICBJbnRlbEZzcDJQa2cvVG9vbHMvRnNwRHNjQnNmMllhbWwucHkgICAgICAgICAgfCA4NzUg KysrKysrKysrKysrKysrKysrDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkg ICAgICAgICAgICAgICB8IDQ3MCArKysrKysrLS0tDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9U ZXN0cy9FeHBlY3RlZEZzcFVwZC5oICAgICB8ICAxNiArDQo+ID4gIEludGVsRnNwMlBrZy9Ub29s cy9UZXN0cy9FeHBlY3RlZEZzcG1VcGQuaCAgICB8ICA3NSArKw0KPiA+ICBJbnRlbEZzcDJQa2cv VG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BzVXBkLmggICAgfCAgNjkgKysNCj4gPiAgSW50ZWxGc3Ay UGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwdFVwZC5oICAgIHwgIDg3ICsrDQo+ID4gIEludGVs RnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91dHB1dC5ic2YgICB8ICA4OCArKw0KPiA+ICBJ bnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQueWFtbCAgfCAyNzAgKysrKysr DQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9RZW11RnNwUGtnLmRzYyAgICAgICB8IDQ2 OSArKysrKysrKysrDQo+ID4gIEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy90ZXN0X3lhbWwucHkg ICAgICAgICB8ICA5NiArKw0KPiA+ICAuLi4vVXNlck1hbnVhbHMvRnNwRHNjQnNmMllhbWxVc2Vy TWFudWFsLm1kICAgfCAgMzkgKw0KPiA+ICAxMSBmaWxlcyBjaGFuZ2VkLCAyNDIyIGluc2VydGlv bnMoKyksIDEzMiBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNw MlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5weQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgSW50 ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwVXBkLmgNCj4gPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcG1VcGQuaA0KPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQgSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwc1Vw ZC5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBJbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhw ZWN0ZWRGc3B0VXBkLmgNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29s cy9UZXN0cy9FeHBlY3RlZE91dHB1dC5ic2YNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEludGVs RnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91dHB1dC55YW1sDQo+ID4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBJbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvUWVtdUZzcFBrZy5kc2MNCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IEludGVsRnNwMlBrZy9Ub29scy9UZXN0cy90ZXN0X3lhbWwucHkNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gSW50ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxz L0ZzcERzY0JzZjJZYW1sVXNlck1hbnVhbC5tZA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVs RnNwMlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5weQ0KPiA+IGIvSW50ZWxGc3AyUGtnL1Rvb2xz L0ZzcERzY0JzZjJZYW1sLnB5DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAw MDAwMDAwMDAwLi4zOTVmYzJjNTI2DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ludGVs RnNwMlBrZy9Ub29scy9Gc3BEc2NCc2YyWWFtbC5weQ0KPiA+IEBAIC0wLDAgKzEsODc1IEBADQo+ ID4gKyMhL3Vzci9iaW4vZW52IHB5dGhvbg0KPiA+DQo+ID4gKyMjIEAgRnNwRHNjQnNmMllhbWwu cHkNCj4gPg0KPiA+ICsjIFRoaXMgc2NyaXB0IGNvbnZlcnQgRlNQIEJTRiBmb3JtYXQgaW50byBE U0MgZm9ybWF0DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgQ29weXJpZ2h0KGMpIDIwMjEsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiArIw0K PiA+DQo+ID4gKyMjDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAraW1wb3J0IG9zDQo+ID4NCj4gPiAr aW1wb3J0IHJlDQo+ID4NCj4gPiAraW1wb3J0IHN5cw0KPiA+DQo+ID4gK2Zyb20gZGF0ZXRpbWUg aW1wb3J0IGRhdGUNCj4gPg0KPiA+ICtmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGlj dA0KPiA+DQo+ID4gK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCByZWR1Y2UNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICtmcm9tIEdlbkNmZ09wdCBpbXBvcnQgQ0dlbkNmZ09wdA0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gK19fY29weXJpZ2h0X3RtcF9fID0gIiIiIyMgQGZpbGUNCj4gPg0KPiA+ICsjDQo+ID4N Cj4gPiArIyAgWUFNTCBDRkdEQVRBICVzIEZpbGUuDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMg IENvcHlyaWdodChjKSAlNGQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gPg0KPiA+ICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjIw0KPiA+DQo+ID4gKyIiIg0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gK19fY29weXJpZ2h0X2RzY19fID0gIiIiIyMgQGZpbGUNCj4gPg0KPiA+ ICsjDQo+ID4NCj4gPiArIyAgQ29weXJpZ2h0IChjKSAlMDRkLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiArIyAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICtbUGNkc0R5bmFtaWNWcGQuVXBkXQ0KPiA+DQo+ID4gKyAgIw0K PiA+DQo+ID4gKyAgIyBHbG9iYWwgZGVmaW5pdGlvbnMgaW4gQlNGDQo+ID4NCj4gPiArICAjICFC U0YgQkxPQ0s6e05BTUU6IkZTUCBVUEQgQ29uZmlndXJhdGlvbiIsIFZFUjoiMC4xIn0NCj4gPg0K PiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsiIiINCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICtkZWYgQnl0ZXMyVmFsKEJ5dGVzKToNCj4gPg0KPiA+ICsgICAgcmV0dXJu IHJlZHVjZShsYW1iZGEgeCwgeTogKHggPDwgOCkgfCB5LCBCeXRlc1s6Oi0xXSkNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtjbGFzcyBDRnNwQnNmMkRzYzoNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJzZl9maWxlKToNCj4gPg0KPiA+ICsg ICAgICAgIHNlbGYuY2ZnX2xpc3QgPSBDRnNwQnNmMkRzYy5wYXJzZV9ic2YoYnNmX2ZpbGUpDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBnZXRfZHNjX2xpbmVzKHNlbGYpOg0KPiA+DQo+ ID4gKyAgICAgICAgcmV0dXJuIENGc3BCc2YyRHNjLmdlbmVyYXRlX2RzYyhzZWxmLmNmZ19saXN0 KQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgc2F2ZV9kc2Moc2VsZiwgZHNjX2ZpbGUp Og0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIENGc3BCc2YyRHNjLmdlbmVyYXRlX2RzYyhzZWxm LmNmZ19saXN0LCBkc2NfZmlsZSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgQHN0YXRpY21l dGhvZA0KPiA+DQo+ID4gKyAgICBkZWYgcGFyc2VfYnNmKGJzZl9maWxlKToNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgICAgIGZkID0gb3Blbihic2ZfZmlsZSwgJ3InKQ0KPiA+DQo+ID4gKyAg ICAgICAgYnNmX3R4dCA9IGZkLnJlYWQoKQ0KPiA+DQo+ID4gKyAgICAgICAgZmQuY2xvc2UoKQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgZmluZF9saXN0ID0gW10NCj4gPg0KPiA+ICsg ICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ1xzK0ZpbmRccysiKC4qPykiKC4qPyleXHMrXCQo Lio/KVxzKycsIHJlLlMgfA0KPiA+IHJlLk1VTFRJTElORSkNCj4gPg0KPiA+ICsgICAgICAgIGZv ciBtYXRjaCBpbiByZWdleC5maW5kaXRlcihic2ZfdHh0KToNCj4gPg0KPiA+ICsgICAgICAgICAg ICBmaW5kID0gbWF0Y2guZ3JvdXAoMSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBuYW1lID0gbWF0 Y2guZ3JvdXAoMykNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBub3QgbmFtZS5lbmRzd2l0aCgn X1JldmlzaW9uJyk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi VW5leHBlY3RlZCBDRkcgaXRlbSBmb2xsb3dpbmcgJ0ZpbmQnICEiKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGZpbmRfbGlzdC5hcHBlbmQoKG5hbWUsIGZpbmQpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgaWR4ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgY291bnQgPSAwDQo+ID4NCj4g PiArICAgICAgICBwcmVmaXggPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgY2hrX2RpY3QgPSB7fQ0K PiA+DQo+ID4gKyAgICAgICAgY2ZnX2xpc3QgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgY2ZnX3Rl bXAgPSB7J2ZpbmQnOiAnJywgJ2NuYW1lJzogJycsICdsZW5ndGgnOiAwLCAndmFsdWUnOiAnMCcs ICd0eXBlJzoNCj4gJ1Jlc2VydmVkJywNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICdl bWJlZCc6ICcnLCAncGFnZSc6ICcnLCAnb3B0aW9uJzogJycsICdpbnN0YW5jZSc6IDB9DQo+ID4N Cj4gPiArICAgICAgICByZWdleCA9DQo+ID4NCj4gcmUuY29tcGlsZShyJ15ccysoXCQoLio/KXxT a2lwKVxzKyhcZCspXHMrYnl0ZXMoXHMrXCRfREVGQVVMVF9ccys9XHMrKC4rDQo+ID8pKT8kJywN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICByZS5TIHwgcmUuTVVMVElMSU5F KQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgZm9yIG1hdGNoIGluIHJlZ2V4LmZpbmRp dGVyKGJzZl90eHQpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGRsZW4gPSBpbnQobWF0Y2guZ3Jv dXAoMykpDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMSkgPT0gJ1NraXAn Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBrZXkgPSAnZ1BsYXRmb3JtRnNwUGtnVG9rZW5T cGFjZUd1aWRfQnNmU2tpcCVkJyAlIGlkeA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICB2YWwg PSAnLCAnLmpvaW4oWyclMDJYJyAlIG9yZChpKSBmb3IgaSBpbiAnXHgwMCcgKiBkbGVuXSkNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgaWR4ICs9IDENCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgb3B0aW9uID0gJyRTS0lQJw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgIGtleSA9IG1hdGNoLmdyb3VwKDIpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIHZhbCA9IG1hdGNoLmdyb3VwKDUpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IG9wdGlvbiA9ICcnDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW0g PSBkaWN0KGNmZ190ZW1wKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGZpbmRzID0gW2kgZm9yIGkg aW4gZmluZF9saXN0IGlmIGlbMF0gPT0ga2V5XQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGxl bihmaW5kcykgPiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBjb3VudCA+PSAxOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIyBBcHBlbmQgYSBkdW1teSBvbmUNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgIGNmZ19pdGVtWydjbmFtZSddID0gJ0R1bW15Jw0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2xpc3QuYXBwZW5kKGRpY3QoY2ZnX2l0ZW0p KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2xpc3RbLTFdWydlbWJlZCddID0g JyVzOlRBR18lMDNYOkVORCcgJSAocHJlZml4LA0KPiBvcmQocHJlZml4Wy0xXSkpDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgIHByZWZpeCA9IGZpbmRzWzBdWzFdDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGNmZ19pdGVtWydlbWJlZCddID0gJyVzOlRBR18lMDNYOlNUQVJUJyAlIChwcmVm aXgsIG9yZChwcmVmaXhbLQ0KPiAxXSkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNmZ19p dGVtWydmaW5kJ10gPSBwcmVmaXgNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgY2ZnX2l0ZW1b J2NuYW1lJ10gPSAnU2lnbmF0dXJlJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBjZmdfaXRl bVsnbGVuZ3RoJ10gPSBsZW4oZmluZHNbMF1bMV0pDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGNmZ19pdGVtWyd2YWx1ZSddID0gJzB4JVgnICUgQnl0ZXMyVmFsKGZpbmRzWzBdWzFdLmVuY29k ZSgnVVRGLQ0KPiA4JykpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNmZ19saXN0LmFwcGVu ZChkaWN0KGNmZ19pdGVtKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgY2ZnX2l0ZW0gPSBk aWN0KGNmZ190ZW1wKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBmaW5kX2xpc3QucG9wKDAp DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvdW50ID0gMA0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgICAgIGNmZ19pdGVtWydjbmFtZSddID0ga2V5DQo+ID4NCj4gPiArICAgICAg ICAgICAgY2ZnX2l0ZW1bJ2xlbmd0aCddID0gZGxlbg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNm Z19pdGVtWyd2YWx1ZSddID0gdmFsDQo+ID4NCj4gPiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ29w dGlvbiddID0gb3B0aW9uDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYga2V5 IG5vdCBpbiBjaGtfZGljdC5rZXlzKCk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNoa19k aWN0W2tleV0gPSAwDQo+ID4NCj4gPiArICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgY2hrX2RpY3Rba2V5XSArPSAxDQo+ID4NCj4gPiArICAgICAgICAgICAgY2Zn X2l0ZW1bJ2luc3RhbmNlJ10gPSBjaGtfZGljdFtrZXldDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAgICAgICAgICAgY2ZnX2xpc3QuYXBwZW5kKGNmZ19pdGVtKQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGNvdW50ICs9IDENCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGlmIHByZWZpeDoN Cj4gPg0KPiA+ICsgICAgICAgICAgICBjZmdfaXRlbSA9IGRpY3QoY2ZnX3RlbXApDQo+ID4NCj4g PiArICAgICAgICAgICAgY2ZnX2l0ZW1bJ2NuYW1lJ10gPSAnRHVtbXknDQo+ID4NCj4gPiArICAg ICAgICAgICAgY2ZnX2l0ZW1bJ2VtYmVkJ10gPSAnJXM6JTAzWDpFTkQnICUgKHByZWZpeCwgb3Jk KHByZWZpeFstMV0pKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ19saXN0LmFwcGVuZChjZmdf aXRlbSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIG9wdGlvbl9kaWN0ID0ge30NCj4g Pg0KPiA+ICsgICAgICAgIHNlbHJlZyA9IHJlLmNvbXBpbGUocidccytTZWxlY3Rpb25ccyooLis/ KVxzKixccyoiKC4qPykiJCcsIHJlLlMgfA0KPiA+IHJlLk1VTFRJTElORSkNCj4gPg0KPiA+ICsg ICAgICAgIHJlZ2V4ID0gcmUuY29tcGlsZShyJ15MaXN0XHMmKC4rPykkKC4rPyleRW5kTGlzdCQn LCByZS5TIHwNCj4gcmUuTVVMVElMSU5FKQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIG1hdGNoIGlu IHJlZ2V4LmZpbmRpdGVyKGJzZl90eHQpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGtleSA9IG1h dGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgb3B0aW9uX2RpY3Rba2V5XSA9IFtd DQo+ID4NCj4gPiArICAgICAgICAgICAgZm9yIHNlbGVjdCBpbiBzZWxyZWcuZmluZGl0ZXIobWF0 Y2guZ3JvdXAoMikpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBvcHRpb25fZGljdFtrZXld LmFwcGVuZCgoaW50KHNlbGVjdC5ncm91cCgxKSwgMCksIHNlbGVjdC5ncm91cCgyKSkpDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAgICAgICBjaGtfZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAg ICBwYWdlcmVnID0gcmUuY29tcGlsZShyJ15QYWdlXHMiKC4qPykiJCguKz8pXkVuZFBhZ2UkJywg cmUuUyB8DQo+ID4gcmUuTVVMVElMSU5FKQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIG1hdGNoIGlu IHBhZ2VyZWcuZmluZGl0ZXIoYnNmX3R4dCk6DQo+ID4NCj4gPiArICAgICAgICAgICAgcGFnZSA9 IG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgZm9yIGxpbmUgaW4gbWF0Y2gu Z3JvdXAoMikuc3BsaXRsaW5lcygpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBtYXRjaCA9 DQo+IHJlLm1hdGNoKHInXHMrKENvbWJvfEVkaXROdW0pXHNcJCguKz8pLFxzIiguKj8pIixccygu Kz8pLCQnLA0KPiA+IGxpbmUpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIG1hdGNoOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY25hbWUgPSBtYXRjaC5ncm91cCgyKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgY25hbWUgbm90IGluIGNoa19kaWN0LmtleXMo KToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGtfZGljdFtjbmFtZV0gPSAw DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGNoa19kaWN0W2NuYW1lXSArPSAxDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICBpbnN0YW5jZSA9IGNoa19kaWN0W2NuYW1lXQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgY2ZnX2lkeHMgPSBbaSBmb3IgaSwgaiBpbiBlbnVtZXJhdGUoY2ZnX2xpc3Qp IGlmIGpbJ2NuYW1lJ10gPT0gY25hbWUNCj4gYW5kDQo+ID4galsnaW5zdGFuY2UnXSA9PSBpbnN0 YW5jZV0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIGxlbihjZmdfaWR4cykgIT0g MToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk11 bHRpcGxlIENGRyBpdGVtICclcycgZm91bmQgISIgJSBjbmFtZSkNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIGNmZ19pdGVtID0gY2ZnX2xpc3RbY2ZnX2lkeHNbMF1dDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICBjZmdfaXRlbVsncGFnZSddID0gcGFnZQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ3R5cGUnXSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICBjZmdfaXRlbVsncHJvbXB0J10gPSBtYXRjaC5ncm91 cCgzKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ3JhbmdlJ10gPSBO b25lDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBjZmdfaXRlbVsndHlwZSddID09 ICdDb21ibyc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgY2ZnX2l0ZW1bJ29w dGlvbiddID0gb3B0aW9uX2RpY3RbbWF0Y2guZ3JvdXAoNClbMTpdXQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgZWxpZiBjZmdfaXRlbVsndHlwZSddID09ICdFZGl0TnVtJzoNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjZmdfaXRlbVsnb3B0aW9uJ10gPSBtYXRjaC5n cm91cCg0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHInXHMr IEhlbHBccyIoLio/KSIkJywgbGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgbWF0 Y2g6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBjZmdfaXRlbVsnaGVscCddID0gbWF0 Y2guZ3JvdXAoMSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgbWF0Y2gg PSByZS5tYXRjaChyJ1xzKyJWYWxpZFxzcmFuZ2U6XHMoLiopIiQnLCBsaW5lKQ0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBpZiBtYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg IHBhcnRzID0gbWF0Y2guZ3JvdXAoMSkuc3BsaXQoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgY2ZnX2l0ZW1bJ29wdGlvbiddID0gKA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgIChpbnQocGFydHNbMF0sIDApLCBpbnQocGFydHNbMl0sIDApLCBjZmdfaXRlbVsnb3B0 aW9uJ10pKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIGNmZ19saXN0DQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIEBzdGF0aWNtZXRob2QNCj4gPg0KPiA+ICsgICAgZGVm IGdlbmVyYXRlX2RzYyhvcHRpb25fbGlzdCwgZHNjX2ZpbGU9Tm9uZSk6DQo+ID4NCj4gPiArICAg ICAgICBkc2NfbGluZXMgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgaGVhZGVyID0gJyVzJyAlIChf X2NvcHlyaWdodF9kc2NfXyAlIGRhdGUudG9kYXkoKS55ZWFyKQ0KPiA+DQo+ID4gKyAgICAgICAg ZHNjX2xpbmVzLmV4dGVuZChoZWFkZXIuc3BsaXRsaW5lcygpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgcGFnZXMgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIGNmZ19pdGVtIGlu IG9wdGlvbl9saXN0Og0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGNmZ19pdGVtWydwYWdlJ10g YW5kIChjZmdfaXRlbVsncGFnZSddIG5vdCBpbiBwYWdlcyk6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgIHBhZ2VzLmFwcGVuZChjZmdfaXRlbVsncGFnZSddKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgcGFnZV9pZCA9IDANCj4gPg0KPiA+ICsgICAgICAgIGZvciBwYWdlIGluIHBh Z2VzOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGRzY19saW5lcy5hcHBlbmQoJyAgIyAhQlNGIFBB R0VTOntQRyUwMlg6OiIlcyJ9JyAlIChwYWdlX2lkLA0KPiBwYWdlKSkNCj4gPg0KPiA+ICsgICAg ICAgICAgICBwYWdlX2lkICs9IDENCj4gPg0KPiA+ICsgICAgICAgIGRzY19saW5lcy5hcHBlbmQo JycpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBsYXN0X3BhZ2UgPSAnJw0KPiA+DQo+ ID4gKyAgICAgICAgZm9yIG9wdGlvbiBpbiBvcHRpb25fbGlzdDoNCj4gPg0KPiA+ICsgICAgICAg ICAgICBkc2NfbGluZXMuYXBwZW5kKCcnKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGRlZmF1bHQg PSBvcHRpb25bJ3ZhbHVlJ10NCj4gPg0KPiA+ICsgICAgICAgICAgICBwb3MgPSBvcHRpb25bJ2Nu YW1lJ10uZmluZCgnXycpDQo+ID4NCj4gPiArICAgICAgICAgICAgbmFtZSA9IG9wdGlvblsnY25h bWUnXVtwb3MgKyAxOl0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBvcHRp b25bJ2ZpbmQnXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgn ICAjICFCU0YgRklORDp7JXN9JyAlIG9wdGlvblsnZmluZCddKQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcnKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGlmIG9wdGlvblsnaW5zdGFuY2UnXSA+IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIG5hbWUgPSBuYW1lICsgJ18lcycgJSBvcHRpb25bJ2luc3RhbmNlJ10NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBvcHRpb25bJ2VtYmVkJ106DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIGRzY19saW5lcy5hcHBlbmQoJyAgIyAhSERSIEVNQkVEOnslc30nICUgb3B0 aW9uWydlbWJlZCddKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIG9wdGlv blsndHlwZSddID09ICdSZXNlcnZlZCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGRzY19s aW5lcy5hcHBlbmQoJyAgIyAhQlNGIE5BTUU6e1Jlc2VydmVkfSBUWVBFOntSZXNlcnZlZH0nKQ0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBvcHRpb25bJ29wdGlvbiddID09ICckU0tJUCc6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcgICMgIUJT RiBPUFRJT046eyRTS0lQfScpDQo+ID4NCj4gPiArICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgcHJvbXB0ID0gb3B0aW9uWydwcm9tcHQnXQ0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBsYXN0X3BhZ2UgIT0gb3B0aW9uWydwYWdlJ106 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBsYXN0X3BhZ2UgPSBvcHRpb25bJ3BhZ2Un XQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFC U0YgUEFHRTp7UEclMDJYfScgJQ0KPiA+IChwYWdlcy5pbmRleChvcHRpb25bJ3BhZ2UnXSkpKQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBvcHRpb25bJ3R5cGUnXSA9 PSAnQ29tYm8nOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVu ZCgnICAjICFCU0YgTkFNRTp7JXN9IFRZUEU6eyVzfScgJQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvbXB0LCBvcHRpb25bJ3R5cGUnXSkpDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICBvcHMgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgZm9yIHZhbCwgdGV4dCBpbiBvcHRpb25bJ29wdGlvbiddOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIG9wcy5hcHBlbmQoJzB4JXg6JXMnICUgKHZhbCwgdGV4dCkp DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcgICMgIUJT RiBPUFRJT046eyVzfScgJSAoJywgJy5qb2luKG9wcykpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICBlbGlmIG9wdGlvblsndHlwZSddID09ICdFZGl0TnVtJzoNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIGNmZ19sZW4gPSBvcHRpb25bJ2xlbmd0aCddDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICBpZiAnLCcgaW4gZGVmYXVsdCBhbmQgY2ZnX2xlbiA+IDg6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0YgTkFN RTp7JXN9IFRZUEU6e1RhYmxlfScgJQ0KPiAocHJvbXB0KSkNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBpZiBjZmdfbGVuID4gMTY6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNmZ19sZW4gPSAxNg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgIG9wcyA9IFtdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g cmFuZ2UoY2ZnX2xlbik6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w cy5hcHBlbmQoJyVYOjE6SEVYJyAlIGkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgZHNjX2xpbmVzLmFwcGVuZCgnICAjICFCU0YgT1BUSU9OOnslc30nICUgKCcsICcuam9pbihv cHMpKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgZHNjX2xpbmVzLmFwcGVuZCgNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJyAgIyAhQlNGIE5BTUU6eyVzfSBUWVBFOnslcywgJXMsKDB4 JVgsIDB4JVgpfScgJQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJv bXB0LCBvcHRpb25bJ3R5cGUnXSwgb3B0aW9uWydvcHRpb24nXVsyXSwNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblsnb3B0aW9uJ11bMF0sIG9wdGlvblsnb3B0 aW9uJ11bMV0pKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBkc2NfbGluZXMuYXBwZW5kKCcg ICMgIUJTRiBIRUxQOnslc30nICUgb3B0aW9uWydoZWxwJ10pDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICAgICAgICAgICAgaWYgJywnIGluIGRlZmF1bHQ6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGRlZmF1bHQgPSAneyVzfScgJSBkZWZhdWx0DQo+ID4NCj4gPiArICAgICAgICAgICAgZHNj X2xpbmVzLmFwcGVuZCgnICBnQ2ZnRGF0YS4lLTMwcyB8ICogfCAweCUwNFggfCAlcycgJQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIG9wdGlvblsnbGVuZ3Ro J10sIGRlZmF1bHQpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgaWYgZHNjX2ZpbGU6 DQo+ID4NCj4gPiArICAgICAgICAgICAgZmQgPSBvcGVuKGRzY19maWxlLCAndycpDQo+ID4NCj4g PiArICAgICAgICAgICAgZmQud3JpdGUoJ1xuJy5qb2luKGRzY19saW5lcykpDQo+ID4NCj4gPiAr ICAgICAgICAgICAgZmQuY2xvc2UoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcmV0 dXJuIGRzY19saW5lcw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2NsYXNzIENG c3BEc2MyWWFtbCgpOg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgX19pbml0X18oc2Vs Zik6DQo+ID4NCj4gPiArICAgICAgICBzZWxmLl9IZHJfa2V5X2xpc3QgPSBbJ0VNQkVEJywgJ1NU UlVDVCddDQo+ID4NCj4gPiArICAgICAgICBzZWxmLl9Cc2Zfa2V5X2xpc3QgPSBbJ05BTUUnLCAn SEVMUCcsICdUWVBFJywgJ1BBR0UnLCAnUEFHRVMnLCAnT1BUSU9OJywNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnQ09ORElUSU9OJywgJ09SREVSJywgJ01BUktFUics ICdTVUJUJywgJ0ZJRUxEJywgJ0ZJTkQnXQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5nZW5fY2Zn X2RhdGEgPSBOb25lDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmNmZ19yZWdfZXhwID0gcmUuY29t cGlsZShyIl4oW19hLXpBLVowLTkkXChcKV0rKVxzKlx8XHMqKDB4WzAtDQo+IDlBLQ0KPiA+IEZd K3xcKilccypcfCINCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgciJccyooXGQrfDB4WzAtOWEtZkEtRl0rKVxzKlx8XHMqKC4rKSIpDQo+ID4NCj4gPiAr ICAgICAgICBzZWxmLmJzZl9yZWdfZXhwID0gcmUuY29tcGlsZShyIiglcyk6eyguKz8pfSg/OiR8 XHMrKSIgJQ0KPiA+ICd8Jy5qb2luKHNlbGYuX0JzZl9rZXlfbGlzdCkpDQo+ID4NCj4gPiArICAg ICAgICBzZWxmLmhkcl9yZWdfZXhwID0gcmUuY29tcGlsZShyIiglcyk6eyguKz8pfSIgJQ0KPiAn fCcuam9pbihzZWxmLl9IZHJfa2V5X2xpc3QpKQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5wcmVm aXggPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi51bnVzZWRfaWR4ID0gMA0KPiA+DQo+ID4g KyAgICAgICAgc2VsZi5vZmZzZXQgPSAwDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmJhc2Vfb2Zm c2V0ID0gMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgbG9hZF9jb25maWdfZGF0YV9m cm9tX2RzYyhzZWxmLCBmaWxlX25hbWUpOg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4g PiArICAgICAgICBMb2FkIGFuZCBwYXJzZSBhIERTQyBDRkdEQVRBIGZpbGUuDQo+ID4NCj4gPiAr ICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIGdlbl9jZmdfZGF0YSA9IENHZW5DZmdPcHQo J0ZTUCcpDQo+ID4NCj4gPiArICAgICAgICBpZiBmaWxlX25hbWUuZW5kc3dpdGgoJy5kc2MnKToN Cj4gPg0KPiA+ICsgICAgICAgICAgICAjIGlmIGdlbl9jZmdfZGF0YS5QYXJzZURzY0ZpbGVZYW1s KGZpbGVfbmFtZSwgJycpICE9IDA6DQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgZ2VuX2NmZ19k YXRhLlBhcnNlRHNjRmlsZShmaWxlX25hbWUsICcnKSAhPSAwOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RTQyBmaWxlIHBhcnNpbmcgZXJyb3IgIScpDQo+ID4N Cj4gPiArICAgICAgICAgICAgaWYgZ2VuX2NmZ19kYXRhLkNyZWF0ZVZhckRpY3QoKSAhPSAwOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RTQyB2YXJpYWJsZSBj cmVhdGlvbiBlcnJvciAhJykNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBmaWxlICIlcyIgIScgJSBmaWxl X25hbWUpDQo+ID4NCj4gPiArICAgICAgICBnZW5fY2ZnX2RhdGEuVXBkYXRlRGVmYXVsdFZhbHVl KCkNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuZ2VuX2NmZ19kYXRhID0gZ2VuX2NmZ19kYXRhDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBwcmludF9kc2NfbGluZShzZWxmKToNCj4gPg0K PiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgRGVidWcgZnVuY3Rpb24gdG8gcHJp bnQgYWxsIERTQyBsaW5lcy4NCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAg ICAgZm9yIGxpbmUgaW4gc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xpbmVzOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgIHByaW50KGxpbmUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBmb3Jt YXRfdmFsdWUoc2VsZiwgZmllbGQsIHRleHQsIGluZGVudD0nJyk6DQo+ID4NCj4gPiArICAgICAg ICAiIiINCj4gPg0KPiA+ICsgICAgICAgIEZvcm1hdCBhIENGR0RBVEEgaXRlbSBpbnRvIFlBTUwg Zm9ybWF0Lg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBpZihub3Qg dGV4dC5zdGFydHN3aXRoKCchZXhwYW5kJykpIGFuZCAoJzogJyBpbiB0ZXh0KToNCj4gPg0KPiA+ ICsgICAgICAgICAgICB0Z3QgPSAnOicgaWYgZmllbGQgPT0gJ29wdGlvbicgZWxzZSAnLSAnDQo+ ID4NCj4gPiArICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgnOiAnLCB0Z3QpDQo+ID4N Cj4gPiArICAgICAgICBsaW5lcyA9IHRleHQuc3BsaXRsaW5lcygpDQo+ID4NCj4gPiArICAgICAg ICBpZiBsZW4obGluZXMpID09IDEgYW5kIGZpZWxkICE9ICdoZWxwJzoNCj4gPg0KPiA+ICsgICAg ICAgICAgICByZXR1cm4gdGV4dA0KPiA+DQo+ID4gKyAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsg ICAgICAgICAgICByZXR1cm4gJz5cbiAgICcgKyAnXG4gICAnLmpvaW4oW2luZGVudCArIGkubHN0 cmlwKCkgZm9yIGkgaW4gbGluZXNdKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgcmVm b3JtYXRfcGFnZXMoc2VsZiwgdmFsKToNCj4gPg0KPiA+ICsgICAgICAgICMgQ29udmVydCBYWFg6 WVlZIGludG8gWFhYOjpZWVkgZm9ybWF0IGZvciBwYWdlIGRlZmluaXRpb24NCj4gPg0KPiA+ICsg ICAgICAgIHBhcnRzID0gdmFsLnNwbGl0KCcsJykNCj4gPg0KPiA+ICsgICAgICAgIGlmIGxlbihw YXJ0cykgPD0gMToNCj4gPg0KPiA+ICsgICAgICAgICAgICByZXR1cm4gdmFsDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAgICAgICBuZXdfdmFsID0gW10NCj4gPg0KPiA+ICsgICAgICAgIGZvciBl YWNoIGluIHBhcnRzOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIG5vZGVzID0gZWFjaC5zcGxpdCgn OicpDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgbGVuKG5vZGVzKSA9PSAyOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBlYWNoID0gJyVzOjolcycgJSAobm9kZXNbMF0sIG5vZGVzWzFdKQ0K PiA+DQo+ID4gKyAgICAgICAgICAgIG5ld192YWwuYXBwZW5kKGVhY2gpDQo+ID4NCj4gPiArICAg ICAgICByZXQgPSAnLCcuam9pbihuZXdfdmFsKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIHJl dA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgcmVmb3JtYXRfc3RydWN0X3ZhbHVlKHNl bGYsIHV0eXBlLCB2YWwpOg0KPiA+DQo+ID4gKyAgICAgICAgIyBDb252ZXJ0IERTQyBVSU5UMTYv MzIvNjQgYXJyYXkgaW50byBuZXcgZm9ybWF0IGJ5DQo+ID4NCj4gPiArICAgICAgICAjIGFkZGlu ZyBwcmVmaXggMDowW1dEUV0gdG8gcHJvdmlkZSBoaW50IHRvIHRoZSBhcnJheSBmb3JtYXQNCj4g Pg0KPiA+ICsgICAgICAgIGlmIHV0eXBlIGluIFsnVUlOVDE2JywgJ1VJTlQzMicsICdVSU5UNjQn XToNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiB2YWwgYW5kIHZhbFswXSA9PSAneycgYW5kIHZh bFstMV0gPT0gJ30nOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiB1dHlwZSA9PSAnVUlO VDE2JzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHVuaXQgPSAnVycNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgZWxpZiB1dHlwZSA9PSAnVUlOVDMyJzoNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIHVuaXQgPSAnRCcNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxz ZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHVuaXQgPSAnUScNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgdmFsID0gJ3sgMDowJXMsICVzIH0nICUgKHVuaXQsIHZhbFsxOi0xXSkN Cj4gPg0KPiA+ICsgICAgICAgIHJldHVybiB2YWwNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAg ZGVmIHByb2Nlc3NfY29uZmlnKHNlbGYsIGNmZyk6DQo+ID4NCj4gPiArICAgICAgICBpZiAncGFn ZScgaW4gY2ZnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ1sncGFnZSddID0gc2VsZi5yZWZv cm1hdF9wYWdlcyhjZmdbJ3BhZ2UnXSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGlm ICdzdHJ1Y3QnIGluIGNmZzoNCj4gPg0KPiA+ICsgICAgICAgICAgICBjZmdbJ3ZhbHVlJ10gPSBz ZWxmLnJlZm9ybWF0X3N0cnVjdF92YWx1ZShjZmdbJ3N0cnVjdCddLCBjZmdbJ3ZhbHVlJ10pDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBwYXJzZV9kc2NfbGluZShzZWxmLCBkc2NfbGlu ZSwgY29uZmlnX2RpY3QsIGluaXRfZGljdCwgaW5jbHVkZSk6DQo+ID4NCj4gPiArICAgICAgICAi IiINCj4gPg0KPiA+ICsgICAgICAgIFBhcnNlIGEgbGluZSBpbiBEU0MgYW5kIHVwZGF0ZSB0aGUg Y29uZmlnIGRpY3Rpb25hcnkgYWNjb3JkaW5nbHkuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4g Pg0KPiA+ICsgICAgICAgIGluaXRfZGljdC5jbGVhcigpDQo+ID4NCj4gPiArICAgICAgICBtYXRj aCA9IHJlLm1hdGNoKHInZyhDZmdEYXRhfFx3K0ZzcFBrZ1Rva2VuU3BhY2VHdWlkKVwuKC4rKScs DQo+IGRzY19saW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgaWYgbWF0Y2g6DQo+ID4NCj4gPiArICAg ICAgICAgICAgbWF0Y2ggPSBzZWxmLmNmZ19yZWdfZXhwLm1hdGNoKG1hdGNoLmdyb3VwKDIpKQ0K PiA+DQo+ID4gKyAgICAgICAgICAgIGlmIG5vdCBtYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2Nu YW1lJ10gPSBzZWxmLnByZWZpeCArIG1hdGNoLmdyb3VwKDEpDQo+ID4NCj4gPiArICAgICAgICAg ICAgdmFsdWUgPSBtYXRjaC5ncm91cCg0KS5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAgICAgICAg bGVuZ3RoID0gbWF0Y2guZ3JvdXAoMykuc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNv bmZpZ19kaWN0WydsZW5ndGgnXSA9IGxlbmd0aA0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNvbmZp Z19kaWN0Wyd2YWx1ZSddID0gdmFsdWUNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBtYXRjaC5n cm91cCgyKSA9PSAnKic6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHNlbGYub2Zmc2V0ICs9 IGludChsZW5ndGgsIDApDQo+ID4NCj4gPiArICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgb3JnX29mZnNldCA9IGludChtYXRjaC5ncm91cCgyKSwgMCkNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgaWYgb3JnX29mZnNldCA9PSAwOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5iYXNlX29mZnNldCA9IHNlbGYub2Zmc2V0DQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgIG9mZnNldCA9IG9yZ19vZmZzZXQgKyBzZWxmLmJhc2Vfb2Zmc2V0DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIHNlbGYub2Zmc2V0ICE9IG9mZnNldDoNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IHNlbGYub2Zmc2V0Og0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXRfZGljdFsncGFkZGluZyddID0gb2Zmc2V0 IC0gc2VsZi5vZmZzZXQNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgc2VsZi5vZmZzZXQgPSBv ZmZzZXQgKyBpbnQobGVuZ3RoLCAwKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJldHVybiBUcnVl DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHIiXlxzKiNc cyshKFs8Pl0pXHMraW5jbHVkZVxzKyguKykiLCBkc2NfbGluZSkNCj4gPg0KPiA+ICsgICAgICAg IGlmIG1hdGNoIGFuZCBsZW4oY29uZmlnX2RpY3QpID09IDA6DQo+ID4NCj4gPiArICAgICAgICAg ICAgIyAhaW5jbHVkZSBzaG91bGQgbm90IGJlIGluc2lkZSBhIGNvbmZpZyBmaWVsZA0KPiA+DQo+ ID4gKyAgICAgICAgICAgICMgaWYgc28sIGRvIG5vdCBjb252ZXJ0IGluY2x1ZGUgaW50byBZQU1M DQo+ID4NCj4gPiArICAgICAgICAgICAgaW5pdF9kaWN0ID0gZGljdChjb25maWdfZGljdCkNCj4g Pg0KPiA+ICsgICAgICAgICAgICBjb25maWdfZGljdC5jbGVhcigpDQo+ID4NCj4gPiArICAgICAg ICAgICAgY29uZmlnX2RpY3RbJ2NuYW1lJ10gPSAnJEFDVElPTicNCj4gPg0KPiA+ICsgICAgICAg ICAgICBpZiBtYXRjaC5ncm91cCgxKSA9PSAnPCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGNvbmZpZ19kaWN0WydpbmNsdWRlJ10gPSBtYXRjaC5ncm91cCgyKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydpbmNs dWRlJ10gPSAnJw0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJldHVybiBUcnVlDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHIiXlxzKiNccysoIUJTRnwhSERS KVxzKyguKykiLCBkc2NfbGluZSkNCj4gPg0KPiA+ICsgICAgICAgIGlmIG5vdCBtYXRjaDoNCj4g Pg0KPiA+ICsgICAgICAgICAgICByZXR1cm4gRmFsc2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg ICAgICAgIHJlbWFpbmluZyA9IG1hdGNoLmdyb3VwKDIpDQo+ID4NCj4gPiArICAgICAgICBpZiBt YXRjaC5ncm91cCgxKSA9PSAnIUJTRic6DQo+ID4NCj4gPiArICAgICAgICAgICAgcmVzdWx0ID0g c2VsZi5ic2ZfcmVnX2V4cC5maW5kYWxsKHJlbWFpbmluZykNCj4gPg0KPiA+ICsgICAgICAgICAg ICBpZiBub3QgcmVzdWx0Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBmb3IgZWFjaCBpbiByZXN1bHQ6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgIGtleSA9IGVhY2hbMF0ubG93ZXIoKQ0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICB2YWwgPSBlYWNoWzFdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGlmIGtleSA9PSAnZmllbGQnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9 IGVhY2hbMV0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmICc6JyBub3QgaW4gbmFt ZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0lu Y29ycmVjdCBiaXQgZmllbGQgZm9ybWF0ICEnKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgcGFydHMgPSBuYW1lLnNwbGl0KCc6JykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg IGNvbmZpZ19kaWN0WydsZW5ndGgnXSA9IHBhcnRzWzFdDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBjb25maWdfZGljdFsnY25hbWUnXSA9ICdAJyArIHBhcnRzWzBdDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICBlbGlmIGtleSBpbiBbJ3BhZ2VzJywgJ3BhZ2UnLCAnZmluZCddOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgaW5pdF9kaWN0ID0gZGljdChjb25maWdfZGljdCkNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0LmNsZWFyKCkNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydjbmFtZSddID0gJyRBQ1RJT04nDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2ZpbmQnOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0WydmaW5kJ10gPSB2YWwNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX2RpY3RbJ3BhZ2UnXSA9IHZhbA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxpZiBrZXkgPT0gJ3N1YnQn Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBlYWNoWzFdLnNwbGl0KCc6JykNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHRtcF9uYW1lID0gcGFydHNbMF1bOi01XQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgdG1wX25hbWUgPT0gJ0NGR0hEUic6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgY2ZnX3RhZyA9ICdfJEZGRl8nDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgc3ZhbCA9ICchZXhwYW5kIHsgJXNfVE1QTCA6IFsg JyAlIHRtcF9uYW1lICsgJyVzLCAlcywgJyAlDQo+ID4gKHBhcnRzWzFdLCBjZmdfdGFnKSBcDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJywgJy5qb2luKHBhcnRz WzI6XSkgKyAnIF0gfScNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc3ZhbCA9ICchZXhwYW5kIHsgJXNfVE1QTCA6 IFsgJyAlIHRtcF9uYW1lICsgJywgJy5qb2luKHBhcnRzWzE6XSkNCj4gKw0KPiA+ICcgXSB9Jw0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2NuYW1lJ10gPSB0bXBfbmFtZQ0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2V4cGFuZCddID0gc3Zh bA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIGtl eSBpbiBbJ25hbWUnLCAnaGVscCcsICdvcHRpb24nXSBhbmQgdmFsLnN0YXJ0c3dpdGgoJysnKToN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBjb25maWdfZGljdFtrZXld ICsgJ1xuJyArIHZhbFsxOl0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIHZhbC5z dHJpcCgpID09ICcnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9ICIn JyINCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0W2tleV0gPSB2YWwN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAg ICAgbWF0Y2ggPSBzZWxmLmhkcl9yZWdfZXhwLm1hdGNoKHJlbWFpbmluZykNCj4gPg0KPiA+ICsg ICAgICAgICAgICBpZiBub3QgbWF0Y2g6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIHJldHVy biBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGtleSA9IG1hdGNoLmdyb3VwKDEpDQo+ID4N Cj4gPiArICAgICAgICAgICAgcmVtYWluaW5nID0gbWF0Y2guZ3JvdXAoMikNCj4gPg0KPiA+ICsg ICAgICAgICAgICBpZiBrZXkgPT0gJ0VNQkVEJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg cGFydHMgPSByZW1haW5pbmcuc3BsaXQoJzonKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBu YW1lcyA9IHBhcnRzWzBdLnNwbGl0KCcsJykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYg cGFydHNbLTFdID09ICdFTkQnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcHJlZml4 ID0gJz4nDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICBwcmVmaXggPSAnPCcNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgc2tp cCA9IEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIHBhcnRzWzFdLnN0YXJ0c3dp dGgoJ1RBR18nKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHRhZ190eHQgPSAnJXM6 JXMnICUgKG5hbWVzWzBdLCBwYXJ0c1sxXSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxz ZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHRhZ190eHQgPSBuYW1lc1swXQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgcGFydHNbMl0gaW4gWydTVEFSVCcsICdFTkQn XToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBuYW1lc1swXSA9PSAnUENJ RV9SUF9QSU5fQ1RSTFtdJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2tpcCA9IFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdfdHh0ID0gJyVzOiVzJyAlIChu YW1lc1swXSwgcGFydHNbMV0pDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIG5vdCBza2lw Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3QuY2xlYXIoKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2RpY3RbJ2NuYW1lJ10gPSBwcmVmaXgg KyB0YWdfdHh0DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGtleSA9PSAnU1RSVUNUJzoNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgdGV4dCA9IHJlbWFpbmluZy5zdHJpcCgpDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgIGNvbmZpZ19kaWN0W2tleS5sb3dlcigpXSA9IHRleHQNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgICBkZWYgcHJvY2Vzc190ZW1wbGF0ZV9saW5lcyhzZWxmLCBsaW5lcyk6DQo+ID4NCj4gPiAr ICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIFByb2Nlc3MgYSBsaW5lIGluIERTQyB0ZW1w bGF0ZSBzZWN0aW9uLg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICB0 ZW1wbGF0ZV9uYW1lID0gJycNCj4gPg0KPiA+ICsgICAgICAgIGJzZl90ZW1wX2RpY3QgPSBPcmRl cmVkRGljdCgpDQo+ID4NCj4gPiArICAgICAgICB0ZW1wX2ZpbGVfZGljdCA9IE9yZGVyZWREaWN0 KCkNCj4gPg0KPiA+ICsgICAgICAgIGluY2x1ZGVfZmlsZSA9IFsnLiddDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoNCj4gPg0KPiA+ICsgICAgICAgICAg ICBtYXRjaCA9IHJlLm1hdGNoKHIiXlxzKiNccyshKFs8Pl0pXHMraW5jbHVkZVxzKyguKykiLCBs aW5lKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIG1hdGNoOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBpZiBtYXRjaC5ncm91cCgxKSA9PSAnPCc6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBpbmNsdWRlX2ZpbGUuYXBwZW5kKG1hdGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaW5jbHVk ZV9maWxlLnBvcCgpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgbWF0Y2ggPSBy ZS5tYXRjaChyIl5ccyojXHMrKCFCU0YpXHMrREVGVDp7KC4rPyk6KFNUQVJUfEVORCl9IiwNCj4g bGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBtYXRjaDoNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMykgPT0gJ1NUQVJUJyBhbmQgbm90IHRlbXBsYXRlX25h bWU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lID0gbWF0Y2gu Z3JvdXAoMikuc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgdGVtcF9maWxl X2RpY3RbdGVtcGxhdGVfbmFtZV0gPSBsaXN0KGluY2x1ZGVfZmlsZSkNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIGJzZl90ZW1wX2RpY3RbdGVtcGxhdGVfbmFtZV0gPSBbXQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgzKSA9PSAnRU5EJyBhbmQgKHRlbXBs YXRlX25hbWUgPT0NCj4gPiBtYXRjaC5ncm91cCgyKS5zdHJpcCgpKSBcDQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgIGFuZCB0ZW1wbGF0ZV9uYW1lOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgdGVtcGxhdGVfbmFtZSA9ICcnDQo+ID4NCj4gPiArICAgICAgICAgICAgZWxzZToN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgdGVtcGxhdGVfbmFtZToNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIGJzZl90ZW1wX2RpY3RbdGVtcGxhdGVfbmFtZV0uYXBwZW5kKGxp bmUpDQo+ID4NCj4gPiArICAgICAgICByZXR1cm4gYnNmX3RlbXBfZGljdCwgdGVtcF9maWxlX2Rp Y3QNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHByb2Nlc3Nfb3B0aW9uX2xpbmVzKHNl bGYsIGxpbmVzKToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgUHJv Y2VzcyBhIGxpbmUgaW4gRFNDIGNvbmZpZyBzZWN0aW9uLg0KPiA+DQo+ID4gKyAgICAgICAgIiIi DQo+ID4NCj4gPiArICAgICAgICBjZmdzID0gW10NCj4gPg0KPiA+ICsgICAgICAgIHN0cnVjdF9l bmQgPSBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAgY29uZmlnX2RpY3QgPSBkaWN0KCkNCj4gPg0K PiA+ICsgICAgICAgIGluaXRfZGljdCA9IGRpY3QoKQ0KPiA+DQo+ID4gKyAgICAgICAgaW5jbHVk ZSA9IFsnJ10NCj4gPg0KPiA+ICsgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOg0KPiA+DQo+ID4g KyAgICAgICAgICAgIHJldCA9IHNlbGYucGFyc2VfZHNjX2xpbmUobGluZSwgY29uZmlnX2RpY3Qs IGluaXRfZGljdCwgaW5jbHVkZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiByZXQ6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgIGlmICdwYWRkaW5nJyBpbiBpbml0X2RpY3Q6DQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBudW0gPSBpbml0X2RpY3RbJ3BhZGRpbmcnXQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgaW5pdF9kaWN0LmNsZWFyKCkNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIHBhZGRpbmdfZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBjZmdzLmFwcGVuZChwYWRkaW5nX2RpY3QpDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBwYWRkaW5nX2RpY3RbJ2NuYW1lJ10gPSAnVW51c2VkVXBkU3BhY2UlZCcgJQ0KPiBz ZWxmLnVudXNlZF9pZHgNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdfZGlj dFsnbGVuZ3RoJ10gPSAnMHgleCcgJSBudW0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg IHBhZGRpbmdfZGljdFsndmFsdWUnXSA9ICd7IDAgfScNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIHNlbGYudW51c2VkX2lkeCArPSAxDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGlmIGNmZ3MgYW5kIGNmZ3NbLTFdWydjbmFtZSddWzBdICE9ICdAJyBhbmQgY29u ZmlnX2RpY3RbJ2NuYW1lJ11bMF0NCj4gPT0NCj4gPiAnQCc6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAjIGl0IGlzIGEgYml0IGZpZWxkLCBtYXJrIHRoZSBwcmV2aW91cyBvbmUgYXMg dmlydHVhbA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY25hbWUgPSBjZmdzWy0xXVsn Y25hbWUnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbmV3X2NmZyA9IGRpY3QoY2Zn c1stMV0pDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBuZXdfY2ZnWydjbmFtZSddID0g J0AkU1RSVUNUJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2Znc1stMV0uY2xlYXIo KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2Znc1stMV1bJ2NuYW1lJ10gPSBjbmFt ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgY2Zncy5hcHBlbmQobmV3X2NmZykNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgY2ZncyBhbmQgY2Znc1stMV1b J2NuYW1lJ10gPT0gJ0NGR0hEUicgYW5kDQo+IGNvbmZpZ19kaWN0WydjbmFtZSddWzBdDQo+ID4g PT0gJzwnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIyBzd2FwIENmZ0hlYWRlciBh bmQgdGhlIENGR19EQVRBIG9yZGVyDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiAn OicgaW4gY29uZmlnX2RpY3RbJ2NuYW1lJ106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgIyByZXBsYWNlIHRoZSByZWFsIFRBRyBmb3IgQ0ZHX0RBVEENCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBjZmdzWy0xXVsnZXhwYW5kJ10gPSBjZmdzWy0xXVsnZXhwYW5k J10ucmVwbGFjZSgNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ18kRkZG XycsICcweCVzJyAlDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp Z19kaWN0WydjbmFtZSddLnNwbGl0KCc6JylbMV1bNDpdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgY2Zncy5pbnNlcnQoLTEsIGNvbmZpZ19kaWN0KQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNz X2NvbmZpZyhjb25maWdfZGljdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGlmIHN0 cnVjdF9lbmQ6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0X2VuZCA9 IEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgY2Zncy5pbnNlcnQoLTEs IGNvbmZpZ19kaWN0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjZmdzLmFwcGVuZChjb25maWdfZGljdCkNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb25maWdfZGljdFsnY25hbWUnXVsw XSA9PSAnPic6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdF9l bmQgPSBUcnVlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbmZpZ19k aWN0ID0gZGljdChpbml0X2RpY3QpDQo+ID4NCj4gPiArICAgICAgICByZXR1cm4gY2Zncw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgdmFyaWFibGVfZml4dXAoc2VsZiwgZWFjaCk6DQo+ ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIEZpeCB1cCBzb21lIHZhcmlh YmxlIGRlZmluaXRpb25zIGZvciBTQkwuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ ICsgICAgICAgIGtleSA9IGVhY2gNCj4gPg0KPiA+ICsgICAgICAgIHZhbCA9IHNlbGYuZ2VuX2Nm Z19kYXRhLl9NYWNyb0RpY3RbZWFjaF0NCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBrZXksIHZh bA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgdGVtcGxhdGVfZml4dXAoc2VsZiwgdG1w X25hbWUsIHRtcF9saXN0KToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAg ICAgRml4IHVwIHNvbWUgc3BlY2lhbCBjb25maWcgdGVtcGxhdGVzIGZvciBTQkwNCj4gPg0KPiA+ ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgIGRlZiBjb25maWdfZml4dXAoc2VsZiwgY2ZnX2xpc3QpOg0KPiA+DQo+ID4gKyAg ICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBGaXggdXAgc29tZSBzcGVjaWFsIGNvbmZpZyBp dGVtcyBmb3IgU0JMLg0KPiA+DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICAgICAgICAjIEluc2VydCBGU1BUX1VQRC9GU1BNX1VQRC9GU1BTX1VQRCB0YWcgc28gYXMg dG8gY3JlYXRlIEMNCj4gc3RyY3R1cmUNCj4gPg0KPiA+ICsgICAgICAgIGlkeHMgPSBbXQ0KPiA+ DQo+ID4gKyAgICAgICAgZm9yIGlkeCwgY2ZnIGluIGVudW1lcmF0ZShjZmdfbGlzdCk6DQo+ID4N Cj4gPiArICAgICAgICAgICAgaWYgY2ZnWydjbmFtZSddLnN0YXJ0c3dpdGgoJzxGU1BfVVBEX0hF QURFUicpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZHhzLmFwcGVuZChpZHgpDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAgICAgICBpZiBsZW4oaWR4cykgIT0gMzoNCj4gPg0KPiA+ICsg ICAgICAgICAgICByZXR1cm4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICMgSGFuZGxl IGluc2VydCBiYWNrd2FyZHMgc28gdGhhdCB0aGUgaW5kZXggZG9lcyBub3QgY2hhbmdlIGluIHRo ZQ0KPiBsb29wDQo+ID4NCj4gPiArICAgICAgICBmc3BfY29tcCA9ICdTTVQnDQo+ID4NCj4gPiAr ICAgICAgICBpZHhfY29tcCA9IDANCj4gPg0KPiA+ICsgICAgICAgIGZvciBpZHggaW4gaWR4c1s6 Oi0xXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAjIEFkZCBjdXJyZW50IEZTUD9fVVBEIHN0YXJ0 IHRhZw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ2ZpZ19kaWN0ID0ge30NCj4gPg0KPiA+ICsg ICAgICAgICAgICBjZmdmaWdfZGljdFsnY25hbWUnXSA9ICc8RlNQJXNfVVBEJyAlIGZzcF9jb21w W2lkeF9jb21wXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGNmZ19saXN0Lmluc2VydChpZHgsIGNm Z2ZpZ19kaWN0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGlkeF9jb21wIDwgMjoNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgIyBBZGQgcHJldmlvdXMgRlNQP19VUEQgZW5kIHRhZw0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICBjZmdmaWdfZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGNmZ2ZpZ19kaWN0WydjbmFtZSddID0gJz5GU1Alc19VUEQnICUgZnNwX2NvbXBb aWR4X2NvbXAgKyAxXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBjZmdfbGlzdC5pbnNlcnQo aWR4LCBjZmdmaWdfZGljdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZHhfY29tcCArPSAxDQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAjIEFkZCBmaW5hbCBGU1BTX1VQRCBlbmQgdGFn DQo+ID4NCj4gPiArICAgICAgICBjZmdmaWdfZGljdCA9IHt9DQo+ID4NCj4gPiArICAgICAgICBj ZmdmaWdfZGljdFsnY25hbWUnXSA9ICc+RlNQJXNfVVBEJyAlIGZzcF9jb21wWzBdDQo+ID4NCj4g PiArICAgICAgICBjZmdfbGlzdC5hcHBlbmQoY2ZnZmlnX2RpY3QpDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICByZXR1cm4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIGdldF9z ZWN0aW9uX3JhbmdlKHNlbGYsIHNlY3Rpb25fbmFtZSk6DQo+ID4NCj4gPiArICAgICAgICAiIiIN Cj4gPg0KPiA+ICsgICAgICAgIEV4dHJhY3QgbGluZSBudW1iZXIgcmFuZ2UgZnJvbSBjb25maWcg ZmlsZSBmb3IgYSBnaXZlbiBzZWN0aW9uIG5hbWUuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4g Pg0KPiA+ICsgICAgICAgIHN0YXJ0ID0gLTENCj4gPg0KPiA+ICsgICAgICAgIGVuZCA9IC0xDQo+ ID4NCj4gPiArICAgICAgICBmb3IgaWR4LCBsaW5lIGluIGVudW1lcmF0ZShzZWxmLmdlbl9jZmdf ZGF0YS5fRHNjTGluZXMpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIHN0YXJ0IDwgMCBhbmQg bGluZS5zdGFydHN3aXRoKCdbJXNdJyAlIHNlY3Rpb25fbmFtZSk6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIHN0YXJ0ID0gaWR4DQo+ID4NCj4gPiArICAgICAgICAgICAgZWxpZiBzdGFydCA+ PSAwIGFuZCBsaW5lLnN0YXJ0c3dpdGgoJ1snKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ZW5kID0gaWR4DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGJyZWFrDQo+ID4NCj4gPiArICAg ICAgICBpZiBzdGFydCA9PSAtMToNCj4gPg0KPiA+ICsgICAgICAgICAgICBzdGFydCA9IDANCj4g Pg0KPiA+ICsgICAgICAgIGlmIGVuZCA9PSAtMToNCj4gPg0KPiA+ICsgICAgICAgICAgICBlbmQg PSBsZW4oc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xpbmVzKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0 dXJuIHN0YXJ0LCBlbmQNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIG5vcm1hbGl6ZV9m aWxlX25hbWUoc2VsZiwgZmlsZSwgaXNfdGVtcD1GYWxzZSk6DQo+ID4NCj4gPiArICAgICAgICAi IiINCj4gPg0KPiA+ICsgICAgICAgIE5vcm1hbGl6ZSBmaWxlIG5hbWUgY29udmVudGlvbiBzbyB0 aGF0IGl0IGlzIGNvbnNpc3RlbnQuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsg ICAgICAgIGlmIGZpbGUuZW5kc3dpdGgoJy5kc2MnKToNCj4gPg0KPiA+ICsgICAgICAgICAgICBm aWxlID0gZmlsZVs6LTRdICsgJy55YW1sJw0KPiA+DQo+ID4gKyAgICAgICAgZGlyX25hbWUgPSBv cy5wYXRoLmRpcm5hbWUoZmlsZSkNCj4gPg0KPiA+ICsgICAgICAgIGJhc2VfbmFtZSA9IG9zLnBh dGguYmFzZW5hbWUoZmlsZSkNCj4gPg0KPiA+ICsgICAgICAgIGlmIGlzX3RlbXA6DQo+ID4NCj4g PiArICAgICAgICAgICAgaWYgJ1RlbXBsYXRlXycgbm90IGluIGZpbGU6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIGJhc2VfbmFtZSA9IGJhc2VfbmFtZS5yZXBsYWNlKCdUZW1wbGF0ZScsICdU ZW1wbGF0ZV8nKQ0KPiA+DQo+ID4gKyAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAg ICBpZiAnQ2ZnRGF0YV8nIG5vdCBpbiBmaWxlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBi YXNlX25hbWUgPSBiYXNlX25hbWUucmVwbGFjZSgnQ2ZnRGF0YScsICdDZmdEYXRhXycpDQo+ID4N Cj4gPiArICAgICAgICBpZiBkaXJfbmFtZToNCj4gPg0KPiA+ICsgICAgICAgICAgICBwYXRoID0g ZGlyX25hbWUgKyAnLycgKyBiYXNlX25hbWUNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4N Cj4gPiArICAgICAgICAgICAgcGF0aCA9IGJhc2VfbmFtZQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0 dXJuIHBhdGgNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIG91dHB1dF92YXJpYWJsZShz ZWxmKToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ID4gKyAgICAgICAgT3V0cHV0IHZh cmlhYmxlIGJsb2NrIGludG8gYSBsaW5lIGxpc3QuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4g Pg0KPiA+ICsgICAgICAgIGxpbmVzID0gW10NCj4gPg0KPiA+ICsgICAgICAgIGZvciBlYWNoIGlu IHNlbGYuZ2VuX2NmZ19kYXRhLl9NYWNyb0RpY3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAga2V5 LCB2YWx1ZSA9IHNlbGYudmFyaWFibGVfZml4dXAoZWFjaCkNCj4gPg0KPiA+ICsgICAgICAgICAg ICBsaW5lcy5hcHBlbmQoJyUtMzBzIDogJXMnICUgKGtleSwgdmFsdWUpKQ0KPiA+DQo+ID4gKyAg ICAgICAgcmV0dXJuIGxpbmVzDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBvdXRwdXRf dGVtcGxhdGUoc2VsZik6DQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAg IE91dHB1dCB0ZW1wbGF0ZSBibG9jayBpbnRvIGEgbGluZSBsaXN0Lg0KPiA+DQo+ID4gKyAgICAg ICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBzZWxmLm9mZnNldCA9IDANCj4gPg0KPiA+ICsgICAg ICAgIHNlbGYuYmFzZV9vZmZzZXQgPSAwDQo+ID4NCj4gPiArICAgICAgICBzdGFydCwgZW5kID0g c2VsZi5nZXRfc2VjdGlvbl9yYW5nZSgnUGNkc0R5bmFtaWNWcGQuVG1wJykNCj4gPg0KPiA+ICsg ICAgICAgIGJzZl90ZW1wX2RpY3QsIHRlbXBfZmlsZV9kaWN0ID0NCj4gPiBzZWxmLnByb2Nlc3Nf dGVtcGxhdGVfbGluZXMoc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xpbmVzW3N0YXJ0OmVuZF0pDQo+ ID4NCj4gPiArICAgICAgICB0ZW1wbGF0ZV9kaWN0ID0gZGljdCgpDQo+ID4NCj4gPiArICAgICAg ICBsaW5lcyA9IFtdDQo+ID4NCj4gPiArICAgICAgICBmaWxlX2xpbmVzID0ge30NCj4gPg0KPiA+ ICsgICAgICAgIGxhc3RfZmlsZSA9ICcuJw0KPiA+DQo+ID4gKyAgICAgICAgZmlsZV9saW5lc1ts YXN0X2ZpbGVdID0gW10NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIGZvciB0bXBfbmFt ZSBpbiB0ZW1wX2ZpbGVfZGljdDoNCj4gPg0KPiA+ICsgICAgICAgICAgICB0ZW1wX2ZpbGVfZGlj dFt0bXBfbmFtZV1bLTFdID0NCj4gPiBzZWxmLm5vcm1hbGl6ZV9maWxlX25hbWUodGVtcF9maWxl X2RpY3RbdG1wX25hbWVdWy0xXSwgVHJ1ZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBsZW4o dGVtcF9maWxlX2RpY3RbdG1wX25hbWVdKSA+IDE6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IHRlbXBfZmlsZV9kaWN0W3RtcF9uYW1lXVstMl0gPQ0KPiA+IHNlbGYubm9ybWFsaXplX2ZpbGVf bmFtZSh0ZW1wX2ZpbGVfZGljdFt0bXBfbmFtZV1bLTJdLCBUcnVlKQ0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgICAgICAgZm9yIHRtcF9uYW1lIGluIGJzZl90ZW1wX2RpY3Q6DQo+ID4NCj4gPiAr ICAgICAgICAgICAgZmlsZSA9IHRlbXBfZmlsZV9kaWN0W3RtcF9uYW1lXVstMV0NCj4gPg0KPiA+ ICsgICAgICAgICAgICBpZiBsYXN0X2ZpbGUgIT0gZmlsZSBhbmQgbGVuKHRlbXBfZmlsZV9kaWN0 W3RtcF9uYW1lXSkgPiAxOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpbmNfZmlsZSA9IHRl bXBfZmlsZV9kaWN0W3RtcF9uYW1lXVstMl0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZmls ZV9saW5lc1tpbmNfZmlsZV0uZXh0ZW5kKFsnJywgJy0gIWluY2x1ZGUgJXMnICUNCj4gPiB0ZW1w X2ZpbGVfZGljdFt0bXBfbmFtZV1bLTFdLCAnJ10pDQo+ID4NCj4gPiArICAgICAgICAgICAgbGFz dF9maWxlID0gZmlsZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGZpbGUgbm90IGluIGZpbGVf bGluZXM6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGZpbGVfbGluZXNbZmlsZV0gPSBbXQ0K PiA+DQo+ID4gKyAgICAgICAgICAgIGxpbmVzID0gZmlsZV9saW5lc1tmaWxlXQ0KPiA+DQo+ID4g KyAgICAgICAgICAgIHRleHQgPSBic2ZfdGVtcF9kaWN0W3RtcF9uYW1lXQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgIHRtcF9saXN0ID0gc2VsZi5wcm9jZXNzX29wdGlvbl9saW5lcyh0ZXh0KQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfZml4dXAodG1wX25hbWUsIHRtcF9saXN0 KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHRlbXBsYXRlX2RpY3RbdG1wX25hbWVdID0gdG1wX2xp c3QNCj4gPg0KPiA+ICsgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyVzOiA+JyAlIHRtcF9uYW1l KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLm91dHB1dF9kaWN0KHRt cF9saXN0LCBGYWxzZSlbJy4nXSkNCj4gPg0KPiA+ICsgICAgICAgICAgICBsaW5lcy5hcHBlbmQo J1xuJykNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBmaWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgIGRlZiBvdXRwdXRfY29uZmlnKHNlbGYpOg0KPiA+DQo+ID4gKyAgICAgICAg IiIiDQo+ID4NCj4gPiArICAgICAgICBPdXRwdXQgY29uZmlnIGJsb2NrIGludG8gYSBsaW5lIGxp c3QuDQo+ID4NCj4gPiArICAgICAgICAiIiINCj4gPg0KPiA+ICsgICAgICAgIHNlbGYub2Zmc2V0 ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5iYXNlX29mZnNldCA9IDANCj4gPg0KPiA+ICsg ICAgICAgIHN0YXJ0LCBlbmQgPSBzZWxmLmdldF9zZWN0aW9uX3JhbmdlKCdQY2RzRHluYW1pY1Zw ZC5VcGQnKQ0KPiA+DQo+ID4gKyAgICAgICAgY2ZncyA9DQo+IHNlbGYucHJvY2Vzc19vcHRpb25f bGluZXMoc2VsZi5nZW5fY2ZnX2RhdGEuX0RzY0xpbmVzW3N0YXJ0OmVuZF0pDQo+ID4NCj4gPiAr ICAgICAgICBzZWxmLmNvbmZpZ19maXh1cChjZmdzKQ0KPiA+DQo+ID4gKyAgICAgICAgZmlsZV9s aW5lcyA9IHNlbGYub3V0cHV0X2RpY3QoY2ZncywgVHJ1ZSkNCj4gPg0KPiA+ICsgICAgICAgIHJl dHVybiBmaWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGRlZiBvdXRwdXRfZGlj dChzZWxmLCBjZmdzLCBpc19jb25maWdzKToNCj4gPg0KPiA+ICsgICAgICAgICIiIg0KPiA+DQo+ ID4gKyAgICAgICAgT3V0cHV0IG9uZSBjb25maWcgaXRlbSBpbnRvIGEgbGluZSBsaXN0Lg0KPiA+ DQo+ID4gKyAgICAgICAgIiIiDQo+ID4NCj4gPiArICAgICAgICBmaWxlX2xpbmVzID0ge30NCj4g Pg0KPiA+ICsgICAgICAgIGxldmVsID0gMA0KPiA+DQo+ID4gKyAgICAgICAgZmlsZSA9ICcuJw0K PiA+DQo+ID4gKyAgICAgICAgZm9yIGVhY2ggaW4gY2ZnczoNCj4gPg0KPiA+ICsgICAgICAgICAg ICBpZiAnbGVuZ3RoJyBpbiBlYWNoIGFuZCBpbnQoZWFjaFsnbGVuZ3RoJ10sIDApID09IDA6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAgICAgICAgICAgaWYgJ2luY2x1ZGUnIGluIGVhY2g6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGlmIGVhY2hbJ2luY2x1ZGUnXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGVh Y2hbJ2luY2x1ZGUnXSA9IHNlbGYubm9ybWFsaXplX2ZpbGVfbmFtZShlYWNoWydpbmNsdWRlJ10p DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBmaWxlX2xpbmVzW2ZpbGVdLmV4dGVuZChb JycsICctICFpbmNsdWRlICVzJyAlIGVhY2hbJ2luY2x1ZGUnXSwgJyddKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgZmlsZSA9IGVhY2hbJ2luY2x1ZGUnXQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZmlsZSA9ICcu Jw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgICAgIGlmIGZpbGUgbm90IGluIGZpbGVfbGluZXM6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgIGZpbGVfbGluZXNbZmlsZV0gPSBbXQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g KyAgICAgICAgICAgIGxpbmVzID0gZmlsZV9saW5lc1tmaWxlXQ0KPiA+DQo+ID4gKyAgICAgICAg ICAgIG5hbWUgPSBlYWNoWydjbmFtZSddDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAg ICAgcHJlZml4ID0gbmFtZVswXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIHByZWZpeCA9PSAn PCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGxldmVsICs9IDENCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICsgICAgICAgICAgICBwYWRkaW5nID0gJyAgJyAqIGxldmVsDQo+ID4NCj4gPiArICAg ICAgICAgICAgaWYgcHJlZml4IG5vdCBpbiAnPD5AJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgcGFkZGluZyArPSAnICAnDQo+ID4NCj4gPiArICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVbMTpdDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGlmIHByZWZpeCA9PSAnQCc6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBwYWRk aW5nICs9ICcgICAgJw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmICc6JyBp biBuYW1lOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoJzon KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBuYW1lID0gcGFydHNbMF0NCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgICAgICAgICBwYWRkaW5nID0gcGFkZGluZ1syOl0gaWYgaXNfY29uZmln cyBlbHNlIHBhZGRpbmcNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBwcmVm aXggIT0gJz4nOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiAnZXhwYW5kJyBpbiBlYWNo Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCclcy0gJXMnICUg KHBhZGRpbmcsIGVhY2hbJ2V4cGFuZCddKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZWxz ZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnJXMtICUtMTJz IDonICUgKHBhZGRpbmcsIG5hbWUpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAg IGZvciBmaWVsZCBpbiBlYWNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBmaWVsZCBp biBbJ2NuYW1lJywgJ2V4cGFuZCcsICdpbmNsdWRlJ106DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICBjb250aW51ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICB2YWx1ZV9zdHIgPSBz ZWxmLmZvcm1hdF92YWx1ZShmaWVsZCwgZWFjaFtmaWVsZF0sIHBhZGRpbmcgKyAnICcgKiAxNikN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZnVsbF9saW5lID0gJyAgJXMgICUtMTJzIDogJXMn ICUgKHBhZGRpbmcsIGZpZWxkLCB2YWx1ZV9zdHIpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGxpbmVzLmV4dGVuZChmdWxsX2xpbmUuc3BsaXRsaW5lcygpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgICAgIGlmIHByZWZpeCA9PSAnPic6DQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgIGxldmVsIC09IDENCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgbGV2ZWwgPT0gMDoN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnJykNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBmaWxlX2xpbmVzDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArZGVmIGJzZl90b19kc2MoYnNmX2ZpbGUsIGRzY19maWxlKToNCj4g Pg0KPiA+ICsgICAgZnNwX2RzYyA9IENGc3BCc2YyRHNjKGJzZl9maWxlKQ0KPiA+DQo+ID4gKyAg ICBkc2NfbGluZXMgPSBmc3BfZHNjLmdldF9kc2NfbGluZXMoKQ0KPiA+DQo+ID4gKyAgICBmZCA9 IG9wZW4oZHNjX2ZpbGUsICd3JykNCj4gPg0KPiA+ICsgICAgZmQud3JpdGUoJ1xuJy5qb2luKGRz Y19saW5lcykpDQo+ID4NCj4gPiArICAgIGZkLmNsb3NlKCkNCj4gPg0KPiA+ICsgICAgcmV0dXJu DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArZGVmIGRzY190b195YW1sKGRzY19m aWxlLCB5YW1sX2ZpbGUpOg0KPiA+DQo+ID4gKyAgICBkc2MyeWFtbCA9IENGc3BEc2MyWWFtbCgp DQo+ID4NCj4gPiArICAgIGRzYzJ5YW1sLmxvYWRfY29uZmlnX2RhdGFfZnJvbV9kc2MoZHNjX2Zp bGUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIGNmZ3MgPSB7fQ0KPiA+DQo+ID4gKyAgICBm b3IgY2ZnIGluIFsnVGVtcGxhdGUnLCAnT3B0aW9uJ106DQo+ID4NCj4gPiArICAgICAgICBpZiBj ZmcgPT0gJ1RlbXBsYXRlJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICBmaWxlX2xpbmVzID0gZHNj MnlhbWwub3V0cHV0X3RlbXBsYXRlKCkNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4g PiArICAgICAgICAgICAgZmlsZV9saW5lcyA9IGRzYzJ5YW1sLm91dHB1dF9jb25maWcoKQ0KPiA+ DQo+ID4gKyAgICAgICAgZm9yIGZpbGUgaW4gZmlsZV9saW5lczoNCj4gPg0KPiA+ICsgICAgICAg ICAgICBsaW5lcyA9IGZpbGVfbGluZXNbZmlsZV0NCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBm aWxlID09ICcuJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgY2Znc1tjZmddID0gbGluZXMN Cj4gPg0KPiA+ICsgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBp ZignLycgaW4gZmlsZSBvciAnXFwnIGluIGZpbGUpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgY29udGludWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZmlsZSA9IG9zLnBhdGgu YmFzZW5hbWUoZmlsZSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgZm8gPSBvcGVuKG9zLnBh dGguam9pbihmaWxlKSwgJ3cnKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBmby53cml0ZShf X2NvcHlyaWdodF90bXBfXyAlIChjZmcsIGRhdGUudG9kYXkoKS55ZWFyKSArICdcblxuJykNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICBmby53cml0ZShsaW5lICsgJ1xuJykNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgZm8uY2xvc2UoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICB2YXJpYWJsZXMg PSBkc2MyeWFtbC5vdXRwdXRfdmFyaWFibGUoKQ0KPiA+DQo+ID4gKyAgICBmbyA9IG9wZW4oeWFt bF9maWxlLCAndycpDQo+ID4NCj4gPiArICAgIGZvLndyaXRlKF9fY29weXJpZ2h0X3RtcF9fICUg KCdEZWZhdWx0JywgZGF0ZS50b2RheSgpLnllYXIpKQ0KPiA+DQo+ID4gKyAgICBpZiBsZW4odmFy aWFibGVzKSA+IDA6DQo+ID4NCj4gPiArICAgICAgICBmby53cml0ZSgnXG5cbnZhcmlhYmxlOlxu JykNCj4gPg0KPiA+ICsgICAgICAgIGZvciBsaW5lIGluIHZhcmlhYmxlczoNCj4gPg0KPiA+ICsg ICAgICAgICAgICBmby53cml0ZSgnICAnICsgbGluZSArICdcbicpDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgIGZvLndyaXRlKCdcblxudGVtcGxhdGU6XG4nKQ0KPiA+DQo+ID4gKyAgICBmb3Ig bGluZSBpbiBjZmdzWydUZW1wbGF0ZSddOg0KPiA+DQo+ID4gKyAgICAgICAgZm8ud3JpdGUoJyAg JyArIGxpbmUgKyAnXG4nKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBmby53cml0ZSgnXG5c bmNvbmZpZ3M6XG4nKQ0KPiA+DQo+ID4gKyAgICBmb3IgbGluZSBpbiBjZmdzWydPcHRpb24nXToN Cj4gPg0KPiA+ICsgICAgICAgIGZvLndyaXRlKCcgICcgKyBsaW5lICsgJ1xuJykNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgZm8uY2xvc2UoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gK2RlZiBnZXRfZnNwX25hbWVfZnJvbV9wYXRoKGJzZl9maWxlKToNCj4gPg0KPiA+ICsg ICAgbmFtZSA9ICcnDQo+ID4NCj4gPiArICAgIHBhcnRzID0gYnNmX2ZpbGUuc3BsaXQob3Muc2Vw KQ0KPiA+DQo+ID4gKyAgICBmb3IgcGFydCBpbiBwYXJ0czoNCj4gPg0KPiA+ICsgICAgICAgIGlm IHBhcnQuZW5kc3dpdGgoJ0ZzcEJpblBrZycpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIG5hbWUg PSBwYXJ0WzotOV0NCj4gPg0KPiA+ICsgICAgICAgICAgICBicmVhaw0KPiA+DQo+ID4gKyAgICBp ZiBub3QgbmFtZToNCj4gPg0KPiA+ICsgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90 IGdldCBGU1AgbmFtZSBmcm9tIGZpbGUgcGF0aCEnKQ0KPiA+DQo+ID4gKyAgICByZXR1cm4gbmFt ZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2RlZiB1c2FnZSgpOg0KPiA+DQo+ ID4gKyAgICBwcmludCgnXG4nLmpvaW4oWw0KPiA+DQo+ID4gKyAgICAgICAgICAiRnNwRHNjQnNm MllhbWwgVmVyc2lvbiAwLjEwIiwNCj4gPg0KPiA+ICsgICAgICAgICAgIlVzYWdlOiIsDQo+ID4N Cj4gPiArICAgICAgICAgICIgICAgRnNwRHNjQnNmMllhbWwgIEJzZkZpbGV8RHNjRmlsZSAgWWFt bEZpbGUiDQo+ID4NCj4gPiArICAgICAgICAgIF0pKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK2RlZiBtYWluKCk6DQo+ID4NCj4gPiArICAgICMNCj4gPg0KPiA+ICsgICAgIyBQ YXJzZSB0aGUgb3B0aW9ucyBhbmQgYXJncw0KPiA+DQo+ID4gKyAgICAjDQo+ID4NCj4gPiArICAg IGFyZ2MgPSBsZW4oc3lzLmFyZ3YpDQo+ID4NCj4gPiArICAgIGlmIGFyZ2MgPCAzOg0KPiA+DQo+ ID4gKyAgICAgICAgdXNhZ2UoKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIDENCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgYnNmX2ZpbGUgPSBzeXMuYXJndlsxXQ0KPiA+DQo+ID4gKyAgICB5 YW1sX2ZpbGUgPSBzeXMuYXJndlsyXQ0KPiA+DQo+ID4gKyAgICBpZiBvcy5wYXRoLmlzZGlyKHlh bWxfZmlsZSk6DQo+ID4NCj4gPiArICAgICAgICB5YW1sX2ZpbGUgPSBvcy5wYXRoLmpvaW4oeWFt bF9maWxlLCBnZXRfZnNwX25hbWVfZnJvbV9wYXRoKGJzZl9maWxlKQ0KPiArDQo+ID4gJy55YW1s JykNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgaWYgYnNmX2ZpbGUuZW5kc3dpdGgoJy5kc2Mn KToNCj4gPg0KPiA+ICsgICAgICAgIGRzY19maWxlID0gYnNmX2ZpbGUNCj4gPg0KPiA+ICsgICAg ICAgIGJzZl9maWxlID0gJycNCj4gPg0KPiA+ICsgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAg IGRzY19maWxlID0gb3MucGF0aC5zcGxpdGV4dCh5YW1sX2ZpbGUpWzBdICsgJy5kc2MnDQo+ID4N Cj4gPiArICAgICAgICBic2ZfdG9fZHNjKGJzZl9maWxlLCBkc2NfZmlsZSkNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgZHNjX3RvX3lhbWwoZHNjX2ZpbGUsIHlhbWxfZmlsZSkNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgcHJpbnQoIiclcycgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5ISIg JSB5YW1sX2ZpbGUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIHJldHVybiAwDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4g Pg0KPiA+ICsgICAgc3lzLmV4aXQobWFpbigpKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVs RnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9HZW5D ZmdPcHQucHkNCj4gPiBpbmRleCBhMGI4YmJhODFlLi42NjA4MjRiNzQwIDEwMDY0NA0KPiA+IC0t LSBhL0ludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkNCj4gPiArKysgYi9JbnRlbEZzcDJQ a2cvVG9vbHMvR2VuQ2ZnT3B0LnB5DQo+ID4gQEAgLTEsNiArMSw2IEBADQo+ID4gICMjIEAgR2Vu Q2ZnT3B0LnB5DQo+ID4NCj4gPiAgIw0KPiA+DQo+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDE0IC0g MjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICAjDQo+ID4NCj4gPiAgIyMNCj4gPg0KPiA+ IEBAIC0yODMsMTAgKzI4MywxMCBAQCBjbGFzcyBDTG9naWNhbEV4cHJlc3Npb246DQo+ID4gICAg ICAgICAgcmV0dXJuIFJlc3VsdA0KPiA+DQo+ID4NCj4gPg0KPiA+ICBjbGFzcyBDR2VuQ2ZnT3B0 Og0KPiA+DQo+ID4gLSAgICBkZWYgX19pbml0X18oc2VsZik6DQo+ID4NCj4gPiArICAgIGRlZiBf X2luaXRfXyhzZWxmLCBNb2RlID0gJycpOg0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5EZWJ1ZyAg ICAgICAgICA9IEZhbHNlDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLkVycm9yICAgICAgICAgID0g JycNCj4gPg0KPiA+IC0NCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuTW9kZSAgICAgICAgICAgPSBN b2RlDQo+ID4NCj4gPiAgICAgICAgICBzZWxmLl9HbG9iYWxEYXRhRGVmID0gIiIiDQo+ID4NCj4g PiAgR2xvYmFsRGF0YURlZg0KPiA+DQo+ID4gICAgICBTS1VJRCA9IDAsICJERUZBVUxUIg0KPiA+ DQo+ID4gQEAgLTMwMCwxOCArMzAwLDIwIEBAIExpc3QgJkVOX0RJUw0KPiA+ICBFbmRMaXN0DQo+ ID4NCj4gPg0KPiA+DQo+ID4gICIiIg0KPiA+DQo+ID4gLQ0KPiA+DQo+ID4gLSAgICAgICAgc2Vs Zi5fQnNmS2V5TGlzdCAgICA9DQo+IFsnRklORCcsJ05BTUUnLCdIRUxQJywnVFlQRScsJ1BBR0Un LCdPUFRJT04nLCdPUkRFUiddDQo+ID4NCj4gPiArICAgICAgICBzZWxmLl9Cc2ZLZXlMaXN0ICAg ID0gWydGSU5EJywnTkFNRScsJ0hFTFAnLCdUWVBFJywnUEFHRScsICdQQUdFUycsDQo+ICdCTE9D SycsDQo+ID4gJ09QVElPTicsJ0NPTkRJVElPTicsJ09SREVSJywgJ01BUktFUicsICdTVUJUJ10N Cj4gPg0KPiA+ICAgICAgICAgIHNlbGYuX0hkcktleUxpc3QgICAgPSBbJ0hFQURFUicsJ1NUUlVD VCcsICdFTUJFRCcsICdDT01NRU5UJ10NCj4gPg0KPiA+ICAgICAgICAgIHNlbGYuX0J1aWRpbk9w dGlvbiAgPSB7JyRFTl9ESVMnIDogJ0VOX0RJUyd9DQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAg ICAgc2VsZi5fTWFjcm9EaWN0ICAgPSB7fQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5fVmFyRGlj dCAgICAgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fUGNkc0RpY3QgICAgPSB7fQ0KPiA+ DQo+ID4gICAgICAgICAgc2VsZi5fQ2ZnQmxrRGljdCAgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAg c2VsZi5fQ2ZnUGFnZURpY3QgPSB7fQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5fQnNmVGVtcERp Y3QgPSB7fQ0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fQ2ZnSXRlbUxpc3QgPSBbXQ0KPiA+DQo+ ID4gKyAgICAgICAgc2VsZi5fRHNjTGluZXMgICAgPSBbXQ0KPiA+DQo+ID4gICAgICAgICAgc2Vs Zi5fRHNjRmlsZSAgICAgPSAnJw0KPiA+DQo+ID4gLSAgICAgICAgc2VsZi5fRnZEaXIgICAgICAg PSAnJw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gICAgICAgICAgc2VsZi5fTWFwVmVyICAgICAgPSAw DQo+ID4NCj4gPiAgICAgICAgICBzZWxmLl9Ec2NUaW1lICAgICA9IDANCj4gPg0KPiA+DQo+ID4N Cj4gPiBAQCAtMzUxLDcgKzM1Myw3IEBAIEVuZExpc3QNCj4gPiAgICAgICAgICAgICAgcHJpbnQg KCJJTkZPIDogRXZhbCBJZmRlZiBbJXNdIDogJXMiICUgKE1hY3JvLCBSZXN1bHQpKQ0KPiA+DQo+ ID4gICAgICAgICAgcmV0dXJuICBSZXN1bHQNCj4gPg0KPiA+DQo+ID4NCj4gPiAtICAgIGRlZiBF eHBhbmRNYWNyb3MgKHNlbGYsIElucHV0KToNCj4gPg0KPiA+ICsgICAgZGVmIEV4cGFuZE1hY3Jv cyAoc2VsZiwgSW5wdXQsIFByZXNlcnZlID0gRmFsc2UpOg0KPiA+DQo+ID4gICAgICAgICAgTGlu ZSA9IElucHV0DQo+ID4NCj4gPiAgICAgICAgICBNYXRjaCA9IHJlLmZpbmRhbGwoIlwkXChcdytc KSIsIElucHV0KQ0KPiA+DQo+ID4gICAgICAgICAgaWYgTWF0Y2g6DQo+ID4NCj4gPiBAQCAtMzYy LDcgKzM2NCw4IEBAIEVuZExpc3QNCj4gPiAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4g ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuRGVidWc6DQo+ID4NCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgIHByaW50ICgiV0FSTiA6ICVzIGlzIG5vdCBkZWZpbmVkIiAlIEVhY2gpDQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgTGluZSA9IExpbmUucmVwbGFjZShFYWNoLCBFYWNoWzI6 LTFdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgIGlmIG5vdCBQcmVzZXJ2ZToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgTGluZSA9IExpbmUucmVwbGFjZShFYWNoLCBFYWNo WzI6LTFdKQ0KPiA+DQo+ID4gICAgICAgICAgcmV0dXJuIExpbmUNCj4gPg0KPiA+DQo+ID4NCj4g PiAgICAgIGRlZiBFeHBhbmRQY2RzIChzZWxmLCBJbnB1dCk6DQo+ID4NCj4gPiBAQCAtMzg2LDYg KzM4OSw3MCBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgIHByaW50ICgiSU5GTyA6IEV2YWwg RXhwcmVzcyBbJXNdIDogJXMiICUgKEV4cHIsIFJlc3VsdCkpDQo+ID4NCj4gPiAgICAgICAgICBy ZXR1cm4gUmVzdWx0DQo+ID4NCj4gPg0KPiA+DQo+ID4gKyAgICBkZWYgVmFsdWVUb0J5dGVBcnJh eSAoc2VsZiwgVmFsdWVTdHIsIExlbmd0aCk6DQo+ID4NCj4gPiArICAgICAgICBNYXRjaCA9IHJl Lm1hdGNoKCJce1xzKkZJTEU6KC4rKVx9IiwgVmFsdWVTdHIpDQo+ID4NCj4gPiArICAgICAgICBp ZiBNYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgRmlsZUxpc3QgPSBNYXRjaC5ncm91cCgxKS5z cGxpdCgnLCcpDQo+ID4NCj4gPiArICAgICAgICAgIFJlc3VsdCAgPSBieXRlYXJyYXkoKQ0KPiA+ DQo+ID4gKyAgICAgICAgICBmb3IgRmlsZSBpbiBGaWxlTGlzdDoNCj4gPg0KPiA+ICsgICAgICAg ICAgICBGaWxlID0gRmlsZS5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAgICAgICAgQmluUGF0aCA9 IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoc2VsZi5fRHNjRmlsZSksIEZpbGUpDQo+ID4N Cj4gPiArICAgICAgICAgICAgUmVzdWx0LmV4dGVuZChieXRlYXJyYXkob3BlbihCaW5QYXRoLCAn cmInKS5yZWFkKCkpKQ0KPiA+DQo+ID4gKyAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAg ICAgICB0cnk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIFJlc3VsdCAgPSBieXRlYXJyYXko c2VsZi5WYWx1ZVRvTGlzdChWYWx1ZVN0ciwgTGVuZ3RoKSkNCj4gPg0KPiA+ICsgICAgICAgICAg ICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24gKCJCeXRlcyBpbiAnJXMnIG11c3QgYmUgaW4gcmFuZ2UgMH4yNTUgISIgJQ0K PiBWYWx1ZVN0cikNCj4gPg0KPiA+ICsgICAgICAgIGlmIGxlbihSZXN1bHQpIDwgTGVuZ3RoOg0K PiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdC5leHRlbmQoYidceDAwJyAqIChMZW5ndGggLSBs ZW4oUmVzdWx0KSkpDQo+ID4NCj4gPiArICAgICAgICBlbGlmIGxlbihSZXN1bHQpID4gTGVuZ3Ro Og0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbiAoIlZhbHVlICclcycgaXMg dG9vIGJpZyB0byBmaXQgaW50byAlZCBieXRlcyAhIiAlDQo+IChWYWx1ZVN0ciwNCj4gPiBMZW5n dGgpKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIFJlc3VsdFs6TGVuZ3Ro XQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgVmFsdWVUb0xpc3QgKHNlbGYsIFZhbHVl U3RyLCBMZW5ndGgpOg0KPiA+DQo+ID4gKyAgICAgICAgaWYgVmFsdWVTdHJbMF0gPT0gJ3snOg0K PiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdCA9IFtdDQo+ID4NCj4gPiArICAgICAgICAgICAg QmluTGlzdCA9IFZhbHVlU3RyWzE6LTFdLnNwbGl0KCcsJykNCj4gPg0KPiA+ICsgICAgICAgICAg ICBJbkJpdEZpZWxkICAgICA9IEZhbHNlDQo+ID4NCj4gPiArICAgICAgICAgICAgTGFzdEluQml0 RmllbGQgPSBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIFZhbHVlICAgICAgICAgID0gMA0K PiA+DQo+ID4gKyAgICAgICAgICAgIEJpdExlbiAgICAgICAgID0gMA0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGZvciBFbGVtZW50IGluIEJpbkxpc3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IEluQml0RmllbGQgPSBGYWxzZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBFYWNoID0gRWxl bWVudC5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIGxlbihFYWNoKSA9PSAw Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcGFzcw0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgRWFjaFswXSBp biBbJyInLCAiJyJdOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdC5l eHRlbmQobGlzdChieXRlYXJyYXkoRWFjaFsxOi0xXSwgJ3V0Zi04JykpKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgZWxpZiAnOicgaW4gRWFjaDoNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBNYXRjaCAgICA9IHJlLm1hdGNoKCIoLispOihcZCspYiIsIEVhY2gpDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgTWF0Y2ggaXMgTm9uZToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJJbnZhbGQg dmFsdWUgbGlzdCBmb3JtYXQgJyVzJyAhIiAlIEVhY2gpDQo+ID4NCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgSW5CaXRGaWVsZCA9IFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBDdXJyZW50Qml0TGVuID0gaW50KE1hdGNoLmdyb3VwKDIpKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnRWYWx1ZSAgPSAoKHNlbGYuRXZhbHVhdGVFeHBy ZXNzKE1hdGNoLmdyb3VwKDEpKSAmDQo+ID4gKDE8PEN1cnJlbnRCaXRMZW4pIC0gMSkpIDw8IEJp dExlbg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBSZXN1bHQuYXBwZW5kKHNlbGYuRXZhbHVhdGVFeHByZXNzKEVh Y2guc3RyaXAoKSkpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIEluQml0RmllbGQ6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgKz0gQ3VycmVudFZhbHVlDQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICBCaXRMZW4gKz0gQ3VycmVudEJpdExlbg0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICBpZiBMYXN0SW5CaXRGaWVsZCBhbmQgKChub3QgSW5CaXRGaWVs ZCkgb3IgKEVsZW1lbnQgPT0gQmluTGlzdFstMV0pKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIGlmIEJpdExlbiAlIDggIT0gMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkludmFsZCBiaXQgZmllbGQgbGVuZ3RoISIpDQo+ID4NCj4g PiArICAgICAgICAgICAgICAgICAgICBSZXN1bHQuZXh0ZW5kKFZhbDJCeXRlcyhWYWx1ZSwgQml0 TGVuIC8vIDgpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgVmFsdWUgID0gMA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQml0TGVuID0gMA0KPiA+DQo+ID4gKyAgICAgICAg ICAgICAgICBMYXN0SW5CaXRGaWVsZCA9IEluQml0RmllbGQNCj4gPg0KPiA+ICsgICAgICAgIGVs aWYgVmFsdWVTdHIuc3RhcnRzd2l0aCgiJyIpIGFuZCBWYWx1ZVN0ci5lbmRzd2l0aCgiJyIpOg0K PiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdCA9IFN0cjJCeXRlcyAoVmFsdWVTdHIsIExlbmd0 aCkNCj4gPg0KPiA+ICsgICAgICAgIGVsaWYgVmFsdWVTdHIuc3RhcnRzd2l0aCgnIicpIGFuZCBW YWx1ZVN0ci5lbmRzd2l0aCgnIicpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIFJlc3VsdCA9IFN0 cjJCeXRlcyAoVmFsdWVTdHIsIExlbmd0aCkNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4N Cj4gPiArICAgICAgICAgICAgUmVzdWx0ID0gVmFsMkJ5dGVzIChzZWxmLkV2YWx1YXRlRXhwcmVz cyhWYWx1ZVN0ciksIExlbmd0aCkNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiBSZXN1bHQNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICAgICAgZGVmIEZvcm1hdExpc3RWYWx1ZShzZWxmLCBDb25maWdE aWN0KToNCj4gPg0KPiA+ICAgICAgICAgIFN0cnVjdCA9IENvbmZpZ0RpY3RbJ3N0cnVjdCddDQo+ ID4NCj4gPiAgICAgICAgICBpZiBTdHJ1Y3Qgbm90IGluIFsnVUlOVDgnLCdVSU5UMTYnLCdVSU5U MzInLCdVSU5UNjQnXToNCj4gPg0KPiA+IEBAIC00MjQsMjggKzQ5MSw1MyBAQCBFbmRMaXN0DQo+ ID4gICAgICAgICAgc2VsZi5fRHNjRmlsZSAgICAgPSBEc2NGaWxlDQo+ID4NCj4gPiAgICAgICAg ICBzZWxmLl9GdkRpciAgICAgICA9IEZ2RGlyDQo+ID4NCj4gPg0KPiA+DQo+ID4gKyAgICAgICAg c2VsZi5fRHNjTGluZXMgICAgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgc2VsZi5fQnNmVGVtcERp Y3QgPSB7fQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gICAgICAgICAgIyBJbml0aWFsIERTQyB0aW1l IGlzIHBhcmVudCBEU0MgdGltZS4NCj4gPg0KPiA+ICAgICAgICAgIHNlbGYuX0RzY1RpbWUgICAg ID0gb3MucGF0aC5nZXRtdGltZShEc2NGaWxlKQ0KPiA+DQo+ID4NCj4gPg0KPiA+ICsgICAgICAg IENmZ0RpY3QgPSB7fQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gICAgICAgICAgSXNEZWZTZWN0ICAg ICAgID0gRmFsc2UNCj4gPg0KPiA+ICAgICAgICAgIElzUGNkU2VjdCAgICAgICA9IEZhbHNlDQo+ ID4NCj4gPiAgICAgICAgICBJc1VwZFNlY3QgICAgICAgPSBGYWxzZQ0KPiA+DQo+ID4gICAgICAg ICAgSXNWcGRTZWN0ICAgICAgID0gRmFsc2UNCj4gPg0KPiA+ICsgICAgICAgIElzVG1wU2VjdCAg ICAgICA9IEZhbHNlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBUZW1wbGF0ZU5hbWUg ICAgPSAnJw0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgICAgICAgIElmU3RhY2sgICAgICAgICA9IFtd DQo+ID4NCj4gPiAgICAgICAgICBFbGlmU3RhY2sgICAgICAgPSBbXQ0KPiA+DQo+ID4gICAgICAg ICAgRXJyb3IgICAgICAgICAgID0gMA0KPiA+DQo+ID4gICAgICAgICAgQ29uZmlnRGljdCAgICAg ID0ge30NCj4gPg0KPiA+DQo+ID4NCj4gPiAtICAgICAgICBEc2NGZCAgICAgICAgPSBvcGVuKERz Y0ZpbGUsICJyIikNCj4gPg0KPiA+IC0gICAgICAgIERzY0xpbmVzICAgICA9IERzY0ZkLnJlYWRs aW5lcygpDQo+ID4NCj4gPiAtICAgICAgICBEc2NGZC5jbG9zZSgpDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICBpZiB0eXBlKERzY0ZpbGUpIGlzIGxpc3Q6DQo+ID4NCj4gPiArICAgICAg ICAgICAgIyBpdCBpcyBEU0MgbGluZXMgYWxyZWFkeQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIERz Y0xpbmVzICAgICAgID0gRHNjRmlsZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHNlbGYuX0RzY0Zp bGUgID0gJy4nDQo+ID4NCj4gPiArICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAg IERzY0ZkICAgICAgICA9IG9wZW4oRHNjRmlsZSwgInIiKQ0KPiA+DQo+ID4gKyAgICAgICAgICAg IERzY0xpbmVzICAgICA9IERzY0ZkLnJlYWRsaW5lcygpDQo+ID4NCj4gPiArICAgICAgICAgICAg RHNjRmQuY2xvc2UoKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHNlbGYuX0RzY0ZpbGUgPSBEc2NG aWxlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBTa2lwTGluZXMgPSAwDQo+ID4NCj4g Pg0KPiA+DQo+ID4gICAgICAgICAgTWF4QWxpZ24gPSAzMiAgICNEZWZhdWx0IGFsaWduIHRvIDMy LCBidXQgaWYgdGhlcmUgYXJlIDY0IGJpdCB1bml0LCBhbGlnbiB0bw0KPiA2NA0KPiA+DQo+ID4g ICAgICAgICAgU2l6ZUFsaWduID0gMCAgICNyZWNvcmQgdGhlIHN0cnVjdCBtYXggYWxpZ24NCj4g Pg0KPiA+ICAgICAgICAgIEJhc2UgPSAwICAgICAgICAjU3RhcnRpbmcgb2Zmc2V0IG9mIHN1Yi1z dHJ1Y3R1cmUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAgICAgICAgICB3aGlsZSBsZW4oRHNjTGlu ZXMpOg0KPiA+DQo+ID4gICAgICAgICAgICAgIERzY0xpbmUgID0gRHNjTGluZXMucG9wKDApLnN0 cmlwKCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBTa2lwTGluZXMgPT0gMDoNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgIHNlbGYuX0RzY0xpbmVzLmFwcGVuZCAoRHNjTGluZSkNCj4gPg0KPiA+ ICsgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgU2tpcExpbmVzID0g U2tpcExpbmVzIC0gMQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIGxlbihEc2NMaW5lKSA9PSAw Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgY29udGludWUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICAgICAgICAgICAgICBIYW5kbGUgICA9IEZhbHNlDQo+ID4NCj4gPiAgICAgICAgICAgICAgTWF0 Y2ggICAgPSByZS5tYXRjaCgiXlxbKC4rKVxdIiwgRHNjTGluZSkNCj4gPg0KPiA+ICAgICAgICAg ICAgICBpZiBNYXRjaCBpcyBub3QgTm9uZToNCj4gPg0KPiA+IEBAIC00NTMsMTEgKzU0NSwxNSBA QCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgICAgICBJc1BjZFNlY3QgPSBGYWxzZQ0KPiA+DQo+ ID4gICAgICAgICAgICAgICAgICBJc1ZwZFNlY3QgPSBGYWxzZQ0KPiA+DQo+ID4gICAgICAgICAg ICAgICAgICBJc1VwZFNlY3QgPSBGYWxzZQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBpZiAg TWF0Y2guZ3JvdXAoMSkubG93ZXIoKSA9PSAiRGVmaW5lcyIubG93ZXIoKToNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgSXNUbXBTZWN0ID0gRmFsc2UNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgU2VjdGlvbk5hbWUgPSBNYXRjaC5ncm91cCgxKS5sb3dlcigpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgIGlmICBTZWN0aW9uTmFtZSA9PSAiRGVmaW5lcyIubG93ZXIoKToNCj4gPg0KPiA+ ICAgICAgICAgICAgICAgICAgICAgIElzRGVmU2VjdCA9IFRydWUNCj4gPg0KPiA+IC0gICAgICAg ICAgICAgICAgaWYgIChNYXRjaC5ncm91cCgxKS5sb3dlcigpID09ICJQY2RzRmVhdHVyZUZsYWci Lmxvd2VyKCkgb3INCj4gPiBNYXRjaC5ncm91cCgxKS5sb3dlcigpID09ICJQY2RzRml4ZWRBdEJ1 aWxkIi5sb3dlcigpKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgIChTZWN0aW9uTmFt ZSA9PSAiUGNkc0ZlYXR1cmVGbGFnIi5sb3dlcigpIG9yIFNlY3Rpb25OYW1lDQo+ID09DQo+ID4g IlBjZHNGaXhlZEF0QnVpbGQiLmxvd2VyKCkpOg0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAg ICAgSXNQY2RTZWN0ID0gVHJ1ZQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBlbGlmIE1hdGNo Lmdyb3VwKDEpLmxvd2VyKCkgPT0gIlBjZHNEeW5hbWljVnBkLlVwZCIubG93ZXIoKToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgZWxpZiBTZWN0aW9uTmFtZSA9PSAiUGNkc0R5bmFtaWNWcGQu VG1wIi5sb3dlcigpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgSXNUbXBTZWN0ID0g VHJ1ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICBlbGlmIFNlY3Rpb25OYW1lID09ICJQY2Rz RHluYW1pY1ZwZC5VcGQiLmxvd2VyKCk6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBD b25maWdEaWN0ID0ge30NCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3Rb J2hlYWRlciddICA9ICdPTicNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0Rp Y3RbJ3JlZ2lvbiddICA9ICdVUEQnDQo+ID4NCj4gPiBAQCAtNDY1LDkwICs1NjEsOTggQEAgRW5k TGlzdA0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ3BhZ2UnXSAgICA9ICcn DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WyduYW1lJ10gICAgPSAn Jw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgQ29uZmlnRGljdFsnZmluZCddICAgID0g JycNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ21hcmtlciddICA9 ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydzdHJ1Y3QnXSAg PSAnJw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgQ29uZmlnRGljdFsnZW1iZWQnXSAg ID0gJycNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ2NvbW1lbnQn XSA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25maWdEaWN0WydzdWJyZWcn XSAgPSBbXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQ29uZmlnRGljdFsnY29uZGl0 aW9uJ10gID0gJycNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpY3RbJ29w dGlvbiddICA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBJc1VwZFNlY3QgPSBU cnVlDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgICAgPSAwDQo+ID4NCj4g PiAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgaWYgSXNEZWZT ZWN0IG9yIElzUGNkU2VjdCBvciBJc1VwZFNlY3Qgb3IgSXNWcGRTZWN0Og0KPiA+DQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgaWYgcmUubWF0Y2goIl4hZWxzZSgkfFxzKyMuKykiLCBEc2NMaW5l KToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgSXNEZWZTZWN0IG9yIElzUGNkU2VjdCBv ciBJc1VwZFNlY3Qgb3IgSXNWcGRTZWN0IG9yIElzVG1wU2VjdDoNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgIE1hdGNoID0gRmFsc2UgaWYgRHNjTGluZVswXSAhPSAn IScgZWxzZSBUcnVlDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaDoNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaCA9DQo+ID4gcmUubWF0Y2goIl4h KGVsc2V8ZW5kaWZ8aWZkZWZ8aWZuZGVmfGlmfGVsc2VpZnxpbmNsdWRlKVxzKiguKyk/JCIsDQo+ ID4gRHNjTGluZS5zcGxpdCgiIyIpWzBdKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg S2V5d29yZCAgID0gTWF0Y2guZ3JvdXAoMSkgaWYgTWF0Y2ggZWxzZSAnJw0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgUmVtYWluaW5nID0gTWF0Y2guZ3JvdXAoMikgaWYgTWF0Y2ggZWxz ZSAnJw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgUmVtYWluaW5nID0gJycgaWYgUmVt YWluaW5nIGlzIE5vbmUgZWxzZSBSZW1haW5pbmcuc3RyaXAoKQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgaWYgS2V5d29yZCBpbiBbJ2lmJywgJ2Vsc2VpZicsICdp ZmRlZicsICdpZm5kZWYnLCAnaW5jbHVkZSddIGFuZCBub3QNCj4gPiBSZW1haW5pbmc6DQo+ID4N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uICgiRVJST1I6IEV4 cHJlc3Npb24gaXMgZXhwZWN0ZWQgYWZ0ZXIgJyFpZicNCj4gPiBvciAhZWxzZWlmJyBmb3IgbGlu ZSAnJXMnIiAlIERzY0xpbmUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICBpZiBLZXl3b3JkID09ICdlbHNlJzoNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBJZlN0YWNrOg0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZlN0YWNrWy0xXSA9IG5vdCBJZlN0YWNrWy0xXQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50 KCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVsc2UnIGZvciBsaW5lICclcyci ICUNCj4gPiBEc2NMaW5lKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy YWlzZSBTeXN0ZW1FeGl0DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBlbGlmIHJlLm1h dGNoKCJeIWVuZGlmKCR8XHMrIy4rKSIsIERzY0xpbmUpOg0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24gKCJFUlJPUjogTm8gcGFpcmVkICchaWYn IGZvdW5kIGZvciAnIWVsc2UnIGZvcg0KPiBsaW5lDQo+ID4gJyVzJyIgJSBEc2NMaW5lKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZWxpZiBLZXl3b3JkID09ICdlbmRpZic6DQo+ID4N Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgSWZTdGFjazoNCj4gPg0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWZTdGFjay5wb3AoKQ0KPiA+DQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMZXZlbCA9IEVsaWZTdGFjay5wb3AoKQ0KPiA+DQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBMZXZlbCA+IDA6DQo+ID4NCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwgSWZTdGFja1stTGV2ZWw6XQ0KPiA+DQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByaW50KCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVu ZGlmJyBmb3IgbGluZSAnJXMnIiAlDQo+ID4gRHNjTGluZSkNCj4gPg0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdA0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQg PSBGYWxzZQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoID0gcmUubWF0 Y2goIiEoaWZkZWZ8aWZuZGVmKVxzKyguKykiLCBEc2NMaW5lKQ0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXN1bHQgPSBzZWxmLkV2YXVsYXRlSWZkZWYgKE1hdGNoLmdyb3VwKDIpKQ0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaC5ncm91cCgxKSA9PSAn aWZuZGVmJzoNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3Vs dCA9IG5vdCBSZXN1bHQNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgSWZT dGFjay5hcHBlbmQoUmVzdWx0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24gKCJFUlJPUjogTm8gcGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVu ZGlmJyBmb3INCj4gPiBsaW5lICclcyciICUgRHNjTGluZSkNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIGVsaWYgS2V5d29yZCA9PSAnaWZkZWYnIG9yIEtleXdvcmQgPT0gJ2lmbmRlZic6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gc2VsZi5FdmF1bGF0 ZUlmZGVmIChSZW1haW5pbmcpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYg S2V5d29yZCA9PSAnaWZuZGVmJzoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVzdWx0ID0gbm90IFJlc3VsdA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IElmU3RhY2suYXBwZW5kKFJlc3VsdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBFbGlmU3RhY2suYXBwZW5kKDApDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBlbGlm IEtleXdvcmQgPT0gJ2lmJyBvciBLZXl3b3JkID09ICdlbHNlaWYnOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IHNlbGYuRXZhbHVhdGVFeHByZXNzKFJlbWFpbmlu ZykNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBLZXl3b3JkID09ICJpZiI6 DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsaWZTdGFjay5hcHBlbmQo MCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWZTdGFjay5hcHBlbmQo UmVzdWx0KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6ICAgI2Vsc2Vp Zg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBJZlN0YWNrOg0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWZTdGFja1stMV0gPSBub3Qg SWZTdGFja1stMV0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm U3RhY2suYXBwZW5kKFJlc3VsdCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsaWZTdGFja1stMV0gPSBFbGlmU3RhY2tbLTFdICsgMQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uICgiRVJST1I6IE5vIHBhaXJlZCAnIWlmJyBm b3VuZCBmb3IgJyFlbGlmJyBmb3INCj4gPiBsaW5lICclcyciICUgRHNjTGluZSkNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgaWYgSWZTdGFjazoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg SGFuZGxlID0gcmVkdWNlKGxhbWJkYSB4LHk6IHggYW5kIHksIElmU3RhY2spDQo+ID4NCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWF0Y2ggID0gcmUubWF0Y2goIiEoaWZ8ZWxzZWlmKVxzKyguKykiLCBEc2NM aW5lLnNwbGl0KCIjIilbMF0pDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg IEhhbmRsZSA9IFRydWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiBIYW5k bGU6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoID0gcmUubWF0 Y2goIiFpbmNsdWRlXHMrKC4rKSIsIERzY0xpbmUpDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVzdWx0ID0gc2VsZi5FdmFsdWF0ZUV4cHJlc3MoTWF0Y2guZ3JvdXAoMikpDQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaC5ncm91cCgx KSA9PSAiaWYiOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsaWZTdGFjay5hcHBlbmQoMCkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZlN0YWNrLmFwcGVuZChSZXN1bHQpDQo+ID4NCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbHNlOiAgICNlbHNlaWYNCj4gPg0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBJZlN0YWNrOg0KPiA+DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZlN0YWNrWy0xXSA9IG5vdCBJZlN0YWNr Wy0xXQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZlN0YWNrLmFwcGVuZChSZXN1bHQpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsaWZTdGFja1stMV0gPSBFbGlmU3RhY2tbLTFdICsgMQ0KPiA+DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJFUlJPUjogTm8g cGFpcmVkICchaWYnIGZvdW5kIGZvciAnIWVsaWYnIGZvciBsaW5lDQo+ICclcyciDQo+ID4gJSBE c2NMaW5lKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByYWlzZSBTeXN0ZW1FeGl0DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBJZlN0 YWNrOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRs ZSA9IHJlZHVjZShsYW1iZGEgeCx5OiB4IGFuZCB5LCBJZlN0YWNrKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZUZpbGVQYXRoID0gTWF0Y2guZ3JvdXAo MSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGVGaWxl UGF0aCA9IHNlbGYuRXhwYW5kTWFjcm9zKEluY2x1ZGVGaWxlUGF0aCkNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2VzUGF0aCA9IG9zLmdldGVudigiUEFD S0FHRVNfUEFUSCIpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBQYWNrYWdlc1BhdGg6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBQYWNrYWdlUGF0aCBpbiBQYWNrYWdlc1BhdGguc3BsaXQob3MucGF0aHNlcCk6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlRmls ZVBhdGhBYnMgPQ0KPiA+IG9zLnBhdGguam9pbihvcy5wYXRoLm5vcm1wYXRoKFBhY2thZ2VQYXRo KSwNCj4gPiBvcy5wYXRoLm5vcm1wYXRoKEluY2x1ZGVGaWxlUGF0aCkpDQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhJbmNs dWRlRmlsZVBhdGhBYnMpOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluY2x1ZGVEc2MgID0gb3BlbihJbmNsdWRlRmlsZVBhdGhBYnMsICJyIikN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh aw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYW5kbGUgPSBUcnVlDQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBIYW5kbGU6DQo+ID4N Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRj aCgiIWluY2x1ZGVccysoLispIiwgRHNjTGluZSkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZUZpbGVQYXRoID0gTWF0Y2guZ3JvdXAoMSkN Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVk ZUZpbGVQYXRoID0gc2VsZi5FeHBhbmRNYWNyb3MoSW5jbHVkZUZpbGVQYXRoKQ0KPiA+DQo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlc1BhdGggPSBv cy5nZXRlbnYoIlBBQ0tBR0VTX1BBVEgiKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBQYWNrYWdlc1BhdGg6DQo+ID4NCj4gPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIFBhY2thZ2VQYXRoIGluIFBhY2th Z2VzUGF0aC5zcGxpdChvcy5wYXRoc2VwKToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZUZpbGVQYXRoQWJzID0NCj4gPiBvcy5w YXRoLmpvaW4ob3MucGF0aC5ub3JtcGF0aChQYWNrYWdlUGF0aCksDQo+ID4gb3MucGF0aC5ub3Jt cGF0aChJbmNsdWRlRmlsZVBhdGgpKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhJbmNsdWRlRmlsZVBhdGhB YnMpOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5jbHVkZURzYyAgPSBvcGVuKEluY2x1ZGVGaWxlUGF0aEFicywgInIiKQ0KPiA+ DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWsNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmNsdWRlRHNjICA9IG9wZW4oSW5jbHVkZUZpbGVQYXRoLCAiciIpDQo+ID4NCj4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIEluY2x1ZGVEc2MgPT0gTm9u ZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByaW50KCJFUlJPUjogQ2Fubm90IG9wZW4gZmlsZSAnJXMnIiAlDQo+IEluY2x1ZGVGaWxlUGF0 aCkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJhaXNlIFN5c3RlbUV4aXQNCj4gPg0KPiA+IC0NCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUgRHNjVGltZSB3aGVuIG5ld2VyIERTQyB0 aW1lIGZvdW5kLg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDdXJyZW50RHNjVGltZSA9DQo+ID4gb3MucGF0aC5nZXRtdGltZShvcy5wYXRoLnJlYWxw YXRoKEluY2x1ZGVEc2MubmFtZSkpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIEN1cnJlbnREc2NUaW1lID4gc2VsZi5fRHNjVGltZToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0Rz Y1RpbWUgPSBDdXJyZW50RHNjVGltZQ0KPiA+DQo+ID4gLQ0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdEc2NMaW5lcyA9IEluY2x1ZGVEc2MucmVh ZGxpbmVzKCkNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSW5jbHVkZURzYy5jbG9zZSgpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERzY0xpbmVzID0gTmV3RHNjTGluZXMgKyBEc2NMaW5lcw0KPiA+DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgPSAwDQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgRHNjTGluZS5z dGFydHN3aXRoKCchJyk6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcmludCgiRVJST1I6IFVucmVjb2duaXplZCBkaXJlY3RpdmUgZm9yIGxp bmUgJyVzJyIgJQ0KPiA+IERzY0xpbmUpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGVEc2MgID0gb3BlbihJbmNsdWRlRmls ZVBhdGgsICJyIikNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IEluY2x1ZGVEc2MgPT0gTm9uZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcmludCgiRVJST1I6IENhbm5vdCBvcGVuIGZpbGUgJyVzJyIgJSBJbmNsdWRl RmlsZVBhdGgpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmFpc2UgU3lzdGVtRXhpdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBVcGRhdGUgRHNjVGltZSB3aGVuIG5ld2VyIERTQyB0aW1lIGZvdW5k Lg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVudERzY1Rp bWUgPQ0KPiA+IG9zLnBhdGguZ2V0bXRpbWUob3MucGF0aC5yZWFscGF0aChJbmNsdWRlRHNjLm5h bWUpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgQ3VycmVu dERzY1RpbWUgPiBzZWxmLl9Ec2NUaW1lOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX0RzY1RpbWUgPSBDdXJyZW50RHNjVGltZQ0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3RHNjTGluZXMg PSBJbmNsdWRlRHNjLnJlYWRsaW5lcygpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmNsdWRlRHNjLmNsb3NlKCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERzY0xpbmVzID0gTmV3RHNjTGluZXMgKyBEc2NMaW5lcw0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsIHNlbGYuX0RzY0xpbmVzWy0x XQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ID0gMA0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgRHNjTGluZS5zdGFydHN3aXRoKCchJyk6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkVS Uk9SOiBVbnJlY29nbml6ZWQgZGlyZWN0aXZlIGZvciBsaW5lICclcyciICUNCj4gPiBEc2NMaW5l KQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFN5 c3RlbUV4aXQNCj4gPg0KPiA+ICAgICAgICAgICAgICBpZiBub3QgSGFuZGxlOg0KPiA+DQo+ID4g KyAgICAgICAgICAgICAgICBkZWwgc2VsZi5fRHNjTGluZXNbLTFdDQo+ID4NCj4gPiAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlDQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAgICAgICAgIGlmIElz RGVmU2VjdDoNCj4gPg0KPiA+IEBAIC01NTYsNyArNjYwLDcgQEAgRW5kTGlzdA0KPiA+ICAgICAg ICAgICAgICAgICAgI0RFRklORSBGU1BfVF9VUERfVE9PTF9HVUlEID0gMzQ2ODZDQTMtMzRGOS00 OTAxLUI4MkEtDQo+ID4gQkE2MzBGMDcxNEM2DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICNE RUZJTkUgRlNQX01fVVBEX1RPT0xfR1VJRCA9IDM5QTI1MERCLUU0NjUtNEREMS1BMkFDLQ0KPiA+ IEUyQkQzQzBFMjM4NQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAjREVGSU5FIEZTUF9TX1VQ RF9UT09MX0dVSUQgPSBDQUUzNjA1Qi01QjM0LTRDODUtQjNENy0NCj4gPiAyN0Q1NDI3M0M0MEYN Cj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRjaCgiXlxzKig/OkRFRklO RVxzKykqKFx3Kylccyo9XHMqKFsvJCgpLS5cd10rKSIsDQo+ID4gRHNjTGluZSkNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5tYXRjaCgiXlxzKig/OkRFRklORVxzKykqKFx3 Kylccyo9XHMqKC4rKSIsDQo+IERzY0xpbmUpDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgIGlm IE1hdGNoOg0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgc2VsZi5fTWFjcm9EaWN0W01h dGNoLmdyb3VwKDEpXSA9DQo+ID4gc2VsZi5FeHBhbmRNYWNyb3MoTWF0Y2guZ3JvdXAoMikpDQo+ ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLkRlYnVnOg0KPiA+DQo+ID4gQEAg LTU3NSw2ICs2NzksMjMgQEAgRW5kTGlzdA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBNYXRjaDoNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUGNk c0RpY3RbTWF0Y2guZ3JvdXAoMSldID0gTWF0Y2guZ3JvdXAoMikNCj4gPg0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICBpICs9IDENCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgICAg ICBlbGlmIElzVG1wU2VjdDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgIyAhQlNGIERFRlQ6 e0dQSU9fVE1QTDpTVEFSVH0NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgTWF0Y2ggPSByZS5t YXRjaCgiXlxzKiNccysoIUJTRilccytERUZUOnsoLis/KTooU1RBUlR8RU5EKX0iLA0KPiA+IERz Y0xpbmUpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgaWYgTWF0Y2guZ3JvdXAoMykgPT0gJ1NUQVJUJyBhbmQgbm90IFRl bXBsYXRlTmFtZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZU5h bWUgPSBNYXRjaC5ncm91cCgyKS5zdHJpcCgpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5fQnNmVGVtcERpY3RbVGVtcGxhdGVOYW1lXSA9IFtdDQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICBpZiBNYXRjaC5ncm91cCgzKSA9PSAnRU5EJyBhbmQgKFRlbXBsYXRl TmFtZSA9PQ0KPiA+IE1hdGNoLmdyb3VwKDIpLnN0cmlwKCkpIGFuZCBUZW1wbGF0ZU5hbWU6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVOYW1lID0gJycNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg IGlmIFRlbXBsYXRlTmFtZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBNYXRj aCA9IHJlLm1hdGNoKCJeIWluY2x1ZGVccyooLispPyQiLCBEc2NMaW5lKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuX0JzZlRlbXBEaWN0W1RlbXBsYXRlTmFtZV0uYXBwZW5kKERzY0xpbmUpDQo+ID4NCj4g PiArDQo+ID4NCj4gPiAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICAgICAgICAgICAgICAg ICAgTWF0Y2ggPSByZS5tYXRjaCgiXlxzKiNccysoIUJTRnxAQnNmfCFIRFIpXHMrKC4rKSIsIERz Y0xpbmUpDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgIGlmIE1hdGNoOg0KPiA+DQo+ID4gQEAg LTYzMCw5ICs3NTEsOSBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgICAgICBNYXRjaCA9IHJl Lm1hdGNoKCJeXHMqI1xzKkBWYWxpZFJhbmdlXHMqKC4rKVxzKlx8XHMqKC4rKVxzKi0NCj4gPiBc cyooLispXHMqIiwgRHNjTGluZSkNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgaWYgTWF0Y2g6 DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBpZiAiMHgiIGluIE1hdGNoLmdyb3VwKDIp IG9yICIweCIgaW4gTWF0Y2guZ3JvdXAoMyk6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRpdE51bSwgSEVYLCAoJXMsJXMpIiAlDQo+IChN YXRjaC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91cCgzKSkNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRpdE51bSwgSEVYLCAoJXMsJXMp IiAlDQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91cCgzKSkNCj4gPg0KPiA+ICAg ICAgICAgICAgICAgICAgICAgIGVsc2U6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRpdE51bSwgREVDLCAoJXMsJXMpIiAlDQo+IChNYXRj aC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91cCgzKSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBDb25maWdEaWN0Wyd0eXBlJ10gPSAiRWRpdE51bSwgREVDLCAoJXMsJXMpIiAl DQo+IChNYXRjaC5ncm91cCgyKSwNCj4gPiBNYXRjaC5ncm91cCgzKSkNCj4gPg0KPiA+DQo+ID4N Cj4gPiAgICAgICAgICAgICAgICAgIE1hdGNoID0gcmUubWF0Y2goIl5ccyojI1xzKyguKykiLCBE c2NMaW5lKQ0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICBpZiBNYXRjaDoNCj4gPg0KPiA+IEBA IC03NDgsNiArODY5LDcgQEAgRW5kTGlzdA0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZp Z0RpY3RbJ3N0cnVjdCddID0gJycNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZp Z0RpY3RbJ2VtYmVkJ10gID0gJycNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIENvbmZp Z0RpY3RbJ2NvbW1lbnQnXSA9ICcnDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBDb25m aWdEaWN0WydtYXJrZXInXSA9ICcnDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25m aWdEaWN0WydvcmRlciddICA9IC0xDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25m aWdEaWN0WydzdWJyZWcnXSA9IFtdDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgICAgICBDb25m aWdEaWN0WydvcHRpb24nXSA9ICcnDQo+ID4NCj4gPiBAQCAtNzg2LDkgKzkwOCw4IEBAIEVuZExp c3QNCj4gPiAgICAgICAgICBiaXRzdmFsdWUgPSBiaXRzdmFsdWVbOjotMV0NCj4gPg0KPiA+ICAg ICAgICAgIGJpdHNsZW4gICA9IGxlbihiaXRzdmFsdWUpDQo+ID4NCj4gPiAgICAgICAgICBpZiBz dGFydCA+IGJpdHNsZW4gb3IgZW5kID4gYml0c2xlbjoNCj4gPg0KPiA+IC0gICAgICAgICAgICBw cmludCAoIkludmFsaWQgYml0cyBvZmZzZXQgWyVkLCVkXSBmb3IgJXMiICUgKHN0YXJ0LCBlbmQs DQo+IHN1Yml0ZW1bJ25hbWUnXSkpDQo+ID4NCj4gPiAtICAgICAgICAgICAgcmFpc2UgU3lzdGVt RXhpdA0KPiA+DQo+ID4gLSAgICAgICAgcmV0dXJuIGhleChpbnQoYml0c3ZhbHVlW3N0YXJ0OmVu ZF1bOjotMV0sIDIpKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbiAoIklu dmFsaWQgYml0cyBvZmZzZXQgWyVkLCVkXSAlZCBmb3IgJXMiICUgKHN0YXJ0LA0KPiBlbmQsDQo+ ID4gYml0c2xlbiwgc3ViaXRlbVsnbmFtZSddKSkNCj4gPg0KPiA+ICsgICAgICAgIHJldHVybiAn MHglWCcgJSAoaW50KGJpdHN2YWx1ZVtzdGFydDplbmRdWzo6LTFdLCAyKSkNCj4gPg0KPiA+DQo+ ID4NCj4gPiAgICAgIGRlZiBVcGRhdGVTdWJSZWdpb25EZWZhdWx0VmFsdWUgKHNlbGYpOg0KPiA+ DQo+ID4gICAgICAgICAgRXJyb3IgPSAwDQo+ID4NCj4gPiBAQCAtODg4LDYzICsxMDA5LDE0MiBA QCBFbmRMaXN0DQo+ID4gICAgICAgICAgICAgIFR4dEZkLmNsb3NlKCkNCj4gPg0KPiA+ICAgICAg ICAgIHJldHVybiAwDQo+ID4NCj4gPg0KPiA+DQo+ID4gLSAgICBkZWYgUHJvY2Vzc011bHRpbGlu ZXMgKHNlbGYsIFN0cmluZywgTWF4Q2hhckxlbmd0aCk6DQo+ID4NCj4gPiAtICAgICAgICAgICAg TXVsdGlsaW5lcyA9ICcnDQo+ID4NCj4gPiAtICAgICAgICAgICAgU3RyaW5nTGVuZ3RoID0gbGVu KFN0cmluZykNCj4gPg0KPiA+IC0gICAgICAgICAgICBDdXJyZW50U3RyaW5nU3RhcnQgPSAwDQo+ ID4NCj4gPiAtICAgICAgICAgICAgU3RyaW5nT2Zmc2V0ID0gMA0KPiA+DQo+ID4gLSAgICAgICAg ICAgIEJyZWFrTGluZURpY3QgPSBbXQ0KPiA+DQo+ID4gLSAgICAgICAgICAgIGlmIGxlbihTdHJp bmcpIDw9IE1heENoYXJMZW5ndGg6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgIHdoaWxlIChT dHJpbmdPZmZzZXQgPCBTdHJpbmdMZW5ndGgpOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgaWYgU3RyaW5nT2Zmc2V0ID49IDE6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgaWYgU3RyaW5nW1N0cmluZ09mZnNldCAtIDFdID09ICdcXCcgYW5kIFN0cmluZ1tTdHJpbmdP ZmZzZXRdID09ICduJzoNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJl YWtMaW5lRGljdC5hcHBlbmQgKFN0cmluZ09mZnNldCArIDEpDQo+ID4NCj4gPiAtICAgICAgICAg ICAgICAgICAgICBTdHJpbmdPZmZzZXQgKz0gMQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBp ZiBCcmVha0xpbmVEaWN0ICE9IFtdOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgZm9y IEVhY2ggaW4gQnJlYWtMaW5lRGljdDoNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICBNdWx0aWxpbmVzICs9ICIgICVzXG4iICUgU3RyaW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNo XS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnRTdHJp bmdTdGFydCA9IEVhY2gNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgIGlmIFN0cmluZ0xl bmd0aCAtIEN1cnJlbnRTdHJpbmdTdGFydCA+IDA6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xuIiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3Rh cnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICBkZWYgQ3JlYXRlVmFyRGljdCAoc2VsZik6DQo+ ID4NCj4gPiArICAgICAgICBFcnJvciA9IDANCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuX1ZhckRp Y3QgPSB7fQ0KPiA+DQo+ID4gKyAgICAgICAgaWYgbGVuKHNlbGYuX0NmZ0l0ZW1MaXN0KSA+IDA6 DQo+ID4NCj4gPiArICAgICAgICAgICAgSXRlbSA9IHNlbGYuX0NmZ0l0ZW1MaXN0Wy0xXQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgIHNlbGYuX1ZhckRpY3RbJ19MRU5HVEhfJ10gPSAnJWQnICUgKEl0 ZW1bJ29mZnNldCddICsgSXRlbVsnbGVuZ3RoJ10pDQo+ID4NCj4gPiArICAgICAgICBmb3IgSXRl bSBpbiBzZWxmLl9DZmdJdGVtTGlzdDoNCj4gPg0KPiA+ICsgICAgICAgICAgICBFbWJlZCA9IEl0 ZW1bJ2VtYmVkJ10NCj4gPg0KPiA+ICsgICAgICAgICAgICBNYXRjaCA9IHJlLm1hdGNoKCJeKFx3 Kyk6KFx3Kyk6KFNUQVJUfEVORCkiLCBFbWJlZCkNCj4gPg0KPiA+ICsgICAgICAgICAgICBpZiBN YXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgU3RydWN0TmFtZSA9IE1hdGNoLmdyb3Vw KDEpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIFZhck5hbWUgPSAnXyVzXyVzXycgJSAoTWF0 Y2guZ3JvdXAoMyksIFN0cnVjdE5hbWUpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIE1h dGNoLmdyb3VwKDMpID09ICdFTkQnOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fVmFyRGljdFtWYXJOYW1lXSA9IEl0ZW1bJ29mZnNldCddICsgSXRlbVsnbGVuZ3RoJ10NCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHNlbGYuX1ZhckRpY3RbJ19MRU5HVEhfJXNfJyAl IFN0cnVjdE5hbWVdID0gXA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X1ZhckRpY3RbJ19FTkRfJXNfJyAlIFN0cnVjdE5hbWVdIC0NCj4gPiBzZWxmLl9WYXJEaWN0Wydf U1RBUlRfJXNfJyAlIFN0cnVjdE5hbWVdDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBp ZiBNYXRjaC5ncm91cCgyKS5zdGFydHN3aXRoKCdUQUdfJyk6DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHNlbGYuTW9kZSAhPSAnRlNQJykgYW5kIChzZWxmLl9WYXJEaWN0 WydfTEVOR1RIXyVzXycgJQ0KPiA+IFN0cnVjdE5hbWVdICUgNCk6DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2l6ZSBvZiBzdHJ1Y3R1cmUg JyVzJyBpcyAlZCwgbm90IERXT1JEDQo+ID4gYWxpZ25lZCAhIiAlIChTdHJ1Y3ROYW1lLCBzZWxm Ll9WYXJEaWN0WydfTEVOR1RIXyVzXycgJSBTdHJ1Y3ROYW1lXSkpDQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fVmFyRGljdFsnX1RBR18lc18nICUgU3RydWN0TmFtZV0g PSBpbnQNCj4gPiAoTWF0Y2guZ3JvdXAoMilbNDpdLCAxNikgJiAweEZGRg0KPiA+DQo+ID4gICAg ICAgICAgICAgICAgICBlbHNlOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgTXVsdGls aW5lcyA9ICIgICVzXG4iICUgU3RyaW5nDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBz ZWxmLl9WYXJEaWN0W1Zhck5hbWVdID0gSXRlbVsnb2Zmc2V0J10NCj4gPg0KPiA+ICsgICAgICAg ICAgICBpZiBJdGVtWydtYXJrZXInXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgc2VsZi5f VmFyRGljdFsnX09GRlNFVF8lc18nICUgSXRlbVsnbWFya2VyJ10uc3RyaXAoKV0gPQ0KPiBJdGVt WydvZmZzZXQnXQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIEVycm9yDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAgIGRlZiBVcGRhdGVCc2ZCaXRVbml0IChzZWxmLCBJdGVtKToNCj4gPg0KPiA+ ICsgICAgICAgIEJpdFRvdGFsICA9IDANCj4gPg0KPiA+ICsgICAgICAgIEJpdE9mZnNldCA9IDAN Cj4gPg0KPiA+ICsgICAgICAgIFN0YXJ0SWR4ICA9IDANCj4gPg0KPiA+ICsgICAgICAgIFVuaXQg ICAgICA9IE5vbmUNCj4gPg0KPiA+ICsgICAgICAgIFVuaXREZWMgICA9IHsxOidCWVRFJywgMjon V09SRCcsIDQ6J0RXT1JEJywgODonUVdPUkQnfQ0KPiA+DQo+ID4gKyAgICAgICAgZm9yIElkeCwg U3ViSXRlbSBpbiBlbnVtZXJhdGUoSXRlbVsnc3VicmVnJ10pOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGlmIFVuaXQgaXMgTm9uZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgVW5pdCAgPSBT dWJJdGVtWydiaXR1bml0J10NCj4gPg0KPiA+ICsgICAgICAgICAgICBCaXRMZW5ndGggPSBTdWJJ dGVtWydiaXRsZW5ndGgnXQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIEJpdFRvdGFsICArPSBCaXRM ZW5ndGgNCj4gPg0KPiA+ICsgICAgICAgICAgICBCaXRPZmZzZXQgKz0gQml0TGVuZ3RoDQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgQml0T2Zmc2V0ID4gNjQgb3IgQml0T2Zm c2V0ID4gVW5pdCAqIDg6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGJyZWFrDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAgICAgICAgICAgaWYgQml0T2Zmc2V0ID09IFVuaXQgKiA4Og0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICBmb3IgU3ViSWR4IGluIHJhbmdlIChTdGFydElkeCwgSWR4 ICsgMSk6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBJdGVtWydzdWJyZWcnXVtTdWJJ ZHhdWydiaXR1bml0J10gPSBVbml0DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIEJpdE9mZnNl dCA9IDANCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgU3RhcnRJZHggID0gSWR4ICsgMQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICBVbml0ICAgICAgPSBOb25lDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAgICAgICBpZiBCaXRPZmZzZXQgPiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbiAoIkJpdCBmaWVsZHMgY2Fubm90IGZpdCBpbnRvICVzIGZvciAnJXMuJXMn ICEiICUNCj4gPiAoVW5pdERlY1tVbml0XSwgSXRlbVsnY25hbWUnXSwgU3ViSXRlbVsnY25hbWUn XSkpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgICAgICBFeHBlY3RlZFRvdGFsID0gSXRlbVsn bGVuZ3RoJ10gKiA4DQo+ID4NCj4gPiArICAgICAgICBpZiBJdGVtWydsZW5ndGgnXSAqIDggIT0g Qml0VG90YWw6DQo+ID4NCj4gPiArICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uICgiQml0IGZp ZWxkcyB0b3RhbCBsZW5ndGggKCVkKSBkb2VzIG5vdCBtYXRjaCBsZW5ndGgNCj4gKCVkKQ0KPiA+ IG9mICclcycgISIgJSAoQml0VG90YWwsIEV4cGVjdGVkVG90YWwsIEl0ZW1bJ2NuYW1lJ10pKQ0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICBkZWYgVXBkYXRlRGVmYXVsdFZhbHVlIChzZWxmKToN Cj4gPg0KPiA+ICsgICAgICAgIEVycm9yID0gMA0KPiA+DQo+ID4gKyAgICAgICAgZm9yIElkeCwg SXRlbSBpbiBlbnVtZXJhdGUoc2VsZi5fQ2ZnSXRlbUxpc3QpOg0KPiA+DQo+ID4gKyAgICAgICAg ICAgIGlmIGxlbihJdGVtWydzdWJyZWcnXSkgPT0gMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgVmFsdWUgPSBJdGVtWyd2YWx1ZSddDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGlmIChs ZW4oVmFsdWUpID4gMCkgYW5kIChWYWx1ZVswXSA9PSAneycgb3IgVmFsdWVbMF0gPT0gIiciIG9y IFZhbHVlWzBdDQo+ID09DQo+ID4gJyInKToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICMge1hYWH0gb3IgJ1hYWCcgc3RyaW5ncw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg c2VsZi5Gb3JtYXRMaXN0VmFsdWUoc2VsZi5fQ2ZnSXRlbUxpc3RbSWR4XSkNCj4gPg0KPiA+ICsg ICAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICBNYXRjaCA9 IHJlLm1hdGNoKCIoMHhbMC05YS1mQS1GXSt8WzAtOV0rKSIsIFZhbHVlKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgIGlmIG5vdCBNYXRjaDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIE51bVZhbHVlID0gc2VsZi5FdmFsdWF0ZUV4cHJlc3MgKFZhbHVlKQ0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgSXRlbVsndmFsdWUnXSA9ICcweCVYJyAlIE51bVZhbHVlDQo+ID4N Cj4gPiAgICAgICAgICAgICAgZWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgTmV3TGlu ZVN0YXJ0ID0gMA0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICBOZXdMaW5lQ291bnQgPSAwDQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgIEZvdW5kU3BhY2VDaGFyID0gRmFsc2UNCj4gPg0KPiA+ IC0gICAgICAgICAgICAgICAgd2hpbGUgKFN0cmluZ09mZnNldCA8IFN0cmluZ0xlbmd0aCk6DQo+ ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBpZiBTdHJpbmdPZmZzZXQgPj0gMToNCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBpZiBOZXdMaW5lQ291bnQgPj0gTWF4Q2hhckxl bmd0aCAtIDE6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFN0cmlu Z1tTdHJpbmdPZmZzZXRdID09ICcgJyBhbmQgU3RyaW5nTGVuZ3RoIC0gU3RyaW5nT2Zmc2V0ID4N Cj4gMTA6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0xp bmVEaWN0LmFwcGVuZCAoTmV3TGluZVN0YXJ0ICsgTmV3TGluZUNvdW50KQ0KPiA+DQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZVN0YXJ0ID0gTmV3TGluZVN0YXJ0 ICsgTmV3TGluZUNvdW50DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOZXdMaW5lQ291bnQgPSAwDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGb3VuZFNwYWNlQ2hhciA9IFRydWUNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxpZiBTdHJpbmdPZmZzZXQgPT0gU3RyaW5nTGVuZ3RoIC0gMSBhbmQgRm91bmRT cGFjZUNoYXIgPT0NCj4gPiBGYWxzZToNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5kICgwKQ0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgIGlmIFN0cmluZ1tTdHJpbmdPZmZzZXQgLSAxXSA9PSAnXFwnIGFuZCBTdHJp bmdbU3RyaW5nT2Zmc2V0XSA9PSAnbic6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5kIChTdHJpbmdPZmZzZXQgKyAxKQ0KPiA+DQo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lU3RhcnQgPSBTdHJpbmdPZmZzZXQg KyAxDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIFZhbEFycmF5ID0gc2VsZi5WYWx1ZVRvQnl0 ZUFycmF5IChJdGVtWyd2YWx1ZSddLCBJdGVtWydsZW5ndGgnXSkNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgZm9yIFN1Ykl0ZW0gaW4gSXRlbVsnc3VicmVnJ106DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgICAgICBTdWJJdGVtWyd2YWx1ZSddICAgPSBzZWxmLkdldEJzZkJpdEZpZWxkcyhT dWJJdGVtLCBWYWxBcnJheSkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgc2VsZi5VcGRhdGVC c2ZCaXRVbml0IChJdGVtKQ0KPiA+DQo+ID4gKyAgICAgICAgcmV0dXJuIEVycm9yDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAgIGRlZiBQcm9jZXNzTXVsdGlsaW5lcyAoc2VsZiwgU3RyaW5nLCBN YXhDaGFyTGVuZ3RoKToNCj4gPg0KPiA+ICsgICAgICAgIE11bHRpbGluZXMgPSAnJw0KPiA+DQo+ ID4gKyAgICAgICAgU3RyaW5nTGVuZ3RoID0gbGVuKFN0cmluZykNCj4gPg0KPiA+ICsgICAgICAg IEN1cnJlbnRTdHJpbmdTdGFydCA9IDANCj4gPg0KPiA+ICsgICAgICAgIFN0cmluZ09mZnNldCA9 IDANCj4gPg0KPiA+ICsgICAgICAgIEJyZWFrTGluZURpY3QgPSBbXQ0KPiA+DQo+ID4gKyAgICAg ICAgaWYgbGVuKFN0cmluZykgPD0gTWF4Q2hhckxlbmd0aDoNCj4gPg0KPiA+ICsgICAgICAgICAg ICB3aGlsZSAoU3RyaW5nT2Zmc2V0IDwgU3RyaW5nTGVuZ3RoKToNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgaWYgU3RyaW5nT2Zmc2V0ID49IDE6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg ICAgICBpZiBTdHJpbmdbU3RyaW5nT2Zmc2V0IC0gMV0gPT0gJ1xcJyBhbmQgU3RyaW5nW1N0cmlu Z09mZnNldF0gPT0gJ24nOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFr TGluZURpY3QuYXBwZW5kIChTdHJpbmdPZmZzZXQgKyAxKQ0KPiA+DQo+ID4gKyAgICAgICAgICAg ICAgICBTdHJpbmdPZmZzZXQgKz0gMQ0KPiA+DQo+ID4gKyAgICAgICAgICAgIGlmIEJyZWFrTGlu ZURpY3QgIT0gW106DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGZvciBFYWNoIGluIEJyZWFr TGluZURpY3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBNdWx0aWxpbmVzICs9ICIg ICVzXG4iICUgU3RyaW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgQ3VycmVudFN0cmluZ1N0YXJ0ID0gRWFjaA0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICBpZiBTdHJpbmdMZW5ndGggLSBDdXJyZW50U3RyaW5nU3RhcnQg PiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xu IiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3RhcnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIE11bHRpbGluZXMgPSAiICAl c1xuIiAlIFN0cmluZw0KPiA+DQo+ID4gKyAgICAgICAgZWxzZToNCj4gPg0KPiA+ICsgICAgICAg ICAgICBOZXdMaW5lU3RhcnQgPSAwDQo+ID4NCj4gPiArICAgICAgICAgICAgTmV3TGluZUNvdW50 ID0gMA0KPiA+DQo+ID4gKyAgICAgICAgICAgIEZvdW5kU3BhY2VDaGFyID0gRmFsc2UNCj4gPg0K PiA+ICsgICAgICAgICAgICB3aGlsZSAoU3RyaW5nT2Zmc2V0IDwgU3RyaW5nTGVuZ3RoKToNCj4g Pg0KPiA+ICsgICAgICAgICAgICAgICAgaWYgU3RyaW5nT2Zmc2V0ID49IDE6DQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAgICBpZiBOZXdMaW5lQ291bnQgPj0gTWF4Q2hhckxlbmd0aCAtIDE6 DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgU3RyaW5nW1N0cmluZ09mZnNl dF0gPT0gJyAnIGFuZCBTdHJpbmdMZW5ndGggLSBTdHJpbmdPZmZzZXQgPg0KPiAxMDoNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtMaW5lRGljdC5hcHBlbmQgKE5l d0xpbmVTdGFydCArIE5ld0xpbmVDb3VudCkNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTmV3TGluZVN0YXJ0ID0gTmV3TGluZVN0YXJ0ICsgTmV3TGluZUNvdW50DQo+ID4N Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmVDb3VudCA9IDANCj4gPg0K PiA+IC0gICAgICAgICAgICAgICAgICAgIFN0cmluZ09mZnNldCArPSAxDQo+ID4NCj4gPiAtICAg ICAgICAgICAgICAgICAgICBOZXdMaW5lQ291bnQgKz0gMQ0KPiA+DQo+ID4gLSAgICAgICAgICAg ICAgICBpZiBCcmVha0xpbmVEaWN0ICE9IFtdOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgQnJlYWtMaW5lRGljdC5zb3J0ICgpDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgICAgICBm b3IgRWFjaCBpbiBCcmVha0xpbmVEaWN0Og0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgIGlmIEVhY2ggPiAwOg0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBN dWx0aWxpbmVzICs9ICIgICVzXG4iICUNCj4gU3RyaW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNo XS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnRTdHJp bmdTdGFydCA9IEVhY2gNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICAgICAgIGlmIFN0cmluZ0xl bmd0aCAtIEN1cnJlbnRTdHJpbmdTdGFydCA+IDA6DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAlc1xuIiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3Rh cnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gLSAgICAgICAgICAgIHJldHVybiBNdWx0aWxpbmVzDQo+ ID4NCj4gPiAtDQo+ID4NCj4gPiAtICAgIGRlZiBDcmVhdGVGaWVsZCAoc2VsZiwgSXRlbSwgTmFt ZSwgTGVuZ3RoLCBPZmZzZXQsIFN0cnVjdCwgQnNmTmFtZSwgSGVscCwNCj4gPiBPcHRpb24pOg0K PiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3VuZFNwYWNlQ2hhciA9IFRy dWUNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIFN0cmluZ09mZnNldCA9 PSBTdHJpbmdMZW5ndGggLSAxIGFuZCBGb3VuZFNwYWNlQ2hhciA9PQ0KPiBGYWxzZToNCj4gPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtMaW5lRGljdC5hcHBlbmQgKDAp DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBTdHJpbmdbU3RyaW5nT2Zmc2V0IC0g MV0gPT0gJ1xcJyBhbmQgU3RyaW5nW1N0cmluZ09mZnNldF0gPT0gJ24nOg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrTGluZURpY3QuYXBwZW5kIChTdHJpbmdPZmZzZXQg KyAxKQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmVTdGFydCA9IFN0 cmluZ09mZnNldCArIDENCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5l Q291bnQgPSAwDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIFN0cmluZ09mZnNldCArPSAxDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgIE5ld0xpbmVDb3VudCArPSAxDQo+ID4NCj4gPiArICAg ICAgICAgICAgaWYgQnJlYWtMaW5lRGljdCAhPSBbXToNCj4gPg0KPiA+ICsgICAgICAgICAgICAg ICAgQnJlYWtMaW5lRGljdC5zb3J0ICgpDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIGZvciBF YWNoIGluIEJyZWFrTGluZURpY3Q6DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiBF YWNoID4gMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aWxpbmVzICs9 ICIgICVzXG4iICUgU3RyaW5nW0N1cnJlbnRTdHJpbmdTdGFydDpFYWNoXS5sc3RyaXAoKQ0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgQ3VycmVudFN0cmluZ1N0YXJ0ID0gRWFjaA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgICBpZiBTdHJpbmdMZW5ndGggLSBDdXJyZW50U3RyaW5nU3Rh cnQgPiAwOg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTXVsdGlsaW5lcyArPSAiICAl c1xuIiAlIFN0cmluZ1tDdXJyZW50U3RyaW5nU3RhcnQ6XS5sc3RyaXAoKQ0KPiA+DQo+ID4gKyAg ICAgICAgcmV0dXJuIE11bHRpbGluZXMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIENy ZWF0ZUZpZWxkIChzZWxmLCBJdGVtLCBOYW1lLCBMZW5ndGgsIE9mZnNldCwgU3RydWN0LCBCc2ZO YW1lLA0KPiBIZWxwLA0KPiA+IE9wdGlvbiwgQml0c0xlbmd0aCA9IE5vbmUpOg0KPiA+DQo+ID4g ICAgICAgICAgUG9zTmFtZSAgICA9IDI4DQo+ID4NCj4gPiAgICAgICAgICBQb3NDb21tZW50ID0g MzANCj4gPg0KPiA+ICAgICAgICAgIE5hbWVMaW5lPScnDQo+ID4NCj4gPiAgICAgICAgICBIZWxw TGluZT0nJw0KPiA+DQo+ID4gICAgICAgICAgT3B0aW9uTGluZT0nJw0KPiA+DQo+ID4NCj4gPg0K PiA+ICsgICAgICAgIGlmIExlbmd0aCA9PSAwIGFuZCBOYW1lID09ICdEdW1teSc6DQo+ID4NCj4g PiArICAgICAgICAgICAgcmV0dXJuICdcbicNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICAgICAgICAg IElzQXJyYXkgPSBGYWxzZQ0KPiA+DQo+ID4gICAgICAgICAgaWYgTGVuZ3RoIGluIFsxLDIsNCw4 XToNCj4gPg0KPiA+ICAgICAgICAgICAgICBUeXBlID0gIlVJTlQlZCIgJSAoTGVuZ3RoICogOCkN Cj4gPg0KPiA+IEBAIC05OTIsNyArMTE5MiwxMiBAQCBFbmRMaXN0DQo+ID4gICAgICAgICAgZWxz ZToNCj4gPg0KPiA+ICAgICAgICAgICAgICBPZmZzZXRTdHIgPSAnMHglMDRYJyAlIE9mZnNldA0K PiA+DQo+ID4NCj4gPg0KPiA+IC0gICAgICAgIHJldHVybiAiXG4vKiogT2Zmc2V0ICVzJXMlcyVz KiovXG4gICVzJXMlcztcbiIgJSAoT2Zmc2V0U3RyLA0KPiBOYW1lTGluZSwNCj4gPiBIZWxwTGlu ZSwgT3B0aW9uTGluZSwgVHlwZSwgJyAnICogU3BhY2UxLCBOYW1lLCkNCj4gPg0KPiA+ICsgICAg ICAgIGlmIEJpdHNMZW5ndGggaXMgTm9uZToNCj4gPg0KPiA+ICsgICAgICAgICAgICBCaXRzTGVu Z3RoID0gJycNCj4gPg0KPiA+ICsgICAgICAgIGVsc2U6DQo+ID4NCj4gPiArICAgICAgICAgICAg Qml0c0xlbmd0aCA9ICcgOiAlZCcgJSBCaXRzTGVuZ3RoDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAgICAgICByZXR1cm4gIlxuLyoqIE9mZnNldCAlcyVzJXMlcyoqL1xuICAlcyVzJXMlcztcbiIg JSAoT2Zmc2V0U3RyLA0KPiA+IE5hbWVMaW5lLCBIZWxwTGluZSwgT3B0aW9uTGluZSwgVHlwZSwg JyAnICogU3BhY2UxLCBOYW1lLCBCaXRzTGVuZ3RoKQ0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgICAg ZGVmIFBvc3RQcm9jZXNzQm9keSAoc2VsZiwgVGV4dEJvZHkpOg0KPiA+DQo+ID4gICAgICAgICAg TmV3VGV4dEJvZHkgPSBbXQ0KPiA+DQo+ID4gQEAgLTEwOTcsNiArMTMwMiw3IEBAIEVuZExpc3QN Cj4gPiAgICAgICAgICAgICAgVXBkU3RydWN0dXJlID0gWydGU1BUX1VQRCcsICdGU1BNX1VQRCcs ICdGU1BTX1VQRCddDQo+ID4NCj4gPiAgICAgICAgICAgICAgZm9yIEl0ZW0gaW4gc2VsZi5fQ2Zn SXRlbUxpc3Q6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgIGlmIEl0ZW1bImNuYW1lIl0gPT0g J1NpZ25hdHVyZScgYW5kIEl0ZW1bInZhbHVlIl1bMDo2XSBpbg0KPiBVcGRTaWduYXR1cmU6DQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICBJdGVtWyJvZmZzZXQiXSA9IDAgIyByZS1pbml0 aWFsaXplIG9mZnNldCB0byAwIHdoZW4gbmV3IFVQRA0KPiBzdHJ1Y3R1cmUNCj4gPiBzdGFydGlu Zw0KPiA+DQo+ID4gICAgICAgICAgICAgICAgICAgICAgVXBkT2Zmc2V0VGFibGUuYXBwZW5kIChJ dGVtWyJvZmZzZXQiXSkNCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAgICAgICAgICAgZm9yIFVwZElk eCBpbiByYW5nZShsZW4oVXBkT2Zmc2V0VGFibGUpKToNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9J bnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BVcGQuaA0KPiA+IGIvSW50ZWxGc3Ay UGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwVXBkLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLmJlMmVkOGFhOTkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL0V4cGVjdGVkRnNwVXBkLmgNCj4gPiBA QCAtMCwwICsxLDE2IEBADQo+ID4gKyNpZm5kZWYgX19GU1BVUERfSF9fDQo+ID4NCj4gPiArI2Rl ZmluZSBfX0ZTUFVQRF9IX18NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjaW5jbHVkZSA8RnNwRWFz Lmg+DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrKDEpDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArI2RlZmluZSBGU1BUX1VQRF9TSUdOQVRVUkUgICAgICAgICAgICAgICAweDU0NUY0 NDUwNTU0RDQ1NTEgICAgICAgIC8qDQo+ID4gJ1FFTVVQRF9UJyAqLw0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyNkZWZpbmUgRlNQTV9VUERfU0lHTkFUVVJFICAgICAgICAgICAgICAgMHg0RDVGNDQ1 MDU1NEQ0NTUxICAgICAgICAvKg0KPiA+ICdRRU1VUERfTScgKi8NCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsjZGVmaW5lIEZTUFNfVVBEX1NJR05BVFVSRSAgICAgICAgICAgICAgIDB4NTM1RjQ0NTA1 NTRENDU1MSAgICAgICAgLyoNCj4gPiAnUUVNVVBEX1MnICovDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BtVXBkLmgN Cj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcG1VcGQuaA0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uODNmZDA2ZWNiNA0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0 ZWRGc3BtVXBkLmgNCj4gPiBAQCAtMCwwICsxLDc1IEBADQo+ID4gKyNpZm5kZWYgX19GU1BNVVBE X0hfXw0KPiA+DQo+ID4gKyNkZWZpbmUgX19GU1BNVVBEX0hfXw0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyNpbmNsdWRlIDxGc3BVcGQuaD4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjcHJhZ21hIHBh Y2soMSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIE0gQ29uZmln dXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDBDOCAtIERlYnVnIFNlcmlhbCBQb3J0IEJh c2UgYWRkcmVzcw0KPiA+DQo+ID4gKyAgRGVidWcgc2VyaWFsIHBvcnQgYmFzZSBhZGRyZXNzLiBU aGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgb25seSB3aGVuIHRoZQ0KPiAnU2VyaWFsDQo+ID4gUG9y dA0KPiA+DQo+ID4gKyAgRGVidWcgRGV2aWNlJyBvcHRpb24gaXMgc2V0IHRvICdFeHRlcm5hbCBE ZXZpY2UnLiAweDAwMDAwMDAwKERlZmF1bHQpLg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAg VUlOVDMyICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbERlYnVnUG9ydEFkZHJlc3M7DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwQ0MgLSBEZWJ1ZyBTZXJpYWwgUG9ydCBU eXBlDQo+ID4NCj4gPiArICAxNjU1MCBjb21wYXRpYmxlIGRlYnVnIHNlcmlhbCBwb3J0IHJlc291 cmNlIHR5cGUuIE5PTkUgbWVhbnMgbm8gc2VyaWFsDQo+IHBvcnQNCj4gPiBzdXBwb3J0Lg0KPiA+ DQo+ID4gKyAgMHgwMjpNTUlPKERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgMDpOT05FLCAxOkkvTywg MjpNTUlPDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgICAgU2VyaWFsRGVidWdQb3J0VHlwZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zm c2V0IDB4MDBDRCAtIFNlcmlhbCBQb3J0IERlYnVnIERldmljZQ0KPiA+DQo+ID4gKyAgU2VsZWN0 IGFjdGl2ZSBzZXJpYWwgcG9ydCBkZXZpY2UgZm9yIGRlYnVnLiBGb3IgU09DIFVBUlQgZGV2aWNl cywnRGVidWcNCj4gU2VyaWFsDQo+ID4gUG9ydA0KPiA+DQo+ID4gKyAgQmFzZScgb3B0aW9ucyB3 aWxsIGJlIGlnbm9yZWQuIDB4MDI6U09DIFVBUlQyKERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgMDpT T0MgVUFSVDAsIDE6U09DIFVBUlQxLCAyOlNPQyBVQVJUMiwgMzpFeHRlcm5hbCBEZXZpY2UNCj4g Pg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBTZXJp YWxEZWJ1Z1BvcnREZXZpY2U7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAw Q0UgLSBEZWJ1ZyBTZXJpYWwgUG9ydCBTdHJpZGUgU2l6ZQ0KPiA+DQo+ID4gKyAgRGVidWcgc2Vy aWFsIHBvcnQgcmVnaXN0ZXIgbWFwIHN0cmlkZSBzaXplIGluIGJ5dGVzLiAweDAwOjEsDQo+IDB4 MDI6NChEZWZhdWx0KS4NCj4gPg0KPiA+ICsgIDA6MSwgMjo0DQo+ID4NCj4gPiArKiovDQo+ID4N Cj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgU2VyaWFsRGVidWdQb3J0U3RyaWRl U2l6ZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDBDRg0KPiA+DQo+ID4g KyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFVudXNlZFVwZFNw YWNlMlsxXTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDBEMA0KPiA+DQo+ ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVk RnNwbVVwZFs0XTsNCj4gPg0KPiA+ICt9IEZTUF9NX0NPTkZJRzsNCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsvKiogRnNwIE0gVVBEIENvbmZpZ3VyYXRpb24NCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAw MDANCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIEZTUF9VUERfSEVBREVSICAgICAgICAgICAg ICBGc3BVcGRIZWFkZXI7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwQTgN Cj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIEZTUE1fQVJDSF9VUEQgICAgICAgICAgICAgICBG c3BtQXJjaFVwZDsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDBDOA0KPiA+ DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQX01fQ09ORklHICAgICAgICAgICAgICAgIEZzcG1D b25maWc7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwRDQNCj4gPg0KPiA+ ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWRVcGRT cGFjZTNbMl07DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwRDYNCj4gPg0K PiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICBVcGRUZXJt aW5hdG9yOw0KPiA+DQo+ID4gK30gRlNQTV9VUEQ7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3By YWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYg LS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3BzVXBkLmgNCj4gPiBi L0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcHNVcGQuaA0KPiA+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uZTJiYzU0YTYxZA0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3Bz VXBkLmgNCj4gPiBAQCAtMCwwICsxLDY5IEBADQo+ID4gKyNpZm5kZWYgX19GU1BTVVBEX0hfXw0K PiA+DQo+ID4gKyNkZWZpbmUgX19GU1BTVVBEX0hfXw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNp bmNsdWRlIDxGc3BVcGQuaD4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2soMSkN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFMgQ29uZmlndXJhdGlv bg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDExOCAtIEJNUCBMb2dvIERhdGEgU2l6ZQ0KPiA+DQo+ ID4gKyAgQk1QIGxvZ28gZGF0YSBidWZmZXIgc2l6ZS4gMHgwMDAwMDAwMChEZWZhdWx0KS4NCj4g Pg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBMb2dv U2l6ZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDExQyAtIEJNUCBMb2dv IERhdGEgUG9pbnRlcg0KPiA+DQo+ID4gKyAgQk1QIGxvZ28gZGF0YSBwb2ludGVyIHRvIGEgQk1Q IGZvcm1hdCBidWZmZXIuIDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArKiovDQo+ID4N Cj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgTG9nb1B0cjsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDEyMCAtIEdyYXBoaWNzIENvbmZpZ3VyYXRpb24gRGF0 YSBQb2ludGVyDQo+ID4NCj4gPiArICBHcmFwaGljcyBjb25maWd1cmF0aW9uIGRhdGEgdXNlZCBm b3IgaW5pdGlhbGl6YXRpb24uIDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArKiovDQo+ ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3NDb25maWdQdHI7 DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAxMjQgLSBQQ0kgR0ZYIFRlbXBv cmFyeSBNTUlPIEJhc2UNCj4gPg0KPiA+ICsgIFBDSSBUZW1wb3JhcnkgUENJIEdGWCBCYXNlIHVz ZWQgYmVmb3JlIGZ1bGwgUENJIGVudW1lcmF0aW9uLg0KPiA+IDB4ODAwMDAwMDAoRGVmYXVsdCku DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAg UGNpVGVtcFJlc291cmNlQmFzZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4 MDEyOA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAg ICAgIFVudXNlZFVwZFNwYWNlMVszXTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0 IDB4MDEyQg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAg ICAgICAgIFJlc2VydmVkRnNwc1VwZDsNCj4gPg0KPiA+ICt9IEZTUF9TX0NPTkZJRzsNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFMgVVBEIENvbmZpZ3VyYXRpb24NCj4gPg0KPiA+ICsq Ki8NCj4gPg0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoq IE9mZnNldCAweDAwMDANCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIEZTUF9VUERfSEVBREVS ICAgICAgICAgICAgICBGc3BVcGRIZWFkZXI7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9m ZnNldCAweDAwRjgNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIEZTUFNfQVJDSF9VUEQgICAg ICAgICAgICAgICBGc3BzQXJjaFVwZDsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0 IDB4MDExOA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAgRlNQX1NfQ09ORklHICAgICAgICAg ICAgICAgIEZzcHNDb25maWc7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAx MkMNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAg ICBVbnVzZWRVcGRTcGFjZTJbMl07DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAw eDAxMkUNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAg ICAgICBVcGRUZXJtaW5hdG9yOw0KPiA+DQo+ID4gK30gRlNQU19VUEQ7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRGc3B0 VXBkLmgNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZEZzcHRVcGQuaA0K PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uMjViOGE3ZDYz YQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMv RXhwZWN0ZWRGc3B0VXBkLmgNCj4gPiBAQCAtMCwwICsxLDg3IEBADQo+ID4gKyNpZm5kZWYgX19G U1BUVVBEX0hfXw0KPiA+DQo+ID4gKyNkZWZpbmUgX19GU1BUVVBEX0hfXw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gKyNpbmNsdWRlIDxGc3BVcGQuaD4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjcHJh Z21hIHBhY2soMSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFQg Q29tbW9uIFVQRA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA0MA0KPiA+DQo+ID4gKyoqLw0KPiA+ DQo+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgIFJldmlzaW9uOw0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDQxDQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiAr ICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWRbM107DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArLyoqIE9mZnNldCAweDAwNDQNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJ TlQzMiAgICAgICAgICAgICAgICAgICAgICBNaWNyb2NvZGVSZWdpb25CYXNlOw0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDQ4DQo+ID4NCj4gPiArKiovDQo+ID4NCj4gPiAr ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgTWljcm9jb2RlUmVnaW9uTGVuZ3RoOw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDRDDQo+ID4NCj4gPiArKiovDQo+ID4N Cj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgQ29kZVJlZ2lvbkJhc2U7DQo+ID4N Cj4gPiArDQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwNTANCj4gPg0KPiA+ICsqKi8NCj4gPg0K PiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBDb2RlUmVnaW9uTGVuZ3RoOw0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDU0DQo+ID4NCj4gPiArKiovDQo+ID4N Cj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQxWzEyXTsNCj4gPg0K PiA+ICt9IEZTUFRfQ09NTU9OX1VQRDsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogRnNwIFQg Q29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA2MCAtIENoaWNrZW4gYnl0ZXMg dG8gdGVzdCBIZXggY29uZmlnDQo+ID4NCj4gPiArICBUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8g cHJlc2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0YQ0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4g KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIENoaWNrZW5CeXRlczsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA2NA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKyAg VUlOVDggICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkRnNwdFVwZDFbMjhdOw0KPiA+DQo+ ID4gK30gRlNQX1RfQ09ORklHOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBGc3AgVCBVUEQg Q29uZmlndXJhdGlvbg0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDAwMA0KPiA+DQo+ID4gKyoqLw0K PiA+DQo+ID4gKyAgRlNQX1VQRF9IRUFERVIgICAgICAgICAgICAgIEZzcFVwZEhlYWRlcjsNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDAyMA0KPiA+DQo+ID4gKyoqLw0KPiA+ DQo+ID4gKyAgRlNQVF9BUkNIX1VQRCAgICAgICAgICAgICAgIEZzcHRBcmNoVXBkOw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKy8qKiBPZmZzZXQgMHgwMDQwDQo+ID4NCj4gPiArKiovDQo+ID4NCj4g PiArICBGU1BUX0NPTU1PTl9VUEQgICAgICAgICAgICAgRnNwdENvbW1vblVwZDsNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsvKiogT2Zmc2V0IDB4MDA2MA0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4g KyAgRlNQX1RfQ09ORklHICAgICAgICAgICAgICAgIEZzcHRDb25maWc7DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArLyoqIE9mZnNldCAweDAwODANCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsgIFVJ TlQ4ICAgICAgICAgICAgICAgICAgICAgICBVbnVzZWRVcGRTcGFjZTBbNl07DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArLyoqIE9mZnNldCAweDAwODYNCj4gPg0KPiA+ICsqKi8NCj4gPg0KPiA+ICsg IFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICBVcGRUZXJtaW5hdG9yOw0KPiA+DQo+ID4gK30g RlNQVF9VUEQ7DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrKCkNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cv VG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQuYnNmDQo+ID4gYi9JbnRlbEZzcDJQa2cvVG9vbHMv VGVzdHMvRXhwZWN0ZWRPdXRwdXQuYnNmDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBp bmRleCAwMDAwMDAwMDAwLi43NTBlMWI0ZmFmDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBi L0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91dHB1dC5ic2YNCj4gPiBAQCAtMCww ICsxLDg4IEBADQo+ID4gK0dsb2JhbERhdGFEZWYNCj4gPg0KPiA+ICsgICAgU0tVSUQgPSAwLCAi REVGQVVMVCINCj4gPg0KPiA+ICtFbmRHbG9iYWxEYXRhDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArU3RydWN0RGVmDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAgIEZpbmQgIlFF TVVQRF9UIg0KPiA+DQo+ID4gKyAgICAgICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfUmV2 aXNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgMSBieXRlcw0KPiA+ICRfREVGQVVMVF8g PSAweDAxDQo+ID4NCj4gPiArICAgICAgICBTa2lwIDg3IGJ5dGVzDQo+ID4NCj4gPiArICAgICAg ICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9DaGlja2VuQnl0ZXMgICAgICAgICAgICAgICAg ICAgICAgICA0IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgICAgRmluZCAiUUVNVVBEX00iDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVG c3BQa2dUb2tlblNwYWNlR3VpZF9SZXZpc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAx IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDENCj4gPg0KPiA+ICsgICAgICAgIFNraXAgMzUg Ynl0ZXMNCj4gPg0KPiA+ICsgICAgICAgICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1N0YWNr QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0g MHgwMDA3MDAwMA0KPiA+DQo+ID4gKyAgICAgICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRf U3RhY2tTaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcw0KPiA+ICRfREVGQVVM VF8gPSAweDAwMDEwMDAwDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZF9Cb290TG9hZGVyVG9sdW1TaXplICAgICAgICAgICAgICAgICA0DQo+IGJ5dGVzDQo+ID4g JF9ERUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAgICRnUGxhdGZvcm1Gc3BQ a2dUb2tlblNwYWNlR3VpZF9Cb290bW9kZSAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMN Cj4gPiAkX0RFRkFVTFRfID0gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgICAgU2tpcCA4IGJ5 dGVzDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxE ZWJ1Z1BvcnRBZGRyZXNzICAgICAgICAgICAgICA0DQo+IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9 IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAgICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlk X1NlcmlhbERlYnVnUG9ydFR5cGUgICAgICAgICAgICAgICAgIDENCj4gYnl0ZXMNCj4gPiAkX0RF RkFVTFRfID0gMHgwMg0KPiA+DQo+ID4gKyAgICAgICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1 aWRfU2VyaWFsRGVidWdQb3J0RGV2aWNlICAgICAgICAgICAgICAgMQ0KPiBieXRlcw0KPiA+ICRf REVGQVVMVF8gPSAweDAyDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZF9TZXJpYWxEZWJ1Z1BvcnRTdHJpZGVTaXplICAgICAgICAgICAxDQo+IGJ5dGVzDQo+ID4g JF9ERUZBVUxUXyA9IDB4MDINCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgRmluZCAiUUVNVVBE X1MiDQo+ID4NCj4gPiArICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9SZXZpc2lv biAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4 MDENCj4gPg0KPiA+ICsgICAgICAgIFNraXAgNTUgYnl0ZXMNCj4gPg0KPiA+ICsgICAgICAgICRn UWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX0xvZ29TaXplICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDQgYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAg ICAgJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfTG9nb1B0ciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgNCBieXRlcw0KPiA+ICRfREVGQVVMVF8gPSAweDAwMDAwMDAwDQo+ID4NCj4gPiAr ICAgICAgICAkZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZF9HcmFwaGljc0NvbmZpZ1B0ciAgICAg ICAgICAgICAgICAgICA0IGJ5dGVzDQo+ID4gJF9ERUZBVUxUXyA9IDB4MDAwMDAwMDANCj4gPg0K PiA+ICsgICAgICAgICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1BjaVRlbXBSZXNvdXJjZUJh c2UgICAgICAgICAgICAgICAgIDQNCj4gYnl0ZXMNCj4gPiAkX0RFRkFVTFRfID0gMHg4MDAwMDAw MA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0VuZFN0cnVjdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4g Kw0KPiA+DQo+ID4gK0xpc3QgJkVOX0RJUw0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24gMHgxICwg IkVuYWJsZWQiDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAweDAgLCAiRGlzYWJsZWQiDQo+ID4N Cj4gPiArRW5kTGlzdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0xpc3QgJmdRZW11RnNwUGtnVG9r ZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0VHlwZQ0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24g MCAsICJOT05FIg0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24gMSAsICJJL08iDQo+ID4NCj4gPiAr ICAgIFNlbGVjdGlvbiAyICwgIk1NSU8iDQo+ID4NCj4gPiArRW5kTGlzdA0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK0xpc3QgJmdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0 RGV2aWNlDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAwICwgIlNPQyBVQVJUMCINCj4gPg0KPiA+ ICsgICAgU2VsZWN0aW9uIDEgLCAiU09DIFVBUlQxIg0KPiA+DQo+ID4gKyAgICBTZWxlY3Rpb24g MiAsICJTT0MgVUFSVDIiDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAzICwgIkV4dGVybmFsIERl dmljZSINCj4gPg0KPiA+ICtFbmRMaXN0DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArTGlzdCAmZ1Fl bXVGc3BQa2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnRTdHJpZGVTaXplDQo+ID4NCj4g PiArICAgIFNlbGVjdGlvbiAwICwgIjEiDQo+ID4NCj4gPiArICAgIFNlbGVjdGlvbiAyICwgIjQi DQo+ID4NCj4gPiArRW5kTGlzdA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK0JlZ2luSW5mb0Jsb2Nr DQo+ID4NCj4gPiArICAgIFBQVmVyICAgICAgICIwLjEiDQo+ID4NCj4gPiArICAgIERlc2NyaXB0 aW9uICJRRU1VIFBsYXRmb3JtIg0KPiA+DQo+ID4gK0VuZEluZm9CbG9jaw0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK1BhZ2UgIkZTUCBUIg0KPiA+DQo+ID4gKyAgICBFZGl0TnVtICRnUWVtdUZzcFBr Z1Rva2VuU3BhY2VHdWlkX0NoaWNrZW5CeXRlcywgIkNoaWNrZW4NCj4gYnl0ZXMgdG8NCj4gPiB0 ZXN0IEhleCBjb25maWciLCBIRVgsDQo+ID4NCj4gPiArICAgICAgICBIZWxwICJUaGlzIG9wdGlv biBzaG93cyBob3cgdG8gcHJlc2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0YSINCj4gPg0KPiA+ ICsgICAgICAgICAgICAgIlZhbGlkIHJhbmdlOiAweDAwMDAwMDAwIH4gMHhGRkZGRkZGRiINCj4g Pg0KPiA+ICtFbmRQYWdlDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArUGFnZSAiRlNQIE1lbW9yeUlu aXQgU2V0dGluZ3MiDQo+ID4NCj4gPiArICAgIEVkaXROdW0gJGdRZW11RnNwUGtnVG9rZW5TcGFj ZUd1aWRfU2VyaWFsRGVidWdQb3J0QWRkcmVzcywNCj4gIkRlYnVnDQo+ID4gU2VyaWFsIFBvcnQg QmFzZSBhZGRyZXNzIiwgSEVYLA0KPiA+DQo+ID4gKyAgICAgICAgSGVscCAiRGVidWcgc2VyaWFs IHBvcnQgYmFzZSBhZGRyZXNzLiBUaGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgb25seQ0KPiB3aGVu DQo+ID4gdGhlICdTZXJpYWwgUG9ydCBEZWJ1ZyBEZXZpY2UnIG9wdGlvbiBpcyBzZXQgdG8gJ0V4 dGVybmFsIERldmljZScuDQo+ID4gMHgwMDAwMDAwMChEZWZhdWx0KS4iDQo+ID4NCj4gPiArICAg ICAgICAgICAgICJWYWxpZCByYW5nZTogMHgwMDAwMDAwMCB+IDB4RkZGRkZGRkYiDQo+ID4NCj4g PiArICAgIENvbWJvICRnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1NlcmlhbERlYnVnUG9ydFR5 cGUsICJEZWJ1Zw0KPiBTZXJpYWwNCj4gPiBQb3J0IFR5cGUiLCAmZ1FlbXVGc3BQa2dUb2tlblNw YWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnRUeXBlLA0KPiA+DQo+ID4gKyAgICAgICAgSGVscCAiMTY1 NTAgY29tcGF0aWJsZSBkZWJ1ZyBzZXJpYWwgcG9ydCByZXNvdXJjZSB0eXBlLiBOT05FIG1lYW5z DQo+IG5vDQo+ID4gc2VyaWFsIHBvcnQgc3VwcG9ydC4gMHgwMjpNTUlPKERlZmF1bHQpLiINCj4g Pg0KPiA+ICsgICAgQ29tYm8gJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQ b3J0RGV2aWNlLCAiU2VyaWFsDQo+IFBvcnQNCj4gPiBEZWJ1ZyBEZXZpY2UiLCAmZ1FlbXVGc3BQ a2dUb2tlblNwYWNlR3VpZF9TZXJpYWxEZWJ1Z1BvcnREZXZpY2UsDQo+ID4NCj4gPiArICAgICAg ICBIZWxwICJTZWxlY3QgYWN0aXZlIHNlcmlhbCBwb3J0IGRldmljZSBmb3IgZGVidWcuIEZvciBT T0MgVUFSVA0KPiA+IGRldmljZXMsJ0RlYnVnIFNlcmlhbCBQb3J0IEJhc2UnIG9wdGlvbnMgd2ls bCBiZSBpZ25vcmVkLiAweDAyOlNPQw0KPiA+IFVBUlQyKERlZmF1bHQpLiINCj4gPg0KPiA+ICsg ICAgQ29tYm8gJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfU2VyaWFsRGVidWdQb3J0U3RyaWRl U2l6ZSwNCj4gIkRlYnVnDQo+ID4gU2VyaWFsIFBvcnQgU3RyaWRlIFNpemUiLA0KPiA+ICZnUWVt dUZzcFBrZ1Rva2VuU3BhY2VHdWlkX1NlcmlhbERlYnVnUG9ydFN0cmlkZVNpemUsDQo+ID4NCj4g PiArICAgICAgICBIZWxwICJEZWJ1ZyBzZXJpYWwgcG9ydCByZWdpc3RlciBtYXAgc3RyaWRlIHNp emUgaW4gYnl0ZXMuIDB4MDA6MSwNCj4gPiAweDAyOjQoRGVmYXVsdCkuIg0KPiA+DQo+ID4gK0Vu ZFBhZ2UNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtQYWdlICJGU1AgU2lsaWNvbkluaXQgU2V0dGlu Z3MiDQo+ID4NCj4gPiArICAgIEVkaXROdW0gJGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWRfUGNp VGVtcFJlc291cmNlQmFzZSwgIlBDSQ0KPiBHRlgNCj4gPiBUZW1wb3JhcnkgTU1JTyBCYXNlIiwg SEVYLA0KPiA+DQo+ID4gKyAgICAgICAgSGVscCAiUENJIFRlbXBvcmFyeSBQQ0kgR0ZYIEJhc2Ug dXNlZCBiZWZvcmUgZnVsbCBQQ0kgZW51bWVyYXRpb24uDQo+ID4gMHg4MDAwMDAwMChEZWZhdWx0 KS4iDQo+ID4NCj4gPiArICAgICAgICAgICAgICJWYWxpZCByYW5nZTogMHg4MDAwMDAwMCB+IDB4 REZGRkZGRkYiDQo+ID4NCj4gPiArRW5kUGFnZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gZGlmZiAt LWdpdCBhL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9FeHBlY3RlZE91dHB1dC55YW1sDQo+ID4g Yi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRPdXRwdXQueWFtbA0KPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uMzU5NGI5ODk1ZQ0KPiA+IC0t LSAvZGV2L251bGwNCj4gPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvVGVzdHMvRXhwZWN0ZWRP dXRwdXQueWFtbA0KPiA+IEBAIC0wLDAgKzEsMjcwIEBADQo+ID4gK3ZhcmlhYmxlOg0KPiA+DQo+ ID4gKyAgUExBVEZPUk1fTkFNRSAgICAgICAgICAgICAgICAgIDogUWVtdUZzcFBrZw0KPiA+DQo+ ID4gKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAgICAgICAgIDogMUJFREI1N0EtNzkwNC00MDZl LTg0ODYtQzg5RkM3RkIzOUVFDQo+ID4NCj4gPiArICBQTEFURk9STV9WRVJTSU9OICAgICAgICAg ICAgICAgOiAwLjENCj4gPg0KPiA+ICsgIERTQ19TUEVDSUZJQ0FUSU9OICAgICAgICAgICAgICA6 IDB4MDAwMTAwMDUNCj4gPg0KPiA+ICsgIE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAgICA6 IEJ1aWxkL1FlbXVGc3BQa2cNCj4gPg0KPiA+ICsgIFNVUFBPUlRFRF9BUkNISVRFQ1RVUkVTICAg ICAgICA6IElBMzJ8WDY0DQo+ID4NCj4gPiArICBCVUlMRF9UQVJHRVRTICAgICAgICAgICAgICAg ICAgOiBERUJVR3xSRUxFQVNFDQo+ID4NCj4gPiArICBTS1VJRF9JREVOVElGSUVSICAgICAgICAg ICAgICAgOiBERUZBVUxUDQo+ID4NCj4gPiArICBGTEFTSF9ERUZJTklUSU9OICAgICAgICAgICAg ICAgOiBRZW11RnNwUGtnL1FlbXVGc3BQa2cuZmRmDQo+ID4NCj4gPiArICBGU1BfVF9VUERfVE9P TF9HVUlEICAgICAgICAgICAgOiAzNDY4NkNBMy0zNEY5LTQ5MDEtQjgyQS0NCj4gQkE2MzBGMDcx NEM2DQo+ID4NCj4gPiArICBGU1BfVl9VUERfVE9PTF9HVUlEICAgICAgICAgICAgOiA0RTJGNDcy NS03MzRBLTQzOTktQkFGNS0NCj4gQjRFMTYzNDhFQjJGDQo+ID4NCj4gPiArICBGU1BfTV9VUERf VE9PTF9HVUlEICAgICAgICAgICAgOiAzOUEyNTBEQi1FNDY1LTRERDEtQTJBQy0NCj4gPiBFMkJE M0MwRTIzODUNCj4gPg0KPiA+ICsgIEZTUF9TX1VQRF9UT09MX0dVSUQgICAgICAgICAgICA6IENB RTM2MDVCLTVCMzQtNEM4NS1CM0Q3LQ0KPiAyN0Q1NDI3M0M0MEYNCj4gPg0KPiA+ICsgIEZTUF9U X1VQRF9GRlNfR1VJRCAgICAgICAgICAgICA6IDcwQkNGNkE1LUZGQjEtNDdEOC1CMUFFLUVGRTU1 MDhFMjNFQQ0KPiA+DQo+ID4gKyAgRlNQX1ZfVVBEX0ZGU19HVUlEICAgICAgICAgICAgIDogMDE5 N0VGNUUtMkZGQy00MDg5LThFNTUtRjcwNDAwQjE4MTQ2DQo+ID4NCj4gPiArICBGU1BfTV9VUERf RkZTX0dVSUQgICAgICAgICAgICAgOiBENUI4NkFFQS02QUY3LTQwRDQtODAxNC0NCj4gOTgyMzAx QkMzRDg5DQo+ID4NCj4gPiArICBGU1BfU19VUERfRkZTX0dVSUQgICAgICAgICAgICAgOiBFM0NE OUIxOC05OThDLTRGNzYtQjY1RS05OEIxNTRFNTQ0NkYNCj4gPg0KPiA+ICsgIEZTUF9QQUNLQUdF ICAgICAgICAgICAgICAgICAgICA6IFFlbXVGc3BQa2cNCj4gPg0KPiA+ICsgIEZTUF9JTUFHRV9J RCAgICAgICAgICAgICAgICAgICA6IDB4MjQ1MDUzNDY0RDQ1NTEyNCAgIyAkUUVNRlNQJA0KPiA+ DQo+ID4gKyAgRlNQX0lNQUdFX1JFViAgICAgICAgICAgICAgICAgIDogMHgwMDAwMTAxMA0KPiA+ DQo+ID4gKyAgQ0FSX0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+ DQo+ID4gKyAgQ0FSX1JFR0lPTl9TSVpFICAgICAgICAgICAgICAgIDogMHgwMDA4MDAwMA0KPiA+ DQo+ID4gKyAgQ0FSX0JMRF9SRUdJT05fU0laRSAgICAgICAgICAgIDogMHgwMDA3MDAwMA0KPiA+ DQo+ID4gKyAgQ0FSX0ZTUF9SRUdJT05fU0laRSAgICAgICAgICAgIDogMHgwMDAxMDAwMA0KPiA+ DQo+ID4gKyAgRlNQX0FSQ0ggICAgICAgICAgICAgICAgICAgICAgIDogWDY0DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArdGVtcGxhdGU6DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArY29uZmlnczoNCj4gPg0KPiA+ICsgIC0gJEFDVElPTiAgICAgIDoNCj4gPg0K PiA+ICsgICAgICBwYWdlICAgICAgICAgOiBUTVA6OiJGU1AgVCIsIE1FTTo6IkZTUCBNZW1vcnlJ bml0IFNldHRpbmdzIiwgU0lMOjoiRlNQDQo+ID4gU2lsaWNvbkluaXQgU2V0dGluZ3MiDQo+ID4N Cj4gPiArICAtICRBQ1RJT04gICAgICA6DQo+ID4NCj4gPiArICAgICAgZmluZCAgICAgICAgIDog UUVNVVBEX1QNCj4gPg0KPiA+ICsgIC0gRlNQVF9VUEQgICAgIDoNCj4gPg0KPiA+ICsgICAgLSBG U1BfVVBEX0hFQURFUiA6DQo+ID4NCj4gPiArICAgICAgLSBTaWduYXR1cmUgICAgOg0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA4DQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6IDB4NTQ1RjQ0NTA1NTRENDU1MQ0KPiA+DQo+ID4gKyAgICAgIC0gUmV2aXNp b24gICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbmFtZSAgICAgICAgIDogRnNwdFVwZFJldmlz aW9uDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsg ICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgIC0gUmVzZXJ2ZWQg ICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgxNw0KPiA+DQo+ID4g KyAgICAgICAgICB2YWx1ZSAgICAgICAgOiB7MHgwMH0NCj4gPg0KPiA+ICsgICAgLSBGU1BUX0FS Q0hfVVBEIDoNCj4gPg0KPiA+ICsgICAgICAtIFJldmlzaW9uICAgICA6DQo+ID4NCj4gPiArICAg ICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAg ICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgIC0gUmVzZXJ2ZWQgICAgIDoNCj4gPg0KPiA+ICsg ICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMw0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAg ICAgICAgOiB7MHgwMH0NCj4gPg0KPiA+ICsgICAgICAtIExlbmd0aCAgICAgICA6DQo+ID4NCj4g PiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFs dWUgICAgICAgIDogMHgwMDAwMDAyMA0KPiA+DQo+ID4gKyAgICAgIC0gRnNwRGVidWdIYW5kbGVy IDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAg ICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBSZXNl cnZlZDEgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDE0DQo+ID4N Cj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIEZT UFRfQ09NTU9OX1VQRCA6DQo+ID4NCj4gPiArICAgICAgLSBSZXZpc2lvbiAgICAgOg0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4N Cj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDMNCj4gPg0KPiA+ICsgICAgICAgICAg dmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgICAgLSBNaWNyb2NvZGVSZWdpb25C YXNlIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4g KyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBN aWNyb2NvZGVSZWdpb25MZW5ndGggOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAg OiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4g Pg0KPiA+ICsgICAgICAtIENvZGVSZWdpb25CYXNlIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVu Z3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAw MDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBDb2RlUmVnaW9uTGVuZ3RoIDoNCj4gPg0KPiA+ICsg ICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAg ICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZDEgICAgOg0KPiA+ DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDBDDQo+ID4NCj4gPiArICAgICAgICAg IHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIEZTUF9UX0NPTkZJRyA6DQo+ ID4NCj4gPiArICAgICAgLSAkQUNUSU9OICAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBwYWdl ICAgICAgICAgOiBUTVANCj4gPg0KPiA+ICsgICAgICAtIENoaWNrZW5CeXRlcyA6DQo+ID4NCj4g PiArICAgICAgICAgIG5hbWUgICAgICAgICA6IENoaWNrZW4gYnl0ZXMgdG8gdGVzdCBIZXggY29u ZmlnDQo+ID4NCj4gPiArICAgICAgICAgIHR5cGUgICAgICAgICA6IEVkaXROdW0sIEhFWCwgKDB4 MDAwMDAwMDAsMHhGRkZGRkZGRikNCj4gPg0KPiA+ICsgICAgICAgICAgaGVscCAgICAgICAgIDog Pg0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG9wdGlvbiBzaG93cyBo b3cgdG8gcHJlc2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0YQ0KPiA+DQo+ID4gKyAgICAgICAg ICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6 IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkRnNwdFVwZDEgOg0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDFDDQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIFVwZFRlcm1pbmF0b3IgOg0KPiA+ DQo+ID4gKyAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMg0KPiA+DQo+ID4gKyAgICAgICAgdmFs dWUgICAgICAgIDogMHg1NUFBDQo+ID4NCj4gPiArICAgIC0gJEFDVElPTiAgICAgIDoNCj4gPg0K PiA+ICsgICAgICAgIGZpbmQgICAgICAgICA6IFFFTVVQRF9NDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICAtIEZTUE1fVVBEICAgICA6DQo+ID4NCj4gPiArICAgIC0gRlNQX1VQRF9IRUFERVIgOg0K PiA+DQo+ID4gKyAgICAgIC0gU2lnbmF0dXJlICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVu Z3RoICAgICAgIDogMHgwOA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDRE NUY0NDUwNTU0RDQ1NTENCj4gPg0KPiA+ICsgICAgICAtIFJldmlzaW9uICAgICA6DQo+ID4NCj4g PiArICAgICAgICAgIG5hbWUgICAgICAgICA6IEZzcG1VcGRSZXZpc2lvbg0KPiA+DQo+ID4gKyAg ICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAg ICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiAr ICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MTcNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUg ICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgIC0gRlNQTV9BUkNIX1VQRCA6DQo+ID4NCj4g PiArICAgICAgLSBSZXZpc2lvbiAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAg ICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0K PiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAg ICAgICA6IDB4MDMNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ ID4NCj4gPiArICAgICAgLSBOdnNCdWZmZXJQdHIgOg0KPiA+DQo+ID4gKyAgICAgICAgICBzdHJ1 Y3QgICAgICAgOiBWT0lEKg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0 DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4gPg0KPiA+ ICsgICAgICAtIFN0YWNrQmFzZSAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIHN0cnVjdCAgICAg ICA6IFZPSUQqDQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IFN0YWNrQmFzZQ0K PiA+DQo+ID4gKyAgICAgICAgICBoZWxwICAgICAgICAgOiA+DQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgIFN0YWNrIGJhc2UgZm9yIEZTUCB1c2UuIERlZmF1bHQtIDB4RkVGMTYw MDANCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAg ICAgICAgICB2YWx1ZSAgICAgICAgOiAkKENBUl9CTERfUkVHSU9OX1NJWkUpDQo+ID4NCj4gPiAr ICAgICAgLSBTdGFja1NpemUgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBuYW1lICAgICAgICAg OiBTdGFja1NpemUNCj4gPg0KPiA+ICsgICAgICAgICAgaGVscCAgICAgICAgIDogPg0KPiA+DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBUbyBwYXNzIHRoZSBzdGFjayBzaXplIGZvciBG U1AgdXNlLiBCb290bG9hZGVyIGNhbg0KPiA+IHByb2dyYW1tYXRpY2FsbHkgZ2V0IHRoZSBGU1Ag cmVxdWVzdGVkIFN0YWNrU2l6ZSBieSB1c2luZyB0aGUgZGVmYXVsdHMgaW4NCj4gdGhlDQo+ID4g RlNQLU0gY29tcG9uZW50LiBUaGlzIGlzIHRoZSBtaW5pbXVtIHN0YWNrIHNpemUgZXhwZWN0ZWQg YnkgdGhpcyByZXZpc2lvbg0KPiBvZg0KPiA+IEZTUC4gRGVmYXVsdC0gMHgyQTAwMA0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6ICQoQ0FSX0ZTUF9SRUdJT05fU0laRSkNCj4gPg0KPiA+ICsgICAgICAtIEJv b3RMb2FkZXJUb2x1bVNpemUgOg0KPiA+DQo+ID4gKyAgICAgICAgICBuYW1lICAgICAgICAgOiBC b290TG9hZGVyVG9sdW1TaXplDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4N Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcGFzcyBCb290bG9hZGVyIFRv bHVtIHNpemUuDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0K PiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAg IC0gQm9vdG1vZGUgICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbmFtZSAgICAgICAgIDogQm9v dG1vZGUNCj4gPg0KPiA+ICsgICAgICAgICAgaGVscCAgICAgICAgIDogPg0KPiA+DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICBUbyBtYWludGFpbiBCb290bW9kZSBkZXRhaWxzLg0KPiA+ DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAg IHZhbHVlICAgICAgICA6IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkMSAg ICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDgNCj4gPg0KPiA+ICsg ICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAgIC0gRlNQX01fQ09O RklHIDoNCj4gPg0KPiA+ICsgICAgICAtICRBQ1RJT04gICAgICA6DQo+ID4NCj4gPiArICAgICAg ICAgIHBhZ2UgICAgICAgICA6IE1FTQ0KPiA+DQo+ID4gKyAgICAgIC0gU2VyaWFsRGVidWdQb3J0 QWRkcmVzcyA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IERlYnVnIFNlcmlh bCBQb3J0IEJhc2UgYWRkcmVzcw0KPiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBF ZGl0TnVtLCBIRVgsICgweDAwMDAwMDAwLDB4RkZGRkZGRkYpDQo+ID4NCj4gPiArICAgICAgICAg IGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgRGVi dWcgc2VyaWFsIHBvcnQgYmFzZSBhZGRyZXNzLiBUaGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgb25s eQ0KPiA+IHdoZW4gdGhlICdTZXJpYWwgUG9ydCBEZWJ1ZyBEZXZpY2UnDQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBpcyBzZXQgdG8gJ0V4dGVybmFsIERldmljZScu IDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6 IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+ DQo+ID4gKyAgICAgIC0gU2VyaWFsRGVidWdQb3J0VHlwZSA6DQo+ID4NCj4gPiArICAgICAgICAg IG5hbWUgICAgICAgICA6IERlYnVnIFNlcmlhbCBQb3J0IFR5cGUNCj4gPg0KPiA+ICsgICAgICAg ICAgdHlwZSAgICAgICAgIDogQ29tYm8NCj4gPg0KPiA+ICsgICAgICAgICAgb3B0aW9uICAgICAg IDogMDpOT05FLCAxOkkvTywgMjpNTUlPDQo+ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAg ICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgMTY1NTAgY29tcGF0aWJs ZSBkZWJ1ZyBzZXJpYWwgcG9ydCByZXNvdXJjZSB0eXBlLiBOT05FDQo+IG1lYW5zDQo+ID4gbm8g c2VyaWFsIHBvcnQgc3VwcG9ydC4gMHgwMjpNTUlPKERlZmF1bHQpLg0KPiA+DQo+ID4gKyAgICAg ICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAg ICA6IDB4MDINCj4gPg0KPiA+ICsgICAgICAtIFNlcmlhbERlYnVnUG9ydERldmljZSA6DQo+ID4N Cj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IFNlcmlhbCBQb3J0IERlYnVnIERldmljZQ0K PiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBDb21ibw0KPiA+DQo+ID4gKyAgICAg ICAgICBvcHRpb24gICAgICAgOiAwOlNPQyBVQVJUMCwgMTpTT0MgVUFSVDEsIDI6U09DIFVBUlQy LCAzOkV4dGVybmFsDQo+IERldmljZQ0KPiA+DQo+ID4gKyAgICAgICAgICBoZWxwICAgICAgICAg OiA+DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhY3RpdmUgc2Vy aWFsIHBvcnQgZGV2aWNlIGZvciBkZWJ1Zy4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgRm9yIFNPQyBVQVJUIGRldmljZXMsJ0RlYnVnIFNlcmlhbCBQb3J0IEJhc2UnIG9wdGlv bnMgd2lsbCBiZQ0KPiA+IGlnbm9yZWQuIDB4MDI6U09DIFVBUlQyKERlZmF1bHQpLg0KPiA+DQo+ ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZh bHVlICAgICAgICA6IDB4MDINCj4gPg0KPiA+ICsgICAgICAtIFNlcmlhbERlYnVnUG9ydFN0cmlk ZVNpemUgOg0KPiA+DQo+ID4gKyAgICAgICAgICBuYW1lICAgICAgICAgOiBEZWJ1ZyBTZXJpYWwg UG9ydCBTdHJpZGUgU2l6ZQ0KPiA+DQo+ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBDb21i bw0KPiA+DQo+ID4gKyAgICAgICAgICBvcHRpb24gICAgICAgOiAwOjEsIDI6NA0KPiA+DQo+ID4g KyAgICAgICAgICBoZWxwICAgICAgICAgOiA+DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgIERlYnVnIHNlcmlhbCBwb3J0IHJlZ2lzdGVyIG1hcCBzdHJpZGUgc2l6ZSBpbiBieXRl cy4gMHgwMDoxLA0KPiA+IDB4MDI6NChEZWZhdWx0KS4NCj4gPg0KPiA+ICsgICAgICAgICAgbGVu Z3RoICAgICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAy DQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZEZzcG1VcGQgOg0KPiA+DQo+ID4gKyAgICAgICAg ICBsZW5ndGggICAgICAgOiAweDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6 IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIFVwZFRlcm1pbmF0b3IgOg0KPiA+DQo+ID4gKyAgICAg ICAgbGVuZ3RoICAgICAgIDogMHgwMg0KPiA+DQo+ID4gKyAgICAgICAgdmFsdWUgICAgICAgIDog MHg1NUFBDQo+ID4NCj4gPiArICAgIC0gJEFDVElPTiAgICAgIDoNCj4gPg0KPiA+ICsgICAgICAg IGZpbmQgICAgICAgICA6IFFFTVVQRF9TDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAtIEZTUFNf VVBEICAgICA6DQo+ID4NCj4gPiArICAgIC0gRlNQX1VQRF9IRUFERVIgOg0KPiA+DQo+ID4gKyAg ICAgIC0gU2lnbmF0dXJlICAgIDoNCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDog MHgwOA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDUzNUY0NDUwNTU0RDQ1 NTENCj4gPg0KPiA+ICsgICAgICAtIFJldmlzaW9uICAgICA6DQo+ID4NCj4gPiArICAgICAgICAg IG5hbWUgICAgICAgICA6IEZzcHNVcGRSZXZpc2lvbg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5n dGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDEN Cj4gPg0KPiA+ICsgICAgICAtIFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxl bmd0aCAgICAgICA6IDB4MTcNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4 MDB9DQo+ID4NCj4gPiArICAgIC0gRlNQU19BUkNIX1VQRCA6DQo+ID4NCj4gPiArICAgICAgLSBS ZXZpc2lvbiAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDENCj4gPg0KPiA+ICsgICAgICAt IFJlc2VydmVkICAgICA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDMN Cj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogezB4MDB9DQo+ID4NCj4gPiArICAg ICAgLSBMZW5ndGggICAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAw eDA0DQo+ID4NCj4gPiArICAgICAgICAgIHZhbHVlICAgICAgICA6IDB4MDAwMDAwMjANCj4gPg0K PiA+ICsgICAgICAtIEZzcEV2ZW50SGFuZGxlciA6DQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0 aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAw MDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gRW5hYmxlTXVsdGlQaGFzZVNpbGljb25Jbml0IDoNCj4g Pg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwMQ0KPiA+DQo+ID4gKyAgICAgICAg ICB2YWx1ZSAgICAgICAgOiAweDAwDQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZDEgICAgOg0K PiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDEzDQo+ID4NCj4gPiArICAgICAg ICAgIHZhbHVlICAgICAgICA6IHsweDAwfQ0KPiA+DQo+ID4gKyAgICAtIEZTUF9TX0NPTkZJRyA6 DQo+ID4NCj4gPiArICAgICAgLSAkQUNUSU9OICAgICAgOg0KPiA+DQo+ID4gKyAgICAgICAgICBw YWdlICAgICAgICAgOiBTSUwNCj4gPg0KPiA+ICsgICAgICAtIExvZ29TaXplICAgICA6DQo+ID4N Cj4gPiArICAgICAgICAgIG5hbWUgICAgICAgICA6IEJNUCBMb2dvIERhdGEgU2l6ZQ0KPiA+DQo+ ID4gKyAgICAgICAgICB0eXBlICAgICAgICAgOiBSZXNlcnZlZA0KPiA+DQo+ID4gKyAgICAgICAg ICBoZWxwICAgICAgICAgOiA+DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIEJN UCBsb2dvIGRhdGEgYnVmZmVyIHNpemUuIDB4MDAwMDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiAr ICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQNCj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUg ICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4gKyAgICAgIC0gTG9nb1B0ciAgICAgIDoNCj4g Pg0KPiA+ICsgICAgICAgICAgbmFtZSAgICAgICAgIDogQk1QIExvZ28gRGF0YSBQb2ludGVyDQo+ ID4NCj4gPiArICAgICAgICAgIHR5cGUgICAgICAgICA6IFJlc2VydmVkDQo+ID4NCj4gPiArICAg ICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgQk1QIGxvZ28gZGF0YSBwb2ludGVyIHRvIGEgQk1QIGZvcm1hdCBidWZmZXIuDQo+ID4gMHgw MDAwMDAwMChEZWZhdWx0KS4NCj4gPg0KPiA+ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgw NA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1ZSAgICAgICAgOiAweDAwMDAwMDAwDQo+ID4NCj4g PiArICAgICAgLSBHcmFwaGljc0NvbmZpZ1B0ciA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUg ICAgICAgICA6IEdyYXBoaWNzIENvbmZpZ3VyYXRpb24gRGF0YSBQb2ludGVyDQo+ID4NCj4gPiAr ICAgICAgICAgIHR5cGUgICAgICAgICA6IFJlc2VydmVkDQo+ID4NCj4gPiArICAgICAgICAgIGhl bHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhp Y3MgY29uZmlndXJhdGlvbiBkYXRhIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLg0KPiA+IDB4MDAw MDAwMDAoRGVmYXVsdCkuDQo+ID4NCj4gPiArICAgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDQN Cj4gPg0KPiA+ICsgICAgICAgICAgdmFsdWUgICAgICAgIDogMHgwMDAwMDAwMA0KPiA+DQo+ID4g KyAgICAgIC0gUGNpVGVtcFJlc291cmNlQmFzZSA6DQo+ID4NCj4gPiArICAgICAgICAgIG5hbWUg ICAgICAgICA6IFBDSSBHRlggVGVtcG9yYXJ5IE1NSU8gQmFzZQ0KPiA+DQo+ID4gKyAgICAgICAg ICB0eXBlICAgICAgICAgOiBFZGl0TnVtLCBIRVgsICgweDgwMDAwMDAwLDB4REZGRkZGRkYpDQo+ ID4NCj4gPiArICAgICAgICAgIGhlbHAgICAgICAgICA6ID4NCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgUENJIFRlbXBvcmFyeSBQQ0kgR0ZYIEJhc2UgdXNlZCBiZWZvcmUgZnVs bCBQQ0kNCj4gZW51bWVyYXRpb24uDQo+ID4gMHg4MDAwMDAwMChEZWZhdWx0KS4NCj4gPg0KPiA+ ICsgICAgICAgICAgbGVuZ3RoICAgICAgIDogMHgwNA0KPiA+DQo+ID4gKyAgICAgICAgICB2YWx1 ZSAgICAgICAgOiAweDgwMDAwMDAwDQo+ID4NCj4gPiArICAgICAgLSBSZXNlcnZlZEZzcHNVcGQg Og0KPiA+DQo+ID4gKyAgICAgICAgICBsZW5ndGggICAgICAgOiAweDAxDQo+ID4NCj4gPiArICAg ICAgICAgIHZhbHVlICAgICAgICA6IDB4MDANCj4gPg0KPiA+ICsgICAgLSBVcGRUZXJtaW5hdG9y IDoNCj4gPg0KPiA+ICsgICAgICAgIGxlbmd0aCAgICAgICA6IDB4MDINCj4gPg0KPiA+ICsgICAg ICAgIHZhbHVlICAgICAgICA6IDB4NTVBQQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9RZW11RnNwUGtnLmRzYw0KPiA+IGIvSW50ZWxG c3AyUGtnL1Rvb2xzL1Rlc3RzL1FlbXVGc3BQa2cuZHNjDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5hZjBiZDRlNzE3DQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy9RZW11RnNwUGtnLmRzYw0KPiA+IEBA IC0wLDAgKzEsNDY5IEBADQo+ID4gKyMjIEBmaWxlDQo+ID4NCj4gPiArIyBGU1AgRFNDIGJ1aWxk IGZpbGUgZm9yIFFFTVUgcGxhdGZvcm0NCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBDb3B5cmln aHQgKGMpIDIwMTcgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+DQo+ID4gKyMgICAgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJT RA0KPiA+IExpY2Vuc2UNCj4gPg0KPiA+ICsjICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlz dHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiA+IGZvdW5k IGF0DQo+ID4NCj4gPiArIyAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxp Y2Vuc2UucGhwDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgICAgVEhFIFBST0dSQU0gSVMgRElT VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPiBCQVNJUywN Cj4gPg0KPiA+ICsjICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0Yg QU5ZIEtJTkQsIEVJVEhFUg0KPiA+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPg0KPiA+ICsjDQo+ ID4NCj4gPiArIyMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMj IyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBEZWZpbmVzIFNlY3Rpb24g LSBzdGF0ZW1lbnRzIHRoYXQgd2lsbCBiZSBwcm9jZXNzZWQgdG8gY3JlYXRlIGEgTWFrZWZpbGUu DQo+ID4NCj4gPiArIw0KPiA+DQo+ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMj IyMjIw0KPiA+DQo+ID4gK1tEZWZpbmVzXQ0KPiA+DQo+ID4gKyAgUExBVEZPUk1fTkFNRSAgICAg ICAgICAgICAgICAgID0gUWVtdUZzcFBrZw0KPiA+DQo+ID4gKyAgUExBVEZPUk1fR1VJRCAgICAg ICAgICAgICAgICAgID0gMUJFREI1N0EtNzkwNC00MDZlLTg0ODYtQzg5RkM3RkIzOUVFDQo+ID4N Cj4gPiArICBQTEFURk9STV9WRVJTSU9OICAgICAgICAgICAgICAgPSAwLjENCj4gPg0KPiA+ICsg IERTQ19TUEVDSUZJQ0FUSU9OICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gPg0KPiA+ICsg IE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAgICA9IEJ1aWxkL1FlbXVGc3BQa2cNCj4gPg0K PiA+ICsgIFNVUFBPUlRFRF9BUkNISVRFQ1RVUkVTICAgICAgICA9IElBMzJ8WDY0DQo+ID4NCj4g PiArICBCVUlMRF9UQVJHRVRTICAgICAgICAgICAgICAgICAgPSBERUJVR3xSRUxFQVNFDQo+ID4N Cj4gPiArICBTS1VJRF9JREVOVElGSUVSICAgICAgICAgICAgICAgPSBERUZBVUxUDQo+ID4NCj4g PiArICBGTEFTSF9ERUZJTklUSU9OICAgICAgICAgICAgICAgPSBRZW11RnNwUGtnL1FlbXVGc3BQ a2cuZmRmDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICAjIFVQRCB0b29s IGRlZmluaXRpb24NCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgIEZTUF9UX1VQRF9UT09MX0dV SUQgICAgICAgICAgICA9IDM0Njg2Q0EzLTM0RjktNDkwMS1CODJBLQ0KPiBCQTYzMEYwNzE0QzYN Cj4gPg0KPiA+ICsgIEZTUF9WX1VQRF9UT09MX0dVSUQgICAgICAgICAgICA9IDRFMkY0NzI1LTcz NEEtNDM5OS1CQUY1LQ0KPiBCNEUxNjM0OEVCMkYNCj4gPg0KPiA+ICsgIEZTUF9NX1VQRF9UT09M X0dVSUQgICAgICAgICAgICA9IDM5QTI1MERCLUU0NjUtNEREMS1BMkFDLQ0KPiA+IEUyQkQzQzBF MjM4NQ0KPiA+DQo+ID4gKyAgRlNQX1NfVVBEX1RPT0xfR1VJRCAgICAgICAgICAgID0gQ0FFMzYw NUItNUIzNC00Qzg1LUIzRDctDQo+IDI3RDU0MjczQzQwRg0KPiA+DQo+ID4gKyAgRlNQX1RfVVBE X0ZGU19HVUlEICAgICAgICAgICAgID0gNzBCQ0Y2QTUtRkZCMS00N0Q4LUIxQUUtDQo+IEVGRTU1 MDhFMjNFQQ0KPiA+DQo+ID4gKyAgRlNQX1ZfVVBEX0ZGU19HVUlEICAgICAgICAgICAgID0gMDE5 N0VGNUUtMkZGQy00MDg5LThFNTUtRjcwNDAwQjE4MTQ2DQo+ID4NCj4gPiArICBGU1BfTV9VUERf RkZTX0dVSUQgICAgICAgICAgICAgPSBENUI4NkFFQS02QUY3LTQwRDQtODAxNC0NCj4gOTgyMzAx QkMzRDg5DQo+ID4NCj4gPiArICBGU1BfU19VUERfRkZTX0dVSUQgICAgICAgICAgICAgPSBFM0NE OUIxOC05OThDLTRGNzYtQjY1RS05OEIxNTRFNTQ0NkYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg ICMNCj4gPg0KPiA+ICsgICMgU2V0IHBsYXRmb3JtIHNwZWNpZmljIHBhY2thZ2UvZm9sZGVyIG5h bWUsIHNhbWUgYXMgcGFzc2VkIGZyb20NCj4gUFJFQlVJTEQNCj4gPiBzY3JpcHQuDQo+ID4NCj4g PiArICAjIFBMQVRGT1JNX1BBQ0tBR0Ugd291bGQgYmUgdGhlIHNhbWUgYXMgUExBVEZPUk1fTkFN RSBhcyB3ZWxsDQo+IGFzDQo+ID4gcGFja2FnZSBidWlsZCBmb2xkZXINCj4gPg0KPiA+ICsgICMg REVGSU5FIG9ubHkgdGFrZXMgZWZmZWN0IGF0IFI5IERTQyBhbmQgRkRGLg0KPiA+DQo+ID4gKyAg Iw0KPiA+DQo+ID4gKyAgREVGSU5FIEZTUF9QQUNLQUdFICAgICAgICAgICAgICAgICAgICAgPSBR ZW11RnNwUGtnDQo+ID4NCj4gPiArICBERUZJTkUgRlNQX0lNQUdFX0lEICAgICAgICAgICAgICAg ICAgICA9IDB4MjQ1MDUzNDY0RDQ1NTEyNCAgIyAkUUVNRlNQJA0KPiA+DQo+ID4gKyAgREVGSU5F IEZTUF9JTUFHRV9SRVYgICAgICAgICAgICAgICAgICAgPSAweDAwMDAxMDEwDQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICBERUZJTkUgQ0FSX0JBU0VfQUREUkVTUyAgICAgICAgICAgICAgICA9IDB4 MDAwMDAwMDANCj4gPg0KPiA+ICsgIERFRklORSBDQVJfUkVHSU9OX1NJWkUgICAgICAgICAgICAg ICAgID0gMHgwMDA4MDAwMA0KPiA+DQo+ID4gKyAgREVGSU5FIENBUl9CTERfUkVHSU9OX1NJWkUg ICAgICAgICAgICAgPSAweDAwMDcwMDAwDQo+ID4NCj4gPiArICBERUZJTkUgQ0FSX0ZTUF9SRUdJ T05fU0laRSAgICAgICAgICAgICA9IDB4MDAwMTAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg IERFRklORSBGU1BfQVJDSCAgICAgICAgICAgICAgICAgICAgICAgID0gWDY0DQo+ID4NCj4gPiAr DQo+ID4NCj4gPg0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4g PiArIw0KPiA+DQo+ID4gKyMgU0tVIElkZW50aWZpY2F0aW9uIHNlY3Rpb24gLSBsaXN0IG9mIGFs bCBTS1UgSURzIHN1cHBvcnRlZCBieSB0aGlzDQo+ID4NCj4gPiArIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBsYXRmb3JtLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+DQo+ICsjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMj IyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICtbU2t1SWRzXQ0KPiA+DQo+ID4g KyAgMHxERUZBVUxUICAgICAgICAgICAgICAjIFRoZSBlbnRyeTogMHxERUZBVUxUIGlzIHJlc2Vy dmVkIGFuZCBhbHdheXMNCj4gcmVxdWlyZWQuDQo+ID4NCj4gPiArDQo+ID4NCj4gPg0KPiArIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMg TGlicmFyeSBDbGFzcyBzZWN0aW9uIC0gbGlzdCBvZiBhbGwgTGlicmFyeSBDbGFzc2VzIG5lZWRl ZCBieSB0aGlzIFBsYXRmb3JtLg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMj Iw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtbTGlicmFyeUNs YXNzZXNdDQo+ID4NCj4gPiArDQo+IFBlaUNvcmVFbnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1Bl aUNvcmVFbnRyeVBvaW50L1BlaUNvcmVFbnRyeVBvaW50LmluDQo+IGYNCj4gPg0KPiA+ICsgIFBl aW1FbnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1BlaW1FbnRyeVBvaW50L1BlaW1FbnRyeVBvaW50 LmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IERlYnVnUHJpbnRFcnJvckxldmVsTGlifE1kZVBrZy9M aWJyYXJ5L0Jhc2VEZWJ1Z1ByaW50RXJyb3JMZXZlbExpYi9CYXMNCj4gZURlDQo+ID4gYnVnUHJp bnRFcnJvckxldmVsTGliLmluZg0KPiA+DQo+ID4gKyAgQmFzZUxpYnxNZGVQa2cvTGlicmFyeS9C YXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4NCj4gPiArICBJb0xpYnxNZGVQa2cvTGlicmFyeS9CYXNl SW9MaWJJbnRyaW5zaWMvQmFzZUlvTGliSW50cmluc2ljLmluZg0KPiA+DQo+ID4gKyAgUGNpTGli fE1kZVBrZy9MaWJyYXJ5L0Jhc2VQY2lMaWJQY2lFeHByZXNzL0Jhc2VQY2lMaWJQY2lFeHByZXNz LmluZg0KPiA+DQo+ID4gKyAgUGNpQ2Y4TGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VQY2lDZjhMaWIv QmFzZVBjaUNmOExpYi5pbmYNCj4gPg0KPiA+ICsgIFBjaUV4cHJlc3NMaWJ8TWRlUGtnL0xpYnJh cnkvQmFzZVBjaUV4cHJlc3NMaWIvQmFzZVBjaUV4cHJlc3NMaWIuaW5mDQo+ID4NCj4gPiArDQo+ ID4NCj4gQmFzZU1lbW9yeUxpYnxNZGVQa2cvTGlicmFyeS9CYXNlTWVtb3J5TGliUmVwU3RyL0Jh c2VNZW1vcnlMaWJSDQo+IGVwU3RyDQo+ID4gLmluZg0KPiA+DQo+ID4gKyAgUHJpbnRMaWJ8TWRl UGtnL0xpYnJhcnkvQmFzZVByaW50TGliL0Jhc2VQcmludExpYi5pbmYNCj4gPg0KPiA+ICsgIFBj ZExpYnxNZGVQa2cvTGlicmFyeS9QZWlQY2RMaWIvUGVpUGNkTGliLmluZg0KPiA+DQo+ID4gKyAg SG9iTGlifE1kZVBrZy9MaWJyYXJ5L1BlaUhvYkxpYi9QZWlIb2JMaWIuaW5mDQo+ID4NCj4gPiAr DQo+ID4NCj4gUGVpU2VydmljZXNUYWJsZVBvaW50ZXJMaWJ8TWRlUGtnL0xpYnJhcnkvUGVpU2Vy dmljZXNUYWJsZVBvaW50ZXJMaWJJZHQvUA0KPiBlaVNlDQo+ID4gcnZpY2VzVGFibGVQb2ludGVy TGliSWR0LmluZg0KPiA+DQo+ID4gKyAgUGVpU2VydmljZXNMaWJ8TWRlUGtnL0xpYnJhcnkvUGVp U2VydmljZXNMaWIvUGVpU2VydmljZXNMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gTWVtb3J5 QWxsb2NhdGlvbkxpYnxNZGVQa2cvTGlicmFyeS9QZWlNZW1vcnlBbGxvY2F0aW9uTGliL1BlaU1l bW9yeQ0KPiBBbGxvDQo+ID4gY2F0aW9uTGliLmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IFBlQ29m ZkdldEVudHJ5UG9pbnRMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBlQ29mZkdldEVudHJ5UG9pbnRM aWIvQmFzZQ0KPiBQZUMNCj4gPiBvZmZHZXRFbnRyeVBvaW50TGliLmluZg0KPiA+DQo+ID4gKw0K PiA+DQo+IFJlcG9ydFN0YXR1c0NvZGVMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvUGVpUmVwb3J0 U3RhdHVzQ29kZUxpYi9QZWlSDQo+IGVwbw0KPiA+IHJ0U3RhdHVzQ29kZUxpYi5pbmYNCj4gPg0K PiA+ICsNCj4gPg0KPiBDYWNoZU1haW50ZW5hbmNlTGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNo ZU1haW50ZW5hbmNlTGliL0Jhc2VDYWMNCj4gaGUNCj4gPiBNYWludGVuYW5jZUxpYi5pbmYNCj4g Pg0KPiA+ICsgIFBlQ29mZkxpYnxNZGVQa2cvTGlicmFyeS9CYXNlUGVDb2ZmTGliL0Jhc2VQZUNv ZmZMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gUGVDb2ZmRXh0cmFBY3Rpb25MaWJ8TWRlUGtn L0xpYnJhcnkvQmFzZVBlQ29mZkV4dHJhQWN0aW9uTGliTnVsbC9CYXNlUA0KPiBlQ28NCj4gPiBm ZkV4dHJhQWN0aW9uTGliTnVsbC5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBVZWZpRGVjb21wcmVz c0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlVWVmaURlY29tcHJlc3NMaWIvQmFzZVVlZmlEZWNvDQo+ IG1wDQo+ID4gcmVzc0xpYi5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBTeW5jaHJvbml6YXRpb25M aWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9CYXNlU3luY2hyb25peg0K PiBhdGkNCj4gPiBvbkxpYi5pbmYNCj4gPg0KPiA+ICsgIENwdUxpYnxNZGVQa2cvTGlicmFyeS9C YXNlQ3B1TGliL0Jhc2VDcHVMaWIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4gRXh0cmFjdEd1aWRl ZFNlY3Rpb25MaWJ8TWRlUGtnL0xpYnJhcnkvUGVpRXh0cmFjdEd1aWRlZFNlY3Rpb25MaWIvUGVp RXgNCj4gdHJhYw0KPiA+IHRHdWlkZWRTZWN0aW9uTGliLmluZg0KPiA+DQo+ID4gKyAgQ2FjaGVM aWJ8SW50ZWxGc3AyUGtnL0xpYnJhcnkvQmFzZUNhY2hlTGliL0Jhc2VDYWNoZUxpYi5pbmYNCj4g Pg0KPiA+ICsNCj4gPg0KPiBDYWNoZUFzUmFtTGlifEludGVsRnNwMlBrZy9MaWJyYXJ5L0Jhc2VD YWNoZUFzUmFtTGliTnVsbC9CYXNlQ2FjaGVBcw0KPiBSYQ0KPiA+IG1MaWJOdWxsLmluZg0KPiA+ DQo+ID4gKw0KPiA+DQo+IEZzcFN3aXRjaFN0YWNrTGlifEludGVsRnNwMlBrZy9MaWJyYXJ5L0Jh c2VGc3BTd2l0Y2hTdGFja0xpYi9CYXNlRnNwU3dpdA0KPiBjaFMNCj4gPiB0YWNrTGliLmluZg0K PiA+DQo+ID4gKw0KPiA+DQo+IEZzcENvbW1vbkxpYnxJbnRlbEZzcDJQa2cvTGlicmFyeS9CYXNl RnNwQ29tbW9uTGliL0Jhc2VGc3BDb21tb24NCj4gTGliLmkNCj4gPiBuZg0KPiA+DQo+ID4gKw0K PiA+DQo+IEZzcFBsYXRmb3JtTGlifEludGVsRnNwMlBrZy9MaWJyYXJ5L0Jhc2VGc3BQbGF0Zm9y bUxpYi9CYXNlRnNwUGxhdGZvcm1MaQ0KPiBiLmluDQo+ID4gZg0KPiA+DQo+ID4gKw0KPiA+DQo+ IFBsYXRmb3JtSG9va0xpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9CYXNlUGxhdGZvcm1Ib29rTGli TnVsbC9CYXNlUGxhDQo+IHRmbw0KPiA+IHJtSG9va0xpYk51bGwuaW5mDQo+ID4NCj4gPiArDQo+ ID4NCj4gUGVyZm9ybWFuY2VMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBlcmZvcm1hbmNlTGliTnVs bC9CYXNlUGVyZm9ybWFuYw0KPiBlTGliDQo+ID4gTnVsbC5pbmYNCj4gPg0KPiA+ICsNCj4gPg0K PiBPZW1Ib29rU3RhdHVzQ29kZUxpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9PZW1Ib29rU3RhdHVz Q29kZUxpYk4NCj4gdWxsLw0KPiA+IE9lbUhvb2tTdGF0dXNDb2RlTGliTnVsbC5pbmYNCj4gPg0K PiA+ICsgIFVlZmlDcHVMaWJ8VWVmaUNwdVBrZy9MaWJyYXJ5L0Jhc2VVZWZpQ3B1TGliL0Jhc2VV ZWZpQ3B1TGliLmluZg0KPiA+DQo+ID4gKyFpZiAkKFRBUkdFVCkgPT0gREVCVUcNCj4gPg0KPiA+ ICsNCj4gPg0KPiBEZWJ1Z0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0 L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBvcnQuDQo+IGluZg0KPiA+DQo+ID4gKw0KPiA+DQo+IFNlcmlh bFBvcnRMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MC9CYXNl U2VyaWFsUG9ydA0KPiBMaWINCj4gPiAxNjU1MC5pbmYNCj4gPg0KPiA+ICshZWxzZQ0KPiA+DQo+ ID4gKyAgRGVidWdMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZURlYnVnTGliTnVsbC9CYXNlRGVidWdM aWJOdWxsLmluZg0KPiA+DQo+ID4gKw0KPiBTZXJpYWxQb3J0TGlifE1kZVBrZy9MaWJyYXJ5L0Jh c2VTZXJpYWxQb3J0TGliTnVsbC9CYXNlU2VyaWFsUG9ydExpYk51bGwuaW4NCj4gZg0KPiA+DQo+ ID4gKyFlbmRpZg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4NCj4gKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMj IyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjIw0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjIFBjZCBT ZWN0aW9uIC0gbGlzdCBvZiBhbGwgRURLIElJIFBDRCBFbnRyaWVzIGRlZmluZWQgYnkgdGhpcyBQ bGF0Zm9ybQ0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMj IyMjIyMjIyMjIyMNCj4gPg0KPiA+ICtbUGNkc0ZpeGVkQXRCdWlsZF0NCj4gPg0KPiA+ICsgIGdF ZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTaGFkb3dQZWltT25TM0Jvb3QgICAgfCBU UlVFDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZzcEhlYWRlclJl dmlzaW9uICAgICAgICAgIHwgMHgwMw0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZC5QY2RGc3BJbWFnZUlkU3RyaW5nICAgICAgICAgICB8DQo+ICQoRlNQX0lNQUdFX0lEKQ0K PiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5QY2RGc3BJbWFnZVJldmlzaW9u ICAgICAgICAgICB8DQo+ID4gJChGU1BfSU1BR0VfUkVWKQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ ID4gKyAgIyBGU1AgQ0FSIFVzYWdlcyAgKEJMIFJBTSB8IEZTUCBSQU0gfCBGU1AgQ09ERSkNCj4g Pg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgIGdJbnRlbEZzcDJQa2dUb2tlblNwYWNlR3VpZC5QY2RU ZW1wb3JhcnlSYW1CYXNlICAgICAgICAgfA0KPiA+ICQoQ0FSX0JBU0VfQUREUkVTUykNCj4gPg0K PiA+ICsgIGdJbnRlbEZzcDJQa2dUb2tlblNwYWNlR3VpZC5QY2RUZW1wb3JhcnlSYW1TaXplICAg ICAgICAgfA0KPiA+ICQoQ0FSX1JFR0lPTl9TSVpFKQ0KPiA+DQo+ID4gKyAgZ0ludGVsRnNwMlBr Z1Rva2VuU3BhY2VHdWlkLlBjZEZzcFRlbXBvcmFyeVJhbVNpemUgICAgICB8DQo+ID4gJChDQVJf RlNQX1JFR0lPTl9TSVpFKQ0KPiA+DQo+ID4gKyAgZ0ludGVsRnNwMlBrZ1Rva2VuU3BhY2VHdWlk LlBjZEZzcFJlc2VydmVkQnVmZmVyU2l6ZSAgICB8IDB4MDEwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgIyBUaGlzIGRlZmluZXMgaG93IG11Y2ggc3BhY2Ugd2lsbCBiZSB1c2VkIGZvciBoZWFw IGluIEZTUCB0ZW1wb3JhcnkNCj4gPiBtZW1vcnkNCj4gPg0KPiA+ICsgICMgeCAlIG9mIEZTUCB0 ZW1wb3JhcnkgbWVtb3J5IHdpbGwgYmUgdXNlZCBmb3IgaGVhcA0KPiA+DQo+ID4gKyAgIyAoMTAw IC0geCkgJSBvZiBGU1AgdGVtcG9yYXJ5IG1lbW9yeSB3aWxsIGJlIHVzZWQgZm9yIHN0YWNrDQo+ ID4NCj4gPiArICBnSW50ZWxGc3AyUGtnVG9rZW5TcGFjZUd1aWQuUGNkRnNwSGVhcFNpemVQZXJj ZW50YWdlICAgIHwgNjUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgVGhpcyBpcyBhIHBsYXRm b3JtIHNwZWNpZmljIGdsb2JhbCBwb2ludGVyIHVzZWQgYnkgRlNQDQo+ID4NCj4gPiArICBnSW50 ZWxGc3AyUGtnVG9rZW5TcGFjZUd1aWQuUGNkR2xvYmFsRGF0YVBvaW50ZXJBZGRyZXNzIHwNCj4g MHhGRUQwMDE0OA0KPiA+DQo+ID4gKyAgZ0ludGVsRnNwMlBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZz cFJlc2VydmVkTWVtb3J5TGVuZ3RoICB8DQo+IDB4MDAxMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICshaWYgJChUQVJHRVQpID09IFJFTEVBU0UNCj4gPg0KPiA+ICsgIGdFZmlNZGVQa2dUb2tl blNwYWNlR3VpZC5QY2RGaXhlZERlYnVnUHJpbnRFcnJvckxldmVsICAgfA0KPiAweDAwMDAwMDAw DQo+ID4NCj4gPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRGVidWdQcm9wZXJ0eU1h c2sgICAgICAgICAgIHwgMA0KPiA+DQo+ID4gKyFlbHNlDQo+ID4NCj4gPiArICBnRWZpTWRlUGtn VG9rZW5TcGFjZUd1aWQuUGNkRml4ZWREZWJ1Z1ByaW50RXJyb3JMZXZlbCAgIHwNCj4gMHg4MDAw MDA0Nw0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnUHJvcGVy dHlNYXNrICAgICAgICAgICB8IDB4MjcNCj4gPg0KPiA+ICshZW5kaWYNCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICtbUGNkc1BhdGNoYWJsZUluTW9kdWxlXQ0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZFBjaUV4cHJlc3NCYXNlQWRkcmVzcyAgICAgICB8DQo+IDB4RTAwMDAw MDANCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICMgVGhpcyBlbnRyeSB3aWxsIGJlIHBhdGNo ZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICBn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVnBkQmFzZUFkZHJlc3MgICAgICAgIHwN Cj4gMHgxMjM0NTY3OA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyFpZiAkKFRBUkdFVCkgPT0gUkVM RUFTRQ0KPiA+DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnUHJpbnRF cnJvckxldmVsICAgICAgICB8IDANCj4gPg0KPiA+ICshZWxzZQ0KPiA+DQo+ID4gKyAgZ0VmaU1k ZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnUHJpbnRFcnJvckxldmVsICAgICAgICB8IDB4ODAw MDAwNDcNCj4gPg0KPiA+ICshZW5kaWYNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtbUGNkc0R5bmFt aWNWcGQuVXBkXQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgIyBUaGlzIHNlY3Rpb24gaXMg bm90IHVzZWQgYnkgdGhlIG5vcm1hbCBidWlsZCBwcm9jZXNzDQo+ID4NCj4gPiArICAjIEhvd2V2 ZXIsIEZTUCB3aWxsIHVzZSBkZWRpY2F0ZWQgdG9vbCB0byBoYW5kbGUgaXQgYW5kIGdlbmVyYXRl IGENCj4gPg0KPiA+ICsgICMgVlBEIHNpbWlsYXIgYmluYXJ5IGJsb2NrIChVc2VyIENvbmZpZ3Vy YXRpb24gRGF0YSkuIFRoaXMgYmxvY2sgd2lsbA0KPiA+DQo+ID4gKyAgIyBiZSBhY2Nlc3NlZCB0 aHJvdWdoIGEgZ2VuZXJhdGVkIGRhdGEgc3RydWN0dXJlIGRpcmVjdGx5IHJhdGhlciB0aGFuDQo+ ID4NCj4gPiArICAjIFBDRCBzZXJ2aWNlcy4gVGhpcyBpcyBmb3Igc2l6ZSBjb25zaWRlcmF0aW9u Lg0KPiA+DQo+ID4gKyAgIyBGb3JtYXQ6DQo+ID4NCj4gPiArICAjICAgZ1FlbXVGc3BQa2dUb2tl blNwYWNlR3VpZC5VcGR4eHh4eHh4eHh4eHhuICAgICAgfCBPRkZTRVQgfA0KPiBMRU5HVEggfA0K PiA+IFZBTFVFDQo+ID4NCj4gPiArICAjIE9ubHkgc2ltcGxlIGRhdGEgdHlwZSBpcyBzdXBwb3J0 ZWQNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsg ICMgQ29tbWVudHMgd2l0aCAhQlNGIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBCU0YgZmlsZQ0K PiA+DQo+ID4gKyAgIyBDb21tZW50cyB3aXRoICFIRFIgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRl IEggaGVhZGVyIGZpbGUNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMg R2xvYmFsIGRlZmluaXRpb25zIGluIEJTRg0KPiA+DQo+ID4gKyAgIyAhQlNGIFBBR0VTOntUTVA6 IkZTUCBUIiwgTUVNOiJGU1AgTWVtb3J5SW5pdCBTZXR0aW5ncyIsIFNJTDoiRlNQDQo+ID4gU2ls aWNvbkluaXQgU2V0dGluZ3MifQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEJMT0NLOntOQU1FOiJRRU1V IFBsYXRmb3JtIiwgVkVSOiIwLjEifQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIEZJ TkQ6e1FFTVVQRF9UfQ0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1FTlQ6e0ZTUF9VUERfSEVBREVS OkZTUCBVUEQgSGVhZGVyfQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BfVVBEX0hFQURF UjpGc3BVcGRIZWFkZXI6U1RBUlR9DQo+ID4NCj4gPiArICAjIEZzcHRVcGRTaWduYXR1cmU6IHtR RU1VUERfVH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuU2lnbmF0dXJl ICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDggfA0KPiA+IDB4NTQ1RjQ0NTA1NTRENDU1MQ0K PiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0ZzcHRVcGRSZXZpc2lvbn0NCj4gPg0KPiA+ICsgIGdR ZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmV2aXNpb24gICAgICAgICAgICAgICAgICAgIHwgKiB8 IDB4MDEgfCAweDAxDQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9VUERfSEVBREVSOkZz cFVwZEhlYWRlcjpFTkR9DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJl c2VydmVkICAgICAgICAgICAgICAgICAgICB8ICogfCAweDE3IHwgezB4MDB9DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICAjICFIRFIgQ09NTUVOVDp7RlNQVF9BUkNIX1VQRDpGU1BUX0FSQ0hfVVBE fQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BUX0FSQ0hfVVBEOkZzcHRBcmNoVXBkOlNU QVJUfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXZpc2lvbiAgICAg ICAgICAgICAgICAgICAgfCAqIHwgMHgwMSB8IDB4MDENCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtn VG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDMgfCB7 MHgwMH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuTGVuZ3RoICAgICAg ICAgICAgICAgICAgICAgIHwgKiB8IDB4MDQgfCAweDAwMDAwMDIwDQo+ID4NCj4gPiArICBnUWVt dUZzcFBrZ1Rva2VuU3BhY2VHdWlkLkZzcERlYnVnSGFuZGxlciAgICAgICAgICAgICB8ICogfCAw eDA0IHwNCj4gPiAweDAwMDAwMDAwDQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUFRfQVJD SF9VUEQ6RnNwdEFyY2hVcGQ6RU5EfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZC5SZXNlcnZlZDEgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgxNCB8IHsweDAwfQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1FTlQ6e0ZTUFRfQ09NTU9OX1VQRDpGc3Ag VCBDb21tb24gVVBEfQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BUX0NPTU1PTl9VUEQ6 RnNwdENvbW1vblVwZDpTVEFSVH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1 aWQuUmV2aXNpb24gICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDEgfCAweDAxDQo+ID4NCj4g PiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJlc2VydmVkICAgICAgICAgICAgICAgICAg ICB8ICogfCAweDAzIHwgezB4MDB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjIEJhc2UgYWRk cmVzcyBvZiB0aGUgbWljcm9jb2RlIHJlZ2lvbi4NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9r ZW5TcGFjZUd1aWQuTWljcm9jb2RlUmVnaW9uQmFzZSAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+ IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgTGVuZ3RoIG9mIHRoZSBtaWNy b2NvZGUgcmVnaW9uLg0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5NaWNy b2NvZGVSZWdpb25MZW5ndGggICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyBCYXNlIGFkZHJlc3Mgb2YgdGhlIGNhY2hlYWJsZSBmbGFz aCByZWdpb24uDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLkNvZGVSZWdp b25CYXNlICAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gPiAweDAwMDAwMDAwDQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAjIExlbmd0aCBvZiB0aGUgY2FjaGVhYmxlIGZsYXNoIHJlZ2lvbi4N Cj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuQ29kZVJlZ2lvbkxlbmd0aCAg ICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0K PiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQVF9DT01NT05fVVBEOkZzcHRDb21tb25VcGQ6RU5EfQ0K PiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZDEgICAgICAgICAg ICAgICAgICAgfCAqIHwgMHgwQyB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAh SERSIENPTU1FTlQ6e0ZTUF9UX0NPTkZJRzpGc3AgVCBDb25maWd1cmF0aW9ufQ0KPiA+DQo+ID4g KyAgIyAhSERSIEVNQkVEOntGU1BfVF9DT05GSUc6RnNwdENvbmZpZzpTVEFSVH0NCj4gPg0KPiA+ ICsgICMgIUJTRiBQQUdFOntUTVB9DQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7Q2hpY2tlbiBi eXRlcyB0byB0ZXN0IEhleCBjb25maWd9DQo+ID4NCj4gPiArICAjICFCU0YgVFlQRTp7RWRpdE51 bSwgSEVYLCAoMHgwMDAwMDAwMCwweEZGRkZGRkZGKX0NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQ OntUaGlzIG9wdGlvbiBzaG93cyBob3cgdG8gcHJlc2VudCBvcHRpb24gZm9yIDQgYnl0ZXMgZGF0 YX0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuQ2hpY2tlbkJ5dGVzICAg ICAgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiAweDAwMDAwMDAwDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9UX0NPTkZJRzpGc3B0Q29uZmlnOkVORH0NCj4gPg0K PiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWRGc3B0VXBkMSAgICAgICAg ICAgIHwgKiB8IDB4MUMgfA0KPiB7MHgwMH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgTm90 ZSBwbGVhc2Uga2VlcCAiVXBkVGVybWluYXRvciIgYXQgdGhlIGVuZCBvZiBlYWNoIFVQRCByZWdp b24uDQo+ID4NCj4gPiArICAjIFRoZSB0b29sIHdpbGwgdXNlIHRoaXMgZmllbGQgdG8gZGV0ZXJt aW5lIHRoZSBhY3R1YWwgZW5kIG9mIHRoZSBVUEQgZGF0YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1Y3R1 cmUuDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlVwZFRlcm1pbmF0b3Ig ICAgICAgICAgICAgICB8ICogfCAweDAyIHwNCj4gMHg1NUFBDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiAr ICAjDQo+ID4NCj4gPiArICAjIFVQRHMgY29uc3VtZWQgaW4gRnNwTWVtb3J5SW5pdCBBcGkNCj4g Pg0KPiA+ICsgICMNCj4gPg0KPiA+ICsNCj4gPg0KPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMj IyMjIyMjIyMNCj4gPg0KPiA+ICsgICMgIUJTRiBGSU5EOntRRU1VUERfTX0NCj4gPg0KPiA+ICsg ICMgIUhEUiBDT01NRU5UOntGU1BfVVBEX0hFQURFUjpGU1AgVVBEIEhlYWRlcn0NCj4gPg0KPiA+ ICsgICMgIUhEUiBFTUJFRDp7RlNQX1VQRF9IRUFERVI6RnNwVXBkSGVhZGVyOlNUQVJUfQ0KPiA+ DQo+ID4gKyAgIyBGc3BtVXBkU2lnbmF0dXJlOiB7UUVNVVBEX019DQo+ID4NCj4gPiArICBnUWVt dUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlNpZ25hdHVyZSAgICAgICAgICAgICAgICAgICB8ICogfCAw eDA4IHwNCj4gPiAweDRENUY0NDUwNTU0RDQ1NTENCj4gPg0KPiA+ICsgICMgIUJTRiBOQU1FOntG c3BtVXBkUmV2aXNpb259DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJl dmlzaW9uICAgICAgICAgICAgICAgICAgICB8ICogfCAweDAxIHwgMHgwMQ0KPiA+DQo+ID4gKyAg IyAhSERSIEVNQkVEOntGU1BfVVBEX0hFQURFUjpGc3BVcGRIZWFkZXI6RU5EfQ0KPiA+DQo+ID4g KyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg fCAqIHwgMHgxNyB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1F TlQ6e0ZTUE1fQVJDSF9VUEQ6RnNwIE0gQXJjaGl0ZWN0dXJhbCBVUER9DQo+ID4NCj4gPiArICAj ICFIRFIgRU1CRUQ6e0ZTUE1fQVJDSF9VUEQ6RnNwbUFyY2hVcGQ6U1RBUlR9DQo+ID4NCj4gPiAr DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJldmlzaW9uICAgICAgICAg ICAgICAgICAgICB8ICogfCAweDAxIHwgMHgwMQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgZ1Fl bXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgfCAqIHwg MHgwMyB8IHsweDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIFNUUlVDVDp7Vk9J RCp9DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLk52c0J1ZmZlclB0ciAg ICAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgIyAhSERSIFNUUlVDVDp7Vk9JRCp9DQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7 U3RhY2tCYXNlfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e1N0YWNrIGJhc2UgZm9yIEZTUCB1 c2UuIERlZmF1bHQ6IDB4RkVGMTYwMDB9DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3Bh Y2VHdWlkLlN0YWNrQmFzZSAgICAgICAgICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gPiAkKENB Ul9CTERfUkVHSU9OX1NJWkUpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7 U3RhY2tTaXplfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e1RvIHBhc3MgdGhlIHN0YWNrIHNp emUgZm9yIEZTUCB1c2UuIEJvb3Rsb2FkZXIgY2FuDQo+ID4gcHJvZ3JhbW1hdGljYWxseSBnZXQg dGhlIEZTUCByZXF1ZXN0ZWQgU3RhY2tTaXplIGJ5IHVzaW5nIHRoZSBkZWZhdWx0cyBpbg0KPiB0 aGUNCj4gPiBGU1AtTSBjb21wb25lbnQuIFRoaXMgaXMgdGhlIG1pbmltdW0gc3RhY2sgc2l6ZSBl eHBlY3RlZCBieSB0aGlzIHJldmlzaW9uDQo+IG9mDQo+ID4gRlNQLiBEZWZhdWx0OiAweDJBMDAw fQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5TdGFja1NpemUgICAgICAg ICAgICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gJChDQVJfRlNQX1JFR0lPTl9TSVpFKQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhQlNGIE5BTUU6e0Jvb3RMb2FkZXJUb2x1bVNpemV9DQo+ ID4NCj4gPiArICAjICFCU0YgSEVMUDp7VG8gcGFzcyBCb290bG9hZGVyIFRvbHVtIHNpemUufQ0K PiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5Cb290TG9hZGVyVG9sdW1TaXpl ICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgIyAhQlNGIE5BTUU6e0Jvb3Rtb2RlfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e1Rv IG1haW50YWluIEJvb3Rtb2RlIGRldGFpbHMufQ0KPiA+DQo+ID4gKyAgZ1BsYXRmb3JtRnNwUGtn VG9rZW5TcGFjZUd1aWQuQm9vdG1vZGUgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwNCB8DQo+ ID4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BN X0FSQ0hfVVBEOkZzcG1BcmNoVXBkOkVORH0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5T cGFjZUd1aWQuUmVzZXJ2ZWQxICAgICAgICAgICAgICAgICAgIHwgKiB8IDB4MDggfCB7MHgwMH0N Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUhEUiBDT01NRU5UOntGU1BfTV9DT05GSUc6RnNw IE0gQ29uZmlndXJhdGlvbn0NCj4gPg0KPiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQX01fQ09ORklH OkZzcG1Db25maWc6U1RBUlR9DQo+ID4NCj4gPiArICAjICFCU0YgUEFHRTp7TUVNfQ0KPiA+DQo+ ID4gKyAgIyAhQlNGIE5BTUU6e0RlYnVnIFNlcmlhbCBQb3J0IEJhc2UgYWRkcmVzc30NCj4gPg0K PiA+ICsgICMgIUJTRiBUWVBFOntFZGl0TnVtLCBIRVgsICgweDAwMDAwMDAwLDB4RkZGRkZGRkYp fQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhFTFA6e0RlYnVnIHNlcmlhbCBwb3J0IGJhc2UgYWRkcmVz cy4gVGhpcyBvcHRpb24gd2lsbCBiZSB1c2VkIG9ubHkNCj4gPiB3aGVuIHRoZSAnU2VyaWFsIFBv cnQgRGVidWcgRGV2aWNlJ30NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQOnsrIG9wdGlvbiBpcyBz ZXQgdG8gJ0V4dGVybmFsIERldmljZScuIDB4MDAwMDAwMDAoRGVmYXVsdCkufQ0KPiA+DQo+ID4g KyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5TZXJpYWxEZWJ1Z1BvcnRBZGRyZXNzICAgICAg fCAqIHwgMHgwNCB8DQo+ID4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAh QlNGIE5BTUU6e0RlYnVnIFNlcmlhbCBQb3J0IFR5cGV9IFRZUEU6e0NvbWJvfQ0KPiA+DQo+ID4g KyAgIyAhQlNGIE9QVElPTjp7MDpOT05FLCAxOkkvTywgMjpNTUlPfQ0KPiA+DQo+ID4gKyAgIyAh QlNGIEhFTFA6ezE2NTUwIGNvbXBhdGlibGUgZGVidWcgc2VyaWFsIHBvcnQgcmVzb3VyY2UgdHlw ZS4gTk9ORQ0KPiBtZWFucw0KPiA+IG5vIHNlcmlhbCBwb3J0IHN1cHBvcnQuIDB4MDI6TU1JTyhE ZWZhdWx0KS59DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlNlcmlhbERl YnVnUG9ydFR5cGUgICAgICAgICB8ICogfCAweDAxIHwNCj4gMHgwMg0KPiA+DQo+ID4gKw0KPiA+ DQo+ID4gKyAgIyAhQlNGIE5BTUU6e1NlcmlhbCBQb3J0IERlYnVnIERldmljZX0gVFlQRTp7Q29t Ym99DQo+ID4NCj4gPiArICAjICFCU0YgT1BUSU9OOnswOlNPQyBVQVJUMCwgMTpTT0MgVUFSVDEs IDI6U09DIFVBUlQyLCAzOkV4dGVybmFsDQo+IERldmljZX0NCj4gPg0KPiA+ICsgICMgIUJTRiBI RUxQOntTZWxlY3QgYWN0aXZlIHNlcmlhbCBwb3J0IGRldmljZSBmb3IgZGVidWcuIH0NCj4gPg0K PiA+ICsgICMgIUJTRiBIRUxQOnsrRm9yIFNPQyBVQVJUIGRldmljZXMsJ0RlYnVnIFNlcmlhbCBQ b3J0IEJhc2UnIG9wdGlvbnMgd2lsbA0KPiBiZQ0KPiA+IGlnbm9yZWQuIDB4MDI6U09DIFVBUlQy KERlZmF1bHQpLn0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuU2VyaWFs RGVidWdQb3J0RGV2aWNlICAgICAgIHwgKiB8IDB4MDEgfA0KPiAweDAyDQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArICAjICFCU0YgTkFNRTp7RGVidWcgU2VyaWFsIFBvcnQgU3RyaWRlIFNpemV9IFRZ UEU6e0NvbWJvfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIE9QVElPTjp7MDoxLCAyOjR9DQo+ID4NCj4g PiArICAjICFCU0YgSEVMUDp7RGVidWcgc2VyaWFsIHBvcnQgcmVnaXN0ZXIgbWFwIHN0cmlkZSBz aXplIGluIGJ5dGVzLiAweDAwOjEsDQo+ID4gMHgwMjo0KERlZmF1bHQpLn0NCj4gPg0KPiA+ICsg IGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuU2VyaWFsRGVidWdQb3J0U3RyaWRlU2l6ZSAgIHwg KiB8IDB4MDEgfA0KPiAweDAyDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAj ICFIRFIgRU1CRUQ6e0ZTUF9NX0NPTkZJRzpGc3BtQ29uZmlnOkVORH0NCj4gPg0KPiA+ICsgIGdR ZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWRGc3BtVXBkICAgICAgICAgICAgIHwgKiB8 IDB4MDQgfA0KPiB7MHgwMH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMg Tm90ZSBwbGVhc2Uga2VlcCAiVXBkVGVybWluYXRvciIgYXQgdGhlIGVuZCBvZiBlYWNoIFVQRCBy ZWdpb24uDQo+ID4NCj4gPiArICAjIFRoZSB0b29sIHdpbGwgdXNlIHRoaXMgZmllbGQgdG8gZGV0 ZXJtaW5lIHRoZSBhY3R1YWwgZW5kIG9mIHRoZSBVUEQgZGF0YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1 Y3R1cmUuDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlVwZFRlcm1pbmF0 b3IgICAgICAgICAgICAgICB8ICogfCAweDAyIHwNCj4gMHg1NUFBDQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4g PiArICAjDQo+ID4NCj4gPiArICAjIFVQRHMgY29uc3VtZWQgaW4gRnNwU2lsaWNvbkluaXQgQXBp DQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArDQo+ID4NCj4gIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMj IyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArICAjICFCU0YgRklORDp7UUVNVVBEX1N9DQo+ID4NCj4g PiArICAjICFIRFIgQ09NTUVOVDp7RlNQX1VQRF9IRUFERVI6RlNQIFVQRCBIZWFkZXJ9DQo+ID4N Cj4gPiArICAjICFIRFIgRU1CRUQ6e0ZTUF9VUERfSEVBREVSOkZzcFVwZEhlYWRlcjpTVEFSVH0N Cj4gPg0KPiA+ICsgICMgRnNwc1VwZFNpZ25hdHVyZToge1FFTVVQRF9TfQ0KPiA+DQo+ID4gKyAg Z1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5TaWduYXR1cmUgICAgICAgICAgICAgICAgICAgfCAq IHwgMHgwOCB8DQo+ID4gMHg1MzVGNDQ1MDU1NEQ0NTUxDQo+ID4NCj4gPiArICAjICFCU0YgTkFN RTp7RnNwc1VwZFJldmlzaW9ufQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3Vp ZC5SZXZpc2lvbiAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwMSB8IDB4MDENCj4gPg0KPiA+ ICsgICMgIUhEUiBFTUJFRDp7RlNQX1VQRF9IRUFERVI6RnNwVXBkSGVhZGVyOkVORH0NCj4gPg0K PiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuUmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgIHwgKiB8IDB4MTcgfCB7MHgwMH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUhEUiBD T01NRU5UOntGU1BTX0FSQ0hfVVBEOkZTUFNfQVJDSF9VUER9DQo+ID4NCj4gPiArICAjICFIRFIg RU1CRUQ6e0ZTUFNfQVJDSF9VUEQ6RnNwc0FyY2hVcGQ6U1RBUlR9DQo+ID4NCj4gPiArICBnUWVt dUZzcFBrZ1Rva2VuU3BhY2VHdWlkLlJldmlzaW9uICAgICAgICAgICAgICAgICAgICB8ICogfCAw eDAxIHwgMHgwMQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5SZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgwMyB8IHsweDAwfQ0KPiA+DQo+ID4gKyAgZ1Fl bXVGc3BQa2dUb2tlblNwYWNlR3VpZC5MZW5ndGggICAgICAgICAgICAgICAgICAgICAgfCAqIHwg MHgwNCB8IDB4MDAwMDAwMjANCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQu RnNwRXZlbnRIYW5kbGVyICAgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4MDAwMDAwMDAN Cj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5TcGFjZUd1aWQuRW5hYmxlTXVsdGlQaGFzZVNp bGljb25Jbml0IHwgKiB8IDB4MDEgfA0KPiAweDAwDQo+ID4NCj4gPiArICAjICFIRFIgRU1CRUQ6 e0ZTUFNfQVJDSF9VUEQ6RnNwc0FyY2hVcGQ6RU5EfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dU b2tlblNwYWNlR3VpZC5SZXNlcnZlZDEgICAgICAgICAgICAgICAgICAgfCAqIHwgMHgxMyB8IHsw eDAwfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyAhSERSIENPTU1FTlQ6e0ZTUF9TX0NPTkZJ RzpGc3AgUyBDb25maWd1cmF0aW9ufQ0KPiA+DQo+ID4gKyAgIyAhSERSIEVNQkVEOntGU1BfU19D T05GSUc6RnNwc0NvbmZpZzpTVEFSVH0NCj4gPg0KPiA+ICsgICMgIUJTRiBQQUdFOntTSUx9DQo+ ID4NCj4gPiArDQo+ID4NCj4gPiArICAjICFCU0YgTkFNRTp7Qk1QIExvZ28gRGF0YSBTaXplfQ0K PiA+DQo+ID4gKyAgIyAhQlNGIFRZUEU6e1Jlc2VydmVkfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhF TFA6e0JNUCBsb2dvIGRhdGEgYnVmZmVyIHNpemUuIDB4MDAwMDAwMDAoRGVmYXVsdCkufQ0KPiA+ DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNlR3VpZC5Mb2dvU2l6ZSAgICAgICAgICAgICAg ICAgICAgfCAqIHwgMHgwNCB8DQo+IDB4MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg ICMgIUJTRiBOQU1FOntCTVAgTG9nbyBEYXRhIFBvaW50ZXJ9DQo+ID4NCj4gPiArICAjICFCU0Yg VFlQRTp7UmVzZXJ2ZWR9DQo+ID4NCj4gPiArICAjICFCU0YgSEVMUDp7Qk1QIGxvZ28gZGF0YSBw b2ludGVyIHRvIGEgQk1QIGZvcm1hdCBidWZmZXIuDQo+ID4gMHgwMDAwMDAwMChEZWZhdWx0KS59 DQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2VuU3BhY2VHdWlkLkxvZ29QdHIgICAgICAgICAg ICAgICAgICAgICB8ICogfCAweDA0IHwNCj4gMHgwMDAwMDAwMA0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyAgIyAhQlNGIE5BTUU6e0dyYXBoaWNzIENvbmZpZ3VyYXRpb24gRGF0YSBQb2ludGVyfQ0K PiA+DQo+ID4gKyAgIyAhQlNGIFRZUEU6e1Jlc2VydmVkfQ0KPiA+DQo+ID4gKyAgIyAhQlNGIEhF TFA6e0dyYXBoaWNzIGNvbmZpZ3VyYXRpb24gZGF0YSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi4N Cj4gPiAweDAwMDAwMDAwKERlZmF1bHQpLn0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9rZW5T cGFjZUd1aWQuR3JhcGhpY3NDb25maWdQdHIgICAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+IDB4 MDAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUJTRiBOQU1FOntQQ0kgR0ZYIFRl bXBvcmFyeSBNTUlPIEJhc2V9DQo+ID4NCj4gPiArICAjICFCU0YgVFlQRTp7RWRpdE51bSwgSEVY LCAoMHg4MDAwMDAwMCwweERGRkZGRkZGKX0NCj4gPg0KPiA+ICsgICMgIUJTRiBIRUxQOntQQ0kg VGVtcG9yYXJ5IFBDSSBHRlggQmFzZSB1c2VkIGJlZm9yZSBmdWxsIFBDSQ0KPiBlbnVtZXJhdGlv bi4NCj4gPiAweDgwMDAwMDAwKERlZmF1bHQpLn0NCj4gPg0KPiA+ICsgIGdRZW11RnNwUGtnVG9r ZW5TcGFjZUd1aWQuUGNpVGVtcFJlc291cmNlQmFzZSAgICAgICAgIHwgKiB8IDB4MDQgfA0KPiA+ IDB4ODAwMDAwMDANCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMgIUhEUiBFTUJFRDp7RlNQX1Nf Q09ORklHOkZzcHNDb25maWc6RU5EfQ0KPiA+DQo+ID4gKyAgZ1FlbXVGc3BQa2dUb2tlblNwYWNl R3VpZC5SZXNlcnZlZEZzcHNVcGQgICAgICAgICAgICAgfCAqIHwgMHgwMSB8IDB4MDANCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICMgTm90ZSBwbGVhc2Uga2VlcCAiVXBkVGVybWluYXRvciIgYXQg dGhlIGVuZCBvZiBlYWNoIFVQRCByZWdpb24uDQo+ID4NCj4gPiArICAjIFRoZSB0b29sIHdpbGwg dXNlIHRoaXMgZmllbGQgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZW5kIG9mIHRoZSBVUEQgZGF0 YQ0KPiA+DQo+ID4gKyAgIyBzdHJ1Y3R1cmUuDQo+ID4NCj4gPiArICBnUWVtdUZzcFBrZ1Rva2Vu U3BhY2VHdWlkLlVwZFRlcm1pbmF0b3IgICAgICAgICAgICAgICB8ICogfCAweDAyIHwNCj4gMHg1 NUFBDQo+ID4NCj4gPiArDQo+ID4NCj4gPg0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMNCj4gPiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjIENvbXBv bmVudHMgU2VjdGlvbiAtIGxpc3Qgb2YgdGhlIG1vZHVsZXMgYW5kIGNvbXBvbmVudHMgdGhhdCB3 aWxsIGJlDQo+ID4gcHJvY2Vzc2VkIGJ5IGNvbXBpbGF0aW9uDQo+ID4NCj4gPiArIyAgICAgICAg ICAgICAgICAgICAgICB0b29scyBhbmQgdGhlIEVESyBJSSB0b29scyB0byBnZW5lcmF0ZSBQRTMy L1BFMzIrL0NvZmYgaW1hZ2UNCj4gPiBmaWxlcy4NCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyBO b3RlOiBUaGUgRURLIElJIERTQyBmaWxlIGlzIG5vdCB1c2VkIHRvIHNwZWNpZnkgaG93IGNvbXBp bGVkIGJpbmFyeQ0KPiBpbWFnZXMNCj4gPiBnZXQgcGxhY2VkDQo+ID4NCj4gPiArIyAgICAgICBp bnRvIGZpcm13YXJlIHZvbHVtZSBpbWFnZXMuIFRoaXMgc2VjdGlvbiBpcyBqdXN0IGEgbGlzdCBv ZiBtb2R1bGVzIHRvDQo+ID4gY29tcGlsZSBmcm9tDQo+ID4NCj4gPiArIyAgICAgICBzb3VyY2Ug aW50byBVRUZJLWNvbXBsaWFudCBiaW5hcmllcy4NCj4gPg0KPiA+ICsjICAgICAgIEl0IGlzIHRo ZSBGREYgZmlsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGNvbWJpbmluZyBiaW5hcnkg ZmlsZXMNCj4gaW50bw0KPiA+IGZpcm13YXJlDQo+ID4NCj4gPiArIyAgICAgICB2b2x1bWUgaW1h Z2VzLCB3aG9zZSBjb25jZXB0IGlzIGJleW9uZCBVRUZJIGFuZCBpcyBkZXNjcmliZWQgaW4gUEkN Cj4gPiBzcGVjaWZpY2F0aW9uLg0KPiA+DQo+ID4gKyMgICAgICAgQmluYXJ5IG1vZHVsZXMgZG8g bm90IG5lZWQgdG8gYmUgbGlzdGVkIGluIHRoaXMgc2VjdGlvbiwgYXMgdGhleQ0KPiBzaG91bGQg YmUNCj4gPg0KPiA+ICsjICAgICAgIHNwZWNpZmllZCBpbiB0aGUgRkRGIGZpbGUuIEZvciBleGFt cGxlOiBTaGVsbCBiaW5hcnkgKFNoZWxsX0Z1bGwuZWZpKSwgRkFUDQo+ID4gYmluYXJ5IChGYXQu ZWZpKSwNCj4gPg0KPiA+ICsjICAgICAgIExvZ28gKExvZ28uYm1wKSwgYW5kIGV0Yy4NCj4gPg0K PiA+ICsjICAgICAgIFRoZXJlIG1heSBhbHNvIGJlIG1vZHVsZXMgbGlzdGVkIGluIHRoaXMgc2Vj dGlvbiB0aGF0IGFyZSBub3QgcmVxdWlyZWQNCj4gaW4NCj4gPiB0aGUgRkRGIGZpbGUsDQo+ID4N Cj4gPiArIyAgICAgICBXaGVuIGEgbW9kdWxlIGxpc3RlZCBoZXJlIGlzIGV4Y2x1ZGVkIGZyb20g RkRGIGZpbGUsIHRoZW4gVUVGSS0NCj4gY29tcGxpYW50DQo+ID4gYmluYXJ5IHdpbGwgYmUNCj4g Pg0KPiA+ICsjICAgICAgIGdlbmVyYXRlZCBmb3IgaXQsIGJ1dCB0aGUgYmluYXJ5IHdpbGwgbm90 IGJlIHB1dCBpbnRvIGFueSBmaXJtd2FyZQ0KPiB2b2x1bWUuDQo+ID4NCj4gPiArIw0KPiA+DQo+ ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMNCj4gPg0KPiA+ICtbQ29tcG9uZW50cy5JQTMyXQ0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4g KyAgIyBGU1AgQmluYXJ5IENvbXBvbmVudHMNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICQo RlNQX1BBQ0tBR0UpL0ZzcEhlYWRlci9Gc3BIZWFkZXIuaW5mDQo+ID4NCj4gPiArDQo+ID4NCj4g PiArICAjDQo+ID4NCj4gPiArICAjIFNFQw0KPiA+DQo+ID4gKyAgIw0KPiA+DQo+ID4gKyAgSW50 ZWxGc3AyUGtnL0ZzcFNlY0NvcmUvRnNwU2VjQ29yZVQuaW5mIHsNCj4gPg0KPiA+ICsgICAgPExp YnJhcnlDbGFzc2VzPg0KPiA+DQo+ID4gKw0KPiA+DQo+IEZzcFNlY1BsYXRmb3JtTGlifCQoRlNQ X1BBQ0tBR0UpL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWIvVnRmMFBsYXRmb3JtU2UNCj4gY1RMaQ0K PiA+IGIuaW5mDQo+ID4NCj4gPiArICB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArW0NvbXBvbmVu dHMuJChGU1BfQVJDSCldDQo+ID4NCj4gPiArICBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9Gc3BT ZWNDb3JlVi5pbmYgew0KPiA+DQo+ID4gKyAgICA8TGlicmFyeUNsYXNzZXM+DQo+ID4NCj4gPiAr DQo+ID4NCj4gRnNwU2VjUGxhdGZvcm1MaWJ8JChGU1BfUEFDS0FHRSkvTGlicmFyeS9QbGF0Zm9y bVNlY0xpYi9WdGYwUGxhdGZvcm1TZQ0KPiBjVkxpDQo+ID4gYi5pbmYNCj4gPg0KPiA+ICsgIH0N Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL0ZzcFNlY0Nv cmVNLmluZiB7DQo+ID4NCj4gPiArICAgIDxMaWJyYXJ5Q2xhc3Nlcz4NCj4gPg0KPiA+ICsNCj4g Pg0KPiBGc3BTZWNQbGF0Zm9ybUxpYnwkKEZTUF9QQUNLQUdFKS9MaWJyYXJ5L1BsYXRmb3JtU2Vj TGliL1Z0ZjBQbGF0Zm9ybVNlDQo+IGNNTA0KPiA+IGliLmluZg0KPiA+DQo+ID4gKyAgfQ0KPiA+ DQo+ID4gKw0KPiA+DQo+ID4gKyAgSW50ZWxGc3AyUGtnL0ZzcFNlY0NvcmUvRnNwU2VjQ29yZVMu aW5mIHsNCj4gPg0KPiA+ICsgICAgPExpYnJhcnlDbGFzc2VzPg0KPiA+DQo+ID4gKw0KPiA+DQo+ IEZzcFNlY1BsYXRmb3JtTGlifCQoRlNQX1BBQ0tBR0UpL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWIv VnRmMFBsYXRmb3JtU2UNCj4gY1NMaQ0KPiA+IGIuaW5mDQo+ID4NCj4gPiArICB9DQo+ID4NCj4g PiArDQo+ID4NCj4gPiArICAjDQo+ID4NCj4gPiArICAjIFBFSSBDb3JlDQo+ID4NCj4gPiArICAj DQo+ID4NCj4gPiArICBNZGVNb2R1bGVQa2cvQ29yZS9QZWkvUGVpTWFpbi5pbmYNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICMNCj4gPg0KPiA+ICsgICMgUENEDQo+ID4NCj4gPiArICAjDQo+ID4N Cj4gPiArICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1BDRC9QZWkvUGNkLmluZiB7DQo+ID4NCj4g PiArICAgIDxMaWJyYXJ5Q2xhc3Nlcz4NCj4gPg0KPiA+ICsgICAgICBEZWJ1Z0xpYnxNZGVQa2cv TGlicmFyeS9CYXNlRGVidWdMaWJOdWxsL0Jhc2VEZWJ1Z0xpYk51bGwuaW5mDQo+ID4NCj4gPiAr ICAgICAgUGNkTGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VQY2RMaWJOdWxsL0Jhc2VQY2RMaWJOdWxs LmluZg0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgJChGU1BfUEFDS0FH RSkvRnNwdkluaXQvRnNwdkluaXQuaW5mDQo+ID4NCj4gPiArICAkKEZTUF9QQUNLQUdFKS9Gc3Bt SW5pdC9Gc3BtSW5pdC5pbmYNCj4gPg0KPiA+ICsgICQoRlNQX1BBQ0tBR0UpL0ZzcHNJbml0L0Zz cHNJbml0LmluZg0KPiA+DQo+ID4gKyAgJChGU1BfUEFDS0FHRSkvUWVtdVZpZGVvL1FlbXVWaWRl by5pbmYNCj4gPg0KPiA+ICsgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vRHhlSXBsLmlu ZiB7DQo+ID4NCj4gPiArICAgIDxMaWJyYXJ5Q2xhc3Nlcz4NCj4gPg0KPiA+ICsNCj4gPg0KPiBE ZWJ1Z0FnZW50TGlifE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0RlYnVnQWdlbnRMaWJOdWxsL0RlYnVn QWdlbnRMaQ0KPiBiTnVsbA0KPiA+IC5pbmYNCj4gPg0KPiA+ICsNCj4gPg0KPiBSZXNldFN5c3Rl bUxpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9CYXNlUmVzZXRTeXN0ZW1MaWJOdWxsL0Jhc2VSZXMN Cj4gZXRTeXMNCj4gPiB0ZW1MaWJOdWxsLmluZg0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKyAg SW50ZWxGc3AyUGtnL0ZzcE5vdGlmeVBoYXNlL0ZzcE5vdGlmeVBoYXNlUGVpbS5pbmYNCj4gPg0K PiA+ICsNCj4gPg0KPiA+DQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIw0KPiA+ICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjDQo+ID4NCj4gPiArIw0KPiA+DQo+ID4gKyMgQnVpbGRPcHRpb25zIFNl Y3Rpb24gLSBEZWZpbmUgdGhlIG1vZHVsZSBzcGVjaWZpYyB0b29sIGNoYWluIGZsYWdzIHRoYXQN Cj4gc2hvdWxkDQo+ID4gYmUgdXNlZCBhcw0KPiA+DQo+ID4gKyMgICAgICAgICAgICAgICAgICAg ICAgICB0aGUgZGVmYXVsdCBmbGFncyBmb3IgYSBtb2R1bGUuIFRoZXNlIGZsYWdzIGFyZSBhcHBl bmRlZCB0bw0KPiBhbnkNCj4gPg0KPiA+ICsjICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRh cmQgZmxhZ3MgdGhhdCBhcmUgZGVmaW5lZCBieSB0aGUgYnVpbGQgcHJvY2Vzcy4gVGhleQ0KPiBj YW4gYmUNCj4gPg0KPiA+ICsjICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZCBmb3IgYW55 IG1vZHVsZXMgb3Igb25seSB0aG9zZSBtb2R1bGVzIHdpdGggdGhlDQo+IHNwZWNpZmljDQo+ID4N Cj4gPiArIyAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZSBzdHlsZSAoRURLIG9yIEVES0lJ KSBzcGVjaWZpZWQgaW4gW0NvbXBvbmVudHNdDQo+IHNlY3Rpb24uDQo+ID4NCj4gPiArIw0KPiA+ DQo+ID4NCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIw0KPiAjIyMjIyMjDQo+ID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMNCj4gPg0KPiA+ICtbQnVpbGRPcHRpb25zXQ0KPiA+DQo+ID4gKyMgQXBwZW5kIGJ1aWxk IG9wdGlvbnMgZm9yIEVESyBhbmQgRURLSUkgZHJpdmVycyAoPSBpcyBBcHBlbmQsID09IGlzDQo+ IFJlcGxhY2UpDQo+ID4NCj4gPiArICAjIEVuYWJsZSBsaW5rLXRpbWUgb3B0aW1pemF0aW9uIHdo ZW4gYnVpbGRpbmcgd2l0aCBHQ0M0OQ0KPiA+DQo+ID4gKyAgKl9HQ0M0OV9JQTMyX0NDX0ZMQUdT ID0gLWZsdG8NCj4gPg0KPiA+ICsgICpfR0NDNDlfSUEzMl9ETElOS19GTEFHUyA9IC1mbHRvDQo+ ID4NCj4gPiArICAqX0dDQzVfSUEzMl9DQ19GTEFHUyA9IC1mbm8tcGljDQo+ID4NCj4gPiArICAq X0dDQzVfSUEzMl9ETElOS19GTEFHUyA9IC1uby1waWUNCj4gPg0KPiA+ICsgICpfR0NDNV9JQTMy X0FTTENDX0ZMQUdTID0gLWZuby1waWMNCj4gPg0KPiA+ICsgICpfR0NDNV9JQTMyX0FTTERMSU5L X0ZMQUdTID0gLW5vLXBpZQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Ub29s cy9UZXN0cy90ZXN0X3lhbWwucHkNCj4gPiBiL0ludGVsRnNwMlBrZy9Ub29scy9UZXN0cy90ZXN0 X3lhbWwucHkNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAu LmQ4MWQ3ZjdjNGUNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvSW50ZWxGc3AyUGtnL1Rv b2xzL1Rlc3RzL3Rlc3RfeWFtbC5weQ0KPiA+IEBAIC0wLDAgKzEsOTYgQEANCj4gPiArIyBAZmls ZQ0KPiA+DQo+ID4gKyMgIFNwbGl0IGEgZmlsZSBpbnRvIHR3byBwaWVjZXMgYXQgdGhlIHJlcXVl c3Qgb2Zmc2V0Lg0KPiA+DQo+ID4gKyMNCj4gPg0KPiA+ICsjICBDb3B5cmlnaHQgKGMpIDIwMjEs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsj DQo+ID4NCj4gPiArIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjIElt cG9ydCBNb2R1bGVzDQo+ID4NCj4gPiAraW1wb3J0IHVuaXR0ZXN0DQo+ID4NCj4gPiAraW1wb3J0 IHRlbXBmaWxlDQo+ID4NCj4gPiAraW1wb3J0IG9zDQo+ID4NCj4gPiAraW1wb3J0IHNodXRpbA0K PiA+DQo+ID4gK2ltcG9ydCBzdHJ1Y3QgYXMgc3QNCj4gPg0KPiA+ICtpbXBvcnQgZmlsZWNtcA0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gK2ltcG9ydCBvcywgc3lzDQo+ID4NCj4gPiArY3VycmVudGRp ciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkNCj4gPg0KPiA+ ICtwYXJlbnRkaXIgPSBvcy5wYXRoLmRpcm5hbWUoY3VycmVudGRpcikNCj4gPg0KPiA+ICtzeXMu cGF0aC5hcHBlbmQocGFyZW50ZGlyKQ0KPiA+DQo+ID4gK2ltcG9ydCBGc3BEc2NCc2YyWWFtbA0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gK1lhbWxIZWFkZXJMaW5lTGVuZ3RoID0gMTANCj4gPg0KPiA+ ICtIZHJGaWxlSGVhZGVyTGluZUxlbmd0aCA9IDMyDQo+ID4NCj4gPiArQnNmRmlsZUhlYWRlckxp bmVMZW5ndGggPSAxOQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK2RlZiBHZW5GaWxlV2l0aG91dEhk cihpbnB1dGZpbGUsIG51bUxpbmVUb1N0cmlwKToNCj4gPg0KPiA+ICsgICAgeWFtbF9maWxlID0g b3BlbihpbnB1dGZpbGUsICJyIikNCj4gPg0KPiA+ICsgICAgbGluZXMgPSB5YW1sX2ZpbGUucmVh ZGxpbmVzKCkNCj4gPg0KPiA+ICsgICAgeWFtbF9maWxlLmNsb3NlKCkNCj4gPg0KPiA+ICsgICAg ZGVsIGxpbmVzWzpudW1MaW5lVG9TdHJpcF0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgbm9I ZHJPdXRwdXRGaWxlTmFtZSA9ICJuby1oZWFkZXItIiArIGlucHV0ZmlsZQ0KPiA+DQo+ID4gKyAg ICBzdHJpcHBlZF9maWxlID0gb3Blbihub0hkck91dHB1dEZpbGVOYW1lLCAidyIpDQo+ID4NCj4g PiArICAgIGZvciBsaW5lIGluIGxpbmVzOg0KPiA+DQo+ID4gKyAgICAgICAgc3RyaXBwZWRfZmls ZS53cml0ZShsaW5lKQ0KPiA+DQo+ID4gKyAgICBzdHJpcHBlZF9maWxlLmNsb3NlKCkNCj4gPg0K PiA+ICsgICAgcmV0dXJuIG5vSGRyT3V0cHV0RmlsZU5hbWUNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICtjbGFzcyBUZXN0RnNwU2NyaXB0cyh1bml0dGVzdC5UZXN0Q2FzZSk6DQo+ID4NCj4gPiArICAg IGRlZiB0ZXN0X2dlbmVyYXRlRnNwSGVhZGVyX2Zyb21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAg ICAgICAjIEdlbmVyYXRlIEhFQURFUg0KPiA+DQo+ID4gKyAgICAgICAgY21kID0gJ3t9IHt9IEhF QURFUiB7fSB7fSB7fScuZm9ybWF0KA0KPiA+DQo+ID4gKyAgICAgICAgICAgICdweXRob24nLA0K PiA+DQo+ID4gKyAgICAgICAgICAgICcuLlxHZW5DZmdPcHQucHknLA0KPiA+DQo+ID4gKyAgICAg ICAgICAgICdRZW11RnNwUGtnLmRzYycsDQo+ID4NCj4gPiArICAgICAgICAgICAgJy4nLA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICIiKQ0KPiA+DQo+ID4gKyAgICAgICAgb3Muc3lzdGVtKGNtZCkN Cj4gPg0KPiA+ICsgICAgICAgIG5vSGRyT3V0cHV0RmlsZU5hbWUgPSBHZW5GaWxlV2l0aG91dEhk cigiRnNwVXBkLmgiLA0KPiA+IEhkckZpbGVIZWFkZXJMaW5lTGVuZ3RoKQ0KPiA+DQo+ID4gKyAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbGVjbXAuY21wKG5vSGRyT3V0cHV0RmlsZU5hbWUsDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgJ0V4cGVjdGVkRnNwVXBkLmgnKSkNCj4gPg0KPiA+ ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRlc3RfZ2VuZXJhdGVGc3BzSGVhZGVyX2Zyb21Ec2Moc2Vs Zik6DQo+ID4NCj4gPiArICAgICAgICBub0hkck91dHB1dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhv dXRIZHIoIkZzcHNVcGQuaCIsDQo+ID4gSGRyRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4NCj4g PiArICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxlTmFt ZSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWRGc3BzVXBkLmgnKSkNCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRlc3RfZ2VuZXJhdGVGc3B0SGVhZGVyX2Zyb21E c2Moc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBub0hkck91dHB1dEZpbGVOYW1lID0gR2VuRmls ZVdpdGhvdXRIZHIoIkZzcHRVcGQuaCIsDQo+ID4gSGRyRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ ID4NCj4gPiArICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRG aWxlTmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWRGc3B0VXBkLmgn KSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRlc3RfZ2VuZXJhdGVGc3BtSGVhZGVy X2Zyb21Ec2Moc2VsZik6DQo+ID4NCj4gPiArICAgICAgICBub0hkck91dHB1dEZpbGVOYW1lID0g R2VuRmlsZVdpdGhvdXRIZHIoIkZzcG1VcGQuaCIsDQo+ID4gSGRyRmlsZUhlYWRlckxpbmVMZW5n dGgpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmFzc2VydFRydWUoZmlsZWNtcC5jbXAobm9IZHJP dXRwdXRGaWxlTmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWRGc3Bt VXBkLmgnKSkNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgZGVmIHRlc3RfZ2VuZXJhdGVCc2Zf ZnJvbURzYyhzZWxmKToNCj4gPg0KPiA+ICsgICAgICAgICMgR2VuZXJhdGUgQlNGDQo+ID4NCj4g PiArICAgICAgICBjbWQgPSAne30ge30gR0VOQlNGIHt9IHt9IHt9Jy5mb3JtYXQoDQo+ID4NCj4g PiArICAgICAgICAgICAgJ3B5dGhvbicsDQo+ID4NCj4gPiArICAgICAgICAgICAgJy4uXEdlbkNm Z09wdC5weScsDQo+ID4NCj4gPiArICAgICAgICAgICAgJ1FlbXVGc3BQa2cuZHNjJywNCj4gPg0K PiA+ICsgICAgICAgICAgICAnLicsDQo+ID4NCj4gPiArICAgICAgICAgICAgIk91dHB1dC5ic2Yi KQ0KPiA+DQo+ID4gKyAgICAgICAgb3Muc3lzdGVtKGNtZCkNCj4gPg0KPiA+ICsgICAgICAgIG5v SGRyT3V0cHV0RmlsZU5hbWUgPSBHZW5GaWxlV2l0aG91dEhkcigiT3V0cHV0LmJzZiIsDQo+ID4g QnNmRmlsZUhlYWRlckxpbmVMZW5ndGgpDQo+ID4NCj4gPiArICAgICAgICBzZWxmLmFzc2VydFRy dWUoZmlsZWNtcC5jbXAobm9IZHJPdXRwdXRGaWxlTmFtZSwNCj4gPg0KPiA+ICsgICAgICAgICAg ICAgICAgICAnRXhwZWN0ZWRPdXRwdXQuYnNmJykpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICAg IGRlZiB0ZXN0X2dlbmVyYXRlWWFtbF9mcm9tRHNjKHNlbGYpOg0KPiA+DQo+ID4gKyAgICAgICAg IyBHZW5lcmF0ZSBZQU1MDQo+ID4NCj4gPiArICAgICAgICBjbWQgPSAne30ge30ge30ge30nLmZv cm1hdCgNCj4gPg0KPiA+ICsgICAgICAgICAgICAncHl0aG9uJywNCj4gPg0KPiA+ICsgICAgICAg ICAgICAnLi5cRnNwRHNjQnNmMllhbWwucHknLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICdRZW11 RnNwUGtnLmRzYycsDQo+ID4NCj4gPiArICAgICAgICAgICAgIk91dHB1dC55YW1sIikNCj4gPg0K PiA+ICsgICAgICAgIG9zLnN5c3RlbShjbWQpDQo+ID4NCj4gPiArICAgICAgICBub0hkck91dHB1 dEZpbGVOYW1lID0gR2VuRmlsZVdpdGhvdXRIZHIoIk91dHB1dC55YW1sIiwNCj4gPiBZYW1sSGVh ZGVyTGluZUxlbmd0aCkNCj4gPg0KPiA+ICsgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWxlY21w LmNtcChub0hkck91dHB1dEZpbGVOYW1lLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICdF eHBlY3RlZE91dHB1dC55YW1sJykpDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAraWYgX19uYW1lX18g PT0gJ19fbWFpbl9fJzoNCj4gPg0KPiA+ICsgICAgdW5pdHRlc3QubWFpbigpDQo+ID4NCj4gPiBk aWZmIC0tZ2l0DQo+IGEvSW50ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL0ZzcERzY0JzZjJZ YW1sVXNlck1hbnVhbC5tZA0KPiA+IGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1VzZXJNYW51YWxzL0Zz cERzY0JzZjJZYW1sVXNlck1hbnVhbC5tZA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMC4uYmEyMzExNDQ1Yw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysg Yi9JbnRlbEZzcDJQa2cvVG9vbHMvVXNlck1hbnVhbHMvRnNwRHNjQnNmMllhbWxVc2VyTWFudWFs Lm1kDQo+ID4gQEAgLTAsMCArMSwzOSBAQA0KPiA+ICsjTmFtZQ0KPiA+DQo+ID4gKyoqRnNwRHNj QnNmMllhbWwucHkqKiBUaGUgcHl0aG9uIHNjcmlwdCB0aGF0IGdlbmVyYXRlcyBZQU1MIGZpbGUg Zm9yDQo+ID4NCj4gPiArdGhlIEJvb3QgU2V0dGluZ3MgZnJvbSBhbiBFREsgSUkgUGxhdGZvcm0g RGVzY3JpcHRpb24gKCoqRFNDKiopIGZpbGUNCj4gPg0KPiA+ICtvciBmcm9tIGEgQm9vdCBTZXR0 aW5ncyBGaWxlICgqKkJTRioqKS4gSXQgaXMgY3JlYXRlZCB0byBoZWxwDQo+ID4NCj4gPiArdHJh bnNpdGlvbmluZyBGU1AgVXBkYXRlYWJsZSBQcm9kdWN0IERhdGEgKCoqVVBEKiopIGZpbGUgZm9y bWF0IHRvDQo+ID4NCj4gPiArbmV3IHN0YW5kYXJkaXplZCBZQU1MIGZvcm1hdCBzbyB0aGF0IGl0 IGNhbiBiZSBjb25maWd1cmVkIHRocm91Z2gNCj4gPg0KPiA+ICtvcGVuIHNvdXJjZSB0b29scy4N Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjU3lub3BzaXMNCj4gPg0KPiA+ICtgYGANCj4gPg0KPiA+ ICtGc3BEc2NCc2YyWWFtbCBEc2NGaWxlfEJzZkZpbGUgIFlhbWxGaWxlDQo+ID4NCj4gPiArYGBg DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArI0Rlc2NyaXB0aW9uDQo+ID4NCj4gPiArKipGc3BEc2NC c2YyWWFtbC5weSoqIGlzIGEgc2NyaXB0IHRoYXQgZ2VuZXJhdGVzIGNvbmZpZ3VyYXRpb24gb3B0 aW9ucw0KPiBmcm9tDQo+ID4gYW4NCj4gPg0KPiA+ICsqKkVESyBJSSBQbGF0Zm9ybSBEZXNjcmlw dGlvbiAoRFNDKSoqIGZpbGUgb3IgKiphIEJvb3QgU2V0dGluZ3MgRmlsZQ0KPiAoQlNGKSoqIGZp bGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArSXQgZ2VuZXJhdGVzIGEgKipZQU1MIGZpbGUqKiB0 aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSAqKkNvbmZpZyBFZGl0b3IqKiB0bw0KPiA+IHByb3ZpZGUN Cj4gPg0KPiA+ICthIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBmb3IgbWFuaXB1bGF0aW5nIHNl dHRpbmdzIGluIHRoZSBVUEQgcmVnaW9ucy4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtUaGUgZm9s bG93aW5nIHNlY3Rpb25zIGV4cGxhaW4gdGhlIHVzYWdlIG9mIHRoaXMgc2NyaXB0Lg0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyMjIDEuIEZzcERzY0JzZjJZYW1sLnB5IERzY0ZpbGUgWWFtbEZpbGUN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtUaGUgKipEc2NGaWxlKiogb3B0aW9uIGlzIGFuIGlucHV0 IERTQyBmaWxlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1RoZSAqKllhbWxGaWxlKiogb3B0aW9u IGlzIGFuIG91dHB1dCBZQU1MIGZpbGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArVGhlIHNjcmlw dCB0YWtlcyB0aGUgRlNQIERTQyBmaWxlIGNvbnNpc3RpbmcgQlNGIHN5bnRheCBhbmQgZ2VuZXJh dGVzIGENCj4gWUFNTA0KPiA+DQo+ID4gK291dHB1dCBmaWxlIGRlc2NyaWJpbmcgdGhlIGJvb3Qg c2V0dGluZ3MuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArIyMgMi4gRnNwRHNjQnNmMllhbWwucHkg QnNmRmlsZSBZYW1sRmlsZQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1RoZSAqKkJzZkZpbGUqKiBv cHRpb24gaXMgYW4gaW5wdXQgQlNGIGZpbGUuDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArVGhlICoq WWFtbEZpbGUqKiBvcHRpb24gaXMgYW4gb3V0cHV0IFlBTUwgZmlsZS4NCj4gPg0KPiA+ICsNCj4g Pg0KPiA+ICtUaGUgc2NyaXB0IGdlbmVyYXRlcyBhIFlBTUwgb3V0cHV0IGZpbGUgZnJvbSBhIEJT RiBmaWxlLiBUaGUgQlNGIGZpbGUNCj4gPg0KPiA+ICtjYW4gYmUgZ2VuZXJhdGVkIHVzaW5nIEdl bkNmZ09wdCB0b29sLg0KPiA+DQo+ID4gLS0NCj4gPiAyLjI4LjAud2luZG93cy4xDQoNCg==