From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web11.4219.1612500763745493091 for ; Thu, 04 Feb 2021 20:52:44 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=IHlDn86w; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) IronPort-SDR: AshoFZCoR7TmLiWEcDHM4ZzBvE/I3D9QPj/uZwJwk54z3dFaZs4g4Qub43DOA1lPBbeYFk2KAB sDWDesLV8vdA== X-IronPort-AV: E=McAfee;i="6000,8403,9885"; a="168494391" X-IronPort-AV: E=Sophos;i="5.81,154,1610438400"; d="scan'208";a="168494391" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2021 20:52:42 -0800 IronPort-SDR: kHXNF8TF3ulZoQyZf47NGN5dcw/QbhvupWZ0MFJevttc9TFsFQT8KJR58Sw9vpN/PHPa2GNQ/k 8mmFagXxWmZw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,154,1610438400"; d="scan'208";a="415659067" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga002.fm.intel.com with ESMTP; 04 Feb 2021 20:52:42 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 4 Feb 2021 20:52:41 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 4 Feb 2021 20:52:41 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Thu, 4 Feb 2021 20:52:41 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 4 Feb 2021 20:52:38 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=emxj5TArbl7n0a322X6rC0E/b39mTduFPPaC8IaBlZtqj1930BhIkK4MlEPnP4Wf0/LDjW0bv/j2hG3SEPXv8FFI9fyMuOL1cqjYFN8z/mpuDuZZmu2rJLg3ZBoUm4JjFQkWYPSvf/sprCdbjM30Dly/3aSurkC5QVBAIASWZJZNTcGNBhGSLTqDDL8cNVhrbIUgo6nFqiK893/geT22Tfi7WriCgZ1jrwPcs0YtQK1bzq0CS2fv47otvjl8mnCJcnoIKNkU6mPzFameVgBMZKGmO4mIb2UZnDJtrIIACkXxc5imdIXI5OLzETxUeYhG3Icc7dU8slVviWNW4gwqTw== 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=c8vCrVPUHrUwyjLoG2U1LrKdCsOD2Z8JtdGHXU079bM=; b=IY9iUe5Arqd/wOqdzfCW6tt6my0TR4fkfCKyEjamhJrMYplwRmxC1DCo7jOHAU3ImhVRDnT109F3NTpPeW4dZun8Kd43pwgrnLbyjrgXOTqV9KbnMkLuSVwRwzSVSIL+XossgbPDeOPvcU055CT6SLMWFIGEHFGVoz3mprNQ3ZS55JZi5WhgLAKY6OBI+VAJMHUlI/kWsQyhLDDALAqvY7i7POMrXD2rVpx9+6IpNUG22YBFBFzL5UBHEmPZtTuvozWrJV8XzbFl3VtWwiuBxHVrFKP3cGfcgkyFxbtauu+XymWT2iax99SEInWQvx0n8d1qxlBetvK08kgd5+j1SA== 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=c8vCrVPUHrUwyjLoG2U1LrKdCsOD2Z8JtdGHXU079bM=; b=IHlDn86wAdDIWKPZ63UC9pCtTP1HPPTLH8I+8SfJbJWxUkbNiefJtBRiWH9A+RMKrVwcPUdnRUsTAeKVDI3KtkiOYaGnK+NMRaATD2VcEA+oi2U1LYOa9ccdpl/HLhEXc+8ra2fTcTHTfasTvVPncvsmGipV0hIa7c6P3YiQhl4= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MWHPR11MB1343.namprd11.prod.outlook.com (2603:10b6:300:20::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.20; Fri, 5 Feb 2021 04:51:36 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95%7]) with mapi id 15.20.3825.023; Fri, 5 Feb 2021 04:51:36 +0000 From: "Ni, Ray" To: "Fu, Siyuan" , "Li, Aaron" , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" Subject: Re: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Topic: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Index: AQHW+fsM+AI8ypuFtEaGVMIULas9oKpHfHSAgAABIHCAAYOXkA== Date: Fri, 5 Feb 2021 04:51:36 +0000 Message-ID: References: <20210203070554.1981-1-aaron.li@intel.com> In-Reply-To: Accept-Language: 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.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0c97ec3f-6cd3-4313-df1b-08d8c991b7f0 x-ms-traffictypediagnostic: MWHPR11MB1343: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +ho5YDxm3lF4gUc34qKNrYk4coX6d+ptlu/4KTt47ZCBrPfAVwQUOI8U/MBDNEpgzlB5/c2i7G/DLiZAlWW/FC/AC4OGxl6fagwMqp1nh5VklNDD5BsmIObKYMDNdpJ6ocqAAPF+RMhhefVyyHtY/sfKbi5k9kwaoJ9jhOjXlNCxRPitT0NQOhyjV+VCi2gj/C9C/WNu9A6pdtup9V4xhX0m4zTAChpuUdjqqgDqNDwQeuZfsoSjS9i4HfSRxHesOEBETLpf3L2S4dV1kPx3MzH7Rx2xqR1QSrsqRx6BFK/tHFr6iHird15VSqhErn0l1uH1BS+HFUmTkm5gVbulrav/j479OTb5yytx1WdeLk2kKs444dzTR4IlyUNL4N+W0ZqonZcJpoP1e8J55YnxewcJjppCHyU2lTcYS/m8WawVh4XljlejcE/w7ZG5TCkGdLeeCsSWjox5J/hYTcRPEBpD4+DtI5vgHfRP3g7PWrvAHkv3uRVmC85hvk35I1ZuaDOofX/EN0knM/7125gbP3UqMXTQaoNXDfR6o+AP/a7Z+ySZO4imazfQPdh4B+XgycJ3feobLnBM6/+9tfTBYQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(136003)(376002)(366004)(346002)(396003)(9686003)(316002)(76116006)(478600001)(7696005)(110136005)(6506007)(53546011)(55016002)(15650500001)(8936002)(66446008)(52536014)(2906002)(66946007)(5660300002)(33656002)(26005)(186003)(71200400001)(4326008)(107886003)(86362001)(83380400001)(966005)(66476007)(64756008)(66556008)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?bmlXNGczSWRwVDVJLy9YYTVXWWJwOSt1UUtsVGhGOGJrMi9BZmFxOFN4Z09E?= =?gb2312?B?WTNDWUtxMVpmSjNSdi9OZHdZcXlzMkJhZ213UUNmdEIzMUluQVNwTHlPTUR0?= =?gb2312?B?NEV5QXc3UDVUVjVGVTJwTWhaYnVsUUVycmhJQXpwQ1JycGkzVHFWblhRWTZs?= =?gb2312?B?NW1OLzVnQTRYekpwTjBxTUI1OW55WlA3b2F2ajVYdThDWnZ5enRnUnorV2th?= =?gb2312?B?RWhCUWQrVGRXSTYyOXJoSm8xaEFVYnhCaW9JeGRNNmlIMy83Wk1MV3A2NCtm?= =?gb2312?B?cVczZXZvVSsycHlMNzNyZEd3RlNxemFRYUFlS29sd0g3dzZmcG1qUktRWXMx?= =?gb2312?B?eHdYUGVUTUpVd00zeEdHaGJOWGlES3p1Y3hCYWxmVkhMT2lNT2FteEFNZWht?= =?gb2312?B?ZEFxUkhaM0RHcWV5ZGMrZzBaam1EY3dYejR3UTlmcXFlc1Nrc3M5cndRZVI0?= =?gb2312?B?clF5SVBNUlhraW4xMHVBdVNmTjZvdGM1V1F5WW1NMmJSakwvQWJualF5bm5u?= =?gb2312?B?SU5JeWNNNmZWd3lFcisyN0wxUVM4ZkNOL1RraFcwSXgvdVp5WjQ2eWZiTjB6?= =?gb2312?B?UnR2NG9XTllldlFQZzU2VVc1dW8rdlkveXVobUtPSVhqdStlaUR4dEgrTlZh?= =?gb2312?B?c0FoRld2K0dveFBqSzJFcnJTRzhPY3RJL3FKODF2Tk54SURoU2V6MWtsR3JP?= =?gb2312?B?SC9EeXBocWF2UWRsYmVXOWh3MEZWNVpobFNCdDg1ZElNQ0xHTmVWUDJZeC9F?= =?gb2312?B?ZUZwd0lkVnJlbzFpUkphMkVqSnUxSVV1N0xrQVhUTlJjWlRFTlJHV3ZrZVRY?= =?gb2312?B?TDRXNzZiN0NpbVptdXNFUXVsYmhlWWE3SnRZYmVUTlZOYWYrYVhaWjNhUjlO?= =?gb2312?B?cEF0eTI5bkl1anp6SlV1WTZ6Sm5qU2RKTDZTUGxoRDI5VzBIbU5XTWhybDh3?= =?gb2312?B?aEpIZHNVVkorVWZPc2tnS0xxUkEyZVJ1OXZUNG5ZRmU5dWpzTm02YTQ2QkRo?= =?gb2312?B?dUFYSHE5RDRuZGRld1dIRGZCZm9MaFZKU3NIanJEK2Z4eHhFNExYanhnUFBt?= =?gb2312?B?WFQxVG5VaUFnRGxBM3pGZmV5M1NhMXZpY0VsSHdUMDk2ZEhQdTJodmJ5YXdH?= =?gb2312?B?UUNoR3FJNDNsZk1CMTdpSnBENFJNTW5Qb0JmVGpoNFB2WS85V25Jc0ZYMDFY?= =?gb2312?B?VDNTSFBDVVQxNndlVEk5QmdHQ1ZsdG1PTVNFRGh3SkhFZm9mdU50Q0RvWENT?= =?gb2312?B?Z0x4U0VHaXZoclVFRjk5N3dVOXBUMWJMUzgrYk5ZekZjR3pTN1U1S1Qwclpp?= =?gb2312?B?eUhCTEY5b0dPSHhFOGJ4SExoanREQUhTakFyNXRVc3Vvc0dLN1I1WDgyUk5o?= =?gb2312?B?QkwzS1h6TTNGTTN3Uzk1cTM3YnNrYytIZGlYQlZlN0Z6L09LTjBCODFaRXM1?= =?gb2312?B?cW83ZWtYZ2xDZHY5K0hBa3RYMG5SOUppRVNOMmNWY2tKQmwvTHgrWndHMzVU?= =?gb2312?B?QVRqdWNPbStUWi9YZmVsdnFoZlRlbDJlWVE5OEZvRDhXZHFmM1dNRVY3ZFlh?= =?gb2312?B?VWE4MUxSMUFDK3VMMWk2a1g4bmtMb2Z2MmdiM1lmNjQvSE5pN3lPMzVZWE9s?= =?gb2312?B?MHFEVmEvMkpldHpYNEFGaXdxb1BCWFR1cXQ4V0U4YmFDNGR2Zjl0TEs5ZWZo?= =?gb2312?B?UCt1RExOdnhOZFhFLzZlYzFicE1oSk5jV0FvOWdWTWNGNk5IYjhkV0N5RmRl?= =?gb2312?Q?HvX/sGi7vHg3l5Xp/Z7bTntdxbaP1TyjPhGJ9V/?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c97ec3f-6cd3-4313-df1b-08d8c991b7f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2021 04:51:36.4898 (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: DPq5DyuM6k+IWCgbMCKfrpecq7OJvKPIg5O0M81mTsxRlSFYdvX9mv4A3860G13BpmAaL2LqryQFBKWobqY6Ew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1343 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UHVzaGVkLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pLCBSYXkN Cj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDQsIDIwMjEgMTo0NCBQTQ0KPiBUbzogRnUsIFNp eXVhbiA8c2l5dWFuLmZ1QGludGVsLmNvbT47IExpLCBBYXJvbiA8YWFyb24ubGlAaW50ZWwuY29t PjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxy YW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2MSAx LzFdIEludGVsU2lsaWNvblBrZy9TaGFkb3dNaWNyb2NvZGVQZWk6IEFkZA0KPiBtaWNyb2NvZGUg aGVhZGVyIHZlcmlmaWNhdGlvbi4NCj4gDQo+IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBp bnRlbC5jb20+DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog RnUsIFNpeXVhbiA8c2l5dWFuLmZ1QGludGVsLmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgRmVi cnVhcnkgNCwgMjAyMSAxOjQwIFBNDQo+ID4gVG86IExpLCBBYXJvbiA8YWFyb24ubGlAaW50ZWwu Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVs LmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWDQo+ID4gPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50 ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjEgMS8xXSBJbnRlbFNpbGljb25Qa2cv U2hhZG93TWljcm9jb2RlUGVpOiBBZGQNCj4gPiBtaWNyb2NvZGUgaGVhZGVyIHZlcmlmaWNhdGlv bi4NCj4gPg0KPiA+IFJldmlld2VkLWJ5OiBTaXl1YW4gRnUgPHNpeXVhbi5mdUBpbnRlbC5jb20+ DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMaSwg QWFyb24gPGFhcm9uLmxpQGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IDIwMjHE6jLUwjPI1SAxNTow Ng0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWDQo+ID4gPiA8cmFuZ2FzYWkudi5j aGFnYW50eUBpbnRlbC5jb20+OyBGdSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+ ID4gU3ViamVjdDogW1BBVENIIHYxIDEvMV0gSW50ZWxTaWxpY29uUGtnL1NoYWRvd01pY3JvY29k ZVBlaTogQWRkDQo+ID4gbWljcm9jb2RlDQo+ID4gPiBoZWFkZXIgdmVyaWZpY2F0aW9uLg0KPiA+ ID4NCj4gPiA+IEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTMxOTYNCj4gPiA+DQo+ID4gPiBNaWNyb2NvZGUgaGVhZGVyIHNob3VsZCBiZSBjaGVja2Vk IGJlZm9yZSBjYWxsaW5nDQo+ID4gPiBJc01pY3JvY29kZVBhdGNoTmVlZExvYWQoKS4gVGhpcyBp cyB0byBtYWtlIHN1cmUgZ2FyYmFnZSB2YWx1ZSBhZnRlcg0KPiA+ID4gcmVtb3ZlIG1pY3JvY29k ZSBmcm9tIEZWIHdvdWxkIG5vdCBjYXVzZSBzdGFjayBvdmVyZmxvdyBpbg0KPiA+ID4gSXNNaWNy b2NvZGVQYXRjaE5lZWRMb2FkKCkuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogQWFyb24g TGkgPGFhcm9uLmxpQGludGVsLmNvbT4NCj4gPiA+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5j b20+DQo+ID4gPiBDYzogUmFuZ2FzYWkgViBDaGFnYW50eSA8cmFuZ2FzYWkudi5jaGFnYW50eUBp bnRlbC5jb20+DQo+ID4gPiBDYzogU2l5dWFuIEZ1IDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+ ID4gLS0tDQo+ID4gPg0KPiA+ID4NCj4gPg0KPiBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9GZWF0dXJlL1NoYWRvd01pY3JvY29kZS9TaGFkb3dNaWNyb2NvZGVQDQo+ID4gZWkuYw0KPiA+ ID4gfCAzMCArKysrKysrKysrKysrKysrKysrLQ0KPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyOSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdA0KPiA+ ID4NCj4gPg0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93 TWljcm9jb2RlL1NoYWRvd01pY3JvY29kDQo+ID4gZVBlDQo+ID4gPiBpLmMNCj4gPiA+DQo+ID4N Cj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1NoYWRvd01pY3JvY29k ZS9TaGFkb3dNaWNyb2NvZA0KPiA+IGVQZQ0KPiA+ID4gaS5jDQo+ID4gPiBpbmRleCAxNDk0Mzk3 YThlMzYuLjk4YTdhZWQ2OTc1NyAxMDA2NDQNCj4gPiA+IC0tLQ0KPiA+ID4NCj4gPg0KPiBhL1Np bGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2RlL1NoYWRv d01pY3JvY29kDQo+ID4gZVBlDQo+ID4gPiBpLmMNCj4gPiA+ICsrKw0KPiA+ID4NCj4gPg0KPiBi L1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2RlL1No YWRvd01pY3JvY29kDQo+ID4gZVBlDQo+ID4gPiBpLmMNCj4gPiA+IEBAIC00MDIsNiArNDAyLDcg QEAgU2hhZG93TWljcm9jb2RlICgNCj4gPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNYXhQYXRjaE51bWJlcjsNCj4gPiA+DQo+ID4gPiAgICBDUFVfTUlDUk9DT0RFX0hF QURFUiAgICAgICAgICAgICAgKk1pY3JvY29kZUVudHJ5UG9pbnQ7DQo+ID4gPg0KPiA+ID4gICAg VUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGNoQ291bnQ7DQo+ID4gPg0KPiA+ ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXplOw0KPiA+ID4N Cj4gPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNpemU7DQo+ ID4gPg0KPiA+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvdGFsTG9h ZFNpemU7DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBAQCAtNDQ2LDcgKzQ0NywzNCBAQCBT aGFkb3dNaWNyb2NvZGUgKA0KPiA+ID4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgRW50cnlO dW07IEluZGV4KyspIHsNCj4gPiA+DQo+ID4gPiAgICAgIGlmIChGaXRFbnRyeVtJbmRleF0uVHlw ZSA9PSBGSVRfVFlQRV8wMV9NSUNST0NPREUpIHsNCj4gPiA+DQo+ID4gPiAgICAgICAgTWljcm9j b2RlRW50cnlQb2ludCA9IChDUFVfTUlDUk9DT0RFX0hFQURFUiAqKSAoVUlOVE4pDQo+ID4gPiBG aXRFbnRyeVtJbmRleF0uQWRkcmVzczsNCj4gPiA+DQo+ID4gPiAtICAgICAgVG90YWxTaXplID0g KE1pY3JvY29kZUVudHJ5UG9pbnQtPkRhdGFTaXplID09IDApID8gMjA0OCA6DQo+ID4gPiBNaWNy b2NvZGVFbnRyeVBvaW50LT5Ub3RhbFNpemU7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4NCj4gPiA+ ICsgICAgICBpZiAoKihVSU5UMzIgKikgTWljcm9jb2RlRW50cnlQb2ludCA9PSAweEZGRkZGRkZG KSB7DQo+ID4gPg0KPiA+ID4gKyAgICAgICAgLy8NCj4gPiA+DQo+ID4gPiArICAgICAgICAvLyBB biBlbXB0eSBzbG90IGZvciByZXNlcnZlZCBtaWNyb2NvZGUgdXBkYXRlLCBza2lwIHRvIGNoZWNr IG5leHQNCj4gPiBlbnRyeS4NCj4gPiA+DQo+ID4gPiArICAgICAgICAvLw0KPiA+ID4NCj4gPiA+ ICsgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4NCj4gPiA+ICsgICAgICB9DQo+ID4gPg0KPiA+ID4g Kw0KPiA+ID4NCj4gPiA+ICsgICAgICBpZiAoTWljcm9jb2RlRW50cnlQb2ludC0+SGVhZGVyVmVy c2lvbiAhPSAweDEpIHsNCj4gPiA+DQo+ID4gPiArICAgICAgICAvLw0KPiA+ID4NCj4gPiA+ICsg ICAgICAgIC8vIE5vdCBhIHZhbGlkIG1pY3JvY29kZSBoZWFkZXIsIHNraXAgdG8gY2hlY2sgbmV4 dCBlbnRyeS4NCj4gPiA+DQo+ID4gPiArICAgICAgICAvLw0KPiA+ID4NCj4gPiA+ICsgICAgICAg IGNvbnRpbnVlOw0KPiA+ID4NCj4gPiA+ICsgICAgICB9DQo+ID4gPg0KPiA+ID4gKw0KPiA+ID4N Cj4gPiA+ICsgICAgICBEYXRhU2l6ZSAgPSBNaWNyb2NvZGVFbnRyeVBvaW50LT5EYXRhU2l6ZTsN Cj4gPiA+DQo+ID4gPiArICAgICAgVG90YWxTaXplID0gKERhdGFTaXplID09IDApID8gMjA0OCA6 IE1pY3JvY29kZUVudHJ5UG9pbnQtPlRvdGFsU2l6ZTsNCj4gPiA+DQo+ID4gPiArICAgICAgaWYg KCAoVUlOVE4pTWljcm9jb2RlRW50cnlQb2ludCA+IChNQVhfQUREUkVTUyAtIFRvdGFsU2l6ZSkg fHwNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICAoRGF0YVNpemUgJiAweDMpICE9IDAgfHwNCj4g PiA+DQo+ID4gPiArICAgICAgICAgICAoVG90YWxTaXplICYgKFNJWkVfMUtCIC0gMSkpICE9IDAg fHwNCj4gPiA+DQo+ID4gPiArICAgICAgICAgICBUb3RhbFNpemUgPCBEYXRhU2l6ZQ0KPiA+ID4N Cj4gPiA+ICsgICAgICAgICkgew0KPiA+ID4NCj4gPiA+ICsgICAgICAgIC8vDQo+ID4gPg0KPiA+ ID4gKyAgICAgICAgLy8gTm90IGEgdmFsaWQgbWljcm9jb2RlIGhlYWRlciwgc2tpcCB0byBjaGVj ayBuZXh0IGVudHJ5Lg0KPiA+ID4NCj4gPiA+ICsgICAgICAgIC8vDQo+ID4gPg0KPiA+ID4gKyAg ICAgICAgY29udGludWU7DQo+ID4gPg0KPiA+ID4gKyAgICAgIH0NCj4gPiA+DQo+ID4gPiArDQo+ ID4gPg0KPiA+ID4gICAgICAgIGlmIChJc01pY3JvY29kZVBhdGNoTmVlZExvYWQgKENwdUlkQ291 bnQsIE1pY3JvY29kZUNwdUlkLA0KPiA+ID4gTWljcm9jb2RlRW50cnlQb2ludCkpIHsNCj4gPiA+ DQo+ID4gPiAgICAgICAgICBQYXRjaEluZm9CdWZmZXJbUGF0Y2hDb3VudF0uQWRkcmVzcyAgICAg PSAoVUlOVE4pDQo+ID4gTWljcm9jb2RlRW50cnlQb2ludDsNCj4gPiA+DQo+ID4gPiAgICAgICAg ICBQYXRjaEluZm9CdWZmZXJbUGF0Y2hDb3VudF0uU2l6ZSAgICAgICAgPSBUb3RhbFNpemU7DQo+ ID4gPg0KPiA+ID4gLS0NCj4gPiA+IDIuMjkuMi53aW5kb3dzLjINCg0K