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.web11.3780.1607673225518366499 for ; Thu, 10 Dec 2020 23:53:46 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=kh/8VZ+i; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: 9ju7OvUTU7VmKKcbGk/XVTHJiQpd2vsS2BUcO2FMzfzUpZrBISEhu5nTTUQhsD9UHzYSha+h7f 2ovHo/C/kfnA== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="154202645" X-IronPort-AV: E=Sophos;i="5.78,410,1599548400"; d="scan'208";a="154202645" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 23:53:44 -0800 IronPort-SDR: SnPGk9kjLbUpBCyOpAH/iu+DDMAYwGUZoF3zRHyjxCXkhnDBe7ewyWxyzV0A2ghPN3Ra9D4KMk 0D1F/2I9s6NQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,410,1599548400"; d="scan'208";a="376413694" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga007.jf.intel.com with ESMTP; 10 Dec 2020 23:53:44 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 10 Dec 2020 23:53:44 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Thu, 10 Dec 2020 23:53:44 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 10 Dec 2020 23:53:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b1znZI3/fKVlh5z3dsqfC75p9C8nROmH5+hhisus94YkfqDH0f+O6swHjfDdD8D9paO1GK45ZmkpH6MQCuCxdUxdei4txeZlXq6HxDSz3CHmlmYf05JpNkLczoYwetbIHN2r4j59NjiLQL1UI5fC6pFxvwEoSZYNiWJFC/mSdStnNjiJdMtxkPsAjUPPOAT5EY8BxN1dyhnVMrDIgOsOc/4zsSJBSFAfvYo95/Pv7bUTQYDoz7R9UwfdIkuD31u0laEvocrgHjTME3ZRFcWVSA+V/HyTs0Pwss9b873jDzX2fl2SNhE5xY8p08uW68zhowDGICu86rezcVqubfpVsw== 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=DIKVgs5q1rG5DZCbg6oVTehZU3cFDAFmQosX3xj0pmY=; b=QXWcBRrZ/ElaGmGD1SvLVc33v3brJ2osyBbvJlKmN+fFgsAThYgnOr5Y2kBPRRTeB40uAKf9ZqNaO77UJe5sruho6X+YvfBHHUlVN6Bc67MTOKgFDD58rl66z8DKR3xmj9HifkjQil6k+dKTIQStxCYyTxORsaQMSo4qPMaNf2hV3wvnGk1MwHc8xqaAkC5o1KOX3P5W7BNNzFfjFla1g2ndPEhFMXw5dyDg68635BghXy7ZMIeMEg0/yPz19nnZqTX9U2RX+HmACvchySHCd5MLYJ4lDBlIwtpmoNYtL7CIyG68qaeOX4l8vWeIDjvjt8HAatg4Rntth7W3yp/GAw== 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=DIKVgs5q1rG5DZCbg6oVTehZU3cFDAFmQosX3xj0pmY=; b=kh/8VZ+i2Vc3KUjbE+eIocMUhF21BnWokuR/poX3p8r1gq45Lrt9Ie7s+k4/kNcN80/t3IW2L+okqcnPSYAkqgSpj8AoeR2mXSslQncyhDEpQU1iWBthPs6IWDcrlhHOaSxHAjdlypm/4+Hm8wmXp0igqqXbSUikmxbZ+8kf1so= Received: from BL0PR11MB3236.namprd11.prod.outlook.com (2603:10b6:208:60::18) by MN2PR11MB4351.namprd11.prod.outlook.com (2603:10b6:208:193::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.17; Fri, 11 Dec 2020 07:53:35 +0000 Received: from BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::dcf8:f2f2:db7c:1cec]) by BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::dcf8:f2f2:db7c:1cec%7]) with mapi id 15.20.3654.017; Fri, 11 Dec 2020 07:53:35 +0000 From: "Michael D Kinney" To: "Wu, Hao A" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Bret Barkelew , Liming Gao , Bret Barkelew Subject: Re: [Patch v3 1/2] MdeModulePkg/Variable/RuntimeDxe: Restore Variable Lock Protocol behavior Thread-Topic: [Patch v3 1/2] MdeModulePkg/Variable/RuntimeDxe: Restore Variable Lock Protocol behavior Thread-Index: AQHWz4AWts66bCdZuEi2tQOgECKkGqnxheBg Date: Fri, 11 Dec 2020 07:53:35 +0000 Message-ID: References: <20201211045156.1758-1-michael.d.kinney@intel.com> <20201211045156.1758-2-michael.d.kinney@intel.com> In-Reply-To: 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: intel.com; dkim=none (message not signed) header.d=none;intel.com; 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: 504eafd7-762d-4c81-5aa5-08d89da9dcfa x-ms-traffictypediagnostic: MN2PR11MB4351: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8XgIyP75tEH/bPoLugRwLsLzCK9enFxD7mRAkiCUAZrysV6dldqT++qQWwRiMboKwuYZFPsZgcZSLVJQhS1m/5ZZqODl0Owruvsnx/T1W09qlTCg4hpW3biGjeV9fUtv+cfF6gd8KcvMoECmHLPOr0bq1ACdvP+geveje4zKKfyCMDJUmFkaU50/XnFt37gE1UaUTBcqyK44pe3zgcy32XbzCPeOni/HVNRriqNJK1CB/RVq3gRMHd2TH5TEImGknf+9Udu4SkOMMCkgiYwCk74oPolCDbHuE8s0TR210sRU0rG1T9qmTuXH1dAHf9RhImDkBUL7o6u32COPzHk0tQQio5ois7tUeVpCepFBvnURSjlPqTckMBOyhgV2RAMdg1wmHfRh1Vb2LBZqLEszRw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3236.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(136003)(346002)(8936002)(8676002)(71200400001)(86362001)(55016002)(83380400001)(508600001)(33656002)(45080400002)(6506007)(53546011)(110136005)(7696005)(52536014)(54906003)(66946007)(26005)(76116006)(186003)(2906002)(66476007)(66446008)(64756008)(66556008)(966005)(9686003)(5660300002)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?aVNVckxjT0hNUlNuNUt2dXZzOGpNUnlWc0VxZm5YWE90Q2QvUzh1aE9VQkl0?= =?utf-8?B?b3MwUWVPNzhLbWZOT0puMURlTk05eTR5UXN1WWxvc3lYYkFhRi9OSFFEdUEx?= =?utf-8?B?bkJMOGFmbUE3aTdaZTJ3cmJLNFhiRWx6eHNrOGNZVmpWWll3a2NpdGNYQncz?= =?utf-8?B?ODFmSXBhcm94T3lGUzZCWmdDeEV0dWQvcFB1VjhISVhvWGtEWWJKVnNIekE5?= =?utf-8?B?VE10UzNrMEdJTEZVSUpGTHNnNW1iNkZVWVFjTjYyV1BwYWhHWi9KYW1nZjVi?= =?utf-8?B?dTFiNVlnM3BQbDdTS2F2b2p4a25Ed0dQTUk1N1NkN0Q2QU1ZdzJmdVJWbUty?= =?utf-8?B?R1ozenhOSjVUY3ZrdUlCbXRCMjkwRDc2YjhwTXAvU0luZVgweXVzOUFBTHVH?= =?utf-8?B?bWNCRzlKT3R3K3o5ZWh5ai81UmwwL0FOUGxLQTJEUERQZzV0YTNMU0tJOWpO?= =?utf-8?B?QmZSbjlSNWtkZU14VmVTQXNnUHdTQ2IwcEdWajJtb2RJS3Rnakl6eXE4THF5?= =?utf-8?B?TDdIcGltRGkvUmFHVzBxZVRPeHdyWXg4cVA1R1k3OFpGNUNtS1JHTm1hTG5a?= =?utf-8?B?VElQb2NTKzB6MEUyaEVGWkJyS21wVkszS0plUUIxYUNsdlFnL3h4ZmpLTGM4?= =?utf-8?B?UGdNWHl4QW5teWV6eXBhbFFjQi9LZCtCdy93cThXc2RmaUpPSlJ1QWVGYTBh?= =?utf-8?B?M0FEMkpUQ0ZnRU1zZ3E1OVVLcEJtV2ZHb01iTkxKMzlBQnVSNmtiL2VvUXZs?= =?utf-8?B?VU9MSG5Dbm5mM1RZVVBPT2VicWw3dkM1VC9zWEl0R3pkeTFkK2tXMG1VUitR?= =?utf-8?B?bTZqWFloMHNkUExlMlpZM1pWTDBUVnlhd2x0ck0wMHpyQ1RqOUphQnA2bmo1?= =?utf-8?B?Q1hsaEpxOE9KbTE2QWR1c0ZQM0lyWDRQb2NHRkRjQ2R1YUo5L0hySUMxRTZX?= =?utf-8?B?WHFCalR3TzhCT0dldmJnQ08zYVJ4b1VaNjU2WmVQN0hIeTFqUGZYWmhRc01V?= =?utf-8?B?bDcyNGZQdnYzYitrckVHcXlHMCt4dEV5VVkrdVVQc0RYamxTUHE5azVBanUz?= =?utf-8?B?TW1sTWh4L2hDdW1RNDEvWWszQW5Pc0VJOTdoRGVEOThIdUVPdlFIeEFReXAv?= =?utf-8?B?ZjNPWXpkcW93SGgzenZMRHZXcm1nc0dBMjRYOVdDR3dGSERmNElhT3hPZHJT?= =?utf-8?B?Y2pQRUdzUnkwbjVjNlJCSHBzSmNLNG9mZWJTd0VaMVE5SEpuN1hLcHowUzBI?= =?utf-8?B?VURLTm13cFlScHQ1UDM3MmE5Zm9QeUxpSEhkYlRaZVFZYndsaDhxSys4azg1?= =?utf-8?Q?IB+w0gJoEa/PI=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB3236.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 504eafd7-762d-4c81-5aa5-08d89da9dcfa X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2020 07:53:35.3314 (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: MLO0kUD5T7wS0B7FzjhbUCiKybee297E0Yd5XTL/HcHuj9uCjwxy2LgSZmorWLax5goFOSVzj+82g5vZ17y2hlfbgzl/Xn57bAHlizsiIqQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4351 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV3UsIEhhbyBBIDxoYW8u YS53dUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAxMCwgMjAyMCA5OjQw IFBNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogQnJldCBCYXJrZWxldyA8YnJldC5iYXJrZWxl d0BtaWNyb3NvZnQuY29tPjsgTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsg QnJldCBCYXJrZWxldw0KPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0 OiBSRTogW1BhdGNoIHYzIDEvMl0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlL1J1bnRpbWVEeGU6IFJl c3RvcmUgVmFyaWFibGUgTG9jayBQcm90b2NvbCBiZWhhdmlvcg0KPiANCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMTEsIDIwMjAgMTI6 NTIgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogQnJldCBCYXJrZWxl dyA8YnJldC5iYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgV3UsIEhhbyBBDQo+ID4gPGhhby5hLnd1 QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEJyZXQN Cj4gPiBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+IFN1YmplY3Q6 IFtQYXRjaCB2MyAxLzJdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZS9SdW50aW1lRHhlOiBSZXN0b3Jl DQo+ID4gVmFyaWFibGUgTG9jayBQcm90b2NvbCBiZWhhdmlvcg0KPiA+DQo+ID4gRnJvbTogQnJl dCBCYXJrZWxldyA8YnJldC5iYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+DQo+ID4gaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTExDQo+ID4NCj4gPiBU aGUgVmFyaWFibGVMb2NrIHNoaW0gY3VycmVudGx5IGZhaWxzIGlmIGNhbGxlZCB0d2ljZSBiZWNh dXNlIHRoZSB1bmRlcmx5aW5nDQo+ID4gVmFyaWFibGUgUG9saWN5IGVuZ2luZSByZXR1cm5zIGFu IGVycm9yIGlmIGEgcG9saWN5IGlzIHNldCBvbiBhbiBleGlzdGluZyB2YXJpYWJsZS4NCj4gPg0K PiA+IFRoaXMgYnJlYWtzIGV4aXN0aW5nIGNvZGUgd2hpY2ggZXhwZWN0IGl0IHRvIHNpbGVudGx5 IHBhc3MgaWYgYSB2YXJpYWJsZSBpcyBsb2NrZWQNCj4gPiBtdWx0aXBsZSB0aW1lcyAoYmVjYXVz ZSBpdCBzaG91bGQgImJlIGxvY2tlZCIpLg0KPiA+DQo+ID4gUmVmYWN0b3IgdGhlIHNoaW0gdG8g Y29uZmlybSB0aGF0IHRoZSB2YXJpYWJsZSBpcyBpbmRlZWQgbG9ja2VkIGFuZCB0aGVuDQo+ID4g Y2hhbmdlIHRoZSBlcnJvciB0byBFRklfU1VDQ0VTUyBhbmQgZ2VuZXJhdGUgYSBERUJVR19FUlJP UiBtZXNzYWdlIHNvDQo+ID4gdGhlIGR1cGxpY2F0ZSBsb2NrIGNhbiBiZSByZXBvcnRlZCBpbiBh IGRlYnVnIGxvZyBhbmQgcmVtb3ZlZC4NCj4gPg0KPiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGlu dGVsLmNvbT4NCj4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0K PiA+IFNpZ25lZC1vZmYtYnk6IEJyZXQgQmFya2VsZXcgPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0 LmNvbT4NCj4gPiAtLS0NCj4gPiAgLi4uL1J1bnRpbWVEeGUvVmFyaWFibGVMb2NrUmVxdWVzdFRv TG9jay5jICAgIHwgOTUgKysrKysrKysrKysrLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwg NTkgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ ID4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVM b2NrUmVxdWVzdFRvTA0KPiA+IG9jay5jDQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zh cmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVMb2NrUmVxdWVzdFRvTA0KPiA+IG9jay5jDQo+ID4g aW5kZXggNGFhODU0YWFmMjYwLi4wNzE1YjUyN2EwZjcgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9N ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVMb2NrUmVx dWVzdFRvTA0KPiA+IG9jay5jDQo+ID4gKysrDQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVMb2NrUmVxdWVzdFRvTA0KPiA+IG8NCj4gPiAr KysgY2suYw0KPiA+IEBAIC0xLDY3ICsxLDkwIEBADQo+ID4gLS8qKiBAZmlsZSAtLSBWYXJpYWJs ZUxvY2tSZXF1ZXN0VG9Mb2NrLmMgLVRlbXBvcmFyeSBsb2NhdGlvbiBvZiB0aGUNCj4gPiBSZXF1 ZXN0VG9Mb2NrIHNoaW0gY29kZSB3aGlsZSAtcHJvamVjdHMgYXJlIG1vdmVkIHRvIFZhcmlhYmxl UG9saWN5Lg0KPiA+IFNob3VsZCBiZSByZW1vdmVkIHdoZW4gZGVwcmVjYXRlZC4NCj4gPiArLyoq IEBmaWxlDQo+ID4gKyAgVGVtcG9yYXJ5IGxvY2F0aW9uIG9mIHRoZSBSZXF1ZXN0VG9Mb2NrIHNo aW0gY29kZSB3aGlsZSBwcm9qZWN0cw0KPiA+ICsgIGFyZSBtb3ZlZCB0byBWYXJpYWJsZVBvbGlj eS4gU2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBkZXByZWNhdGVkLg0KPiA+DQo+ID4gLUNvcHlyaWdo dCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+IC1TUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENv cnBvcmF0aW9uLg0KPiA+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ID4NCj4gPiAgKiovDQo+ID4NCj4gPiAgI2luY2x1ZGUgPFVlZmkuaD4NCj4gPiAt DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gICNpbmNsdWRlIDxMaWJy YXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gPiAtDQo+ID4gLSNpbmNsdWRlIDxQcm90b2Nv bC9WYXJpYWJsZUxvY2suaD4NCj4gPiAtDQo+ID4gLSNpbmNsdWRlIDxQcm90b2NvbC9WYXJpYWJs ZVBvbGljeS5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUxpYi5oPg0K PiA+ICAjaW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUhlbHBlckxpYi5oPg0KPiA+IC0N Cj4gPiArI2luY2x1ZGUgPFByb3RvY29sL1ZhcmlhYmxlTG9jay5oPg0KPiA+DQo+ID4gIC8qKg0K PiA+ICAgIERFUFJFQ0FURUQuIFRISVMgSVMgT05MWSBIRVJFIEFTIEEgQ09OVkVOSUVOQ0UgV0hJ TEUgUE9SVElORy4NCj4gPiAtICBNYXJrIGEgdmFyaWFibGUgdGhhdCB3aWxsIGJlY29tZSByZWFk LW9ubHkgYWZ0ZXIgbGVhdmluZyB0aGUgRFhFIHBoYXNlIG9mDQo+ID4gZXhlY3V0aW9uLg0KPiA+ IC0gIFdyaXRlIHJlcXVlc3QgY29taW5nIGZyb20gU01NIGVudmlyb25tZW50IHRocm91Z2gNCj4g PiBFRklfU01NX1ZBUklBQkxFX1BST1RPQ09MIGlzIGFsbG93ZWQuDQo+ID4gKyAgTWFyayBhIHZh cmlhYmxlIHRoYXQgd2lsbCBiZWNvbWUgcmVhZC1vbmx5IGFmdGVyIGxlYXZpbmcgdGhlIERYRQ0K PiA+ICsgcGhhc2Ugb2YgIGV4ZWN1dGlvbi4gV3JpdGUgcmVxdWVzdCBjb21pbmcgZnJvbSBTTU0g ZW52aXJvbm1lbnQNCj4gPiB0aHJvdWdoDQo+ID4gKyBFRklfU01NX1ZBUklBQkxFX1BST1RPQ09M IGlzIGFsbG93ZWQuDQo+ID4NCj4gPiAgICBAcGFyYW1baW5dIFRoaXMgICAgICAgICAgVGhlIFZB UklBQkxFX0xPQ0tfUFJPVE9DT0wgaW5zdGFuY2UuDQo+ID4gLSAgQHBhcmFtW2luXSBWYXJpYWJs ZU5hbWUgIEEgcG9pbnRlciB0byB0aGUgdmFyaWFibGUgbmFtZSB0aGF0IHdpbGwgYmUNCj4gPiBt YWRlIHJlYWQtb25seSBzdWJzZXF1ZW50bHkuDQo+ID4gLSAgQHBhcmFtW2luXSBWZW5kb3JHdWlk ICAgIEEgcG9pbnRlciB0byB0aGUgdmVuZG9yIEdVSUQgdGhhdCB3aWxsIGJlIG1hZGUNCj4gPiBy ZWFkLW9ubHkgc3Vic2VxdWVudGx5Lg0KPiA+ICsgIEBwYXJhbVtpbl0gVmFyaWFibGVOYW1lICBB IHBvaW50ZXIgdG8gdGhlIHZhcmlhYmxlIG5hbWUgdGhhdCB3aWxsIGJlDQo+ID4gbWFkZQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkLW9ubHkgc3Vic2VxdWVudGx5Lg0KPiA+ ICsgIEBwYXJhbVtpbl0gVmVuZG9yR3VpZCAgICBBIHBvaW50ZXIgdG8gdGhlIHZlbmRvciBHVUlE IHRoYXQgd2lsbCBiZSBtYWRlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWQt b25seSBzdWJzZXF1ZW50bHkuDQo+ID4NCj4gPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAg ICAgICBUaGUgdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHRoZSBWYXJpYWJsZU5hbWUgYW5kDQo+ID4g dGhlIFZlbmRvckd1aWQgd2FzIG1hcmtlZA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzIHBlbmRpbmcgdG8gYmUgcmVhZC1vbmx5Lg0KPiA+ICsgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgIFRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgdGhlIFZhcmlhYmxlTmFt ZSBhbmQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgVmVuZG9yR3Vp ZCB3YXMgbWFya2VkIGFzIHBlbmRpbmcgdG8gYmUNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZWFkLW9ubHkuDQo+ID4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVU RVIgVmFyaWFibGVOYW1lIG9yIFZlbmRvckd1aWQgaXMgTlVMTC4NCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPciBWYXJpYWJsZU5hbWUgaXMgYW4gZW1wdHkgc3RyaW5nLg0K PiA+IC0gIEByZXR2YWwgRUZJX0FDQ0VTU19ERU5JRUQgICAgIEVGSV9FTkRfT0ZfRFhFX0VWRU5U X0dST1VQX0dVSUQNCj4gPiBvciBFRklfRVZFTlRfR1JPVVBfUkVBRFlfVE9fQk9PVCBoYXMNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHJlYWR5IGJlZW4gc2lnbmFsZWQu DQo+ID4gLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgVGhlcmUgaXMgbm90IGVub3Vn aCByZXNvdXJjZSB0byBob2xkDQo+ID4gdGhlIGxvY2sgcmVxdWVzdC4NCj4gPiArICBAcmV0dmFs IEVGSV9BQ0NFU1NfREVOSUVEICAgICBFRklfRU5EX09GX0RYRV9FVkVOVF9HUk9VUF9HVUlEDQo+ ID4gb3INCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfRVZFTlRfR1JP VVBfUkVBRFlfVE9fQk9PVCBoYXMgYWxyZWFkeSBiZWVuDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2lnbmFsZWQuDQo+ID4gKyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09V UkNFUyAgVGhlcmUgaXMgbm90IGVub3VnaCByZXNvdXJjZSB0byBob2xkDQo+ID4gdGhlIGxvY2sN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lg0KPiA+ICAqKi8N Cj4gPiAgRUZJX1NUQVRVUw0KPiA+ICBFRklBUEkNCj4gPiAgVmFyaWFibGVMb2NrUmVxdWVzdFRv TG9jayAoDQo+ID4gLSAgSU4gQ09OU1QgRURLSUlfVkFSSUFCTEVfTE9DS19QUk9UT0NPTCAqVGhp cywNCj4gPiAtICBJTiAgICAgICBDSEFSMTYgICAgICAgICAgICAgICAgICAgICAgICpWYXJpYWJs ZU5hbWUsDQo+ID4gLSAgSU4gICAgICAgRUZJX0dVSUQgICAgICAgICAgICAgICAgICAgICAqVmVu ZG9yR3VpZA0KPiA+ICsgIElOIENPTlNUIEVES0lJX1ZBUklBQkxFX0xPQ0tfUFJPVE9DT0wgICpU aGlzLA0KPiA+ICsgIElOIENIQVIxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpWYXJp YWJsZU5hbWUsDQo+ID4gKyAgSU4gRUZJX0dVSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAg KlZlbmRvckd1aWQNCj4gPiAgICApDQo+ID4gIHsNCj4gPiAtICBFRklfU1RBVFVTICAgICAgICAg ICAgICBTdGF0dXM7DQo+ID4gLSAgVkFSSUFCTEVfUE9MSUNZX0VOVFJZICAgKk5ld1BvbGljeTsN Cj4gPiArICBFRklfU1RBVFVTICAgICAgICAgICAgIFN0YXR1czsNCj4gPiArICBWQVJJQUJMRV9Q T0xJQ1lfRU5UUlkgICpOZXdQb2xpY3k7DQo+ID4gKw0KPiA+ICsgIERFQlVHICgoREVCVUdfRVJS T1IsICIhISEgREVQUkVDQVRFRCBJTlRFUkZBQ0UgISEhICVhKCkgd2lsbCBnbyBhd2F5DQo+ID4g KyBzb29uIVxuIiwgX19GVU5DVElPTl9fKSk7ICBERUJVRyAoKERFQlVHX0VSUk9SLCAiISEhIERF UFJFQ0FURUQNCj4gPiArIElOVEVSRkFDRSAhISEgUGxlYXNlIG1vdmUgdG8gdXNlIFZhcmlhYmxl IFBvbGljeSFcbiIpKTsgIERFQlVHDQo+ID4gKyAoKERFQlVHX0VSUk9SLCAiISEhIERFUFJFQ0FU RUQgSU5URVJGQUNFICEhISBWYXJpYWJsZTogJWcgJXNcbiIsDQo+ID4gKyBWZW5kb3JHdWlkLCBW YXJpYWJsZU5hbWUpKTsNCj4gPg0KPiA+ICAgIE5ld1BvbGljeSA9IE5VTEw7DQo+ID4gLSAgU3Rh dHVzID0gQ3JlYXRlQmFzaWNWYXJpYWJsZVBvbGljeSggVmVuZG9yR3VpZCwNCj4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZU5hbWUsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkFSSUFCTEVfUE9MSUNZX05PX01JTl9T SVpFLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBUklBQkxF X1BPTElDWV9OT19NQVhfU0laRSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWQVJJQUJMRV9QT0xJQ1lfTk9fTVVTVF9BVFRSLA0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZBUklBQkxFX1BPTElDWV9OT19DQU5UX0FUVFIsDQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkFSSUFCTEVfUE9MSUNZ X1RZUEVfTE9DS19OT1csDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJk5ld1BvbGljeSApOw0KPiA+ICsgIFN0YXR1cyA9IENyZWF0ZUJhc2ljVmFyaWFibGVQb2xp Y3koDQo+ID4gKyAgICAgICAgICAgICBWZW5kb3JHdWlkLA0KPiA+ICsgICAgICAgICAgICAgVmFy aWFibGVOYW1lLA0KPiA+ICsgICAgICAgICAgICAgVkFSSUFCTEVfUE9MSUNZX05PX01JTl9TSVpF LA0KPiA+ICsgICAgICAgICAgICAgVkFSSUFCTEVfUE9MSUNZX05PX01BWF9TSVpFLA0KPiA+ICsg ICAgICAgICAgICAgVkFSSUFCTEVfUE9MSUNZX05PX01VU1RfQVRUUiwNCj4gPiArICAgICAgICAg ICAgIFZBUklBQkxFX1BPTElDWV9OT19DQU5UX0FUVFIsDQo+ID4gKyAgICAgICAgICAgICBWQVJJ QUJMRV9QT0xJQ1lfVFlQRV9MT0NLX05PVywNCj4gPiArICAgICAgICAgICAgICZOZXdQb2xpY3kN Cj4gPiArICAgICAgICAgICAgICk7DQo+ID4gICAgaWYgKCFFRklfRVJST1IoIFN0YXR1cyApKSB7 DQo+ID4gLSAgICBTdGF0dXMgPSBSZWdpc3RlclZhcmlhYmxlUG9saWN5KCBOZXdQb2xpY3kgKTsN Cj4gPiArICAgIFN0YXR1cyA9IFJlZ2lzdGVyVmFyaWFibGVQb2xpY3kgKE5ld1BvbGljeSk7DQo+ ID4gKw0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIElmIHRoZSBlcnJvciByZXR1cm5lZCBpcyBF RklfQUxSRUFEWV9TVEFSVEVELCB3ZSBuZWVkIHRvIGNoZWNrIHRoZQ0KPiA+ICsgICAgLy8gY3Vy cmVudCBkYXRhYmFzZSBmb3IgdGhlIHZhcmlhYmxlIGFuZCBzZWUgd2hldGhlciBpdCdzIGxvY2tl ZC4gSWYgaXQncw0KPiA+ICsgICAgLy8gbG9ja2VkLCB3ZSdyZSBzdGlsbCBmaW5lLCBidXQgYWxz byBnZW5lcmF0ZSBhIERFQlVHX0VSUk9SIG1lc3NhZ2Ugc28NCj4gPiB0aGUNCj4gPiArICAgIC8v IGR1cGxpY2F0ZSBsb2NrIGNhbiBiZSByZW1vdmVkLg0KPiA+ICsgICAgLy8NCj4gPiArICAgIGlm IChTdGF0dXMgPT0gRUZJX0FMUkVBRFlfU1RBUlRFRCkgew0KPiA+ICsgICAgICBTdGF0dXMgPSBW YWxpZGF0ZVNldFZhcmlhYmxlIChWYXJpYWJsZU5hbWUsIFZlbmRvckd1aWQsIDAsIHNpemVvZigi IiksDQo+ID4gIiIpOw0KPiANCj4gDQo+IEhlbGxvIE1pa2UsDQo+IA0KPiBTb3JyeSBmb3Igb25l IHRoaW5nIHRvIGNvbmZpcm0uDQo+IA0KPiBJcyBpdCBwb3NzaWJsZSB3aGVuIHBhc3NpbmcgIjAi IGFzIHRoZSAiQXR0cmlidXRlcyIgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIFZhbGlkYXRlU2V0VmFy aWFibGUoKQ0KPiBjYXVzZXMgdGhlIGJlbG93IGNhc2UgaW4gVmFsaWRhdGVTZXRWYXJpYWJsZSgp Og0KPiANCj4gICAgICAgLy8gQ2hlY2sgZm9yIGF0dHJpYnV0ZSBjb25zdHJhaW50cy4NCj4gICAg ICAgaWYgKChBY3RpdmVQb2xpY3ktPkF0dHJpYnV0ZXNNdXN0SGF2ZSAmIEF0dHJpYnV0ZXMpICE9 IEFjdGl2ZVBvbGljeS0+QXR0cmlidXRlc011c3RIYXZlIHx8DQo+ICAgICAgICAgICAoQWN0aXZl UG9saWN5LT5BdHRyaWJ1dGVzQ2FudEhhdmUgJiBBdHRyaWJ1dGVzKSAhPSAwKSB7DQo+ICAgICAg ICAgUmV0dXJuU3RhdHVzID0gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICAgICAgIERFQlVH KCggREVCVUdfVkVSQk9TRSwgIiVhIC0gQmFkIEF0dHJpYnV0ZXMuIDB4JVggPD4gMHglWDoweCVY XG4iLCBfX0ZVTkNUSU9OX18sDQo+ICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzLCBBY3RpdmVQ b2xpY3ktPkF0dHJpYnV0ZXNNdXN0SGF2ZSwgQWN0aXZlUG9saWN5LT5BdHRyaWJ1dGVzQ2FudEhh dmUgKSk7DQo+ICAgICAgICAgZ290byBFeGl0Ow0KPiAgICAgICB9DQo+IA0KPiBpZiAiQWN0aXZl UG9saWN5LT5BdHRyaWJ1dGVzTXVzdEhhdmUiIGhhdmUgYW55IGJpdCBzZXQ/DQo+IFRoaXMgd2ls bCBsZWFkIHRvIFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2soKSB0byByZXR1cm4gYW4gZXJyb3Ig c3RhdHVzLg0KDQpUaGFuayB5b3UhICBZb3UgYXJlIGV4YWN0bHkgcmlnaHQuICBXZSBkbyBub3Qg d2FudCB0aGlzIGxvZ2ljIHVzZWQgYmVjYXVzZQ0Kd2UgZG8gbm90IGtub3cgd2hhdCB0aGUgdmFs aWQgRGF0YVNpemUgYW5kIEF0dHJpYnV0ZSB2YWx1ZXMgYXJlIGZvciB0aGUgDQpleGlzdGluZyBw b2xpY3kuICBGb3IgdGhlIGNhbGwgdG8gVmFsaWRhdGVTZXRWYXJpYWJsZSgpLCB3ZSBzaG91bGQg dXNlDQpEYXRhU2l6ZT0wIGFuZCBBdHRyaWJ1dGVzPTAuDQoNCiAgICAgIFN0YXR1cyA9IFZhbGlk YXRlU2V0VmFyaWFibGUgKFZhcmlhYmxlTmFtZSwgVmVuZG9yR3VpZCwgMCwgMCwgTlVMTCk7DQoN Cj4gDQo+IEJlc3QgUmVnYXJkcywNCj4gSGFvIFd1DQo+IA0KPiANCj4gPiArICAgICAgaWYgKFN0 YXR1cyA9PSBFRklfV1JJVEVfUFJPVEVDVEVEKSB7DQo+ID4gKyAgICAgICAgREVCVUcgKChERUJV R19FUlJPUiwgIiAgVmFyaWFibGU6ICVnICVzIGlzIGFscmVhZHkgbG9ja2VkIVxuIiwNCj4gPiBW ZW5kb3JHdWlkLCBWYXJpYWJsZU5hbWUpKTsNCj4gPiArICAgICAgICBTdGF0dXMgPSBFRklfU1VD Q0VTUzsNCj4gPiArICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiICBWYXJpYWJsZTogJWcgJXMgY2FuIG5vdCBiZSBsb2NrZWQhXG4iLA0KPiA+IFZlbmRv ckd1aWQsIFZhcmlhYmxlTmFtZSkpOw0KPiA+ICsgICAgICAgIFN0YXR1cyA9IEVGSV9BQ0NFU1Nf REVOSUVEOw0KPiA+ICsgICAgICB9DQo+ID4gKyAgICB9DQo+ID4gICAgfQ0KPiA+IC0gIGlmIChF RklfRVJST1IoIFN0YXR1cyApKSB7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K PiA+ICAgICAgREVCVUcoKCBERUJVR19FUlJPUiwgIiVhIC0gRmFpbGVkIHRvIGxvY2sgdmFyaWFi bGUgJXMhICVyXG4iLA0KPiA+IF9fRlVOQ1RJT05fXywgVmFyaWFibGVOYW1lLCBTdGF0dXMgKSk7 DQo+ID4gLSAgICBBU1NFUlRfRUZJX0VSUk9SKCBTdGF0dXMgKTsNCj4gPiAgICB9DQo+ID4gICAg aWYgKE5ld1BvbGljeSAhPSBOVUxMKSB7DQo+ID4gICAgICBGcmVlUG9vbCggTmV3UG9saWN5ICk7 DQo+ID4gLS0NCj4gPiAyLjI5LjIud2luZG93cy4yDQoNCg==