From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.29952.1676328228331682515 for ; Mon, 13 Feb 2023 14:43:48 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=gtdrQYHI; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676328228; x=1707864228; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=OlSQijbV28sNPIAF6aVizmW87fFPB66Xj6A4EOnmoc8=; b=gtdrQYHIqXUCSgUMQYpj/3LyGxa7SEjWfJLdLEiNMt5ePq/4rg33WQ5c BXdZnvpead7Qmv7ZIFb7Tp0nrwFLa7aPe7Ndi5Hy+TQMCOBw7X5v+0PBR zrLPVtkHgIsFMSMSXr+ZM3Pn6jP1HZNyfuwv1rIlBS5GXUnDfzqEFMm7C Yqwl75Z3hqztFq4Oh1sj+9HgmjfKxdhGfgUoXoYnGhwJudaJIFXAZzV6H QEaUT016XezcjI7P4Lhe1loeIxVsmKTqnO+c77QBEjma2FtFSe6i84tAb 6Z+fP9KtJW1GBxV64vrjC8+CtFWltSTfEhv2QYbAesM5vog9UbU2dPOZD Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10620"; a="329646616" X-IronPort-AV: E=Sophos;i="5.97,294,1669104000"; d="scan'208";a="329646616" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2023 14:43:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10620"; a="668949397" X-IronPort-AV: E=Sophos;i="5.97,294,1669104000"; d="scan'208";a="668949397" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga002.jf.intel.com with ESMTP; 13 Feb 2023 14:43:31 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 13 Feb 2023 14:43:30 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 13 Feb 2023 14:43:30 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Mon, 13 Feb 2023 14:43:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VsdHx3A5xpXNxQsJ67RNHiFo9bTnU77ZQ5ZCduwNM/5Wd6/pJmf/cdTBQ0Ji7JSKsl1W3qhqt4fBA/zV1bvxLLl7dYNpzgnDRTFR+8kXHv78YV1yi0Cbc+C05wxy/lwwR5B98XbdGz06GODqL79mRHobzXfpyimmhqvOwwu5OzEI03qdI5NzzlV1O2jxZ+HGUKQ/hFj47nbHnaFxrDshyItK7zAGWOf/5xgm10yAreJZBgsDQb3JXW4ebbI6rtUpgWofVjT9NKIbcIk+kednFNOPbkevB1kNROUwRC8PWNo3LoKDdW6rKpTxuLbmSYizvxzunP1FUO5YPyyFsudz7g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OlSQijbV28sNPIAF6aVizmW87fFPB66Xj6A4EOnmoc8=; b=BMRS4CqjV9F6oIJ0OxtnNCQirJdVKQVgSLcWktmBBoDy7HnhjHAfojBpdA5wuxX4RT9DFdx5ErS8Q+AcFPsRzTDtw+qo7RfK7mU7qYmth8tMiuEmL7YLPzyji7dpPpP/wSFlbEnCTYn/HCcUmdCTcVjH/eVUIMNyEVsdI2hLBsbKsrSmIFyGmXLLiz3iFKqgxtFDMf7+todL7WlaAFzIoI0Q8tZlH8oqNOqs6gzVt+ew2fQqrAoUXXpQQJgdiXTZN0FVvjqRICCq7BQ5YAryo8LkZSmXu01/ux4pswkHJIUNbPIt4JUrnZSUfohgU1JeBYRYeRK+6/g2sssMk4+rkQ== 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 Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DM6PR11MB4564.namprd11.prod.outlook.com (2603:10b6:5:2a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Mon, 13 Feb 2023 22:43:27 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68%7]) with mapi id 15.20.6086.024; Mon, 13 Feb 2023 22:43:27 +0000 From: "Michael D Kinney" To: Jeshua Smith , "Ni, Ray" , "devel@edk2.groups.io" , "Demeter, Miki" , "Wang, Jian J" , "Gao, Liming" , "Gao, Zhichao" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Index: AQHZLCyFFUH/0EdIn0Kgv2hFwtSKLq7HAM6AgACredCAAB95wIAFq2fggAAiG5A= Date: Mon, 13 Feb 2023 22:43:27 +0000 Message-ID: References: <173BC657AC8EE47A.24231@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|DM6PR11MB4564:EE_ x-ms-office365-filtering-correlation-id: 8ea1d3fa-ba85-4ffc-effc-08db0e13b8f7 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: euGfvBiH/+Is/cRoKc881/PFCQMWEAYKr3fZmDPSNSjbH/9kGTOu0zIKDmpk7QQawDYArqOUdVZ4OFTaRhNzcYJtjowD8YeUagk0eL+ASS/mJiOQCzd8DrljMiOQRx4MTuwkoU08QW8wk+rggli9PEZz/w4FOaU8v3N0IKdHpIexxYL/qyA7qIiP4n2GbTX7mGK7ImtfEqre54rwI0iYS891u6TIq8lI6SeTJf526qaebosUNOBj8EGj3dCXJuxZtC30nnEUlr+SUoV01GCXBLICM6z5Q2Q6u3tq7mBBrokU1vMrpABtDxWTo6fMQMis8YO94maL8BVM/dB+9W4i73MV74tKSPLWU0bhdkqPIgrSB09CeLK5MNj1JNw/8AUx0yF81EGV6HIC8jp6rd7dpuUPpomKHfNS/UfA7/tbbo81zLagNMaq+O3lo1ZVyjlEqUCLJ7F7asOi+gSJBEdgSYKQ5LYN1qLKCa/6ipOYiihHi2lU7Iq9KsKLPnf0YWwJESerRJWJ2cMfyJuw5L7LAChDIMXZsERzWxIfjUtdZW3giwCMhgxovPjSQ7wJndz3HihfzeppXm0ApeB6pv9aIeP9vjdhcXzlSYviq/OussoMigT63VGTB0gAETTFH9rlvcGeU1Khr9srBIzGnvl79GWMoc1/DE+8WBBdbap2ey/IyliN93zZKoT+A+v92iwpnkPkd1IdienDt4RboOnAMJup5kOIluj8oed5a3Y/H3xtlk44HgUcL6rssUhsywfUr2qQuN9VCGKZNA+3hN2Z69Ry0e1eKmKFD8qsCcUvlAk= 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:(13230025)(376002)(39860400002)(366004)(136003)(396003)(346002)(451199018)(9686003)(186003)(26005)(6506007)(53546011)(55016003)(966005)(30864003)(107886003)(2906002)(38070700005)(33656002)(478600001)(86362001)(921005)(83380400001)(8936002)(52536014)(5660300002)(82960400001)(4326008)(76116006)(66899018)(66556008)(38100700002)(41300700001)(8676002)(66446008)(66476007)(66946007)(64756008)(122000001)(316002)(71200400001)(7696005)(19627235002)(110136005)(6636002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Mk1jNG5DZE9NTWduSmowNzdoNlFQRVVOUWlRMnVkRDYvNDNVRGYzNzM3QS92?= =?utf-8?B?eGpGd2s4dlNxelJDVVRNQkxrbzAzUEU4UzZHM0JDS0oxOWxmeE5IZDZMekZB?= =?utf-8?B?ZjNvYlp4MHJvcnlKMGg0WUFlNmNJZi9DR1ZCSFFuU29EWU41V1pvVjhzejNC?= =?utf-8?B?cDhPZ0swQzNpTWVLcTZia1FXZGFVQktkSXpGYW9vaC9STzJRV1l6RkhWZW9N?= =?utf-8?B?MWFYZDlRekExVUk0Z0QxR2lMa3BhM25JQlBwNDJyK3VSZ2xVK1IvcTQvWWhN?= =?utf-8?B?WHVjc1JaY1M2djl3VmVMVHdjS2FxaFM3T3JXSzVDRENOS1E2SWNzb3QvWk0r?= =?utf-8?B?a3FtSXpVZUtOdGtBOTBIQjFlMStEYnlxN21QTE8zOWVuZjEvQlJ3WjZvcGp5?= =?utf-8?B?cm5sSmhINGZlcXpXaWkrb2J1cDBXMGQ2djlFUnkxRlRvK3FLVGVBN05LL1R5?= =?utf-8?B?LzZEbStlU0VnZW01bS9HWDhqVFFReWVPeU0yZm1PdlN4Z21MQkpsdjFhVWM3?= =?utf-8?B?OEpRd1U1VEFIRFdMU1RBT0YweGlFUk84Kzd3VjdVeHAxMFRrUTFZbFRUc0JS?= =?utf-8?B?Z1dNV0Z1VmxSQnZ2NHZHZFFYUlJZUHNqVFZYYWRwOEpjd2pLVFdBNm5NMVJn?= =?utf-8?B?SmRvdmttcGFyUzFVcWpLTUViOGdRSmVrUVIyR3NPUVBReGtTZk1oU0hvdTd0?= =?utf-8?B?eHczeDY2UVZhMktpaWhzNDZRNG42NUxYNUUvRGFvUmRzRWt2QlhqbnlIdFZM?= =?utf-8?B?QzlrVENYLzRJRXdvcjlzQWt0bmVkck9rdW9ZRUF2cDNmNG9Ha3BHMXlDc0wr?= =?utf-8?B?azVwVk5Ddi9KdzhEb2lNMVh6UGd6YkNUNnlDdjhkK2NoWGpYMEkvUWU2Nkxh?= =?utf-8?B?bnEyeXdQWVhlWWgvNEpQUU9EdDdzRm5DNC9Td3hXTU5ESmdDWUZBN2RKMWI3?= =?utf-8?B?ckl2MCtmK091T1VkVnBpSUN0R09tOTRVV0xBWndmMzNyWUU4aXY1MTNEck9M?= =?utf-8?B?d3o2SXJCZzZrMXYvVGR2cVpwMnRQbXYrSGc2NmFUNU9VNDhCWjArak04c213?= =?utf-8?B?YVFLYkJUWExCVFgyQllLdkhIbDR1WU5TdDF5STZzNURhS1ZLWWxoeXRUZmdK?= =?utf-8?B?TWFKTUZadmlLZzd6UFp3cXZnV1ZlT2FtOTFIYkR6R2d4VjUvNGFpd0p1dkZu?= =?utf-8?B?Ymdja2tlNFZBdHo0bHdVSlJmZlVDZTlkT05QNEExem5ibHlxV2tRdk9ORVRR?= =?utf-8?B?dnBmTWJ5Q0hqM0p6RmdJMndFMXhhMmRsMUJsOTZNOHIwSWN0eW1BY0NjN1Z4?= =?utf-8?B?U0NreGhJcEJaSThkM2NJQXJHdldOY2Z4WC8vNm8vODREUG82QkpkWWdzZ2xV?= =?utf-8?B?WmRySGtpN1J2a1czbmpqU005NDhlWlViTXlIcW9hTkxMVEdqRC9OSndFZnll?= =?utf-8?B?aVY0TzFFeFJOeDdJUFFaMFlzMEl0NktiOGQ1T1FNODg3bndROWtiNGhzMkJ2?= =?utf-8?B?QnZ4OThPSVNMWU1uUU5EblpveEwwdFpaYkJsR1d5N1JoTi81Wk95YnpacVB5?= =?utf-8?B?NXdiNFY5ZUtyZThCK2h4UytIUEE0alVOODdseGJjd3ZVQnFTaWFYamhZUlRR?= =?utf-8?B?NDRjQ0pLRWdDOGdPWlBxSjIwdm1qNzlkUTl6TjNoVmZhdktUMWpFYWhZRDJp?= =?utf-8?B?akxhNXFDWlNJdW82RHlLR0JITjl5MDE2OU4wcHpoU3lYd3V4WjJ1T0czQ1JZ?= =?utf-8?B?Uk9HbHJtVjNQSmxzb0hUbzY4RU9QdmVaRCszVzFyS0lnUkdQcVl1enBQODZx?= =?utf-8?B?WlJxMms5ZTgrckNLczU1cTlLSGZOc2hsZWtPdmg1cmRFNWxCSmwxVFlDdmk5?= =?utf-8?B?MW9wL0lqaGdBVitoRE5aWEZJL1JtNzE5dER2SjI2VXcvQndlK004Unlxd1FN?= =?utf-8?B?T01lV1pJUlgvSVE1ZmordlU3QXZlUndKSkNOWEk2T1JZRG9vQ3NWMEhjNjRW?= =?utf-8?B?ZWtOMVptMHBmcUhrRWVBVjBINkk0bVVZcG93UDZxa2Z5b1JDR25ZRTJhTkd5?= =?utf-8?B?T204cTROelVPY205bkNaYVhENlpCQnMrekdKMlIwWW5ua09sUFduZDducXJF?= =?utf-8?B?SWZKWDRLVGM1Q1pXVmtFRVB3T3FWUDdGcFJ0N1p1eGIxczhiM1p0QzI0TDc3?= =?utf-8?B?UkE9PQ==?= 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: 8ea1d3fa-ba85-4ffc-effc-08db0e13b8f7 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2023 22:43:27.3011 (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: fzA7iRPXc/BOJ37qKocv8Am++MMZBcvLmzm534AyJq7THi0/sdRgooC+mA77ujoj6ikYMs2lEEcBvF/PhBmDT4ee5lfyGpTEMTsRGgMATBc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4564 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 SGkgSmVzaHVhLA0KDQpTb21lIGNvbW1lbnRzIG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiAnbmV4 dCcgaW4gQm9vdE5leHQuDQoNClRoZSBVRUZJIFNwZWNpZmljYXRpb24ncyBtYWluIG9iamVjdGl2 ZSBpcyBhbiBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgYW5kIGFuIG9w ZXJhdGluZyBzeXN0ZW0uDQoNClRoaXMgaXMgYSAyLXdheSBjb21tdW5pY2F0aW9ucyBwYXRoLiAg VGhlIGZpcm13YXJlIHBhc3NlcyBjcml0aWNhbCBpbmZvcm1hdGlvbiB0byB0aGUgT1MgcmVxdWly ZWQgZm9yIHRoZSBPUw0KdG8gdGFrZSBvdmVyIGNvbnRyb2wgb2YgdGhlIHBsYXRmb3JtIGZyb20g ZmlybXdhcmUgYW5kIG1hbmFnZSB0aGUgcGxhdGZvcm0gZnJvbSB0aGF0IHBvaW50IGZvcndhcmQu ICBUaGUgVUVGSQ0KU3BlY2lmaWNhdGlvbiBhbHNvIHByb3ZpZGVzIGludGVyZmFjZXMgZm9yIHRo ZSBPUyB0byBwYXNzIGluZm9ybWF0aW9uIGJhY2sgdG8gdGhlIGZpcm13YXJlLiAgU29tZSBvZiB0 aGVzZSBhcmUNCndoaWxlIHRoZSBPUyBpcyBydW5uaW5nIHN1Y2ggYXMgVUVGSSBSdW50aW1lIFNl cnZpY2VzIGFuZCBBQ1BJIG1ldGhvZHMuICBTb21lIG90aGVyIE9TLT5GVyBjb21tdW5pY2F0aW9u IG1lY2hhbmlzbXMNCmFyZSB0aHJvdWdoIHRoZSBzdGF0ZSBvZiBVRUZJIFZhcmlhYmxlcyBhbmQg cGFzc2luZyBVRUZJIENhcHN1bGVzIGFjcm9zcyByZXNldC9yZWJvb3QuDQoNCkJvb3ROZXh0IGlz IGFuIGV4YW1wbGUgb2YgYW4gT1MtPkZXIGNvbW11bmljYXRpb24gcGF0aCBmb3IgdGhlIE9TIHRv IHNldCB0aGUgQm9vdE5leHQgcG9saWN5IGZvciB0aGUgT1MgdG8NCnBlcmZvcm0gc29tZSBzcGVj aWZpYyBhY3Rpb24gYnkgcmVxdWVzdGluZyB0aGUgRlcgdG8gcGVyZm9ybSBhIG9uZS10aW1lIGFs dGVybmF0ZSBib290IHBhdGggYWZ0ZXIgdGhlIG5leHQNCnN5c3RlbSByZXNldC9yZWJvb3QuICBU aGlzIGlzIHRoZSBpbnRlbmRlZCB1c2Ugb2YgQm9vdE5leHQgd2l0aGluIHRoZSBVRUZJIFNwZWNp ZmljYXRpb24gY29udGV4dC4NCg0KVGhlIHVzZSBvZiBCb290TmV4dCB0byBzZWxlY3QgYW4gYWx0 ZXJuYXRlIGJvb3Qgb3B0aW9uIGJldHdlZW4gZGlmZmVyZW50IEZXIGNvbXBvbmVudHMgd2l0aGlu IHRoZSBwbGF0Zm9ybQ0KZmlybXdhcmUgaW4gdGhlIGN1cnJlbnQgRlcgYm9vdCBpcyBub3QgZGVm aW5lZCBieSB0aGUgVUVGSSBTcGVjaWZpY2F0aW9uLiAgQW55IGNvbnZlbnRpb25zIGluIHRoYXQg YXJlYQ0KYXJlIHJlYWxseSBhbmQgYXR0cmlidXRlIG9mIHRoZSBmaXJtd2FyZSBkZXNpZ24vaW1w bGVtZW50YXRpb24uICBJbiBmYWN0LCBmaXJtd2FyZSBoYXMgdG8gYmUgdmVyeSBjYXJlZnVsDQpp ZiBpdCBtb2RpZmllcyB0aGUgdmFsdWUgb2YgQm9vdE5leHQgYmVjYXVzZSB0aGUgY3VycmVudCB2 YWx1ZSBjb3VsZCBoYXZlIGJlZW4gc2V0IGJ5IHRoZSBPUyBhbmQgdGhlIGZpcm13YXJlDQptdXN0 IGhvbm9yIHRoZSBPUyByZXF1ZXN0IGZvciBCb290TmV4dC4NCg0KVGhlIG90aGVyIGVsZW1lbnQg dG8gYmUgYXdhcmUgb2YgaXMgdGhlIGZpcnN0IGJvb3Qgc2NlbmFyaW8gd2hlcmUgdGhlIHBsYXRm b3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZm9yIHRoZQ0KdmVyeSBmaXJzdCB0aW1lIGFuZCBubyBV RUZJIHZhcmlhYmxlcyBleGlzdC4gIFRoaXMgaXMgYSBjYXNlIHdoZXJlIHRoZSBkZWZhdWx0IHNl dCBvZiBib290IG9wdGlvbnMgYXJlIGVzdGFibGlzaGVkDQpiZWZvcmUgYWRkaXRpb25hbCBvbmVz IGFyZSBzZXQgYnkgT1MgaW5zdGFsbGF0aW9uIG9yIGJ5IGVuZCB1c2Vycy4gIFRoZSBmaXJtd2Fy ZSBjYW4gc2V0IEJvb3RPcmRlciBhbmQvb3INCkJvb3ROZXh0IHRvIGFueSB2YWx1ZXMgaXQgd2Fu dHMgYmVjYXVzZSB0aGVyZSBpcyBubyBPUy0+RlcgY29tbXVuaWNhdGlvbnMgaW4gdGhpcyBmaXJz dCBib290IHNjZW5hcmlvLg0KDQpBbm90aGVyIGNhc2UgdG8gY29uc2lkZXIgaXMgd2hlbiBhIFVF RkkgUGxhdGZvcm0gaXMgdXNlZCBhcyBhbiBhcHBsaWFuY2Ugd2hlcmUgdGhlcmUgYXJlIGEgZml4 ZWQgc2V0IG9mDQpib290IG9wdGlvbnMgdGhhdCBjYW4gbmV2ZXIgYmUgbW9kaWZpZWQsIGFuZCB0 aGUgcGxhdGZvcm0gd2lsbCBhbHdheXMgZm9yY2UgdGhlIHNhbWUgb3B0aW9ucyB3aXRoIHRoZQ0K c2FtZSBwcmlvcml0eSBldmVyeSBib290Lg0KDQpUaGUgY2hhbGxlbmdlIGZvciBlZGsyIGlzIHRo YXQgdGhlc2UgdmFyaW91cyB1c2VzIGNhc2VzIChhbmQgdGhlcmUgYXJlIG1hbnkgbW9yZSkgYXJl IGRpZmZpY3VsdCB0byBzdXBwb3J0DQppbiBhIHNpbmdsZSBvcGVuLXNvdXJjZSBpbXBsZW1lbnRh dGlvbi4gIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgaXMgYW4gaW1wbGVtZW50YXRpb24gdGhhdCB0 cmllcyB0byBjb3Zlcg0KY29tbW9uIHVzZSBjYXNlcywgYnV0IHRoaXMgbGlicmFyeSBpcyBpbnRl bmRlZCB0byBiZSBjb3BpZWQgYW5kIG1vZGlmaWVkIGlmIG5lZWRlZCBpZiBhIHBsYXRmb3JtIHJl cXVpcmVzDQpiZWhhdmlvciB0aGF0IGlzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb21tb24gdXNlIGNh c2VzLg0KDQpNaWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBK ZXNodWEgU21pdGggPGplc2h1YXNAbnZpZGlhLmNvbT4NCj4gU2VudDogTW9uZGF5LCBGZWJydWFy eSAxMywgMjAyMyAyOjEyIFBNDQo+IFRvOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW87IERlbWV0ZXIsIE1pa2kNCj4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+OyBXYW5n LCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBHYW8sIFpoaWNoYW8NCj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxsb3cg UGxhdGZvcm1Cb290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQNCj4gDQo+IFRMO0RSIC0gVGhl IHNwZWMgaW5kaWNhdGVzIEJvb3ROZXh0IGFuZCBCb290T3JkZXIgYXJlIHRvIGJlIHByb2Nlc3Nl ZCB0b2dldGhlciBhdCB0aGUgcG9pbnQgaW4gdGltZSB3aGVyZSB0aGUgY2hvaWNlIGFib3V0IGJv b3QNCj4gZGV2aWNlIGlzIGJlaW5nIG1hZGUuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFs bG93cyBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIHRvIGZyZWVseSBjb250cm9sIEJvb3RPcmRlciwg YnV0IGV4cGxpY2l0bHkgdGFrZXMNCj4gY29udHJvbCBvZiBCb290TmV4dCBhd2F5IGZyb20gUGxh dGZvcm1Cb290TWFuYWdlckxpYi4gVGhpcyBzZWVtcyBjb3VudGVyIHRvIHRoZSBpbnRlbnQgb2Yg dGhlbSBiZWluZyBwcm9jZXNzZWQgYW5kIHVzZWQNCj4gdG9nZXRoZXIuDQo+IA0KPiBEZXRhaWxz Og0KPiBUaGUgc3BlYyBzYXlzICJUaGUgQm9vdE5leHQgdmFyaWFibGUgaXMgYSBzaW5nbGUgVUlO VDE2IHRoYXQgZGVmaW5lcyB0aGUgQm9vdCMjIyMgb3B0aW9uIHRoYXQgaXMgdG8gYmUgdHJpZWQg Zmlyc3Qgb24gdGhlIG5leHQNCj4gYm9vdC4gQWZ0ZXIgdGhlIEJvb3ROZXh0IGJvb3Qgb3B0aW9u IGlzIHRyaWVkIHRoZSBub3JtYWwgQm9vdE9yZGVyIGxpc3QgaXMgdXNlZC4iIGFuZCAiVGhlIEJv b3RDdXJyZW50IHZhcmlhYmxlIGlzIGEgc2luZ2xlDQo+IFVJTlQxNiB0aGF0IGRlZmluZXMgdGhl IEJvb3QjIyMjIG9wdGlvbiB0aGF0IHdhcyBzZWxlY3RlZCBvbiB0aGUgY3VycmVudCBib290LiBU aGUgcGxhdGZvcm0gc2V0cyB0aGlzIHZhcmlhYmxlIGJlZm9yZSBzaWduYWxpbmcNCj4gRUZJX0VW RU5UX0dST1VQX1JFQURZX1RPX0JPT1QuIg0KPiANCj4gSXQgc2VlbXMgbGlrZSB0aGUgc3BlYyBl ZmZlY3RpdmVseSBzYXlzIHRoaXMgcHJvY2VzcyBpcyBmb2xsb3dlZDoNCj4gMS4gU2VsZWN0IGEg ZGV2aWNlIGZvciB0aGUgdXBjb21pbmcgYm9vdCwgcHJlZmVycmluZyBCb290TmV4dCBhbmQgdGhl biB0aGUgZGV2aWNlcyBpbiBCb290T3JkZXIncyBvcmRlcg0KPiAyLiBTZXQgQm9vdEN1cnJlbnQg dG8gdGhlIHNlbGVjdGVkIGRldmljZQ0KPiAzLiBTaWduYWwgRUZJX0VWRU5UX0dST1VQX1JFQURZ X1RPX0JPT1QNCj4gNC4gQXR0ZW1wdCB0byBib290IGZyb20gdGhlIGRldmljZSBzcGVjaWZpZWQg YnkgQm9vdEN1cnJlbnQNCj4gDQo+IFVuZm9ydHVuYXRlbHksIGluIEVuZ2xpc2ggIm5leHQiIGhh cyBhIG5lYnVsb3VzIG1lYW5pbmcuIElmIEkgc2F5IHR1cm4gYXQgdGhlICJuZXh0IiBzdG9wbGln aHQsIG1vc3QgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBJDQo+IG1lYW4gdGhlIGxpZ2h0IEknbSBh cHByb2FjaGluZyByaWdodCBub3cgcmF0aGVyIHRoYW4gbWVhbmluZyBza2lwcGluZyAidGhpcyIg b25lIGFuZCBnb2luZyB0byB0aGUgb25lIGFmdGVyLiBBbmQgaWYgSSBzYXkgSSdtDQo+IGdvaW5n IHRvIGRvIHNvbWV0aGluZyAibmV4dCIgU2F0dXJkYXksIG1vc3QgcGVvcGxlIGNvbnNpZGVyIHRo YXQgdG8gbWVhbiB0aGUgdXBjb21pbmcgKGFrYSAidGhpcyIpIFNhdHVyZGF5LCByYXRoZXIgdGhh biB0aGUgb25lDQo+IGFmdGVyIDcgb3IgbW9yZSBkYXlzIGhhdmUgcGFzc2VkLiBTaW1pbGFybHks IGZvciB0aGUgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBjb2RlIHRoYXQgaXMgcnVubmluZyBiZWZv cmUgdGhlIGJvb3QgZGV2aWNlIGlzDQo+IHNlbGVjdGVkIChlZmZlY3RpdmVseSBTdGVwIDAgaW4g dGhlIGxpc3QgSSB3cm90ZSBhYm92ZSksIEkgd291bGQgZXhwZWN0IHRoZSAibmV4dCIgYm9vdCB0 byBiZSB0aGUgdXBjb21pbmcgYXR0ZW1wdCB0byBib290IGENCj4gZGV2aWNlIChzdGVwIDQpLCBy YXRoZXIgdGhhbiBtZWFuaW5nIHNraXAgdGhlIHVwY29taW5nIGJvb3QgYXR0ZW1wdCAoc3RlcCA0 KSBhbmQgYXBwbHkgaXQgdG8gdGhlIHN1YnNlcXVlbnQgb25lIChpLmUuIHNvbWV0aW1lDQo+IGFm dGVyIHN0ZXAgNCB3aGVuIHlvdSdyZSBzdGFydGluZyB0aGUgc3RlcHMgb3ZlcikuDQo+IA0KPiBO b3RlOiBUaGUgY3VycmVudCBjb2RlIHdyYXBzIHN0ZXBzIDItNCB1cCBpbnRvIHRoZSBFZmlCb290 TWFuYWdlckJvb3QoJHNlbGVjdGVkX2RldmljZSkgY2FsbC4NCj4gDQo+IFRoZSBjdXJyZW50IEJk c0VudHJ5IGltcGxlbWVudGF0aW9uIGxpbWl0cyB0aGUgYWJpbGl0eSBmb3IgY29kZSB0aGF0IHJ1 bnMgYmVmb3JlIHN0ZXAgMSB0byBjb250cm9sIHRoZSBib290IGRldmljZSBzZWxlY3Rpb24NCj4g cHJvY2VzcyAoc3RlcCAxKSBpbiB0aGVzZSB3YXlzOg0KPiAtIEl0IGFsbG93cyBQbGF0Zm9ybUJv b3RNYW5hZ2VyTGliIHRvIHJlYXJyYW5nZSB0aGUgQm9vdE9yZGVyIGxpc3QgdG8gd2hhdGV2ZXIg aXQgd2FudHMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSB1cGNvbWluZyBib290DQo+IGF0dGVtcHQg KHN0ZXAgNCksIGJ1dCBhdCB0aGUgc2FtZSB0aW1lIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhbHNv IHNwZWNpZmljYWxseSBibG9ja2luZyB0aGF0IHNhbWUgY29kZSBmcm9tIHRlbXBvcmFyaWx5IHNl dHRpbmcNCj4gYSBCb290TmV4dCB0byBiZSB1c2VkIHdpdGggdGhhdCByZS1hcnJhbmdlZCBsaXN0 LiBJbiBvdGhlciB3b3JkcywgdGhlIGNoYW5nZXMgdG8gdGhlIG5vcm1hbCBCb290T3JkZXIgbGlz dCBhZmZlY3QgdGhlIHVwY29taW5nDQo+IHVzZSBvZiB0aGUgQm9vdE9yZGVyIGxpc3QgKHN0ZXAg MSksIGJ1dCB0aGUgY2hhbmdlcyB0byBCb290TmV4dCBhcmUgYmVpbmcgZGVsYXllZCB1bnRpbCB0 aGUgdXNlIGFmdGVyIHRoYXQgdXBjb21pbmcgdXNlIChzdGVwDQo+IHNvbWV0aW1lLWluLXRoZS1m dXR1cmUpLiBUaGlzIHNlZW1zIGluY29uc2lzdGVudCBzaW5jZSBJIHdvdWxkIGV4cGVjdCBjaGFu Z2VzIHRoYXQgYXJlIG1hZGUgYXQgdGhlIHNhbWUgdGltZSBieSB0aGUgc2FtZSBjb2RlIHRvDQo+ IHRoZXNlIHBhaXJlZCB2YXJpYWJsZXMgdG8gYmUgYXBwbGllZCBhdCB0aGUgc2FtZSBwb2ludCBp biB0aW1lIChpLmUuIHN0ZXAgMSksIG5vdCBzcGxpdCBhY3Jvc3Mgc2VwYXJhdGUgdXNlcyBvZiB0 aGUgQm9vdE9yZGVyDQo+IGxpc3QuDQo+IC0gSWYgdGhlcmUgaGFwcGVucyB0byBiZSBhbiBleGlz dGluZyAoY2FjaGVkKSBCb290TmV4dCB2YWx1ZSB3aGVuIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIg aXMgY2FsbGVkIChzdGVwIDApLCB0aGUgY2hhbmdlcw0KPiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGli IG1ha2VzIHRvIEJvb3RPcmRlciB3aWxsIGJlIGhvbm9yZWQgaW4gc3RlcCA0LCBidXQgdGhlIGNo YW5nZXMgaXQgbWFrZXMgdG8gQm9vdE5leHQgd2lsbCBiZSBzaWxlbnRseQ0KPiBkZWxldGVkLg0K PiANCj4gDQo+IEFzIGZvciB0aGUgdHdvIG9wdGlvbnMgUmF5IHN1Z2dlc3RzOg0KPiAtIENoYW5n aW5nIEJvb3RPcmRlciBpcyAicGVybWFuZW50Ii4gSXQgc2VlbXMgbGlrZWx5IHRoYXQgQm9vdE5l eHQgd2FzIGNyZWF0ZWQgc3BlY2lmaWNhbGx5IHRvIGF2b2lkIG5lZWRpbmcgdG8gY2hhbmdlIEJv b3RPcmRlcg0KPiB3aGVuIHlvdSBzaW1wbHkgbmVlZCBhIHRlbXBvcmFyeSBjaGFuZ2UuIEl0J3Mg bm90IGNsZWFyIHRvIG1lIHdoYXQgcHVycG9zZSBpcyBzZXJ2ZWQgYnkgZGVsYXlpbmcgQm9vdE5l eHQncyBlZmZlY3QgdG8gYSBib290DQo+IGFmdGVyIHRoZSB1cGNvbWluZyBvbmUgb3IgYnkgc2ls ZW50bHkgZGVsZXRpbmcgaXQgaW5zdGVhZCBvZiBob25vcmluZyBpdCB3aGVuIFBsYXRmb3JtQm9v dE1hbmFnZXJMaWIgbWFrZXMgdGhlIHJlcXVlc3QuDQo+IC0gQ2FsbGluZyBFZmlCb290TWFuYWdl ckJvb3QoKSBkaXJlY3RseSAoZWZmZWN0aXZlbHkgc3RlcHMgMi00KSBmcm9tIFBsYXRmb3JtQm9v dE1hbmFnZXJMaWIgKGVmZmVjdGl2ZWx5IHN0ZXAgMCkgcmVzdWx0cyBpbg0KPiBza2lwcGluZyB0 aGUgZm9sbG93aW5nIHN0ZXBzIHRoYXQgQmRzRW50cnkgZG9lcyBiZXR3ZWVuIFBsYXRmb3JtQm9v dE1hbmFnZXJCZWZvcmVDb25zb2xlKCkgYW5kIHRoZSBjYWxsIHRvIEVmaUJvb3RNYW5hZ2VyQm9v dCgpLg0KPiBJdCBzZWVtcyB1bmRlc2lyYWJsZSB0byBza2lwIHRoZW0gb3IgZHVwbGljYXRlIHRo ZW0gaW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYjoNCj4gCS0gU3RhcnRpbmcgSG90a2V5IFNlcnZp Y2UNCj4gCS0gUHJvY2Vzc2luZyBMb2FkIE9wdGlvbnMNCj4gCS0gQ29ubmVjdGluZyBDb25zb2xl cw0KPiAJLSBQbGF0Zm9ybUJvb3RNYW5hZ2VyQWZ0ZXJDb25zb2xlKCkNCj4gCS0gRXZhbHVhdGlu ZyBQY2RUZXN0S2V5VXNlZA0KPiAJLSBEdW1waW5nIExvYWRPcHRpb25zDQo+IAktIExhdW5jaGlu ZyBCb290IE1hbmFnZXIgTWVudSBiYXNlZCBvbiBPc0luZGljYXRpb25zDQo+IAktIExhdW5jaGlu ZyBQbGF0Zm9ybVJlY292ZXJ5IGJhc2VkIG9uIE9zSW5kaWNhdGlvbnMNCj4gCS0gQ2xlYXJpbmcg T3NJbmRpY2F0aW9ucyBmb3IgdGhlIHR3byBhYm92ZSB1c2VzDQo+IAktIFByb2Nlc3NpbmcgaG90 a2V5cw0KPiANCj4gDQo+IEFzIGZvciBNaWtlJ3MgcXVlc3Rpb24sIFllcyBJIHRoaW5rIHRoZSBU UlVFIGJlaGF2aW9yIGlzIHRoZSBjb3JyZWN0IGJlaGF2aW9yIGFuZCBJIHdvdWxkIGJlIGhhcHB5 IHRvIGhhdmUgaXQgYmUgdGhhdCB3YXkgYWx3YXlzDQo+IHdpdGhvdXQgYSBQQ0QgKHNlZSBteSBk aXNjdXNzaW9uIGFib3ZlKSwgYnV0IHNpbmNlIGl0J3MgcG9zc2libGUgdGhhdCBzb21lb25lIHNv bWV3aGVyZSB3YXMgcmVseWluZyBvbiB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgSQ0KPiBkaWRuJ3Qg d2FudCB0byBicmVhayB0aGVtLiBJIGNhbid0IHRoaW5rIG9mIGFueSBhZHZhbnRhZ2UgdGhlIGV4 aXN0aW5nIChGQUxTRSkgYmVoYXZpb3IgaGFzLCBidXQgdGhhdCBiZWhhdmlvciBkb2VzIHNlZW0g dG8gYmUNCj4gaW50ZW50aW9uYWwgYmFzZWQgb24gUmF5J3MgcmVzcG9uc2UuDQo+IA0KPiANCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmksIFJheSA8cmF5Lm5pQGludGVs LmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgMTA6NDIgUE0NCj4gVG86 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvOyBKZXNodWEgU21pdGggPGplc2h1YXNAbnZpZGlhLmNvbT47IERlbWV0ZXIs IE1pa2kNCj4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBH YW8sIFpoaWNoYW8NCj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtl ZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxsb3cgUGxhdGZvcm1Cb290TWFuYWdl ckxpYiB0byB1c2UgQm9vdE5leHQNCj4gDQo+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBv cGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+IA0KPiANCj4gSXQncyB0aGUgaW50ZW50aW9u IHRvIGNhY2hlIEJvb3ROZXh0IHRvIGF2b2lkIEJvb3ROZXh0IGNoYW5nZSBmcm9tIFBsYXRmb3Jt Qm9vdE1hbmFnZXJMaWIgdGFraW5nIGFmZmVjdCBpbiB0aGlzIGJvb3QuDQo+IFBlciBzcGVjLCBC b290TmV4dCBzZWxlY3RzIHRoZSBib290IG9wdGlvbiBvZiBuZXh0IGJvb3QuDQo+IElmIFBsYXRm b3JtQm9vdE1hbmFnZXJMaWIgd2FudHMgdG8gY2hhbmdlIHRoZSBib290IG9wdGlvbiBmb3IgdGhp cyBib290LCBlaXRoZXIgaXQgY2FuIGNoYW5nZSB0aGUgQm9vdE9yZGVyLCBvciBpdCBjYW4gdXNl DQo+IEVmaUJvb3RNYW5hZ2VyQm9vdCgpIEFQSSB0byBib290IGRpcmVjdGx5Lg0KPiANCj4gDQo+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU2VudDogRnJpZGF5LCBGZWJydWFy eSAxMCwgMjAyMyAxMTo1MCBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgamVzaHVh c0BudmlkaWEuY29tOyBEZW1ldGVyLCBNaWtpDQo+ID4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+ OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4gPGppYW4uai53 YW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBH YW8sDQo+ID4gWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+IENjOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6 IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxsb3cNCj4gPiBQbGF0Zm9ybUJv b3RNYW5hZ2VyTGliIHRvIHVzZSBCb290TmV4dA0KPiA+DQo+ID4gSGkgSmVzaHVhLA0KPiA+DQo+ ID4gSSBwcmVmZXIgdG8gbm90IGFkZCBtb3JlIFBDRHMgaWYgaXQgY2FuIGJlIGF2b2lkZWQuDQo+ ID4NCj4gPiBEbyB5b3UgdGhpbmsgdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgYSBidWcvZ2FwIGFu ZCB0aGF0IHRoZSBwcm9wb3NlZA0KPiA+IG5ldyBiZWhhdmlvciB3aGVuIHRoZSBQQ0QgaXMgVFJV RSBpcyB0aGUgY29ycmVjdCBiZWhhdmlvcj8NCj4gPg0KPiA+IFdoYXQgd291bGQgYmUgdGhlIGlt cGFjdCBvZiBub3QgYWRkaW5nIHRoZSBQQ0QgYW5kIGp1c3QgaW1wbGVtZW50aW5nDQo+ID4gdGhl IG5ldyBiZWhhdmlvcj8NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVs QGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiBKZXNodWEgU21pdGggdmlhIGdyb3Vw cy5pbw0KPiA+ID4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgMTI6MDEgUE0NCj4g PiA+IFRvOiBEZW1ldGVyLCBNaWtpIDxtaWtpLmRlbWV0ZXJAaW50ZWwuY29tPg0KPiA+ID4gQ2M6 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBTdWJqZWN0OiBGVzogW2VkazItZGV2ZWxdIFtQ QVRDSF0gTWRlTW9kdWxlUGtnOiBhbGxvdw0KPiA+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8g dXNlIEJvb3ROZXh0DQo+ID4gPg0KPiA+ID4gTWlraSwgdGhpcyBwYXRjaCwgYXMgd2VsbCBhcyBt eSBxdWVyaWVzIG9uIHRoZSBtYWlsaW5nIGxpc3QgYWJvdXQNCj4gPiA+IHRoaXMgdG9waWMNCj4g PiBwcmlvciB0byB0aGUgcGF0Y2gsIGhhc24ndCByZWNlaXZlZCBhbnkgcmVzcG9uc2Ugb24NCj4g PiA+IHRoZSBtYWlsaW5nIGxpc3QuIE9uZSBraW5kIHBlcnNvbiBkaWQgcmVzcG9uZCBwcml2YXRl bHkgd2l0aCBzb21lDQo+ID4gaW5mb3JtYXRpb24gYWJvdXQgbXkgcXVlc3Rpb25zLg0KPiA+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+IEplc2h1 YSBTbWl0aCB2aWEgZ3JvdXBzLmlvDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAxOSwg MjAyMyAxMDozNiBBTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzog amlhbi5qLndhbmdAaW50ZWwuY29tOyBnYW9saW1pbmdAYnlvc29mdC5jb20uY247DQo+ID4gemhp Y2hhby5nYW9AaW50ZWwuY29tOyByYXkubmlAaW50ZWwuY29tOyBKZXNodWEgU21pdGgNCj4gPiA8 amVzaHVhc0BudmlkaWEuY29tPg0KPiA+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSF0g TWRlTW9kdWxlUGtnOiBhbGxvdw0KPiA+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gdXNlIEJv b3ROZXh0DQo+ID4gPg0KPiA+ID4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcg bGlua3Mgb3IgYXR0YWNobWVudHMNCj4gPiA+DQo+ID4gPg0KPiA+ID4gQ3VycmVudGx5IEJkc0Vu dHJ5IGNhY2hlcyBCb290TmV4dCBiZWZvcmUgY2FsbGluZw0KPiA+IFBsYXRmb3JtQm9vdE1hbmFn ZXJMaWIgQVBJcywgd2l0aCB0aGUgcmVzdWx0IHRoYXQ6DQo+ID4gPiAtIElmIEJvb3ROZXh0IGlz IGFscmVhZHkgc2V0LCBhIEJvb3ROZXh0IHZhbHVlIHdyaXR0ZW4gYnkgdGhlIEFQSXMNCj4gPiA+ IHdpbGwgYmUNCj4gPiBpZ25vcmVkIGFuZCBkZWxldGVkLCBhbmQgdGhlIGN1cnJlbnQgYm9vdCB3 aWxsIHVzZQ0KPiA+ID4gdGhlIGNhY2hlZCBCb290TmV4dCB2YWx1ZS4NCj4gPiA+IC0gSWYgQm9v dE5leHQgaXMgbm90IHByZXNlbnQsIGEgQm9vdE5leHQgdmFsdWUgd3JpdHRlbiBieSB0aGUgQVBJ cw0KPiA+ID4gd2lsbCBoYXZlDQo+ID4gbm8gZWZmZWN0IG9uIHRoZSBjdXJyZW50IGJvb3QsIGJ1 dCB3aWxsIGJlIHVzZWQgYnkNCj4gPiA+IHRoZSBuZXh0IGJvb3QuDQo+ID4gPg0KPiA+ID4gVGhp cyBwYXRjaCBhZGRzIFBjZEFsbG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290TWFuYWdlckxpYiBz byB0aGF0IGENCj4gPiBwbGF0Zm9ybSBjYW4gZW5hYmxlIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIg QVBJIGNhbGxzIHRvIHNldA0KPiA+ID4gQm9vdE5leHQgdG8gY29udHJvbCB0aGUgY3VycmVudCBi b290Lg0KPiA+ID4gLSBJZiB0aGUgUENEIGlzIEZBTFNFIChkZWZhdWx0KSwgdGhlcmUgaXMgbm8g Y2hhbmdlLg0KPiA+ID4gLSBJZiB0aGUgUENEIGlzIFRSVUUsIHRoZW4gYSBCb290TmV4dCB2YWx1 ZSB3cml0dGVuIGJ5IHRoZQ0KPiA+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgQVBJcyB3aWxsIGFm ZmVjdCB0aGUgY3VycmVudCBib290Lg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEplc2h1 YSBTbWl0aCA8amVzaHVhc0BudmlkaWEuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgTWRlTW9kdWxl UGtnL01kZU1vZHVsZVBrZy5kZWMgICAgICAgICAgICB8ICA3ICsrKysrDQo+ID4gPiAgTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRHhlLmluZiB8IDI3ICsrKysrKysrKystLS0tLS0t LS0NCj4gPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jIHwgMzQNCj4g PiA+ICsrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNDcg aW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBh L01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gYi9NZGVNb2R1bGVQa2cvTWRlTW9k dWxlUGtnLmRlYyBpbmRleCA5NjA1YzYxN2I3Li4wZTc0MTMxNzEyDQo+ID4gMTAwNjQ0DQo+ID4g PiAtLS0gYS9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gKysrIGIvTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiA+IEBAIC0xMDkzLDYgKzEwOTMsMTMgQEANCj4g PiA+ICAgICMgQFByb21wdCBFbmFibGUgVUVGSSBTdGFjayBHdWFyZC4NCj4gPiA+DQo+ID4gZ0Vm aU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmR8RkFMU0V8Qk9PTEVB TnwwDQo+ID4geDMwMDAxMDU1DQo+ID4gPg0KPiA+ID4gKyAgIyMgSW5kaWNhdGVzIHdoZXRoZXIg UGxhdGZvcm1Cb290TWFuYWdlckxpYiBjb2RlIGNhbiBzZXQgQm9vdE5leHQNCj4gPiBmb3IgdGhl IGN1cnJlbnQgYm9vdC4NCj4gPiA+ICsgICMgIElmIGVuYWJsZWQsIHNldHRpbmcgQm9vdE5leHQg aW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYg0KPiA+ID4gKyBjb250cm9scyB0aGUNCj4gPiBjdXJy ZW50IGJvb3QuPEJSPjxCUj4NCj4gPiA+ICsgICMgICBUUlVFICAtIEJvb3ROZXh0IHZhbHVlIGZy b20gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB3aWxsIGFmZmVjdCB0aGUNCj4gPiBjdXJyZW50IGJv b3QuPEJSPg0KPiA+ID4gKyAgIyAgIEZBTFNFIC0gQm9vdE5leHQgdmFsdWUgZnJvbSBQbGF0Zm9y bUJvb3RNYW5hZ2VyTGliIHdpbGwgYWZmZWN0IHRoZQ0KPiA+IHN1YnNlcXVlbnQgYm9vdCAob3Ig YmUgaWdub3JlZCBpZiBhbHJlYWR5IHNldCkuPEJSPg0KPiA+ID4gKyAgIyBAUHJvbXB0IEFsbG93 IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gc2V0IEJvb3ROZXh0IGZvciB0aGUNCj4gPiBjdXJy ZW50IGJvb3QuDQo+ID4gPiArDQo+ID4gPiArDQo+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEFsbG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290TQ0KPiA+IGFuYWdlcg0KPiA+ ID4gKyBMaWJ8RkFMU0V8Qk9PTEVBTnwweDMwMDAxMDU2DQo+ID4gPiArDQo+ID4gPiAgW1BjZHNG aXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4gPiA+ICAgICMjIER5bmFtaWMg dHlwZSBQQ0QgY2FuIGJlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBjZA0KPiA+ ID4gc2V0dGluZw0KPiA+IGFjdGlvbi4NCj4gPiA+ICAgICMgIFBjZE1heFBlaVBjZENhbGxCYWNr TnVtYmVyUGVyUGNkRW50cnkgaW5kaWNhdGVzIHRoZSBtYXhpbXVtDQo+ID4gbnVtYmVyIG9mIGNh bGxiYWNrIGZ1bmN0aW9uIGRpZmYgLS1naXQNCj4gPiA+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9CZHNEeGUvQmRzRHhlLmluZg0KPiA+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUv QmRzRHhlLmluZg0KPiA+ID4gaW5kZXggNWJhYzYzNWRlZi4uYjdhMzU2MGY1ZiAxMDA2NDQNCj4g PiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0R4ZS5pbmYNCj4gPiA+ ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0R4ZS5pbmYNCj4gPiA+IEBA IC04NSwxOSArODUsMjAgQEANCj4gPiA+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RV ZWZpVmFyaWFibGVEZWZhdWx0TGFuZ0RlcHJlY2F0ZSAgICAjIw0KPiA+IENPTlNVTUVTDQo+ID4g Pg0KPiA+ID4gIFtQY2RdDQo+ID4gPiAtICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVm aVZhcmlhYmxlRGVmYXVsdExhbmdDb2RlcyAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4g PiA+IC0gIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0TGFu ZyAgICAgICAgICAgICAgICAgIyMNCj4gPiBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiA+IC0gIGdF ZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0UGxhdGZvcm1MYW5n Q29kZXMNCj4gPiAjIyBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZFVlZmlWYXJpYWJsZURlZmF1bHRQbGF0Zm9ybUxhbmcgICAgICAgICAjIw0KPiA+IENPTlNV TUVTDQo+ID4gPiAtICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkSGFyZHdhcmVFcnJvclJl Y29yZExldmVsICAgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlN ZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RQbGF0Zm9ybUJvb3RUaW1lT3V0ICAgICAgICAgICAgICAg ICAgICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEZpcm13YXJlVmVuZG9yICAgICAgICAgICAgICAgICAgICAjIw0KPiA+IENPTlNV TUVTDQo+ID4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmlybXdhcmVS ZXZpc2lvbiAgICAgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDb25JbkNvbm5lY3RPbkRlbWFuZA0KPiA+ICMj IENPTlNVTUVTDQo+ID4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRXJy b3JDb2RlU2V0VmFyaWFibGUgICAgICAgICAgICAgICMjDQo+ID4gU09NRVRJTUVTX0NPTlNVTUVT DQo+ID4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVGVzdEtleVVzZWQg ICAgICAgICAgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+IC0gIGdFZmlNZGVN b2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDYXBzdWxlT25EaXNrU3VwcG9ydCAgICAgICAgICAg ICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFBsYXRmb3JtUmVjb3ZlcnlTdXBwb3J0DQo+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ICsg IGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0TGFuZ0NvZGVz DQo+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RV ZWZpVmFyaWFibGVEZWZhdWx0TGFuZyAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4gPiBTT01F VElNRVNfQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZp VmFyaWFibGVEZWZhdWx0UGxhdGZvcm1MYW5nQ29kZXMNCj4gPiAjIyBDT05TVU1FUw0KPiA+ID4g KyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVlZmlWYXJpYWJsZURlZmF1bHRQbGF0Zm9y bUxhbmcNCj4gPiAjIyBDT05TVU1FUw0KPiA+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZEhhcmR3YXJlRXJyb3JSZWNvcmRMZXZlbA0KPiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBn RWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkUGxhdGZvcm1Cb290VGltZU91dCAgICAgICAgICAg ICAgICAgICAgICAgICAgICMjDQo+ID4gQ09OU1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RGaXJtd2FyZVZlbmRvcg0KPiA+ICMjIENPTlNVTUVTDQo+ID4g PiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmlybXdhcmVSZXZpc2lvbg0K PiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQu UGNkQ29uSW5Db25uZWN0T25EZW1hbmQNCj4gPiAjIyBDT05TVU1FUw0KPiA+ID4gKyAgZ0VmaU1k ZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVycm9yQ29kZVNldFZhcmlhYmxlDQo+ID4gIyMg U09NRVRJTUVTX0NPTlNVTUVTDQo+ID4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkVGVzdEtleVVzZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjDQo+ID4gQ09O U1VNRVMNCj4gPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDYXBzdWxl T25EaXNrU3VwcG9ydA0KPiA+ICMjIENPTlNVTUVTDQo+ID4gPiArICBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkUGxhdGZvcm1SZWNvdmVyeVN1cHBvcnQNCj4gPiAjIyBDT05TVU1F Uw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RBbGxvd0Jvb3ROZXh0RnJvbVBsYXRmb3JtQm9vdE0NCj4gPiBhbmFnZXINCj4gPiA+ICsgTGli ICMjIENPTlNVTUVTDQo+ID4gPg0KPiA+ID4gIFtEZXBleF0NCj4gPiA+ICAgIFRSVUUNCj4gPiA+ IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jDQo+ ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jDQo+ID4gPiBpbmRl eCA3NjZkZGUzYWFlLi42NDUwNDA2Y2NlIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9CZHNEeGUvQmRzRW50cnkuYw0KPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9CZHNEeGUvQmRzRW50cnkuYw0KPiA+ID4gQEAgLTc4NywxNSArNzg3LDE5IEBAIEJk c0VudHJ5ICgNCj4gPiA+DQo+ID4gPiAgICAvLw0KPiA+ID4gICAgLy8gQ2FjaGUgdGhlICJCb290 TmV4dCIgTlYgdmFyaWFibGUgYmVmb3JlIGNhbGxpbmcgYW55DQo+ID4gUGxhdGZvcm1Cb290TWFu YWdlckxpYiBBUElzDQo+ID4gPiAtICAvLyBUaGlzIGNvdWxkIGF2b2lkIHRoZSAiQm9vdE5leHQi IHNldCBieSBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliDQo+ID4gPiBiZQ0KPiA+IGNvbnN1bWVkIGlu IHRoaXMgYm9vdC4NCj4gPiA+IC0gIC8vDQo+ID4gPiAtICBHZXRFZmlHbG9iYWxWYXJpYWJsZTIg KEVGSV9CT09UX05FWFRfVkFSSUFCTEVfTkFNRSwgKFZPSUQNCj4gPiAqKikmQm9vdE5leHQsICZE YXRhU2l6ZSk7DQo+ID4gPiAtICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ ID4gPiAtICAgIGlmIChCb290TmV4dCAhPSBOVUxMKSB7DQo+ID4gPiAtICAgICAgRnJlZVBvb2wg KEJvb3ROZXh0KTsNCj4gPiA+IC0gICAgfQ0KPiA+ID4gKyAgLy8gaWYgdGhlIFBsYXRmb3JtIGlz bid0IGFsbG93ZWQgdG8gb3ZlcnJpZGUgQm9vdE5leHQuDQo+ID4gPiArICAvLyBJZiAiQm9vdE5l eHQiIHdhcyBhbHJlYWR5IHNldCwgYSAiQm9vdE5leHQiIHZhbHVlIHNldCBpbg0KPiA+ID4gKyBQ bGF0Zm9ybUJvb3RNYW5hZ2VyTGliIEFQSXMgIC8vIHdpbGwgYmUgaWdub3JlZDsgb3RoZXJ3aXNl IGl0IHdpbGwNCj4gPiA+ICsgbm90DQo+ID4gdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgYm9v dC4NCj4gPiA+ICsgIC8vDQo+ID4gPiArICBpZiAoIVBjZEdldEJvb2wgKFBjZEFsbG93Qm9vdE5l eHRGcm9tUGxhdGZvcm1Cb290TWFuYWdlckxpYikpIHsNCj4gPiA+ICsgICAgR2V0RWZpR2xvYmFs VmFyaWFibGUyIChFRklfQk9PVF9ORVhUX1ZBUklBQkxFX05BTUUsIChWT0lEDQo+ID4gKiopJkJv b3ROZXh0LCAmRGF0YVNpemUpOw0KPiA+ID4gKyAgICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChV SU5UMTYpKSB7DQo+ID4gPiArICAgICAgaWYgKEJvb3ROZXh0ICE9IE5VTEwpIHsNCj4gPiA+ICsg ICAgICAgIEZyZWVQb29sIChCb290TmV4dCk7DQo+ID4gPiArICAgICAgfQ0KPiA+ID4NCj4gPiA+ IC0gICAgQm9vdE5leHQgPSBOVUxMOw0KPiA+ID4gKyAgICAgIEJvb3ROZXh0ID0gTlVMTDsNCj4g PiA+ICsgICAgfQ0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+ICAgIC8vDQo+ID4gPiBAQCAtMTA0 OCw2ICsxMDUyLDIwIEBAIEJkc0VudHJ5ICgNCj4gPiA+DQo+ID4gPiAgICAgIEVmaUJvb3RNYW5h Z2VySG90a2V5Qm9vdCAoKTsNCj4gPiA+DQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAgIC8vIElm IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgQVBJcyBhcmUgYWxsb3dlZCB0byBvdmVycmlkZQ0KPiA+ ID4gKyBCb290TmV4dCwNCj4gPiByZWFkIGl0IGp1c3QgYmVmb3JlIHVzZQ0KPiA+ID4gKyAgICAv Lw0KPiA+ID4gKyAgICBpZiAoUGNkR2V0Qm9vbCAoUGNkQWxsb3dCb290TmV4dEZyb21QbGF0Zm9y bUJvb3RNYW5hZ2VyTGliKSkgew0KPiA+ID4gKyAgICAgIEdldEVmaUdsb2JhbFZhcmlhYmxlMiAo RUZJX0JPT1RfTkVYVF9WQVJJQUJMRV9OQU1FLCAoVk9JRA0KPiA+ICoqKSZCb290TmV4dCwgJkRh dGFTaXplKTsNCj4gPiA+ICsgICAgICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7 DQo+ID4gPiArICAgICAgICBpZiAoQm9vdE5leHQgIT0gTlVMTCkgew0KPiA+ID4gKyAgICAgICAg ICBGcmVlUG9vbCAoQm9vdE5leHQpOw0KPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gKw0KPiA+ID4g KyAgICAgICAgQm9vdE5leHQgPSBOVUxMOw0KPiA+ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0K PiA+ID4gKw0KPiA+ID4gICAgICBpZiAoQm9vdE5leHQgIT0gTlVMTCkgew0KPiA+ID4gICAgICAg IC8vDQo+ID4gPiAgICAgICAgLy8gRGVsZXRlICJCb290TmV4dCIgTlYgdmFyaWFibGUgYmVmb3Jl IHRyYW5zZmVycmluZyBjb250cm9sDQo+ID4gPiB0byBpdCB0bw0KPiA+IHByZXZlbnQgbG9vcHMu DQo+ID4gPiAtLQ0KPiA+ID4gMi4xNy4xDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IA0KPiA+ID4NCg0K