From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web09.33719.1611564195007333460 for ; Mon, 25 Jan 2021 00:43:15 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Xr9ZrB34; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: star.zeng@intel.com) IronPort-SDR: Naq8tKqNXBbuGN+eQ3leeZnteBKzfaYkHtO3CVKe3+bfr9n3niPfnWWF94fCu0sXpsjF890ZG1 qc2eZW+idZEg== X-IronPort-AV: E=McAfee;i="6000,8403,9874"; a="243764079" X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="243764079" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2021 00:43:14 -0800 IronPort-SDR: r5nKo30FtFywGr7GleoAa6VtOg5yHs65L41NlfzOhWirwavZoYuA3pXeZ73mNzlC8tShY5QhsK rCspO1CSU2ew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="504037805" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga004.jf.intel.com with ESMTP; 25 Jan 2021 00:43:13 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 25 Jan 2021 00:43:13 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.1713.5; Mon, 25 Jan 2021 00:43:12 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 25 Jan 2021 00:43:12 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) 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; Mon, 25 Jan 2021 00:43:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ajl9y8t3908kmT+BpTP8ejxI55eS+Df1SOqRpCPxfyqbM2IlrmC57bMcgVYFW5bwA86RGLxlQsEmxilHWHqmpHL2j/kt8yNX7niOcrY1wgcPmiKoXGCOy+Ntt9/2lS7E6b7eeoK4DAc6Re2NgBiZRgaiQE+WFnHHAe5iNhDkTMXsfdWWr4N13HPCc2Qv2U+9e1Va63iPRk9H6ANCqkLsNDhGo3MGoEgUCA5MnLlJZnPpA2Jzs+PxaTxzYZp+HVAFN3vZ8GUOlZHVh+P7nmLkq2o6+h8AloiuxS//ipZic01rHq4BDhFE4HuShZdulBkkRxfJ/K8LXiLmeHfSncW5zQ== 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=5xE59VUaFRihh1vGRd8pH5R+bdDR5+8GnQi6zf1QjMs=; b=FTba4/V0YxHN2+gA3skfqtZPkathpX6uq7bD3wuQj76K0gP+pL530BcvcV+bb7MjenJ0uivkje0ghpH/dVr77ryjrrame+MYMxvmANWGrxfKl16zQXHNCxeUGgM0quX9w9MR1QigWW+P7dpF5QpV9jqEB+KYBgvA36qrlu85da8/dvCnP7z1eGwnBkpOBiFWoPVYI73KOhwSDFyrXJwjWlzxIukaXJ0HcpWGQODUl+O5a9OccShGpQTiKqxYetmzG+VIAgURzO772JHocVBXPi9UfYI0Qr59CIa+LLHY0oSekCt3Ti/ryMWnbm/4eFHYlmCST/5Jf+h8HC2OVPUZxg== 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=5xE59VUaFRihh1vGRd8pH5R+bdDR5+8GnQi6zf1QjMs=; b=Xr9ZrB34WhMma/xxMH78HVCmfbwWCpvmV6NSCnmOcMUIXZwv0tlpCFXTsom0EmUhmBXFASIRuBfMZXsFoBOlGOB5GlhegSbDbRl7pdRo0RGo2hWCxwA1SzW2fmgGnlSy1qtLLXTQyXOBtJL97RP0lwWxpR9NTb9NQnejCdAu5oA= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM6PR11MB4505.namprd11.prod.outlook.com (2603:10b6:5:1dd::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Mon, 25 Jan 2021 08:43:11 +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.3784.019; Mon, 25 Jan 2021 08:43:11 +0000 From: "Zeng, Star" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Laszlo Ersek" , "Kumar, Rahul1" , "Zeng, Star" Subject: Re: [edk2-devel] [Patch 1/1] UefiCpuPkg/Library/MpInitLib: Fix AP VolatileRegisters race condition Thread-Topic: [edk2-devel] [Patch 1/1] UefiCpuPkg/Library/MpInitLib: Fix AP VolatileRegisters race condition Thread-Index: AQHW8OGMsMigToHqg0Wn9wjGvm6/8Ko3rmYQgAAiGICAADl7sA== Date: Mon, 25 Jan 2021 08:43:11 +0000 Message-ID: References: <20210122171020.589-1-michael.d.kinney@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: c0e67ee6-c425-4ebb-176b-08d8c10d3f65 x-ms-traffictypediagnostic: DM6PR11MB4505: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: al5i9TDmvWoQjSHuMvXSxOPN3lVEhCi7Rzcn1O3kpaZbn+CPYYjy+RUXtRmKMSvn1tslsq8U5S3oLiTqxL1vxNqdWgmg15/oYfn/ZHpg4yvfXXShqVN/vl9C2vyeR5GVLFAJ1SvmqMlCu4eHk8akJKZtcYbQ7jFiIE4JnkvRTughECTeAeKkiC3bzOO/Rep2D6TX041p9gqAVZv0uvSt2sCoiBdA73qWny8hCssZy5I9srE89o1Enu3r+tLAYfkd0rocn65W2eY+OpvLsvgPEIhvhUHFtA4MdVqePJIaYT7vQ1U9M94GlFnE/Sdju2DfUMyGcHeDDB91HDtK0oa56BikU407xxuO2mZyzaH83ORB2ziy85T3btPzP3eDjrYXC2d6y9hZlP0rycVQ1/CQcS0xerlZl0qkqPEIF3ayvmFomTOZljzE5cuWqYp98TRaZnyvvMTBI2dtLcNjmThVOQ== 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:(6029001)(4636009)(366004)(39860400002)(376002)(136003)(396003)(346002)(83380400001)(8676002)(54906003)(110136005)(66556008)(66476007)(66946007)(8936002)(64756008)(76116006)(5660300002)(9686003)(55016002)(966005)(52536014)(2906002)(7696005)(53546011)(6506007)(4326008)(26005)(186003)(33656002)(86362001)(478600001)(316002)(107886003)(66446008)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?L3JhenBiRS9IQmV3eDNDK1JTZ1NsVE5KRm8xaFlxNU5HV05vazdxNmNtUHZF?= =?utf-8?B?K25tWlRFK0lrMWFoZGtuNEFYSzZERG41bHhGREI3L0tFSWxoTXB3OFhsTy9L?= =?utf-8?B?bmxtL25pNjd0cVBLNXRrNDQ0SUVqa3NrWGZiZlVyTkZ3dzZ5bWN0K3duZ21v?= =?utf-8?B?R0REYWtGdFdvaVltV0FLTnZzVzFENUUrSnM5Q3BidFFwK3VjZ3NxMzZiYUlU?= =?utf-8?B?RnF3S0NTUkpnMEFOTHpQUmFyaCs0eUlzeEVibytlbzRCQnR5NnE4aWpmR0E5?= =?utf-8?B?Uk8vV0xsTlhPQU9FVEFTOVU5WFo2cEpPK2xVcWpFQ211TEVwaEFmekU5UjQ5?= =?utf-8?B?STloa1pUZUVOMGZIWTdHbzdMNm1ZeVBCekZCSUw3dldQWkxwaHk4V3cvUlA2?= =?utf-8?B?NFV3c3dlYXBLTWVDVlQwSHBtVkUyNVhGTjFrNDVJTFl5K0dsV29pWGg1cGcz?= =?utf-8?B?WDYrYTI5US9IanE1dkFUVjRlQWRXcklOMWtkSjZ5OVhmdWJnck03TkU3aHZv?= =?utf-8?B?WERtbkdFU3pEc2lqR1hxaWx1Nm1qZ3JGWEFRVXVTOE0zN1Nhc0F0amNTL3hp?= =?utf-8?B?bjFvVTlQalhvdW1mMm14dFpQOGFwbFk5NnVYNk5mZExOWjVlbXdTM3cvVk11?= =?utf-8?B?RmRtaEJuUWhLYW5MT3JHa0xWMGQ4ZGREKzYyMVcyTnl1VFBkd1pxdENWWit0?= =?utf-8?B?M1NmRlNiWnY1dmI3TXQzQ0Z1MTZXakxOT2dSNFhlSGJUcytlTk41UzZaYy9x?= =?utf-8?B?SVNJcE8zdytzbkROZU1SMlJhUTQ2Vi9LblRBTFdwdlJhQUFQWXFzMUpZSWpw?= =?utf-8?B?eHBqME82ckk0QTd2d25aVkk3SUFvYmRzckdvdXhSc1VqNHdyOW1oa2xKd1F2?= =?utf-8?B?eTdTeDBiSHBtellrYitmbkVqWFk0NVNxcExId0h1NDlibmR4cEhERDZFVnNm?= =?utf-8?B?VHgzeEFjcFNBT3FINFpUK29VdVF2d0FKdk9wZndGc2NsQS82Q3dPV0FaMmFZ?= =?utf-8?B?RUZFYW5ZQlJ3ZFRHYitwS1NpTWovSHVYYWtzWldzYTg4VGR2bkdjQTlhSmM0?= =?utf-8?B?UGRCK04yeUVBMmpYaVlwQzg1eWhmdnNGd0hlUXYvSHREaEJNUmY1a2tsR1R3?= =?utf-8?B?aVV0R0tZQ1A0OWRTTzVJVklZNmFoSllzcnJBZjY0UnRnd2hDbnBwVS9OakFy?= =?utf-8?B?NHl5NFZDYzl4UTJIa3F3TURVNUJEOVQxYXZabUtLVWY5UTFSQjRpQTJUeUpn?= =?utf-8?B?dVRHMkhnU1NVN3JoeHNPNGh2YXRaakxoMWNaK3VIcjlSb1M2cEthS0hJc3JC?= =?utf-8?Q?uNnEBn82U/zlc=3D?= 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: c0e67ee6-c425-4ebb-176b-08d8c10d3f65 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2021 08:43:11.3391 (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: x3T2DGApbSf/GYTYOPdhwtLrNvCQ50RKbdB5lHnaAJq23H+GajP5md54b72y8YtC3T58HDTO1DDBfdMCp5qwOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4505 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 TWlrZSwNCg0KT2gsIHNlZSBpdC4NClRoZXJlIGlzIG5vIHNlcXVlbmNlIGRlcGVuZGVuY2UgYmV0 d2VlbiBGaW5pc2hlZENvdW50IGluY3JlbWVudCBhbmQgTnVtQXBzRXhlY3V0aW5nIGRlY3JlbWVu dCwgcmlnaHQ/DQoNCiAgICAgSW50ZXJsb2NrZWRJbmNyZW1lbnQgKChVSU5UMzIgKikgJkNwdU1w RGF0YS0+RmluaXNoZWRDb3VudCk7DQogDQogICAgIEludGVybG9ja2VkRGVjcmVtZW50ICgoVUlO VDMyICopICZDcHVNcERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRpbmcpOw0K DQoNClRoYW5rcywNClN0YXINCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6 IE1vbmRheSwgSmFudWFyeSAyNSwgMjAyMSAxOjE2IFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFy LnplbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwNCj4gTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMu ZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgTGFzemxvDQo+IEVy c2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1bDEgPHJhaHVsMS5rdW1hckBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNoIDEvMV0gVWVmaUNwdVBr Zy9MaWJyYXJ5L01wSW5pdExpYjogRml4IEFQDQo+IFZvbGF0aWxlUmVnaXN0ZXJzIHJhY2UgY29u ZGl0aW9uDQo+IA0KPiBIaSBTdGFyLA0KPiANCj4gVGhhdCBsaW5lIGlzIG9ubHkgYWN0aXZlIHdo ZW4gKENwdU1wRGF0YS0+U2V2RXNJc0VuYWJsZWQpIGlzIFRSVUUuDQo+IA0KPiBUaGUgcmFjZSBj b25kaXRpb24gYWRkcmVzc2VkIGJ5IHRoaXMgQlogaXMgZm9yIHN5c3RlbXMgd2l0aCBTZWNFc0lz RW5hYmxlZA0KPiBGQUxTRS4NCj4gDQo+IEZyb20gY29tbWVudHMgaW4gdGhpcyBmaWxlIHRoZSBT ZWNFc0lzRW5hYmxlZCBjYXNlcyBoYXZlIGFscmVhZHkgYmVlbg0KPiBoYW5kbGVkLg0KPiANCj4g TWlrZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gU2VudDogU3VuZGF5LCBKYW51YXJ5IDI0 LCAyMDIxIDc6MTUgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWlj aGFlbCBEDQo+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IENjOiBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47DQo+ ID4gTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1bDENCj4gPiA8 cmFodWwxLmt1bWFyQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+ DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUGF0Y2ggMS8xXSBVZWZpQ3B1UGtnL0xp YnJhcnkvTXBJbml0TGliOg0KPiA+IEZpeCBBUCBWb2xhdGlsZVJlZ2lzdGVycyByYWNlIGNvbmRp dGlvbg0KPiA+DQo+ID4gRG9lcw0KPiA+DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUv ZWRrMi9ibG9iL21hc3Rlci9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbmkNCj4gPiB0TGliL01wTGli LmMjTDkwOSAoYWxzbyBkZWNyZW1lbnRzDQo+ID4gTnVtQXBzRXhlY3V0aW5nKSBhbHNvIG5lZWQg YmUgaGFuZGxlZD8NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBTdGFyDQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8 ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4gTWljaGFlbCBEIEtpbm5l eQ0KPiA+ID4gU2VudDogU2F0dXJkYXksIEphbnVhcnkgMjMsIDIwMjEgMToxMCBBTQ0KPiA+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25n QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+Ow0KPiA+ID4gTGFzemxvIEVy c2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1bDENCj4gPiA+IDxyYWh1bDEua3Vt YXJAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQYXRjaCAxLzFdIFVl ZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWI6IEZpeA0KPiA+ID4gQVAgVm9sYXRpbGVSZWdpc3Rl cnMgcmFjZSBjb25kaXRpb24NCj4gPiA+DQo+ID4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlh bm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4Mg0KPiA+ID4NCj4gPiA+IEZpeCB0aGUgb3Jk ZXIgb2Ygb3BlcmF0aW9ucyBpbiBBcFdha2V1cEZ1bmN0aW9uKCkgd2hlbg0KPiA+ID4gUGNkQ3B1 QXBMb29wTW9kZSBpcyBzZXQgdG8gSExUIG1vZGUgdGhhdCB1c2VzIElOSVQtU0lQSS1TSVBJIHRv IHdha2UNCj4gPiA+IEFQcy4gIEluIHRoaXMgbW9kZSwgdm9sYXRpbGUgc3RhdGUgaXMgcmVzdG9y ZWQgYW5kIHNhdmVkIGVhY2ggdGltZSBhDQo+ID4gPiBJTklULVNJUEktU0lQSSBpcyBzZW50IHRv IGFuIEFQIHRvIHJlcXVlc3QgYSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZA0KPiA+ID4gb24gdGhl IEFQLiAgV2hlbiB0aGUgZnVuY3Rpb24gaXMgY29tcGxldGVkIHRoZSB2b2xhdGlsZSBzdGF0ZSBv ZiB0aGUNCj4gPiA+IEFQIGlzIHNhdmVkLiAgSG93ZXZlciwgdGhlIGNvdW50ZXJzIE51bUFwc0V4 ZWN1dGluZyBhbmQNCj4gPiA+IEZpbmlzaGVkQ291bnQgYXJlIHVwZGF0ZWQgYmVmb3JlIHRoZSB2 b2xhdGlsZSBzdGF0ZSBpcyBzYXZlZC4gIFRoaXMNCj4gPiA+IGFsbG93cyBmb3IgYSByYWNlIGNv bmRpdGlvbiB3aW5kb3cgZm9yIHRoZSBCU1AgdGhhdCBpcyB3YWl0aW5nIG9uDQo+ID4gPiB0aGVz ZSBjb3VudGVycyB0byByZXF1ZXN0IGEgbmV3IElOSVQtU0lQSS1TSVBJIGJlZm9yZSBhbGwgdGhl IEFQcw0KPiA+ID4gaGF2ZSBjb21wbGV0ZWx5IHNhdmVkIHRoZWlyIHZvbGF0aWxlIHN0YXRlLiAg VGhlIGZpeCBpcyB0byBzYXZlIHRoZQ0KPiA+ID4gQVAgdm9sYXRpbGUgc3RhdGUgYmVmb3JlIHVw ZGF0aW5nIHRoZSBOdW1BcHNFeGVjdXRpbmcgYW5kDQo+ID4gPiBGaW5pc2hlZENvdW50IGNvdW50 ZXJzLg0KPiA+ID4NCj4gPiA+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ ID4gPiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IExhc3psbyBFcnNl ayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiBDYzogUmFodWwgS3VtYXIgPHJhaHVsMS5rdW1h ckBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIFVlZmlDcHVQa2cvTGli cmFyeS9NcEluaXRMaWIvTXBMaWIuYyB8IDMxDQo+ID4gPiArKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJ bml0TGliL01wTGliLmMNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExp Yi5jDQo+ID4gPiBpbmRleCA2ODFmYTc5YjRjZmYuLjhiMWY3Zjg0YmFkNiAxMDA2NDQNCj4gPiA+ IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuYw0KPiA+ID4gKysrIGIv VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gPiBAQCAtNzY5LDE1ICs3 NjksNiBAQCBBcFdha2V1cEZ1bmN0aW9uICgNCj4gPiA+ICAgICAgICBSZXN0b3JlVm9sYXRpbGVS ZWdpc3RlcnMNCj4gPiA+ICgmQ3B1TXBEYXRhLT5DcHVEYXRhWzBdLlZvbGF0aWxlUmVnaXN0ZXJz LA0KPiA+ID4gRkFMU0UpOw0KPiA+ID4gICAgICAgIEluaXRpYWxpemVBcERhdGEgKENwdU1wRGF0 YSwgUHJvY2Vzc29yTnVtYmVyLCBCaXN0RGF0YSwNCj4gPiA+IEFwVG9wT2ZTdGFjayk7DQo+ID4g PiAgICAgICAgQXBTdGFydHVwU2lnbmFsQnVmZmVyID0gQ3B1TXBEYXRhLQ0KPiA+ID4gPkNwdURh dGFbUHJvY2Vzc29yTnVtYmVyXS5TdGFydHVwQXBTaWduYWw7DQo+ID4gPiAtDQo+ID4gPiAtICAg ICAgLy8NCj4gPiA+IC0gICAgICAvLyBEZWxheSBkZWNyZW1lbnRpbmcgdGhlIEFQcyBleGVjdXRp bmcgY291bnQgd2hlbiBTRVYtRVMgaXMNCj4gZW5hYmxlZA0KPiA+ID4gLSAgICAgIC8vIHRvIGFs bG93IHRoZSBBUHMgdG8gaXNzdWUgYW4gQVBfUkVTRVRfSE9MRCBiZWZvcmUgdGhlIEJTUA0KPiBw b3NzaWJseQ0KPiA+ID4gLSAgICAgIC8vIHBlcmZvcm1zIGFub3RoZXIgSU5JVC1TSVBJLVNJUEkg c2VxdWVuY2UuDQo+ID4gPiAtICAgICAgLy8NCj4gPiA+IC0gICAgICBpZiAoIUNwdU1wRGF0YS0+ U2V2RXNJc0VuYWJsZWQpIHsNCj4gPiA+IC0gICAgICAgIEludGVybG9ja2VkRGVjcmVtZW50ICgo VUlOVDMyICopICZDcHVNcERhdGEtDQo+ID4gPiA+TXBDcHVFeGNoYW5nZUluZm8tPk51bUFwc0V4 ZWN1dGluZyk7DQo+ID4gPiAtICAgICAgfQ0KPiA+ID4gICAgICB9IGVsc2Ugew0KPiA+ID4gICAg ICAgIC8vDQo+ID4gPiAgICAgICAgLy8gRXhlY3V0ZSBBUCBmdW5jdGlvbiBpZiBBUCBpcyByZWFk eSBAQCAtODY2LDE5ICs4NTcsMzMgQEANCj4gPiA+IEFwV2FrZXVwRnVuY3Rpb24gKA0KPiA+ID4g ICAgICAgIH0NCj4gPiA+ICAgICAgfQ0KPiA+ID4NCj4gPiA+ICsgICAgaWYgKENwdU1wRGF0YS0+ QXBMb29wTW9kZSA9PSBBcEluSGx0TG9vcCkgew0KPiA+ID4gKyAgICAgIC8vDQo+ID4gPiArICAg ICAgLy8gU2F2ZSBBUCB2b2xhdGlsZSByZWdpc3RlcnMNCj4gPiA+ICsgICAgICAvLw0KPiA+ID4g KyAgICAgIFNhdmVWb2xhdGlsZVJlZ2lzdGVycyAoJkNwdU1wRGF0YS0NCj4gPiA+ID5DcHVEYXRh W1Byb2Nlc3Nvck51bWJlcl0uVm9sYXRpbGVSZWdpc3RlcnMpOw0KPiA+ID4gKyAgICB9DQo+ID4g PiArDQo+ID4gPiAgICAgIC8vDQo+ID4gPiAgICAgIC8vIEFQIGZpbmlzaGVkIGV4ZWN1dGluZyBD IGNvZGUNCj4gPiA+ICAgICAgLy8NCj4gPiA+ICAgICAgSW50ZXJsb2NrZWRJbmNyZW1lbnQgKChV SU5UMzIgKikgJkNwdU1wRGF0YS0+RmluaXNoZWRDb3VudCk7DQo+ID4gPg0KPiA+ID4gKyAgICBp ZiAoQ3B1TXBEYXRhLT5Jbml0RmxhZyA9PSBBcEluaXRDb25maWcpIHsNCj4gPiA+ICsgICAgICAv Lw0KPiA+ID4gKyAgICAgIC8vIERlbGF5IGRlY3JlbWVudGluZyB0aGUgQVBzIGV4ZWN1dGluZyBj b3VudCB3aGVuIFNFVi1FUyBpcw0KPiBlbmFibGVkDQo+ID4gPiArICAgICAgLy8gdG8gYWxsb3cg dGhlIEFQcyB0byBpc3N1ZSBhbiBBUF9SRVNFVF9IT0xEIGJlZm9yZSB0aGUgQlNQDQo+IHBvc3Np Ymx5DQo+ID4gPiArICAgICAgLy8gcGVyZm9ybXMgYW5vdGhlciBJTklULVNJUEktU0lQSSBzZXF1 ZW5jZS4NCj4gPiA+ICsgICAgICAvLw0KPiA+ID4gKyAgICAgIGlmICghQ3B1TXBEYXRhLT5TZXZF c0lzRW5hYmxlZCkgew0KPiA+ID4gKyAgICAgICAgSW50ZXJsb2NrZWREZWNyZW1lbnQgKChVSU5U MzIgKikgJkNwdU1wRGF0YS0NCj4gPiA+ID5NcENwdUV4Y2hhbmdlSW5mby0+TnVtQXBzRXhlY3V0 aW5nKTsNCj4gPiA+ICsgICAgICB9DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4gPiA+ICAgICAg Ly8NCj4gPiA+ICAgICAgLy8gUGxhY2UgQVAgaXMgc3BlY2lmaWVkIGxvb3AgbW9kZQ0KPiA+ID4g ICAgICAvLw0KPiA+ID4gICAgICBpZiAoQ3B1TXBEYXRhLT5BcExvb3BNb2RlID09IEFwSW5IbHRM b29wKSB7DQo+ID4gPiAtICAgICAgLy8NCj4gPiA+IC0gICAgICAvLyBTYXZlIEFQIHZvbGF0aWxl IHJlZ2lzdGVycw0KPiA+ID4gLSAgICAgIC8vDQo+ID4gPiAtICAgICAgU2F2ZVZvbGF0aWxlUmVn aXN0ZXJzICgmQ3B1TXBEYXRhLQ0KPiA+ID4gPkNwdURhdGFbUHJvY2Vzc29yTnVtYmVyXS5Wb2xh dGlsZVJlZ2lzdGVycyk7DQo+ID4gPiAgICAgICAgLy8NCj4gPiA+ICAgICAgICAvLyBQbGFjZSBB UCBpbiBITFQtbG9vcA0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAtLQ0KPiA+ID4gMi4yOS4yLndp bmRvd3MuMg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gDQo+ID4gPg0KDQo=