From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.31; helo=mga06.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CAA46201B0384 for ; Wed, 13 Feb 2019 17:01:38 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2019 17:01:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,367,1544515200"; d="scan'208";a="146677169" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 13 Feb 2019 17:01:37 -0800 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 13 Feb 2019 17:01:37 -0800 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 13 Feb 2019 17:01:36 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.207]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.232]) with mapi id 14.03.0415.000; Thu, 14 Feb 2019 09:01:34 +0800 From: "Dong, Eric" To: Laszlo Ersek , "edk2-devel@lists.01.org" Thread-Topic: [Patch 3/3] UefiCpuPkg/RegisterCpuFeaturesLib: Simplify PcdCpuFeaturesSupport. Thread-Index: AQHUw0iG3bJWDKqUJEOLUsdt+ixCi6XeeaZQ Date: Thu, 14 Feb 2019 01:01:34 +0000 Message-ID: References: <20190213020405.18800-1-eric.dong@intel.com> <20190213020405.18800-4-eric.dong@intel.com> <7831b95d-de56-2bb1-9d3f-99cbf596dcb8@redhat.com> In-Reply-To: <7831b95d-de56-2bb1-9d3f-99cbf596dcb8@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 3/3] UefiCpuPkg/RegisterCpuFeaturesLib: Simplify PcdCpuFeaturesSupport. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Feb 2019 01:01:39 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEZl YnJ1YXJ5IDEzLCAyMDE5IDExOjAxIEFNDQo+IFRvOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50 ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUGF0Y2ggMy8zXSBVZWZpQ3B1UGtnL1JlZ2lzdGVy Q3B1RmVhdHVyZXNMaWI6IFNpbXBsaWZ5DQo+IFBjZENwdUZlYXR1cmVzU3VwcG9ydC4NCj4gDQo+ IE9uIDAyLzEzLzE5IDAzOjA0LCBFcmljIERvbmcgd3JvdGU6DQo+ID4gUGNkQ3B1RmVhdHVyZXNT dXBwb3J0IHVzZWQgdG8gc3BlY2lmeSB0aGUgcGxhdGZvcm0gcG9saWN5IGFib3V0IHdoYXQNCj4g PiBDUFUgZmVhdHVyZXMgdGhpcyBwbGF0Zm9ybSBzdXBwb3J0cy4gVGhpcyB2YWx1ZSBpcyBkZWNp ZGUgYnkgcGxhdGZvcm0NCj4gPiBvd25lciwgbm90IGJ5IGhhcmR3YXJlLiBBZnRlciB0aGlzIGNo YW5nZSwgdGhpcyBQQ0Qgd2lsbCBiZSB1c2VkIGluDQo+ID4gSXNDcHVGZWF0dXJlU3VwcG9ydGVk IGZ1bmN0aW9uIG9ubHkuDQo+ID4NCj4gPiBOb3cgUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYiB1c2Ug dGhpcyBQQ0QgYXMgYW4gdGVtcGxhdGUgdG8gR2V0IHRoZSBwY2QNCj4gPiBzaXplLiBVcGRhdGUg dGhlIGNvZGUgbG9naWMgdG8gcmVwbGFjZSBpdCB3aXRoIFBjZENwdUZlYXR1cmVzU2V0dGluZy4N Cj4gPg0KPiA+IEJaOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MTM3NQ0KPiA+DQo+ID4gQ2M6IFJheSBOaSA8UmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzog TGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiBDb250cmlidXRlZC11bmRlcjog VGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTog RXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICAuLi4vUmVnaXN0 ZXJDcHVGZWF0dXJlc0xpYi9DcHVGZWF0dXJlc0luaXRpYWxpemUuYyB8IDY2ICsrKysrKystLS0t LS0tLS0tLS0NCj4gLS0tDQo+ID4gIC4uLi9SZWdpc3RlckNwdUZlYXR1cmVzTGliL1JlZ2lzdGVy Q3B1RmVhdHVyZXMuaCAgIHwgIDEgLQ0KPiA+ICAuLi4vUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi5j ICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0NCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAy NCBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4g PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9SZWdpc3RlckNwdUZlYXR1cmVzTGliL0NwdUZlYXR1cmVz SW5pdGlhbGl6ZS5jDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvUmVnaXN0ZXJDcHVGZWF0dXJl c0xpYi9DcHVGZWF0dXJlc0luaXRpYWxpemUuYw0KPiA+IGluZGV4IDRlYmQwMDI1YjQuLjc2MmVh ZWMyNzcgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvUmVnaXN0ZXJD cHVGZWF0dXJlc0xpYi9DcHVGZWF0dXJlc0luaXRpYWxpemUuYw0KPiA+ICsrKyBiL1VlZmlDcHVQ a2cvTGlicmFyeS9SZWdpc3RlckNwdUZlYXR1cmVzTGliL0NwdUZlYXR1cmVzSW5pdGlhbGl6ZS4N Cj4gPiArKysgYw0KPiA+IEBAIC03NCwyNyArNzQsNiBAQCBHZXRTZXR0aW5nUGNkICgNCj4gPiAg ICByZXR1cm4gU2V0dGluZ0JpdE1hc2s7DQo+ID4gIH0NCj4gPg0KPiA+IC0vKioNCj4gPiAtICBX b3JrZXIgZnVuY3Rpb24gdG8gZ2V0IFBjZENwdUZlYXR1cmVzU3VwcG9ydC4NCj4gPiAtDQo+ID4g LSAgQHJldHVybiAgVGhlIHBvaW50ZXIgdG8gQ1BVIGZlYXR1cmUgYml0cyBtYXNrIGJ1ZmZlci4N Cj4gPiAtKiovDQo+ID4gLVVJTlQ4ICoNCj4gPiAtR2V0U3VwcG9ydFBjZCAoDQo+ID4gLSAgVk9J RA0KPiA+IC0gICkNCj4gPiAtew0KPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgKlN1cHBv cnRCaXRNYXNrOw0KPiA+IC0NCj4gPiAtICBTdXBwb3J0Qml0TWFzayA9IEFsbG9jYXRlQ29weVBv b2wgKA0KPiA+IC0gICAgICAgICAgUGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNTdXBwb3J0KSwN Cj4gPiAtICAgICAgICAgIFBjZEdldFB0ciAoUGNkQ3B1RmVhdHVyZXNTdXBwb3J0KQ0KPiA+IC0g ICAgICAgICAgKTsNCj4gPiAtICBBU1NFUlQgKFN1cHBvcnRCaXRNYXNrICE9IE5VTEwpOw0KPiA+ IC0NCj4gPiAtICByZXR1cm4gU3VwcG9ydEJpdE1hc2s7DQo+ID4gLX0NCj4gPiAtDQo+ID4gIC8q Kg0KPiA+ICAgIENvbGxlY3RzIENQVSB0eXBlIGFuZCBmZWF0dXJlIGluZm9ybWF0aW9uLg0KPiA+ DQo+ID4gQEAgLTI4MiwxMSArMjYxLDYgQEAgQ3B1SW5pdERhdGFJbml0aWFsaXplICgNCj4gPiAg ICBBU1NFUlQgKENwdUZlYXR1cmVzRGF0YS0+Q3B1RmxhZ3MuQ29yZVNlbWFwaG9yZUNvdW50ICE9 IE5VTEwpOw0KPiA+ICAgIENwdUZlYXR1cmVzRGF0YS0+Q3B1RmxhZ3MuUGFja2FnZVNlbWFwaG9y ZUNvdW50ID0NCj4gQWxsb2NhdGVaZXJvUG9vbCAoc2l6ZW9mIChVSU5UMzIpICogQ3B1U3RhdHVz LT5QYWNrYWdlQ291bnQgKiBDcHVTdGF0dXMtDQo+ID5NYXhDb3JlQ291bnQgKiBDcHVTdGF0dXMt Pk1heFRocmVhZENvdW50KTsNCj4gPiAgICBBU1NFUlQgKENwdUZlYXR1cmVzRGF0YS0+Q3B1Rmxh Z3MuUGFja2FnZVNlbWFwaG9yZUNvdW50ICE9IE5VTEwpOw0KPiA+IC0NCj4gPiAtICAvLw0KPiA+ IC0gIC8vIEdldCBzdXBwb3J0IGFuZCBjb25maWd1cmF0aW9uIFBDRHMNCj4gPiAtICAvLw0KPiA+ IC0gIENwdUZlYXR1cmVzRGF0YS0+U3VwcG9ydFBjZCAgICAgICA9IEdldFN1cHBvcnRQY2QgKCk7 DQo+ID4gIH0NCj4gPg0KPiA+ICAvKioNCj4gPiBAQCAtMzA2LDcgKzI4MCw3IEBAIFN1cHBvcnRl ZE1hc2tPciAoDQo+ID4gICAgVUlOVDggICAgICAgICAgICAgICAgICAqRGF0YTE7DQo+ID4gICAg VUlOVDggICAgICAgICAgICAgICAgICAqRGF0YTI7DQo+ID4NCj4gPiAtICBCaXRNYXNrU2l6ZSA9 IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVzU3VwcG9ydCk7DQo+ID4gKyAgQml0TWFza1NpemUg PSBQY2RHZXRTaXplIChQY2RDcHVGZWF0dXJlc1NldHRpbmcpOw0KPiA+ICAgIERhdGExID0gU3Vw cG9ydGVkRmVhdHVyZU1hc2s7DQo+ID4gICAgRGF0YTIgPSBPckZlYXR1cmVCaXRNYXNrOw0KPiA+ ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IEJpdE1hc2tTaXplOyBJbmRleCsrKSB7IEBAIC0z MzEsNyArMzA1LDcgQEANCj4gPiBTdXBwb3J0ZWRNYXNrQW5kICgNCj4gPiAgICBVSU5UOCAgICAg ICAgICAgICAgICAgICpEYXRhMTsNCj4gPiAgICBVSU5UOCAgICAgICAgICAgICAgICAgICpEYXRh MjsNCj4gPg0KPiA+IC0gIEJpdE1hc2tTaXplID0gUGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNT dXBwb3J0KTsNCj4gPiArICBCaXRNYXNrU2l6ZSA9IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVz U2V0dGluZyk7DQo+ID4gICAgRGF0YTEgPSBTdXBwb3J0ZWRGZWF0dXJlTWFzazsNCj4gPiAgICBE YXRhMiA9IEFuZEZlYXR1cmVCaXRNYXNrOw0KPiA+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8 IEJpdE1hc2tTaXplOyBJbmRleCsrKSB7IEBAIC0zNTYsNyArMzMwLDcgQEANCj4gPiBTdXBwb3J0 ZWRNYXNrQ2xlYW5CaXQgKA0KPiA+ICAgIFVJTlQ4ICAgICAgICAgICAgICAgICAgKkRhdGExOw0K PiA+ICAgIFVJTlQ4ICAgICAgICAgICAgICAgICAgKkRhdGEyOw0KPiA+DQo+ID4gLSAgQml0TWFz a1NpemUgPSBQY2RHZXRTaXplIChQY2RDcHVGZWF0dXJlc1N1cHBvcnQpOw0KPiA+ICsgIEJpdE1h c2tTaXplID0gUGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNTZXR0aW5nKTsNCj4gPiAgICBEYXRh MSA9IFN1cHBvcnRlZEZlYXR1cmVNYXNrOw0KPiA+ICAgIERhdGEyID0gQW5kRmVhdHVyZUJpdE1h c2s7DQo+ID4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQml0TWFza1NpemU7IEluZGV4Kysp IHsgQEAgLTM4Nyw3ICszNjEsNyBAQA0KPiA+IElzQml0TWFza01hdGNoICgNCj4gPiAgICBVSU5U OCAgICAgICAgICAgICAgICAgICpEYXRhMTsNCj4gPiAgICBVSU5UOCAgICAgICAgICAgICAgICAg ICpEYXRhMjsNCj4gPg0KPiA+IC0gIEJpdE1hc2tTaXplID0gUGNkR2V0U2l6ZSAoUGNkQ3B1RmVh dHVyZXNTdXBwb3J0KTsNCj4gPiArICBCaXRNYXNrU2l6ZSA9IFBjZEdldFNpemUgKFBjZENwdUZl YXR1cmVzU2V0dGluZyk7DQo+ID4NCj4gPiAgICBEYXRhMSA9IFN1cHBvcnRlZEZlYXR1cmVNYXNr Ow0KPiA+ICAgIERhdGEyID0gQ29tcGFyZWRGZWF0dXJlQml0TWFzazsNCj4gPiBAQCAtNDI2LDIy ICs0MDAsMjIgQEAgQ29sbGVjdFByb2Nlc3NvckRhdGEgKA0KPiA+ICAgIEVudHJ5ID0gR2V0Rmly c3ROb2RlICgmQ3B1RmVhdHVyZXNEYXRhLT5GZWF0dXJlTGlzdCk7DQo+ID4gICAgd2hpbGUgKCFJ c051bGwgKCZDcHVGZWF0dXJlc0RhdGEtPkZlYXR1cmVMaXN0LCBFbnRyeSkpIHsNCj4gPiAgICAg IENwdUZlYXR1cmUgPSBDUFVfRkVBVFVSRV9FTlRSWV9GUk9NX0xJTksgKEVudHJ5KTsNCj4gPiAt ICAgIGlmIChJc0JpdE1hc2tNYXRjaCAoQ3B1RmVhdHVyZXNEYXRhLT5TdXBwb3J0UGNkLCBDcHVG ZWF0dXJlLQ0KPiA+RmVhdHVyZU1hc2spKSB7DQo+ID4gLSAgICAgIGlmIChDcHVGZWF0dXJlLT5T dXBwb3J0RnVuYyA9PSBOVUxMKSB7DQo+ID4gLSAgICAgICAgLy8NCj4gPiAtICAgICAgICAvLyBJ ZiBTdXBwb3J0RnVuYyBpcyBOVUxMLCB0aGVuIHRoZSBmZWF0dXJlIGlzIHN1cHBvcnRlZC4NCj4g PiAtICAgICAgICAvLw0KPiA+IC0gICAgICAgIFN1cHBvcnRlZE1hc2tPciAoDQo+ID4gLSAgICAg ICAgICBDcHVGZWF0dXJlc0RhdGEtDQo+ID5Jbml0T3JkZXJbUHJvY2Vzc29yTnVtYmVyXS5GZWF0 dXJlc1N1cHBvcnRlZE1hc2ssDQo+ID4gLSAgICAgICAgICBDcHVGZWF0dXJlLT5GZWF0dXJlTWFz aw0KPiA+IC0gICAgICAgICAgKTsNCj4gPiAtICAgICAgfSBlbHNlIGlmIChDcHVGZWF0dXJlLT5T dXBwb3J0RnVuYyAoUHJvY2Vzc29yTnVtYmVyLCBDcHVJbmZvLA0KPiBDcHVGZWF0dXJlLT5Db25m aWdEYXRhKSkgew0KPiA+IC0gICAgICAgIFN1cHBvcnRlZE1hc2tPciAoDQo+ID4gLSAgICAgICAg ICBDcHVGZWF0dXJlc0RhdGEtDQo+ID5Jbml0T3JkZXJbUHJvY2Vzc29yTnVtYmVyXS5GZWF0dXJl c1N1cHBvcnRlZE1hc2ssDQo+ID4gLSAgICAgICAgICBDcHVGZWF0dXJlLT5GZWF0dXJlTWFzaw0K PiA+IC0gICAgICAgICAgKTsNCj4gPiAtICAgICAgfQ0KPiA+ICsNCj4gPiArICAgIGlmIChDcHVG ZWF0dXJlLT5TdXBwb3J0RnVuYyA9PSBOVUxMKSB7DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAg IC8vIElmIFN1cHBvcnRGdW5jIGlzIE5VTEwsIHRoZW4gdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVk Lg0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICBTdXBwb3J0ZWRNYXNrT3IgKA0KPiA+ICsgICAg ICAgIENwdUZlYXR1cmVzRGF0YS0NCj4gPkluaXRPcmRlcltQcm9jZXNzb3JOdW1iZXJdLkZlYXR1 cmVzU3VwcG9ydGVkTWFzaywNCj4gPiArICAgICAgICBDcHVGZWF0dXJlLT5GZWF0dXJlTWFzaw0K PiA+ICsgICAgICAgICk7DQo+ID4gKyAgICB9IGVsc2UgaWYgKENwdUZlYXR1cmUtPlN1cHBvcnRG dW5jIChQcm9jZXNzb3JOdW1iZXIsIENwdUluZm8sDQo+IENwdUZlYXR1cmUtPkNvbmZpZ0RhdGEp KSB7DQo+ID4gKyAgICAgIFN1cHBvcnRlZE1hc2tPciAoDQo+ID4gKyAgICAgICAgQ3B1RmVhdHVy ZXNEYXRhLQ0KPiA+SW5pdE9yZGVyW1Byb2Nlc3Nvck51bWJlcl0uRmVhdHVyZXNTdXBwb3J0ZWRN YXNrLA0KPiA+ICsgICAgICAgIENwdUZlYXR1cmUtPkZlYXR1cmVNYXNrDQo+ID4gKyAgICAgICAg KTsNCj4gPiAgICAgIH0NCj4gPiArDQo+ID4gICAgICBFbnRyeSA9IEVudHJ5LT5Gb3J3YXJkTGlu azsNCj4gPiAgICB9DQo+ID4gIH0NCj4gDQo+IFRoZSBmdW5jdGlvbmFsIGVmZmVjdCBvZiB0aGUg Y2hhbmdlIGluIENvbGxlY3RQcm9jZXNzb3JEYXRhKCkgaXMgdG9vIGNvbXBsZXgNCj4gZm9yIG1l IHRvIGRldGVybWluZSwgc28gSSdkIGxpa2UgdG8gbGVhdmUgdGhlIHJldmlldyBvZiB0aGlzIHBh dGNoIHRvIFJheSBvbmx5Lg0KPiANCj4gKDEpIEZXSVcsIEkndmUgYXR0ZW1wdGVkIHRvIHJlYWQg dGhlIEJaIGNhcmVmdWxseSwgYW5kIGl0IHNlZW1zIHRoZSBwYXRjaA0KPiBkb2Vzbid0IGRvIGFs bCB0aGluZ3MgdGhhdCB0aGUgQlogc3VnZ2VzdHM6DQo+IA0KPiAtIFRoZSBJc0NwdUZlYXR1cmVT dXBwb3J0ZWQoKSBmdW5jdGlvbiBpcyBub3QgcmVtb3ZlZC4gVGhhdCBjb3VsZCBiZQ0KPiBjb3Jy ZWN0LCBidXQgdGhlbiBJIHRoaW5rIGl0IHNob3VsZCBiZSBleHBsYWluZWQgaW4gdGhlIEJaIChp LmUuIHVwZGF0ZSB0aGUNCj4gc2NvcGUpLg0KDQpBZ3JlZSwgYWRkZWQgbm90ZXMgaW4gdGhlIEJa IHRvIGV4cGxhaW4gd2hhdCByZWFsIGNoYW5nZXMgd2lsbCBkby4NCg0KPiANCj4gLSBJcyBpdCBh c3NlcnRlZCBzb21ld2hlcmUgdGhhdCBQY2RDcHVGZWF0dXJlc1NldHRpbmcgYW5kDQo+IFBjZENw dUZlYXR1cmVzQ2FwYWJpbGl0eSBoYXZlIGVxdWFsIHNpemU/DQoNClNvcnJ5LCBJIG1pc3NlZCB0 aGlzIHBhcnQuIFdpbGwgaW5jbHVkZSBpdCBpbiBWMiBjaGFuZ2VzLg0KDQo+IA0KPiAoMikgSW5k ZXBlbmRlbnRseSwgcGxlYXNlIGFwcGVuZCAob3IgcHJlcGVuZCkgYSBjbGVhbnVwIHBhdGNoIHRv IHRoZSBzZXJpZXMuDQo+IE5hbWVseSwgdGhlIGNvbW1lbnQgYmxvY2sgb24gSXNDcHVGZWF0dXJl U2V0SW5DcHVQY2QoKSByZWZlcmVuY2VzDQo+ICJQY2RDcHVGZWF0dXJlc1N1cHBvcnQiLiBJdCBz aG91bGQgcmVmZXJlbmNlICJDcHVCaXRNYXNrIg0KPiBpbnN0ZWFkLCBJTU8uDQoNCkFncmVlLCB3 aWxsIGluY2x1ZGUgaXQgaW4gdjIgY2hhbmdlcy4NCg0KVGhhbmtzLA0KRXJpYw0KPiANCj4gVGhh bmtzDQo+IExhc3psbw0KPiANCj4gPiBAQCAtNjQ2LDggKzYyMCw2IEBAIEFuYWx5c2lzUHJvY2Vz c29yRmVhdHVyZXMgKA0KPiA+ICAgICAgICBEdW1wQ3B1RmVhdHVyZSAoQ3B1RmVhdHVyZSk7DQo+ ID4gICAgICAgIEVudHJ5ID0gRW50cnktPkZvcndhcmRMaW5rOw0KPiA+ICAgICAgfQ0KPiA+IC0g ICAgREVCVUcgKChERUJVR19JTkZPLCAiUGNkQ3B1RmVhdHVyZXNTdXBwb3J0OlxuIikpOw0KPiA+ IC0gICAgRHVtcENwdUZlYXR1cmVNYXNrIChDcHVGZWF0dXJlc0RhdGEtPlN1cHBvcnRQY2QpOw0K PiA+ICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiUGNkQ3B1RmVhdHVyZXNDYXBhYmlsaXR5Olxu IikpOw0KPiA+ICAgICAgRHVtcENwdUZlYXR1cmVNYXNrIChDcHVGZWF0dXJlc0RhdGEtPkNhcGFi aWxpdHlQY2QpOw0KPiA+ICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiUGNkQ3B1RmVhdHVyZXNT ZXR0aW5nOlxuIikpOyBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvUmVnaXN0 ZXJDcHVGZWF0dXJlc0xpYi9SZWdpc3RlckNwdUZlYXR1cmVzLmgNCj4gPiBiL1VlZmlDcHVQa2cv TGlicmFyeS9SZWdpc3RlckNwdUZlYXR1cmVzTGliL1JlZ2lzdGVyQ3B1RmVhdHVyZXMuaA0KPiA+ IGluZGV4IDNlMGEzNDJmZDEuLjgzNmVkMzU0OWMgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L1JlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIvUmVnaXN0ZXJDcHVGZWF0dXJlcy5oDQo+ ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1JlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIvUmVnaXN0 ZXJDcHVGZWF0dXJlcy5oDQo+ID4gQEAgLTgxLDcgKzgxLDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0K PiA+ICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgICBGZWF0dXJlTGlzdDsNCj4gPg0KPiA+ICAg IENQVV9GRUFUVVJFU19JTklUX09SREVSICAqSW5pdE9yZGVyOw0KPiA+IC0gIFVJTlQ4ICAgICAg ICAgICAgICAgICAgICAqU3VwcG9ydFBjZDsNCj4gPiAgICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgKkNhcGFiaWxpdHlQY2Q7DQo+ID4gICAgVUlOVDggICAgICAgICAgICAgICAgICAgICpTZXR0 aW5nUGNkOw0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1Jl Z2lzdGVyQ3B1RmVhdHVyZXNMaWIvUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi5jDQo+ID4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi9SZWdpc3RlckNwdUZlYXR1cmVz TGliLmMNCj4gPiBpbmRleCAzNTQwMDI5MDc5Li4zZThlODk5NzY2IDEwMDY0NA0KPiA+IC0tLQ0K PiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1JlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIvUmVnaXN0ZXJD cHVGZWF0dXJlc0xpYi5jDQo+ID4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1JlZ2lzdGVy Q3B1RmVhdHVyZXNMaWIvUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYg0KPiA+ICsrKyAuYw0KPiA+IEBA IC0zMSw3ICszMSw3IEBAIElzQ3B1RmVhdHVyZU1hdGNoICgNCj4gPiAgew0KPiA+ICAgIFVJTlRO ICAgICAgICAgICAgICAgICBCaXRNYXNrU2l6ZTsNCj4gPg0KPiA+IC0gIEJpdE1hc2tTaXplID0g UGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNTdXBwb3J0KTsNCj4gPiArICBCaXRNYXNrU2l6ZSA9 IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVzU2V0dGluZyk7DQo+ID4gICAgaWYgKENvbXBhcmVN ZW0gKEZpcnN0RmVhdHVyZU1hc2ssIFNlY29uZEZlYXR1cmVNYXNrLCBCaXRNYXNrU2l6ZSkNCj4g PT0gMCkgew0KPiA+ICAgICAgcmV0dXJuIFRSVUU7DQo+ID4gICAgfSBlbHNlIHsNCj4gPiBAQCAt NTMsNyArNTMsNyBAQCBEdW1wQ3B1RmVhdHVyZU1hc2sgKA0KPiA+ICAgIFVJTlQ4ICAgICAgICAg ICAgICAgICAgKkRhdGE4Ow0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgQml0TWFza1Np emU7DQo+ID4NCj4gPiAtICBCaXRNYXNrU2l6ZSA9IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVz U3VwcG9ydCk7DQo+ID4gKyAgQml0TWFza1NpemUgPSBQY2RHZXRTaXplIChQY2RDcHVGZWF0dXJl c1NldHRpbmcpOw0KPiA+ICAgIERhdGE4ICAgICAgID0gKFVJTlQ4ICopIEZlYXR1cmVNYXNrOw0K PiA+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IEJpdE1hc2tTaXplOyBJbmRleCsrKSB7DQo+ ID4gICAgICBERUJVRyAoKERFQlVHX0lORk8sICIgJTAyeCAiLCAqRGF0YTgrKykpOyBAQCAtMTAw LDcgKzEwMCw3IEBADQo+ID4gSXNCaXRNYXNrTWF0Y2hDaGVjayAoDQo+ID4gICAgVUlOVDggICAg ICAqRGF0YTE7DQo+ID4gICAgVUlOVDggICAgICAqRGF0YTI7DQo+ID4NCj4gPiAtICBCaXRNYXNr U2l6ZSA9IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVzU3VwcG9ydCk7DQo+ID4gKyAgQml0TWFz a1NpemUgPSBQY2RHZXRTaXplIChQY2RDcHVGZWF0dXJlc1NldHRpbmcpOw0KPiA+DQo+ID4gICAg RGF0YTEgPSBGZWF0dXJlTWFzazsNCj4gPiAgICBEYXRhMiA9IERlcGVuZGVudEJpdE1hc2s7DQo+ ID4gQEAgLTY1Niw3ICs2NTYsNyBAQCBSZWdpc3RlckNwdUZlYXR1cmVXb3JrZXIgKA0KPiA+ICAg IFVJTlROICAgICAgICAgICAgICAgICAgICAgIEJpdE1hc2tTaXplOw0KPiA+ICAgIEJPT0xFQU4g ICAgICAgICAgICAgICAgICAgIEZlYXR1cmVFeGlzdDsNCj4gPg0KPiA+IC0gIEJpdE1hc2tTaXpl ICAgICA9IFBjZEdldFNpemUgKFBjZENwdUZlYXR1cmVzU3VwcG9ydCk7DQo+ID4gKyAgQml0TWFz a1NpemUgICAgID0gUGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNTZXR0aW5nKTsNCj4gPiAgICBD cHVGZWF0dXJlc0RhdGEgPSBHZXRDcHVGZWF0dXJlc0RhdGEgKCk7DQo+ID4gICAgaWYgKENwdUZl YXR1cmVzRGF0YS0+RmVhdHVyZXNDb3VudCA9PSAwKSB7DQo+ID4gICAgICBJbml0aWFsaXplTGlz dEhlYWQgKCZDcHVGZWF0dXJlc0RhdGEtPkZlYXR1cmVMaXN0KTsgQEAgLTg3MCw3DQo+ID4gKzg3 MCw3IEBAIFJlZ2lzdGVyQ3B1RmVhdHVyZSAoDQo+ID4gICAgQmVmb3JlQWxsICAgICAgICAgICAg PSBGQUxTRTsNCj4gPiAgICBBZnRlckFsbCAgICAgICAgICAgICA9IEZBTFNFOw0KPiA+DQo+ID4g LSAgQml0TWFza1NpemUgPSBQY2RHZXRTaXplIChQY2RDcHVGZWF0dXJlc1N1cHBvcnQpOw0KPiA+ ICsgIEJpdE1hc2tTaXplID0gUGNkR2V0U2l6ZSAoUGNkQ3B1RmVhdHVyZXNTZXR0aW5nKTsNCj4g Pg0KPiA+ICAgIFZBX1NUQVJUIChNYXJrZXIsIEluaXRpYWxpemVGdW5jKTsNCj4gPiAgICBGZWF0 dXJlID0gVkFfQVJHIChNYXJrZXIsIFVJTlQzMik7DQo+ID4NCg0K