From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.12880.1618934164373898617 for ; Tue, 20 Apr 2021 08:56:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=nvLo1xwI; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: dEwCoYzqEVLvNfXVdX1w3NeXbFRovm6xdka0/JrIuJj4RhPp1paV431F7FenS02e032GAq+0Rd y+L9yp2ugr4g== X-IronPort-AV: E=McAfee;i="6200,9189,9960"; a="175637229" X-IronPort-AV: E=Sophos;i="5.82,237,1613462400"; d="scan'208";a="175637229" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2021 08:56:03 -0700 IronPort-SDR: giDkhtnyAhKBB5QGFXi27V9MrSyYmZ3eqP4LZMPXsA1hEZTdaK4c7IYxy/9hGJFxpme4m1JI0M F77tsasCJuNw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,237,1613462400"; d="scan'208";a="401053747" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 20 Apr 2021 08:56:03 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 20 Apr 2021 08:56:03 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 20 Apr 2021 08:56:03 -0700 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.55) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 20 Apr 2021 08:56:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxJy/v+GAnamnmyACIa1TlNn1zEdK8clRRWUmc2AuFnaySArwa5uMCBkWJ89Wb1ke5lu/sDJarnQZ40LwbOr4MnjSzkgZM6qwqdETeIaQWXjqivhLgA56wYzdzI8YgXuppYOpBgv7GZec2FZMSMMa78nHCf85nnov824vMCsrjPdTLefjjSMipsljEv/g4KyIukv61G2iBW/ePe0R1AdK5zFD2Dicl7K1MnZ5uhsvZ9kIiiXhcqOcbFXLc5zX3huCtdVk8aMqvLuFY8FRTfnhEKFMZmrDwWv1zD+I4V3sQV53Qdq9UMDze2Ro0iEoLFY1tsLCtjt8RlTKnDsndvgmw== 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=TmttflFlcSi8xAfCgIbbVQ2OcSkp0Qd9n0N5cak9bYU=; b=Fnho9k/Efrq1Fo9/8bDDS/TGIDoNsCq4Grblro3dUkIEt52cLCyL3o6ga7G+lS/xw2+5UoN/t9x8cQP5g+LToRi/BJPdHEvmevH4MRD6Jz4mZR9B3OemY2OmKwfuBJ8Xg6vepq/mrqfhuWzZvGg1VHM+sPhmFSrQ7mZ54lc6T56Tg2FLjBvJv+T4PJtkKaIpuQwkDAkXPAHlaKlFNaXiQKDMAg0wU1OIQRDrBd+kulaWz5a6pDlZkEuDpdtYmwmVALYgAj7WaFhY75JtdRL4c+OFm/n/R4XZyaxHQgXHZ5knZZF2iJEJYzBsLLgxPIN5/UthOnmoGWfT1WB75mERLA== 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=TmttflFlcSi8xAfCgIbbVQ2OcSkp0Qd9n0N5cak9bYU=; b=nvLo1xwItAPiRP5yjW1XM4VXiCs7d5pDhC6ITzLbObABChVqhEm0yQSgPNR+vF8fhQunEKAGhUDsr0wXkI/JSBXnyGkGoLN8s437bugstiG6P16fhdO11XlP6hcGtCUkQEsbbMSsR5/8JwoTML0zLTCk7M5yGCWpeyIkJkNqFrM= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR1101MB2254.namprd11.prod.outlook.com (2603:10b6:301:58::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.24; Tue, 20 Apr 2021 15:56:01 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::1c76:a17a:ecb0:9a8]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::1c76:a17a:ecb0:9a8%6]) with mapi id 15.20.4065.020; Tue, 20 Apr 2021 15:56:00 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "sughosh.ganu@linaro.org" , "Kinney, Michael D" CC: "Feng, Bob C" , Liming Gao , "Chen, Christine" Subject: Re: [edk2-devel] [PATCH] BaseTools: GenerateCapsule.py: Add support for version 3 of FMP Image Header structure Thread-Topic: [edk2-devel] [PATCH] BaseTools: GenerateCapsule.py: Add support for version 3 of FMP Image Header structure Thread-Index: AQHXNRDPYYuF9g1S006oy825fN/zdaq9iQ8w Date: Tue, 20 Apr 2021 15:56:00 +0000 Message-ID: References: <20210419114004.16505-1-sughosh.ganu@linaro.org> In-Reply-To: <20210419114004.16505-1-sughosh.ganu@linaro.org> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 99c5befc-24d3-4091-b641-08d90414cb81 x-ms-traffictypediagnostic: MWHPR1101MB2254: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RhhnMSQjYf0RBQIiLl5oWcMLw7vEdnfzcIlHfdBWeW1rP9DHww4xr58zfqeiSugM9BMBvvJbiHrJLoCKCbUFUjq5tW/PsCEMUQUABwIfoFLuT/Wh+B3VeXrTVBQCSgIns/9k3Iqeu0jF7zANQSBVlZ0/0YHbGn//NFALKCJ2P+uH3M9WH38xVW55Y4aDnnZc/gpHsaesLeMlJ5oF1WObG78NVUJzBQF60Tu8VeyowosrYNQ5r7QVDvFcsXTZ8MMO0Bbsko5IAA31XEIAI9pEEOc1S5K2QVmSO6+wKrhcWUuQv0ad6U46SALGAdO+aaXG4MMj9cr0cL1RT0qtrA/wHQMshXshO5Ewnv7SEwLaGGwFadwC0YgBlSAVfCy2mEKnKFgaPO/JGmcvGJAF4VEtqNEvF9FxspD5awECFC4DV/Wup/CH1yBBknkQtChXZmPzIKOINLnDImsjPxMecsRNMpex6sJL6g5/FNFBqEv9VnqmM+tGxUYk4fmffIGz/1eJIj6XFisVuWqi4pedSPfLHB7lDWp8AOH5uhm759SASQEYvRewLzQbCr22b0dHAisoZ250NjbkuMSiQOTpYYkviOj6FPHi/QIy3nXB2Ac3xK7NPd3C6CYkhtR/o7apVCrvu8smjKQBhn9geEO/UhfzAJ+btjAYwncC47plEXhf6er79g9Kd8+qa1TtJjfsicJO x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39850400004)(366004)(396003)(346002)(376002)(136003)(83380400001)(186003)(6506007)(53546011)(71200400001)(66446008)(316002)(7696005)(66476007)(2906002)(26005)(122000001)(38100700002)(107886003)(66556008)(86362001)(5660300002)(33656002)(55016002)(8936002)(8676002)(54906003)(110136005)(4326008)(66946007)(9686003)(966005)(478600001)(52536014)(64756008)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?ZFhldXljdE0yY2tuNExiOWg5b3FocHkrMkZVdytINitPRUdmS0lOSDllMmJB?= =?utf-8?B?eTZpUzRHMHhMdWRjU1pqdjJUbFVsaXozWEF0ZEplR2RvTmk4ZndSSGNFUjJP?= =?utf-8?B?Unl0YURnRUh2WmdVeEJzRkZmaWZNUVdHV0p3U3ZBUXU4MzF6Q2w2eFEwRGpT?= =?utf-8?B?RTBEYm0vQkRvZWFSWFRKTkhEUnY3UU5UTjBicWJiNFpVT1hqbzJaVTNTSFpR?= =?utf-8?B?czlta3JnNXd0SllYb2hzdmFHRGNOcE5aajNhem9IaDRPMU9yWGdVMk9PeCsv?= =?utf-8?B?VStvL0xjTnpWUEZhcDZnd3llRVVmRE5QcnR1S2ZWKzY4OS84VzRjdmRGR3kx?= =?utf-8?B?QjRrenNHRFM0b1B1NFBmOE1zRW1PVmxnMy9NZVlDbi9qWEdCMmViWVJIL01P?= =?utf-8?B?VkRRWTNIMnpKR3czNmNaeHZEV3RLUWo0V1JRaU9wVHVHZkU4cmpmOHFGNHVq?= =?utf-8?B?ZGtzTlRiZE1YVDNKVzUzOGNaZ05DZ3J2c2VOM2h4YktTNXU2VHpDM002UXVH?= =?utf-8?B?bmFtakJXMUFMelRRekcwV200YzNhekp5YW9ZdWNqZzI2N1oyUUFkZTArWlRR?= =?utf-8?B?dUt1ZzdkWm56RllhT2NJR1VvczA4eGhNMVNGR1ZmcG5wRFhWSEFWUm5VR0da?= =?utf-8?B?amJjNDNTWVdjZ2xhWVQ0blBrYlFuY3ZYeitJMjh6YlYwTmpRM2c1UlR6RTVx?= =?utf-8?B?NUZDZEFqSi9aWXFDb0ZFc2ZiWGZJV0VQQjM5VlpBQ2Z6THp6ZjlRM25uZkgz?= =?utf-8?B?d0ZnaGdsQ1dsdHlTbTVZeEF0ZFpITDg2NTF6Vk44cEdEWDRIb1BVWmZFZmVz?= =?utf-8?B?aWsrcUZicUZmNDhaMVFBSzQ0dVpuSjBiTG5aYXhlTVhqRFJtTGU0UVQzSkJ1?= =?utf-8?B?UmtjZmFxcmNkTXg0VW9zaC9MQm53TmsyN2lSMzkzTHY3clVKTVpmNDFmRU42?= =?utf-8?B?d3JVR1ZDV0ZQQWhjQWFYUnJiMGNjajVxR25ZMXVpQmtKeTNFbUVhaTdQYURB?= =?utf-8?B?Y1NqWG5taVB0UERMcEZHY1NCOEVwMWxBSkV6MWhZaUtNSXVPcC9MMFRndXNr?= =?utf-8?B?VHhZYUYyYlE2Z3JLZzBVcUNuMEpWdzVscjdhS0IrSGwxUWFSR2xWaWdIalpK?= =?utf-8?B?VEhJSkNlQjhXS0ZEMWtjVG9waW0vYzhyVXV3L2NGbkVwczRQeWFhNkJiYWp0?= =?utf-8?B?Wi9hTTVhTjhZaUxLQnNSdmxUd09zQXZNVnV2NlNDQlluZVZWQWV2WkNYbld2?= =?utf-8?B?S2tUM2FlVUVydWZ3ajhZNTNLMGdURUJoQVRPOXk0bGQwbnpWeXNmcW94WDcy?= =?utf-8?B?ODhPaTFCaHM3d2pkUjJzcUFrTWdndjZnS01QYlFWcVZuOHByZStFaVlFYUJX?= =?utf-8?B?M2NmTHJPU3RMaXN5V0NuZmJTckxMYyt6Y0lBM1U1SXZoSGdwNHZCZTlzQ21R?= =?utf-8?B?SzkzUUQvS3hrOXNldmVkZTVHUEVNUmwvUGRiWWtwZ01vZjJNOXNDZDNJWTFR?= =?utf-8?B?Z3Bpa3JZd0ZtR0dxaVhQbitVczRxUDJSQ0FEbElwcTJTVHdwWnorVyt1Y21W?= =?utf-8?B?VG1oeW56K3ByK0JDcmRjVTlkK1pZOXVpd2lBbG5vSldyakJBMHIvU0tIajZU?= =?utf-8?B?ZnE3YklDRjJCTW5WZ1BxcUFyN3pKeWZhVkE4N0tnUXBHQ3RRL2xLZitudisx?= =?utf-8?B?VDVmWktubWF2bERYMWVXbFowelljQTAwdTRqcGpscHVPWUxocUtISmJ0SFVE?= =?utf-8?Q?O5Yr6W3ixwgEfTEfym1HqAI0cVX0MaxyuzJP19S?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99c5befc-24d3-4091-b641-08d90414cb81 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2021 15:56:00.8723 (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: Q8sU3qZQMmd5qp9bXLRber3amHU7L4DoCnlpDO3DiKNeBS4ryUalAzz9FO4PbCifjndshS7ee0sYfBUUc4ZbBLqnT2pmBsUQApxbeZWD7Mk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2254 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCkkgdGhpbmsgdGhpcyBwYXRjaCBpcyBmdW5jdGlvbmFsLCBidXQgdGhlcmUgYXJlIGEg ZmV3IHRoaW5ncyB0aGF0IGNhbiBiZSBpbXByb3ZlZC4NCg0KMSkgV2Ugc2hvdWxkIG5vdCB1c2Ug b2YgdGhlIGhhcmQgY29kZWQgY29uc3RhbnRzIGZvciB0aGUgSW1hZ2VDYXBzdWxlU3VwcG9ydCB2 YWx1ZXMuDQogICBUaGUgVUVGSSBzcGVjIGhhcyAjZGVmaW5lcyBmb3IgdGhlc2UgdmFsdWVzLCBh bmQgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byBhZGQNCiAgIHRob3NlIGRlZmluZSB2YWx1 ZXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBGTVAgQ2Fwc3VsZSBJbWFnZSBIZWFkZXIuICBQZXJoYXBz IGFkZCB0aGUNCiAgIHZhbHVlcyB0byBGbXBDYXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyBpbiBGbXBD YXBzdWxlSGVhZGVyLnB5Og0KDQpjbGFzcyBGbXBDYXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyAob2Jq ZWN0KToNCg0KICAgIENBUFNVTEVfU1VQUE9SVF9BVVRIRU5USUNBVElPTiA9IDB4MDAwMDAwMDAw MDAwMDAwMQ0KICAgIENBUFNVTEVfU1VQUE9SVF9ERVBFTkRFTkNZICAgICA9IDB4MDAwMDAwMDAw MDAwMDAwMg0KDQogICBGcm9tIEdlbmVyYXRlQ2Fwc3VsZS5weSwgeW91IGNhbiB1c2UgdGhlc2Ug dmFsdWVzIHRvIHNldCBJbWFnZUNhcHN1bGVTdXBwb3J0Lg0KDQogICBWYWx1ZSAwIGlzIG5vdCBk ZWZpbmVkIGJ5IHRoZSBVRUZJIFNwZWMuICBUaG91Z2ggdGhhdCBhcHBlYXJzIHRvIGJlIHRoZSB2 YWx1ZSB1c2VkDQogICBmb3IgYSByYXcgcGF5bG9hZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIG9y IGRlcGVuZGVuY3kgaW5mb3JtYXRpb24uDQoNCiAgIFNpbmNlIEdlbmVyYXRlQ2Fwc3VsZSBkb2Vz IG5vdCBpbXBvcnQgRm1wQ2Fwc3VsZUltYWdlSGVhZGVyQ2xhc3MsIHRoZXNlIGRlZmluZXMgDQog ICBtYXkgaGF2ZSB0byBiZSBhZGRlZCB0byB0aGUgRm1wQ2Fwc3VsZUhlYWRlckNsYXNzIGluc3Rl YWQuDQoNCjIpIFRoZSBJbWFnZUNhcHN1bGVTdXBwb3J0IHBhcmFtZXRlciBpcyBhZGRlZCBpbiB0 aGUgbWlkZGxlIG9mIHRoZSBweXRob24gZnVuY3Rpb24gYXJndW1lbnRzLg0KICAgU2luY2UgdGhp cyBpcyBhIG5ldyBmaWVsZCBhZGRlZCBhdCB0aGUgZW5kIG9mIHRoZSBWMyBzdHJ1Y3R1cmUsIEkg cmVjb21tZW5kIHdlIGFkZCBhcmd1bWVudHMNCiAgIGF0IHRoZSBlbmQgb2YgdGhlIGFyZ3VtZW50 IGxpc3QuICBUaGlzIHdpbGwgYmUgYW4gb3B0aW9uYWwgYXJndW1lbnQsIHNvIGFueSBleGlzdGlu ZyB1c2UNCiAgIG9mIHRoZXNlIG1ldGhvZHMgZm9yIFYyIHVzZSBjYXNlcyB3aWxsIG5vdCBiZSBp bXBhY3RlZC4gIFRoZXNlIHB5dGhvbiBtZXRob2RzIGNhbiBiZSANCiAgIHBvdGVudGlhbGx5IHVz ZWQgYnkgb3RoZXIgY29uc3VtZXJzLCBzbyB3ZSBzaG91bGQgYWx3YXlzIGNvbnNpZGVyIGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5DQogICB3aGVuIHVwZGF0aW5nIEJhc2VUb29scy9Tb3VyY2UvUHl0 aG9uL0NvbW1vbiBhcmVhcy4NCg0KVGhhbmtzLA0KDQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YgU3VnaG9zaCBHYW51DQo+IFNlbnQ6IE1vbmRheSwgQXByaWwg MTksIDIwMjEgNDo0MCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEZlbmcs IEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47IENoZW4sIENocmlzdGluZSA8eXV3ZWkuY2hlbkBpbnRlbC5jb20+Ow0KPiBT dWdob3NoIEdhbnUgPHN1Z2hvc2guZ2FudUBsaW5hcm8ub3JnPg0KPiBTdWJqZWN0OiBbZWRrMi1k ZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEdlbmVyYXRlQ2Fwc3VsZS5weTogQWRkIHN1cHBvcnQg Zm9yIHZlcnNpb24gMyBvZiBGTVAgSW1hZ2UgSGVhZGVyIHN0cnVjdHVyZQ0KPiANCj4gQWRkIHN1 cHBvcnQgZm9yIHRoZSBJbWFnZUNhcHN1bGVTdXBwb3J0IGZpZWxkLCBpbnRyb2R1Y2VkIGluIHZl cnNpb24gMw0KPiBvZiB0aGUgRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfQ0FQU1VMRV9JTUFHRV9I RUFERVIgc3RydWN0dXJlLiBUaGlzDQo+IHN0cnVjdHVyZSBtZW1iZXIgaXMgdXNlZCB0byBpbmRp Y2F0ZSBpZiB0aGUgY29ycmVzcG9uZGluZyBwYXlsb2FkIGhhcw0KPiBzdXBwb3J0IGZvciBhdXRo ZW50aWNhdGlvbiBhbmQgZGVwZW5kZW5jeS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFN1Z2hvc2gg R2FudSA8c3VnaG9zaC5nYW51QGxpbmFyby5vcmc+DQo+IC0tLQ0KPiAgLi4uL1NvdXJjZS9QeXRo b24vQ2Fwc3VsZS9HZW5lcmF0ZUNhcHN1bGUucHkgIHwgIDUgKysrLQ0KPiAgLi4uL0NvbW1vbi9V ZWZpL0NhcHN1bGUvRm1wQ2Fwc3VsZUhlYWRlci5weSAgIHwgMjYgKysrKysrKysrKysrKy0tLS0t LQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0K PiANCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0NhcHN1bGUvR2VuZXJh dGVDYXBzdWxlLnB5IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ2Fwc3VsZS9HZW5lcmF0ZUNh cHN1bGUucHkNCj4gaW5kZXggYThkZTk4ODI1My4uNjQxOWEyYWM2ZiAxMDA2NDQNCj4gLS0tIGEv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ2Fwc3VsZS9HZW5lcmF0ZUNhcHN1bGUucHkNCj4gKysr IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ2Fwc3VsZS9HZW5lcmF0ZUNhcHN1bGUucHkNCj4g QEAgLTU2MSw2ICs1NjEsNyBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOg0KPiAgICAgICAg ICAgICAgICAgIHByaW50ICgnR2VuZXJhdGVDYXBzdWxlOiBlcnJvcjonICsgc3RyKE1zZykpDQo+ ICAgICAgICAgICAgICAgICAgc3lzLmV4aXQgKDEpDQo+ICAgICAgICAgIGZvciBTaW5nbGVQYXls b2FkRGVzY3JpcHRvciBpbiBQYXlsb2FkRGVzY3JpcHRvckxpc3Q6DQo+ICsgICAgICAgICAgICBJ bWFnZUNhcHN1bGVTdXBwb3J0ID0gMHgwMDAwMDAwMDAwMDAwMDAwDQo+ICAgICAgICAgICAgICBS ZXN1bHQgPSBTaW5nbGVQYXlsb2FkRGVzY3JpcHRvci5QYXlsb2FkDQo+ICAgICAgICAgICAgICB0 cnk6DQo+ICAgICAgICAgICAgICAgICAgRm1wUGF5bG9hZEhlYWRlci5Gd1ZlcnNpb24gICAgICAg ICAgICAgID0gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuRndWZXJzaW9uDQo+IEBAIC01NzUsNiAr NTc2LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gICAgICAgICAgICAgIGlmIFNp bmdsZVBheWxvYWREZXNjcmlwdG9yLlVzZURlcGVuZGVuY3k6DQo+ICAgICAgICAgICAgICAgICAg Q2Fwc3VsZURlcGVuZGVuY3kuUGF5bG9hZCA9IFJlc3VsdA0KPiAgICAgICAgICAgICAgICAgIENh cHN1bGVEZXBlbmRlbmN5LkRlcGV4RXhwID0gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuRGVwZXhF eHANCj4gKyAgICAgICAgICAgICAgICBJbWFnZUNhcHN1bGVTdXBwb3J0ICAgICAgICB8PSAweDAw MDAwMDAwMDAwMDAwMDINCj4gICAgICAgICAgICAgICAgICBSZXN1bHQgPSBDYXBzdWxlRGVwZW5k ZW5jeS5FbmNvZGUgKCkNCj4gICAgICAgICAgICAgICAgICBpZiBhcmdzLlZlcmJvc2U6DQo+ICAg ICAgICAgICAgICAgICAgICAgIENhcHN1bGVEZXBlbmRlbmN5LkR1bXBJbmZvICgpDQo+IEBAIC02 MDcsMTMgKzYwOSwxNCBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOg0KPiAgICAgICAgICAg ICAgICAgICAgICBGbXBBdXRoSGVhZGVyLk1vbm90b25pY0NvdW50ID0gU2luZ2xlUGF5bG9hZERl c2NyaXB0b3IuTW9ub3RvbmljQ291bnQNCj4gICAgICAgICAgICAgICAgICAgICAgRm1wQXV0aEhl YWRlci5DZXJ0RGF0YSAgICAgICA9IENlcnREYXRhDQo+ICAgICAgICAgICAgICAgICAgICAgIEZt cEF1dGhIZWFkZXIuUGF5bG9hZCAgICAgICAgPSBSZXN1bHQNCj4gKyAgICAgICAgICAgICAgICAg ICAgSW1hZ2VDYXBzdWxlU3VwcG9ydCAgICAgICAgICB8PSAweDAwMDAwMDAwMDAwMDAwMDENCj4g ICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gRm1wQXV0aEhlYWRlci5FbmNvZGUgKCkNCj4g ICAgICAgICAgICAgICAgICAgICAgaWYgYXJncy5WZXJib3NlOg0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgRm1wQXV0aEhlYWRlci5EdW1wSW5mbyAoKQ0KPiAgICAgICAgICAgICAgICAgIGV4 Y2VwdDoNCj4gICAgICAgICAgICAgICAgICAgICAgcHJpbnQgKCdHZW5lcmF0ZUNhcHN1bGU6IGVy cm9yOiBjYW4gbm90IGVuY29kZSBGTVAgQXV0aCBIZWFkZXInKQ0KPiAgICAgICAgICAgICAgICAg ICAgICBzeXMuZXhpdCAoMSkNCj4gLSAgICAgICAgICAgIEZtcENhcHN1bGVIZWFkZXIuQWRkUGF5 bG9hZCAoU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuR3VpZCwgUmVzdWx0LCBIYXJkd2FyZUluc3Rh bmNlID0NCj4gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuSGFyZHdhcmVJbnN0YW5jZSwgVXBkYXRl SW1hZ2VJbmRleCA9IFNpbmdsZVBheWxvYWREZXNjcmlwdG9yLlVwZGF0ZUltYWdlSW5kZXgpDQo+ ICsgICAgICAgICAgICBGbXBDYXBzdWxlSGVhZGVyLkFkZFBheWxvYWQgKFNpbmdsZVBheWxvYWRE ZXNjcmlwdG9yLkd1aWQsIFJlc3VsdCwgSW1hZ2VDYXBzdWxlU3VwcG9ydCwgSGFyZHdhcmVJbnN0 YW5jZSA9DQo+IFNpbmdsZVBheWxvYWREZXNjcmlwdG9yLkhhcmR3YXJlSW5zdGFuY2UsIFVwZGF0 ZUltYWdlSW5kZXggPSBTaW5nbGVQYXlsb2FkRGVzY3JpcHRvci5VcGRhdGVJbWFnZUluZGV4KQ0K PiAgICAgICAgICB0cnk6DQo+ICAgICAgICAgICAgICBmb3IgRW1iZWRkZWREcml2ZXIgaW4gRW1i ZWRkZWREcml2ZXJEZXNjcmlwdG9yTGlzdDoNCj4gICAgICAgICAgICAgICAgICBGbXBDYXBzdWxl SGVhZGVyLkFkZEVtYmVkZGVkRHJpdmVyKEVtYmVkZGVkRHJpdmVyKQ0KPiBkaWZmIC0tZ2l0IGEv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9uL1VlZmkvQ2Fwc3VsZS9GbXBDYXBzdWxlSGVh ZGVyLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9uL1VlZmkvQ2Fwc3VsZS9G bXBDYXBzdWxlSGVhZGVyLnB5DQo+IGluZGV4IDkxZDI0OTE5YzQuLmEyYTVjZjBkYjggMTAwNjQ0 DQo+IC0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0NvbW1vbi9VZWZpL0NhcHN1bGUvRm1w Q2Fwc3VsZUhlYWRlci5weQ0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9Db21tb24v VWVmaS9DYXBzdWxlL0ZtcENhcHN1bGVIZWFkZXIucHkNCj4gQEAgLTQ3LDE0ICs0NywxOSBAQCBj bGFzcyBGbXBDYXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyAob2JqZWN0KToNCj4gICAgICAjICAgLy8v IHRoZXJlZm9yZSBjYW4gYmUgbW9kaWZpZWQgd2l0aG91dCBjaGFuZ2luZyB0aGUgQXV0aCBkYXRh Lg0KPiAgICAgICMgICAvLy8NCj4gICAgICAjICAgVUlOVDY0ICAgVXBkYXRlSGFyZHdhcmVJbnN0 YW5jZTsNCj4gKyAgICAjDQo+ICsgICAgIyAgIC8vLw0KPiArICAgICMgICAvLy8gQml0cyB3aGlj aCBpbmRpY2F0ZSBhdXRoZW50aWNhdGlvbiBhbmQgZGVwZXggaW5mb3JtYXRpb24gZm9yIHRoZSBp bWFnZSB0aGF0IGZvbGxvd3MgdGhpcyBzdHJ1Y3R1cmUNCj4gKyAgICAjICAgLy8vDQo+ICsgICAg IyAgIFVJTlQ2NCAgIEltYWdlQ2Fwc3VsZVN1cHBvcnQNCj4gICAgICAjIH0gRUZJX0ZJUk1XQVJF X01BTkFHRU1FTlRfQ0FQU1VMRV9JTUFHRV9IRUFERVI7DQo+ICAgICAgIw0KPiAtICAgICMgICNk ZWZpbmUgRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfQ0FQU1VMRV9JTUFHRV9IRUFERVJfSU5JVF9W RVJTSU9OIDB4MDAwMDAwMDINCj4gKyAgICAjICAjZGVmaW5lIEVGSV9GSVJNV0FSRV9NQU5BR0VN RU5UX0NBUFNVTEVfSU1BR0VfSEVBREVSX0lOSVRfVkVSU0lPTiAweDAwMDAwMDAzDQo+IA0KPiAt ICAgIF9TdHJ1Y3RGb3JtYXQgPSAnPEkxNnNCM0JJSVEnDQo+ICsgICAgX1N0cnVjdEZvcm1hdCA9 ICc8STE2c0IzQklJUVEnDQo+ICAgICAgX1N0cnVjdFNpemUgICA9IHN0cnVjdC5jYWxjc2l6ZSAo X1N0cnVjdEZvcm1hdCkNCj4gDQo+IC0gICAgRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfQ0FQU1VM RV9JTUFHRV9IRUFERVJfSU5JVF9WRVJTSU9OID0gMHgwMDAwMDAwMg0KPiArICAgIEVGSV9GSVJN V0FSRV9NQU5BR0VNRU5UX0NBUFNVTEVfSU1BR0VfSEVBREVSX0lOSVRfVkVSU0lPTiA9IDB4MDAw MDAwMDMNCj4gDQo+ICAgICAgZGVmIF9faW5pdF9fIChzZWxmKToNCj4gICAgICAgICAgc2VsZi5f VmFsaWQgICAgICAgICAgICAgICAgID0gRmFsc2UNCj4gQEAgLTY0LDYgKzY5LDcgQEAgY2xhc3Mg Rm1wQ2Fwc3VsZUltYWdlSGVhZGVyQ2xhc3MgKG9iamVjdCk6DQo+ICAgICAgICAgIHNlbGYuVXBk YXRlSW1hZ2VTaXplICAgICAgICA9IDANCj4gICAgICAgICAgc2VsZi5VcGRhdGVWZW5kb3JDb2Rl U2l6ZSAgID0gMA0KPiAgICAgICAgICBzZWxmLlVwZGF0ZUhhcmR3YXJlSW5zdGFuY2UgPSAweDAw MDAwMDAwMDAwMDAwMDANCj4gKyAgICAgICAgc2VsZi5JbWFnZUNhcHN1bGVTdXBwb3J0ICAgID0g MHgwMDAwMDAwMDAwMDAwMDAwDQo+ICAgICAgICAgIHNlbGYuUGF5bG9hZCAgICAgICAgICAgICAg ICA9IGInJw0KPiAgICAgICAgICBzZWxmLlZlbmRvckNvZGVCeXRlcyAgICAgICAgPSBiJycNCj4g DQo+IEBAIC03OCw3ICs4NCw4IEBAIGNsYXNzIEZtcENhcHN1bGVJbWFnZUhlYWRlckNsYXNzIChv YmplY3QpOg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLDAs MCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5VcGRh dGVJbWFnZVNpemUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuVXBkYXRlVmVuZG9yQ29kZVNpemUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuVXBkYXRlSGFyZHdhcmVJbnN0YW5jZQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLlVwZGF0ZUhhcmR3YXJlSW5zdGFu Y2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuSW1h Z2VDYXBzdWxlU3VwcG9ydA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApDQo+ICAgICAgICAgIHNlbGYuX1ZhbGlkID0gVHJ1ZQ0KPiAgICAgICAgICByZXR1cm4g Rm1wQ2Fwc3VsZUltYWdlSGVhZGVyICsgc2VsZi5QYXlsb2FkICsgc2VsZi5WZW5kb3JDb2RlQnl0 ZXMNCj4gQEAgLTg2LDcgKzkzLDcgQEAgY2xhc3MgRm1wQ2Fwc3VsZUltYWdlSGVhZGVyQ2xhc3Mg KG9iamVjdCk6DQo+ICAgICAgZGVmIERlY29kZSAoc2VsZiwgQnVmZmVyKToNCj4gICAgICAgICAg aWYgbGVuIChCdWZmZXIpIDwgc2VsZi5fU3RydWN0U2l6ZToNCj4gICAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3INCj4gLSAgICAgICAgKFZlcnNpb24sIFVwZGF0ZUltYWdlVHlwZUlkLCBVcGRh dGVJbWFnZUluZGV4LCByMCwgcjEsIHIyLCBVcGRhdGVJbWFnZVNpemUsIFVwZGF0ZVZlbmRvckNv ZGVTaXplLA0KPiBVcGRhdGVIYXJkd2FyZUluc3RhbmNlKSA9IFwNCj4gKyAgICAgICAgKFZlcnNp b24sIFVwZGF0ZUltYWdlVHlwZUlkLCBVcGRhdGVJbWFnZUluZGV4LCByMCwgcjEsIHIyLCBVcGRh dGVJbWFnZVNpemUsIFVwZGF0ZVZlbmRvckNvZGVTaXplLA0KPiBVcGRhdGVIYXJkd2FyZUluc3Rh bmNlLCBJbWFnZUNhcHN1bGVTdXBwb3J0KSA9IFwNCj4gICAgICAgICAgICAgIHN0cnVjdC51bnBh Y2sgKA0KPiAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU3RydWN0Rm9ybWF0LA0KPiAgICAg ICAgICAgICAgICAgICAgICAgQnVmZmVyWzA6c2VsZi5fU3RydWN0U2l6ZV0NCj4gQEAgLTEwNSw2 ICsxMTIsNyBAQCBjbGFzcyBGbXBDYXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyAob2JqZWN0KToNCj4g ICAgICAgICAgc2VsZi5VcGRhdGVJbWFnZVNpemUgICAgICAgID0gVXBkYXRlSW1hZ2VTaXplDQo+ ICAgICAgICAgIHNlbGYuVXBkYXRlVmVuZG9yQ29kZVNpemUgICA9IFVwZGF0ZVZlbmRvckNvZGVT aXplDQo+ICAgICAgICAgIHNlbGYuVXBkYXRlSGFyZHdhcmVJbnN0YW5jZSA9IFVwZGF0ZUhhcmR3 YXJlSW5zdGFuY2UNCj4gKyAgICAgICAgc2VsZi5JbWFnZUNhcHN1bGVTdXBwb3J0ICAgID0gSW1h Z2VDYXBzdWxlU3VwcG9ydA0KPiAgICAgICAgICBzZWxmLlBheWxvYWQgICAgICAgICAgICAgICAg PSBCdWZmZXJbc2VsZi5fU3RydWN0U2l6ZTpzZWxmLl9TdHJ1Y3RTaXplICsgVXBkYXRlSW1hZ2VT aXplXQ0KPiAgICAgICAgICBzZWxmLlZlbmRvckNvZGVCeXRlcyAgICAgICAgPSBCdWZmZXJbc2Vs Zi5fU3RydWN0U2l6ZSArIFVwZGF0ZUltYWdlU2l6ZTpdDQo+ICAgICAgICAgIHNlbGYuX1ZhbGlk ICAgICAgICAgICAgICAgICA9IFRydWUNCj4gQEAgLTExOSw2ICsxMjcsNyBAQCBjbGFzcyBGbXBD YXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyAob2JqZWN0KToNCj4gICAgICAgICAgcHJpbnQgKCdFRklf RklSTVdBUkVfTUFOQUdFTUVOVF9DQVBTVUxFX0lNQUdFX0hFQURFUi5VcGRhdGVJbWFnZVNpemUg ICAgICAgID0ge1VwZGF0ZUltYWdlU2l6ZTowOFh9Jy5mb3JtYXQNCj4gKFVwZGF0ZUltYWdlU2l6 ZSA9IHNlbGYuVXBkYXRlSW1hZ2VTaXplKSkNCj4gICAgICAgICAgcHJpbnQgKCdFRklfRklSTVdB UkVfTUFOQUdFTUVOVF9DQVBTVUxFX0lNQUdFX0hFQURFUi5VcGRhdGVWZW5kb3JDb2RlU2l6ZSAg ID0ge1VwZGF0ZVZlbmRvckNvZGVTaXplOjA4WH0nLmZvcm1hdA0KPiAoVXBkYXRlVmVuZG9yQ29k ZVNpemUgPSBzZWxmLlVwZGF0ZVZlbmRvckNvZGVTaXplKSkNCj4gICAgICAgICAgcHJpbnQgKCdF RklfRklSTVdBUkVfTUFOQUdFTUVOVF9DQVBTVUxFX0lNQUdFX0hFQURFUi5VcGRhdGVIYXJkd2Fy ZUluc3RhbmNlID0NCj4ge1VwZGF0ZUhhcmR3YXJlSW5zdGFuY2U6MDE2WH0nLmZvcm1hdCAoVXBk YXRlSGFyZHdhcmVJbnN0YW5jZSA9IHNlbGYuVXBkYXRlSGFyZHdhcmVJbnN0YW5jZSkpDQo+ICsg ICAgICAgIHByaW50ICgnRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfQ0FQU1VMRV9JTUFHRV9IRUFE RVIuSW1hZ2VDYXBzdWxlU3VwcG9ydCAgICA9IHtJbWFnZUNhcHN1bGVTdXBwb3J0OjAxNlh9Jy5m b3JtYXQNCj4gKEltYWdlQ2Fwc3VsZVN1cHBvcnQgPSBzZWxmLkltYWdlQ2Fwc3VsZVN1cHBvcnQp KQ0KPiAgICAgICAgICBwcmludCAoJ3NpemVvZiAoUGF5bG9hZCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB7U2l6ZTowOFh9Jy5mb3JtYXQgKFNp emUgPSBsZW4NCj4gKHNlbGYuUGF5bG9hZCkpKQ0KPiAgICAgICAgICBwcmludCAoJ3NpemVvZiAo VmVuZG9yQ29kZUJ5dGVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSB7U2l6ZTowOFh9Jy5mb3JtYXQgKFNpemUgPSBsZW4NCj4gKHNlbGYuVmVuZG9yQ29kZUJ5 dGVzKSkpDQo+IA0KPiBAQCAtMTcyLDggKzE4MSw4IEBAIGNsYXNzIEZtcENhcHN1bGVIZWFkZXJD bGFzcyAob2JqZWN0KToNCj4gICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3INCj4gICAgICAg ICAgcmV0dXJuIHNlbGYuX0VtYmVkZGVkRHJpdmVyTGlzdFtJbmRleF0NCj4gDQo+IC0gICAgZGVm IEFkZFBheWxvYWQgKHNlbGYsIFVwZGF0ZUltYWdlVHlwZUlkLCBQYXlsb2FkID0gYicnLCBWZW5k b3JDb2RlQnl0ZXMgPSBiJycsIEhhcmR3YXJlSW5zdGFuY2UgPSAwLCBVcGRhdGVJbWFnZUluZGV4 DQo+ID0gMSk6DQo+IC0gICAgICAgIHNlbGYuX1BheWxvYWRMaXN0LmFwcGVuZCAoKFVwZGF0ZUlt YWdlVHlwZUlkLCBQYXlsb2FkLCBWZW5kb3JDb2RlQnl0ZXMsIEhhcmR3YXJlSW5zdGFuY2UsIFVw ZGF0ZUltYWdlSW5kZXgpKQ0KPiArICAgIGRlZiBBZGRQYXlsb2FkIChzZWxmLCBVcGRhdGVJbWFn ZVR5cGVJZCwgUGF5bG9hZCA9IGInJywgSW1hZ2VDYXBzdWxlU3VwcG9ydCA9IDAsIFZlbmRvckNv ZGVCeXRlcyA9IGInJywNCj4gSGFyZHdhcmVJbnN0YW5jZSA9IDAsIFVwZGF0ZUltYWdlSW5kZXgg PSAxKToNCj4gKyAgICAgICAgc2VsZi5fUGF5bG9hZExpc3QuYXBwZW5kICgoVXBkYXRlSW1hZ2VU eXBlSWQsIFBheWxvYWQsIEltYWdlQ2Fwc3VsZVN1cHBvcnQsIFZlbmRvckNvZGVCeXRlcywgSGFy ZHdhcmVJbnN0YW5jZSwNCj4gVXBkYXRlSW1hZ2VJbmRleCkpDQo+IA0KPiAgICAgIGRlZiBHZXRG bXBDYXBzdWxlSW1hZ2VIZWFkZXIgKHNlbGYsIEluZGV4KToNCj4gICAgICAgICAgaWYgSW5kZXgg Pj0gbGVuIChzZWxmLl9GbXBDYXBzdWxlSW1hZ2VIZWFkZXJMaXN0KToNCj4gQEAgLTE5OCwxMyAr MjA3LDE0IEBAIGNsYXNzIEZtcENhcHN1bGVIZWFkZXJDbGFzcyAob2JqZWN0KToNCj4gICAgICAg ICAgICAgIHNlbGYuX0l0ZW1PZmZzZXRMaXN0LmFwcGVuZCAoT2Zmc2V0KQ0KPiAgICAgICAgICAg ICAgT2Zmc2V0ID0gT2Zmc2V0ICsgbGVuIChFbWJlZGRlZERyaXZlcikNCj4gICAgICAgICAgSW5k ZXggPSAxDQo+IC0gICAgICAgIGZvciAoVXBkYXRlSW1hZ2VUeXBlSWQsIFBheWxvYWQsIFZlbmRv ckNvZGVCeXRlcywgSGFyZHdhcmVJbnN0YW5jZSwgVXBkYXRlSW1hZ2VJbmRleCkgaW4gc2VsZi5f UGF5bG9hZExpc3Q6DQo+ICsgICAgICAgIGZvciAoVXBkYXRlSW1hZ2VUeXBlSWQsIFBheWxvYWQs IEltYWdlQ2Fwc3VsZVN1cHBvcnQsIFZlbmRvckNvZGVCeXRlcywgSGFyZHdhcmVJbnN0YW5jZSwg VXBkYXRlSW1hZ2VJbmRleCkgaW4NCj4gc2VsZi5fUGF5bG9hZExpc3Q6DQo+ICAgICAgICAgICAg ICBGbXBDYXBzdWxlSW1hZ2VIZWFkZXIgPSBGbXBDYXBzdWxlSW1hZ2VIZWFkZXJDbGFzcyAoKQ0K PiAgICAgICAgICAgICAgRm1wQ2Fwc3VsZUltYWdlSGVhZGVyLlVwZGF0ZUltYWdlVHlwZUlkICAg ICAgPSBVcGRhdGVJbWFnZVR5cGVJZA0KPiAgICAgICAgICAgICAgRm1wQ2Fwc3VsZUltYWdlSGVh ZGVyLlVwZGF0ZUltYWdlSW5kZXggICAgICAgPSBVcGRhdGVJbWFnZUluZGV4DQo+ICAgICAgICAg ICAgICBGbXBDYXBzdWxlSW1hZ2VIZWFkZXIuUGF5bG9hZCAgICAgICAgICAgICAgICA9IFBheWxv YWQNCj4gICAgICAgICAgICAgIEZtcENhcHN1bGVJbWFnZUhlYWRlci5WZW5kb3JDb2RlQnl0ZXMg ICAgICAgID0gVmVuZG9yQ29kZUJ5dGVzDQo+ICAgICAgICAgICAgICBGbXBDYXBzdWxlSW1hZ2VI ZWFkZXIuVXBkYXRlSGFyZHdhcmVJbnN0YW5jZSA9IEhhcmR3YXJlSW5zdGFuY2UNCj4gKyAgICAg ICAgICAgIEZtcENhcHN1bGVJbWFnZUhlYWRlci5JbWFnZUNhcHN1bGVTdXBwb3J0ICAgID0gSW1h Z2VDYXBzdWxlU3VwcG9ydA0KPiAgICAgICAgICAgICAgRm1wQ2Fwc3VsZUltYWdlID0gRm1wQ2Fw c3VsZUltYWdlSGVhZGVyLkVuY29kZSAoKQ0KPiAgICAgICAgICAgICAgRm1wQ2Fwc3VsZURhdGEg PSBGbXBDYXBzdWxlRGF0YSArIEZtcENhcHN1bGVJbWFnZQ0KPiANCj4gLS0NCj4gMi4xNy4xDQo+ IA0KPiANCj4gDQo+IA0KPiANCg0K