From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.4667.1585277053211727866 for ; Thu, 26 Mar 2020 19:44:13 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: zhichao.gao@intel.com) IronPort-SDR: Ni9mnUHGyMyEoT1zR1BiOngm5KR3OjPQ/HVC0GG5slaRJmyZCms9MVdwO9FKVbTo+wjs1RAIA7 LFUh1yLGWLiA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2020 19:44:12 -0700 IronPort-SDR: 0TI1xTTIwoaZvm3010EbO0W6RxJFmDsKp+8jzgTym87omJqlAK9/+3lzPmvFhupubPcYVw4Jm9 T8qOrZcT0HFg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,310,1580803200"; d="scan'208";a="241166239" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga008.jf.intel.com with ESMTP; 26 Mar 2020 19:44:12 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Mar 2020 19:44:12 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX601.ccr.corp.intel.com (10.109.6.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 27 Mar 2020 10:44:09 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Fri, 27 Mar 2020 10:44:09 +0800 From: "Gao, Zhichao" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, XiaoyuX" Subject: Re: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib: Use Pcd to control the SHA1 enablement Thread-Topic: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib: Use Pcd to control the SHA1 enablement Thread-Index: AQHWA9sLxwxDhG/bc0e0f0XLGF9Vfqhbr7eggAAEYuA= Date: Fri, 27 Mar 2020 02:44:09 +0000 Message-ID: References: <20200327015629.2588-1-zhichao.gao@intel.com> <20200327015629.2588-9-zhichao.gao@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWlrZSwNCg0KSXQgaXMgYmV0dGVyIHRvIG5vdCBjb21waWxlIHRoZSBkZXByZWNhdGVkIGZ1 bmN0aW9uLCBpLmUuIGRpc2FibGUgdGhlIGZ1bmN0aW9uIGF0IGJ1aWxkIHRpbWUuIElzIHRoZXJl IGFub3RoZXIgd2F5IHRvIGRpc2FibGUgdGhlIGZ1bmN0aW9uIGF0IGJ1aWxkIHRpbWUgZXhjZXB0 IHRoZSAjaWYgc3RhdGVtZW50Pw0KDQpUaGFua3MsDQpaaGljaGFvDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQNCj4gU2VudDogRnJpZGF5 LCBNYXJjaCAyNywgMjAyMCAxMDowNCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdh bywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgS2lubmV5LA0KPiBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8eGlhb3l1eC5sdUBpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIDgvOF0gQ3J5cHRvUGtnL0Jhc2VDcnlwdExp YjogVXNlIFBjZCB0bw0KPiBjb250cm9sIHRoZSBTSEExIGVuYWJsZW1lbnQNCj4gDQo+IFdlIHNo b3VsZCBub3QgdXNlICNpZiBzdGF0ZW1lbnRzIGluIEMgY29kZS4NCj4gDQo+IEFsc28sIHdlIHNo b3VsZCBub3QgYmUgY2hhbmdpbmcgdGhlIGxheW91dCBvZiB0aGUgc3RydWN0dXJlIGJhc2VkIG9u IGEgUENEDQo+IGZlYXR1cmUgZmxhZy4NCj4gDQo+IEkgYWdyZWUgd2UgbmVlZCB0byBhYmlsaXR5 IHRvIGRpc2FibGUgdGhlIHVzZSBvZiBzb21lIENyeXB0byBzZXJ2aWNlcywgYnV0IHdlDQo+IG5l ZWQgdG8gZGVjaWRlIHdoYXQgYmVoYXZpb3Igd2Ugd2FudCBhdCBidWlsZCB0aW1lIGFuZCBib290 IHRpbWUgaWYgdGhlcmUgaXMNCj4gY29kZSB0aGF0IHVzZXMgYSBkaXNhYmxlZCBzZXJ2aWNlLg0K PiANCj4gTWlrZQ0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZiBHYW8sDQo+ID4gWmhpY2hhbw0KPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyNiwgMjAy MCA2OjU2IFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gQ2M6IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4gPiA8eGlhb3l1eC5s dUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCA4LzhdIENyeXB0 b1BrZy9CYXNlQ3J5cHRMaWI6DQo+ID4gVXNlIFBjZCB0byBjb250cm9sIHRoZSBTSEExIGVuYWJs ZW1lbnQNCj4gPg0KPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3df YnVnLmNnaT9pZD0xNjgyDQo+ID4NCj4gPiBNZDUgYW5kIFNIQTEgaXMgbm90IHNlY3VyZSBhbnkg bG9uZ2VyIGJ1dCB1ZWZpIHNwZWMgbmVlZCB0byBrZWVwIHRoZW0NCj4gPiBmb3IgYmFja3dhcmRz IGNvbXBhdGliaWxpdHkuDQo+ID4gVXNlIHBjZCBQY2RTSEExRW5hYmxlIHRvIGNvbnRyb2wgdGhl IFNIQTEgZnVuY3Rpb24gZW5hYmxlbWVudC4NCj4gPiBXaGVuIGRpc2FibGUgdGhlIFNIQTEgZnVu Y3Rpb25zIHdvdWxkIG5vdCBiZSBjb21wbGllZC4NCj4gPg0KPiA+IENjOiBKaWFuIEogV2FuZyA8 amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+IENjOiBYaWFveXUgTHUgPHhpYW95dXgubHVAaW50 ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRl bC5jb20+DQo+ID4gLS0tDQo+ID4gIENyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfA0KPiA+IDggKysrKysrKysNCj4gPiAgQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUNyeXB0TGliL0Jhc2VDcnlwdExpYi5pbmYgICAgICB8DQo+ID4gMSArDQo+ID4gIENy eXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTEuYyAgfA0KPiA+ IDMgKysrDQo+ID4gIC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTFO dWxsLmMgICAgfA0KPiA+IDMgKysrDQo+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExp Yi9QZWlDcnlwdExpYi5pbmYgICAgICAgfA0KPiA+IDEgKw0KPiA+ICBDcnlwdG9Qa2cvTGlicmFy eS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRQa2NzNVBia2RmMi5jIHwNCj4gPiAzICsrKw0KPiA+ICBD cnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRSc2FCYXNpYy5jICAgIHwNCj4g PiAyICsrDQo+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUV4 dC5jICAgICAgfA0KPiA+IDIgKysNCj4gPiAgQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli L1J1bnRpbWVDcnlwdExpYi5pbmYgICB8DQo+ID4gMSArDQo+ID4gIENyeXB0b1BrZy9MaWJyYXJ5 L0Jhc2VDcnlwdExpYi9TbW1DcnlwdExpYi5pbmYgICAgICAgfA0KPiA+IDEgKw0KPiA+ICAuLi4v QmFzZUNyeXB0TGliTnVsbC9IbWFjL0NyeXB0SG1hY1NoYTFOdWxsLmMgICAgICAgIHwNCj4gPiA0 ICsrKy0NCj4gPiAgLi4uL0xpYnJhcnkvQmFzZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExp Yi5jICAgICB8DQo+ID4gNCArKysrDQo+ID4gIENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBp TGliL0Jhc2VIYXNoQXBpTGliLmMgICAgfA0KPiA+IDEyICsrKysrKysrKysrKw0KPiA+ICBDcnlw dG9Qa2cvTGlicmFyeS9CYXNlSGFzaEFwaUxpYi9CYXNlSGFzaEFwaUxpYi5pbmYgIHwNCj4gPiAx ICsNCj4gPiAgQ3J5cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wvQ3J5cHRvLmggICAgICAgICAgICAg ICAgICB8DQo+ID4gOSArKysrKysrKy0NCj4gPiAgMTUgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cv RHJpdmVyL0NyeXB0by5jIGIvQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8uYw0KPiA+IGluZGV4IGI1 M2RhODViYWQuLmY3OTAyMjA1YjMgMTAwNjQ0DQo+ID4gLS0tIGEvQ3J5cHRvUGtnL0RyaXZlci9D cnlwdG8uYw0KPiA+ICsrKyBiL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMNCj4gPiBAQCAtMjY2 LDYgKzI2Niw3IEBAIENyeXB0b1NlcnZpY2VNZDVIYXNoQWxsICggIH0gICNlbmRpZg0KPiA+DQo+ ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgLyoqDQo+ID4g ICAgUmV0cmlldmVzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyIHJl cXVpcmVkIGZvcg0KPiA+IFNIQS0xIGhhc2ggb3BlcmF0aW9ucy4NCj4gPg0KPiA+IEBAIC00MjMs NiArNDI0LDcgQEAgQ3J5cHRvU2VydmljZVNoYTFIYXNoQWxsICggIHsNCj4gPiAgICByZXR1cm4g Q0FMTF9CQVNFQ1JZUFRMSUIgKFNoYTEuU2VydmljZXMuSGFzaEFsbCwgU2hhMUhhc2hBbGwsDQo+ ID4gKERhdGEsIERhdGFTaXplLCBIYXNoVmFsdWUpLCBGQUxTRSk7ICB9DQo+ID4gKyNlbmRpZg0K PiA+DQo+ID4gIC8qKg0KPiA+ICAgIFJldHJpZXZlcyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRo ZSBjb250ZXh0IGJ1ZmZlcg0KPiA+IHJlcXVpcmVkIGZvciBTSEEtMjU2IGhhc2ggb3BlcmF0aW9u cy4NCj4gPiBAQCAtMTE3Nyw2ICsxMTc5LDcgQEAgQ3J5cHRvU2VydmljZUhtYWNNZDVGaW5hbCAo DQo+ID4gIH0NCj4gPiAgI2VuZGlmDQo+ID4NCj4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBj ZFNIQTFFbmFibGUpKQ0KPiA+ICAvKioNCj4gPiAgICBBbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVz IG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+IHN1YnNlcXVlbnQgSE1BQy1TSEExIHVzZS4N Cj4gPg0KPiA+IEBAIC0xMzI3LDYgKzEzMzAsNyBAQCBDcnlwdG9TZXJ2aWNlSG1hY1NoYTFGaW5h bCAoDQo+ID4gIHsNCj4gPiAgICByZXR1cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKEhtYWNTaGExLlNl cnZpY2VzLkZpbmFsLA0KPiA+IEhtYWNTaGExRmluYWwsIChIbWFjU2hhMUNvbnRleHQsIEhtYWNW YWx1ZSksIEZBTFNFKTsNCj4gPiAgfQ0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICAvKioNCj4gPiAg ICBBbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9uZSBITUFDX0NUWCBjb250ZXh0IGZvcg0KPiA+ IHN1YnNlcXVlbnQgSE1BQy1TSEEyNTYgdXNlLg0KPiA+IEBAIC0zODIwLDYgKzM4MjQsNyBAQCBj b25zdCBFREtJSV9DUllQVE9fUFJPVE9DT0wNCj4gPiBtRWRraWlDcnlwdG8gPSB7DQo+ID4gICAg Q3J5cHRvU2VydmljZUhtYWNNZDVVcGRhdGUsDQo+ID4gICAgQ3J5cHRvU2VydmljZUhtYWNNZDVG aW5hbCwNCj4gPiAgI2VuZGlmDQo+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5h YmxlKSkNCj4gPiAgICAvLy8gSE1BQyBTSEExDQo+ID4gICAgQ3J5cHRvU2VydmljZUhtYWNTaGEx TmV3LA0KPiA+ICAgIENyeXB0b1NlcnZpY2VIbWFjU2hhMUZyZWUsDQo+ID4gQEAgLTM4MjcsNiAr MzgzMiw3IEBAIGNvbnN0IEVES0lJX0NSWVBUT19QUk9UT0NPTA0KPiA+IG1FZGtpaUNyeXB0byA9 IHsNCj4gPiAgICBDcnlwdG9TZXJ2aWNlSG1hY1NoYTFEdXBsaWNhdGUsDQo+ID4gICAgQ3J5cHRv U2VydmljZUhtYWNTaGExVXBkYXRlLA0KPiA+ICAgIENyeXB0b1NlcnZpY2VIbWFjU2hhMUZpbmFs LA0KPiA+ICsjZW5kaWYNCj4gPiAgICAvLy8gSE1BQyBTSEEyNTYNCj4gPiAgICBDcnlwdG9TZXJ2 aWNlSG1hY1NoYTI1Nk5ldywNCj4gPiAgICBDcnlwdG9TZXJ2aWNlSG1hY1NoYTI1NkZyZWUsDQo+ ID4gQEAgLTM4NzcsNiArMzg4Myw3IEBAIGNvbnN0IEVES0lJX0NSWVBUT19QUk9UT0NPTA0KPiA+ IG1FZGtpaUNyeXB0byA9IHsNCj4gPiAgICBDcnlwdG9TZXJ2aWNlUnNhUGtjczFWZXJpZnksDQo+ ID4gICAgQ3J5cHRvU2VydmljZVJzYUdldFByaXZhdGVLZXlGcm9tUGVtLA0KPiA+ICAgIENyeXB0 b1NlcnZpY2VSc2FHZXRQdWJsaWNLZXlGcm9tWDUwOSwNCj4gPiArI2lmIChGaXhlZFBjZEdldEJv b2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ICAgIC8vLyBTaGExDQo+ID4gICAgQ3J5cHRvU2Vydmlj ZVNoYTFHZXRDb250ZXh0U2l6ZSwNCj4gPiAgICBDcnlwdG9TZXJ2aWNlU2hhMUluaXQsDQo+ID4g QEAgLTM4ODQsNiArMzg5MSw3IEBAIGNvbnN0IEVES0lJX0NSWVBUT19QUk9UT0NPTA0KPiA+IG1F ZGtpaUNyeXB0byA9IHsNCj4gPiAgICBDcnlwdG9TZXJ2aWNlU2hhMVVwZGF0ZSwNCj4gPiAgICBD cnlwdG9TZXJ2aWNlU2hhMUZpbmFsLA0KPiA+ICAgIENyeXB0b1NlcnZpY2VTaGExSGFzaEFsbCwN Cj4gPiArI2VuZGlmDQo+ID4gICAgLy8vIFNoYTI1Ng0KPiA+ICAgIENyeXB0b1NlcnZpY2VTaGEy NTZHZXRDb250ZXh0U2l6ZSwNCj4gPiAgICBDcnlwdG9TZXJ2aWNlU2hhMjU2SW5pdCwNCj4gPiBk aWZmIC0tZ2l0DQo+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvQmFzZUNyeXB0 TGliLmluZg0KPiA+IGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0Jhc2VDcnlwdExp Yi5pbmYNCj4gPiBpbmRleCA1YzY1ZWY1ODkyLi45ZmZkOTgwOTZjIDEwMDY0NA0KPiA+IC0tLSBh L0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9CYXNlQ3J5cHRMaWIuaW5mDQo+ID4gKysr IGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0Jhc2VDcnlwdExpYi5pbmYNCj4gPiBA QCAtODUsNiArODUsNyBAQA0KPiA+DQo+ID4gIFtQY2RdDQo+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rv a2VuU3BhY2VHdWlkLlBjZE1ENUVuYWJsZQ0KPiA+ICsgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNl R3VpZC5QY2RTSEExRW5hYmxlDQo+ID4NCj4gPiAgIw0KPiA+ICAjIFJlbW92ZSB0aGVzZSBbQnVp bGRPcHRpb25zXSBhZnRlciB0aGlzIGxpYnJhcnkgaXMNCj4gPiBjbGVhbmVkIHVwDQo+ID4gZGlm ZiAtLWdpdA0KPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRI bWFjU2hhMS5jDQo+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvSG1hYy9Dcnlw dEhtYWNTaGExLmMNCj4gPiBpbmRleCA3NTkzY2E1NWIxLi5iYWJhNmIyNjdjIDEwMDY0NA0KPiA+ IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTEu Yw0KPiA+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1h Y1NoYTEuYw0KPiA+IEBAIC02LDYgKzYsOCBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLQ0KPiA+IFBhdGVudA0KPiA+DQo+ID4gICoqLw0KPiA+DQo+ID4gKyNpbmNsdWRl IDxMaWJyYXJ5L1BjZExpYi5oPg0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVu YWJsZSkpDQo+ID4gICNpbmNsdWRlICJJbnRlcm5hbENyeXB0TGliLmgiDQo+ID4gICNpbmNsdWRl IDxvcGVuc3NsL2htYWMuaD4NCj4gPg0KPiA+IEBAIC0yMTQsMyArMjE2LDQgQEAgSG1hY1NoYTFG aW5hbCAoDQo+ID4NCj4gPiAgICByZXR1cm4gVFJVRTsNCj4gPiAgfQ0KPiA+ICsjZW5kaWYNCj4g PiBkaWZmIC0tZ2l0DQo+ID4gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvSG1hYy9D cnlwdEhtYWNTaGExTnVsbC5jDQo+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIv SG1hYy9DcnlwdEhtYWNTaGExTnVsbC5jDQo+ID4gaW5kZXggZThjMGYzNDFiNy4uMTMxNGZhMWE3 NyAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9I bWFjL0NyeXB0SG1hY1NoYTFOdWxsLmMNCj4gPiArKysNCj4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5 L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY1NoYTFOdWxsLmMNCj4gPiBAQCAtNiw2ICs2LDgg QEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS0NCj4gPiBQYXRlbnQNCj4g Pg0KPiA+ICAqKi8NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiAr I2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ICAjaW5jbHVkZSAiSW50 ZXJuYWxDcnlwdExpYi5oIg0KPiA+DQo+ID4gIC8qKg0KPiA+IEBAIC0xMzcsMyArMTM5LDQgQEAg SG1hY1NoYTFGaW5hbCAoDQo+ID4gICAgQVNTRVJUIChGQUxTRSk7DQo+ID4gICAgcmV0dXJuIEZB TFNFOw0KPiA+ICB9DQo+ID4gKyNlbmRpZg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL0NyeXB0b1Br Zy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9QZWlDcnlwdExpYi5pbmYNCj4gPiBiL0NyeXB0b1BrZy9M aWJyYXJ5L0Jhc2VDcnlwdExpYi9QZWlDcnlwdExpYi5pbmYNCj4gPiBpbmRleCBjZWJjNzRjY2Yy Li5iNDBlNzZmMjQzIDEwMDY0NA0KPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlw dExpYi9QZWlDcnlwdExpYi5pbmYNCj4gPiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5 cHRMaWIvUGVpQ3J5cHRMaWIuaW5mDQo+ID4gQEAgLTc4LDYgKzc4LDcgQEANCj4gPg0KPiA+ICBb UGNkXQ0KPiA+ICAgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNlR3VpZC5QY2RNRDVFbmFibGUNCj4g PiArICBnRWZpQ3J5cHRvUGtnVG9rZW5TcGFjZUd1aWQuUGNkU0hBMUVuYWJsZQ0KPiA+DQo+ID4g ICMNCj4gPiAgIyBSZW1vdmUgdGhlc2UgW0J1aWxkT3B0aW9uc10gYWZ0ZXIgdGhpcyBsaWJyYXJ5 IGlzDQo+ID4gY2xlYW5lZCB1cA0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL0NyeXB0b1BrZy9MaWJy YXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFBrY3M1UGJrZGYyLmMNCj4gPiBiL0NyeXB0b1BrZy9M aWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFBrY3M1UGJrZGYyLmMNCj4gPiBpbmRleCBhODlj MTUyNWMxLi4xNWU2YmMyY2I0IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0UGtjczVQYmtkZjIuYw0KPiA+ICsrKw0KPiA+IGIvQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0UGtjczVQYmtkZjIuYw0KPiA+IEBA IC03LDYgKzcsNyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiA+ IFBhdGVudA0KPiA+ICAqKi8NCj4gPg0KPiA+ICAjaW5jbHVkZSAiSW50ZXJuYWxDcnlwdExpYi5o Ig0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPG9wZW5z c2wvZXZwLmg+DQo+ID4gICNpbmNsdWRlIDxvcGVuc3NsL2htYWMuaD4NCj4gPg0KPiA+IEBAIC02 OCw5ICs2OSwxMSBAQCBQa2NzNUhhc2hQYXNzd29yZCAoDQo+ID4gICAgLy8gTWFrZSBzdXJlIHRo ZSBkaWdlc3QgYWxnb3JpdGhtIGlzIHN1cHBvcnRlZC4NCj4gPiAgICAvLw0KPiA+ICAgIHN3aXRj aCAoRGlnZXN0U2l6ZSkgew0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJs ZSkpDQo+ID4gICAgY2FzZSBTSEExX0RJR0VTVF9TSVpFOg0KPiA+ICAgICAgSGFzaEFsZyA9IEVW UF9zaGExKCk7DQo+ID4gICAgICBicmVhazsNCj4gPiArI2VuZGlmDQo+ID4gICAgY2FzZSBTSEEy NTZfRElHRVNUX1NJWkU6DQo+ID4gICAgICBIYXNoQWxnID0gRVZQX3NoYTI1NigpOw0KPiA+ICAg ICAgYnJlYWs7DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNy eXB0TGliL1BrL0NyeXB0UnNhQmFzaWMuYw0KPiA+IGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNy eXB0TGliL1BrL0NyeXB0UnNhQmFzaWMuYw0KPiA+IGluZGV4IDMxYjc4NDY0ZDIuLjU0OWVlMWI5 MzMgMTAwNjQ0DQo+ID4gLS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0Ny eXB0UnNhQmFzaWMuYw0KPiA+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Q ay9DcnlwdFJzYUJhc2ljLmMNCj4gPiBAQCAtMjk4LDkgKzI5OCwxMSBAQCBSc2FQa2NzMVZlcmlm eSAoDQo+ID4gICAgICBicmVhazsNCj4gPiAgI2VuZGlmDQo+ID4NCj4gPiArI2lmIChGaXhlZFBj ZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ICAgIGNhc2UgU0hBMV9ESUdFU1RfU0laRToN Cj4gPiAgICAgIERpZ2VzdFR5cGUgPSBOSURfc2hhMTsNCj4gPiAgICAgIGJyZWFrOw0KPiA+ICsj ZW5kaWYNCj4gPg0KPiA+ICAgIGNhc2UgU0hBMjU2X0RJR0VTVF9TSVpFOg0KPiA+ICAgICAgRGln ZXN0VHlwZSA9IE5JRF9zaGEyNTY7DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQ3J5cHRvUGtnL0xp YnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0UnNhRXh0LmMNCj4gPiBiL0NyeXB0b1BrZy9MaWJy YXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUV4dC5jDQo+ID4gaW5kZXggMWE1MGJlMWQ3OC4u NjA2MDVlMzQ4NiAxMDA2NDQNCj4gPiAtLS0gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRM aWIvUGsvQ3J5cHRSc2FFeHQuYw0KPiA+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlw dExpYi9Qay9DcnlwdFJzYUV4dC5jDQo+ID4gQEAgLTMzNiw5ICszMzYsMTEgQEAgUnNhUGtjczFT aWduICgNCj4gPiAgICAgIGJyZWFrOw0KPiA+ICAjZW5kaWYNCj4gPg0KPiA+ICsjaWYgKEZpeGVk UGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gICAgY2FzZSBTSEExX0RJR0VTVF9TSVpF Og0KPiA+ICAgICAgRGlnZXN0VHlwZSA9IE5JRF9zaGExOw0KPiA+ICAgICAgYnJlYWs7DQo+ID4g KyNlbmRpZg0KPiA+DQo+ID4gICAgY2FzZSBTSEEyNTZfRElHRVNUX1NJWkU6DQo+ID4gICAgICBE aWdlc3RUeXBlID0gTklEX3NoYTI1NjsNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9DcnlwdG9Qa2cv TGlicmFyeS9CYXNlQ3J5cHRMaWIvUnVudGltZUNyeXB0TGliLmluZg0KPiA+IGIvQ3J5cHRvUGtn L0xpYnJhcnkvQmFzZUNyeXB0TGliL1J1bnRpbWVDcnlwdExpYi5pbmYNCj4gPiBpbmRleCA3MmQ0 Y2QwM2FiLi5iNmMwYmU3MGYyIDEwMDY0NA0KPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jh c2VDcnlwdExpYi9SdW50aW1lQ3J5cHRMaWIuaW5mDQo+ID4gKysrIGIvQ3J5cHRvUGtnL0xpYnJh cnkvQmFzZUNyeXB0TGliL1J1bnRpbWVDcnlwdExpYi5pbmYNCj4gPiBAQCAtOTAsNiArOTAsNyBA QA0KPiA+DQo+ID4gIFtQY2RdDQo+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBj ZE1ENUVuYWJsZQ0KPiA+ICsgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNlR3VpZC5QY2RTSEExRW5h YmxlDQo+ID4NCj4gPiAgIw0KPiA+ICAjIFJlbW92ZSB0aGVzZSBbQnVpbGRPcHRpb25zXSBhZnRl ciB0aGlzIGxpYnJhcnkgaXMNCj4gPiBjbGVhbmVkIHVwDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEv Q3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1NtbUNyeXB0TGliLmluZg0KPiA+IGIvQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1NtbUNyeXB0TGliLmluZg0KPiA+IGluZGV4IDIx ZjEwNGM5MTYuLjdmNjc4ZWVlOTMgMTAwNjQ0DQo+ID4gLS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkv QmFzZUNyeXB0TGliL1NtbUNyeXB0TGliLmluZg0KPiA+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5 L0Jhc2VDcnlwdExpYi9TbW1DcnlwdExpYi5pbmYNCj4gPiBAQCAtODksNiArODksNyBAQA0KPiA+ DQo+ID4gIFtQY2RdDQo+ID4gICAgZ0VmaUNyeXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBjZE1ENUVu YWJsZQ0KPiA+ICsgIGdFZmlDcnlwdG9Qa2dUb2tlblNwYWNlR3VpZC5QY2RTSEExRW5hYmxlDQo+ ID4NCj4gPiAgIw0KPiA+ICAjIFJlbW92ZSB0aGVzZSBbQnVpbGRPcHRpb25zXSBhZnRlciB0aGlz IGxpYnJhcnkgaXMNCj4gPiBjbGVhbmVkIHVwDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQ3J5cHRv UGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliTnVsbC9IbWFjL0NyeXB0SG1hY1NoYTFOdQ0KPiA+IGxs LmMNCj4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvSG1hYy9DcnlwdEht YWNTaGExTnUNCj4gPiBsbC5jDQo+ID4gaW5kZXggZThjMGYzNDFiNy4uM2FhYzc5ODE4OCAxMDA2 NDQNCj4gPiAtLS0NCj4gPiBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvSG1h Yy9DcnlwdEhtYWNTaGExTnUNCj4gPiBsbC5jDQo+ID4gKysrDQo+ID4gYi9DcnlwdG9Qa2cvTGli cmFyeS9CYXNlQ3J5cHRMaWJOdWxsL0htYWMvQ3J5cHRIbWFjU2hhMU51DQo+ID4gbGwuYw0KPiA+ IEBAIC01LDcgKzUsOCBAQCBDb3B5cmlnaHQgKGMpIDIwMTIgLSAyMDIwLCBJbnRlbA0KPiA+IENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICAqKi8NCj4gPiAtDQo+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAo UGNkU0hBMUVuYWJsZSkpDQo+ID4gICNpbmNsdWRlICJJbnRlcm5hbENyeXB0TGliLmgiDQo+ID4N Cj4gPiAgLyoqDQo+ID4gQEAgLTEzNywzICsxMzgsNCBAQCBIbWFjU2hhMUZpbmFsICgNCj4gPiAg ICBBU1NFUlQgKEZBTFNFKTsNCj4gPiAgICByZXR1cm4gRkFMU0U7DQo+ID4gIH0NCj4gPiArI2Vu ZGlmDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli T25Qcm90b2NvbFBwaS9DcnlwdExpYi5jDQo+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5 cHRMaWJPblByb3RvY29sUHBpL0NyeXB0TGliLmMNCj4gPiBpbmRleCBjYmExZTRjOGJmLi44NDI5 ZmVmYzBiIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0 TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5jDQo+ID4gKysrDQo+ID4gYi9DcnlwdG9Qa2cvTGli cmFyeS9CYXNlQ3J5cHRMaWJPblByb3RvY29sUHBpL0NyeXB0TGliLmMNCj4gPiBAQCAtMjYwLDYg KzI2MCw3IEBAIE1kNUhhc2hBbGwgKA0KPiA+ICB9DQo+ID4gICNlbmRpZg0KPiA+DQo+ID4gKyNp ZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgLyoqDQo+ID4gICAgUmV0 cmlldmVzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyDQo+ID4gcmVx dWlyZWQgZm9yIFNIQS0xIGhhc2ggb3BlcmF0aW9ucy4NCj4gPg0KPiA+IEBAIC00MTcsNiArNDE4 LDcgQEAgU2hhMUhhc2hBbGwgKA0KPiA+ICB7DQo+ID4gICAgQ0FMTF9DUllQVE9fU0VSVklDRSAo U2hhMUhhc2hBbGwsIChEYXRhLCBEYXRhU2l6ZSwNCj4gPiBIYXNoVmFsdWUpLCBGQUxTRSk7DQo+ ID4gIH0NCj4gPiArI2VuZGlmDQo+ID4NCj4gPiAgLyoqDQo+ID4gICAgUmV0cmlldmVzIHRoZSBz aXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyDQo+ID4gcmVxdWlyZWQgZm9yIFNI QS0yNTYgaGFzaCBvcGVyYXRpb25zLg0KPiA+IEBAIC0xMTcxLDYgKzExNzMsNyBAQCBIbWFjTWQ1 RmluYWwgKA0KPiA+ICB9DQo+ID4gICNlbmRpZg0KPiA+DQo+ID4gKyNpZiAoRml4ZWRQY2RHZXRC b29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgLyoqDQo+ID4gICAgQWxsb2NhdGVzIGFuZCBpbml0 aWFsaXplcyBvbmUgSE1BQ19DVFggY29udGV4dCBmb3INCj4gPiBzdWJzZXF1ZW50IEhNQUMtU0hB MSB1c2UuDQo+ID4NCj4gPiBAQCAtMTMyMSw2ICsxMzI0LDcgQEAgSG1hY1NoYTFGaW5hbCAoDQo+ ID4gIHsNCj4gPiAgICBDQUxMX0NSWVBUT19TRVJWSUNFIChIbWFjU2hhMUZpbmFsLCAoSG1hY1No YTFDb250ZXh0LA0KPiA+IEhtYWNWYWx1ZSksIEZBTFNFKTsNCj4gPiAgfQ0KPiA+ICsjZW5kaWYN Cj4gPg0KPiA+ICAvKioNCj4gPiAgICBBbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9uZSBITUFD X0NUWCBjb250ZXh0IGZvcg0KPiA+IHN1YnNlcXVlbnQgSE1BQy1TSEEyNTYgdXNlLg0KPiA+IGRp ZmYgLS1naXQNCj4gPiBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNo QXBpTGliLmMNCj4gPiBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNo QXBpTGliLmMNCj4gPiBpbmRleCBmOTc5NmIyMTU4Li43NTRkNzVhZWIyIDEwMDY0NA0KPiA+IC0t LSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmMNCj4g PiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlSGFzaEFwaUxpYi9CYXNlSGFzaEFwaUxpYi5j DQo+ID4gQEAgLTMzLDkgKzMzLDExIEBAIEhhc2hBcGlHZXRDb250ZXh0U2l6ZSAoDQo+ID4gICAg KQ0KPiA+ICB7DQo+ID4gICAgc3dpdGNoIChQY2RHZXQzMiAoUGNkSGFzaEFwaUxpYlBvbGljeSkp IHsNCj4gPiArI2lmIChGaXhlZFBjZEdldEJvb2wgKFBjZFNIQTFFbmFibGUpKQ0KPiA+ICAgICAg Y2FzZSBIQVNIX0FMR19TSEExOg0KPiA+ICAgICAgICByZXR1cm4gU2hhMUdldENvbnRleHRTaXpl ICgpOw0KPiA+ICAgICAgICBicmVhazsNCj4gPiArI2VuZGlmDQo+ID4NCj4gPiAgICAgIGNhc2Ug SEFTSF9BTEdfU0hBMjU2Og0KPiA+ICAgICAgICByZXR1cm4gU2hhMjU2R2V0Q29udGV4dFNpemUg KCk7DQo+ID4gQEAgLTc1LDkgKzc3LDExIEBAIEhhc2hBcGlJbml0ICgNCj4gPiAgICApDQo+ID4g IHsNCj4gPiAgICBzd2l0Y2ggKFBjZEdldDMyIChQY2RIYXNoQXBpTGliUG9saWN5KSkgew0KPiA+ ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkpDQo+ID4gICAgICBjYXNlIEhB U0hfQUxHX1NIQTE6DQo+ID4gICAgICAgIHJldHVybiBTaGExSW5pdCAoSGFzaENvbnRleHQpOw0K PiA+ICAgICAgICBicmVhazsNCj4gPiArI2VuZGlmDQo+ID4NCj4gPiAgICAgIGNhc2UgSEFTSF9B TEdfU0hBMjU2Og0KPiA+ICAgICAgICByZXR1cm4gU2hhMjU2SW5pdCAoSGFzaENvbnRleHQpOw0K PiA+IEBAIC0xMTksOSArMTIzLDExIEBAIEhhc2hBcGlEdXBsaWNhdGUgKA0KPiA+ICAgICkNCj4g PiAgew0KPiA+ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7DQo+ ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgICAgIGNhc2Ug SEFTSF9BTEdfU0hBMToNCj4gPiAgICAgICAgcmV0dXJuIFNoYTFEdXBsaWNhdGUgKEhhc2hDb250 ZXh0LA0KPiA+IE5ld0hhc2hDb250ZXh0KTsNCj4gPiAgICAgICAgYnJlYWs7DQo+ID4gKyNlbmRp Zg0KPiA+DQo+ID4gICAgICBjYXNlIEhBU0hfQUxHX1NIQTI1NjoNCj4gPiAgICAgICAgcmV0dXJu IFNoYTI1NkR1cGxpY2F0ZSAoSGFzaENvbnRleHQsDQo+ID4gTmV3SGFzaENvbnRleHQpOw0KPiA+ IEBAIC0xNjUsOSArMTcxLDExIEBAIEhhc2hBcGlVcGRhdGUgKA0KPiA+ICAgICkNCj4gPiAgew0K PiA+ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7DQo+ID4gKyNp ZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgICAgIGNhc2UgSEFTSF9B TEdfU0hBMToNCj4gPiAgICAgICAgcmV0dXJuIFNoYTFVcGRhdGUgKEhhc2hDb250ZXh0LCBEYXRh VG9IYXNoLA0KPiA+IERhdGFUb0hhc2hMZW4pOw0KPiA+ICAgICAgICBicmVhazsNCj4gPiArI2Vu ZGlmDQo+ID4NCj4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMjU2Og0KPiA+ICAgICAgICByZXR1 cm4gU2hhMjU2VXBkYXRlIChIYXNoQ29udGV4dCwgRGF0YVRvSGFzaCwNCj4gPiBEYXRhVG9IYXNo TGVuKTsNCj4gPiBAQCAtMjA5LDkgKzIxNywxMSBAQCBIYXNoQXBpRmluYWwgKA0KPiA+ICAgICkN Cj4gPiAgew0KPiA+ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhhc2hBcGlMaWJQb2xpY3kpKSB7 DQo+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgICAgIGNh c2UgSEFTSF9BTEdfU0hBMToNCj4gPiAgICAgICAgcmV0dXJuIFNoYTFGaW5hbCAoSGFzaENvbnRl eHQsIERpZ2VzdCk7DQo+ID4gICAgICAgIGJyZWFrOw0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICAg ICAgY2FzZSBIQVNIX0FMR19TSEEyNTY6DQo+ID4gICAgICAgIHJldHVybiBTaGEyNTZGaW5hbCAo SGFzaENvbnRleHQsIERpZ2VzdCk7DQo+ID4gQEAgLTI1NSw5ICsyNjUsMTEgQEAgSGFzaEFwaUhh c2hBbGwgKA0KPiA+ICAgICkNCj4gPiAgew0KPiA+ICAgIHN3aXRjaCAoUGNkR2V0MzIgKFBjZEhh c2hBcGlMaWJQb2xpY3kpKSB7DQo+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5h YmxlKSkNCj4gPiAgICAgIGNhc2UgSEFTSF9BTEdfU0hBMToNCj4gPiAgICAgICAgcmV0dXJuIFNo YTFIYXNoQWxsIChEYXRhVG9IYXNoLCBEYXRhVG9IYXNoTGVuLA0KPiA+IERpZ2VzdCk7DQo+ID4g ICAgICAgIGJyZWFrOw0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICAgICAgY2FzZSBIQVNIX0FMR19T SEEyNTY6DQo+ID4gICAgICAgIHJldHVybiBTaGEyNTZIYXNoQWxsIChEYXRhVG9IYXNoLCBEYXRh VG9IYXNoTGVuLA0KPiA+IERpZ2VzdCk7DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQ3J5cHRvUGtn L0xpYnJhcnkvQmFzZUhhc2hBcGlMaWIvQmFzZUhhc2hBcGlMaWIuaW5mDQo+ID4gYi9DcnlwdG9Q a2cvTGlicmFyeS9CYXNlSGFzaEFwaUxpYi9CYXNlSGFzaEFwaUxpYi5pbmYNCj4gPiBpbmRleCBi NGQ4Njc1ZGRkLi4yOWY3ZDdhYmZkIDEwMDY0NA0KPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5 L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmluZg0KPiA+ICsrKyBiL0NyeXB0b1BrZy9M aWJyYXJ5L0Jhc2VIYXNoQXBpTGliL0Jhc2VIYXNoQXBpTGliLmluZg0KPiA+IEBAIC00MiwzICs0 Miw0IEBADQo+ID4NCj4gPiAgW1BjZF0NCj4gPiAgICBnRWZpQ3J5cHRvUGtnVG9rZW5TcGFjZUd1 aWQuUGNkSGFzaEFwaUxpYlBvbGljeSAgICAjIw0KPiA+IENPTlNVTUVTDQo+ID4gKyAgZ0VmaUNy eXB0b1BrZ1Rva2VuU3BhY2VHdWlkLlBjZFNIQTFFbmFibGUgICAgICAgICAgIyMNCj4gPiBDT05T VU1FUw0KPiA+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9DcnlwdG8u aA0KPiA+IGIvQ3J5cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wvQ3J5cHRvLmgNCj4gPiBpbmRleCA1 MjczMThkYzIzLi4zZjhjNTc1MWE3IDEwMDY0NA0KPiA+IC0tLSBhL0NyeXB0b1BrZy9Qcml2YXRl L1Byb3RvY29sL0NyeXB0by5oDQo+ID4gKysrIGIvQ3J5cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wv Q3J5cHRvLmgNCj4gPiBAQCAtMTc5LDYgKzE3OSw3IEBAIEJPT0xFQU4NCj4gPiAgICApOw0KPiA+ ICAjZW5kaWYNCj4gPg0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVuYWJsZSkp DQo+ID4gIC8qKg0KPiA+ICAgIEFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgb25lIEhNQUNfQ1RY IGNvbnRleHQgZm9yDQo+ID4gc3Vic2VxdWVudCBITUFDLVNIQTEgdXNlLg0KPiA+DQo+ID4gQEAg LTMxNSw3ICszMTYsNyBAQCBCT09MRUFODQo+ID4gICAgSU4gT1VUICBWT0lEICAgKkhtYWNTaGEx Q29udGV4dCwNCj4gPiAgICBPVVQgICAgIFVJTlQ4ICAqSG1hY1ZhbHVlDQo+ID4gICAgKTsNCj4g PiAtDQo+ID4gKyNlbmRpZg0KPiA+DQo+ID4gIC8qKg0KPiA+ICAgIEFsbG9jYXRlcyBhbmQgaW5p dGlhbGl6ZXMgb25lIEhNQUNfQ1RYIGNvbnRleHQgZm9yDQo+ID4gc3Vic2VxdWVudCBITUFDLVNI QTI1NiB1c2UuDQo+ID4gQEAgLTE1MzcsNiArMTUzOCw3IEBAIEJPT0xFQU4NCj4gPiAgLy8gU0hB DQo+ID4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+DQo+ ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4gPiAgLyoqDQo+ID4g ICAgUmV0cmlldmVzIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyDQo+ ID4gcmVxdWlyZWQgZm9yIFNIQS0xIGhhc2ggb3BlcmF0aW9ucy4NCj4gPg0KPiA+IEBAIC0xNjc2 LDYgKzE2NzgsNyBAQCBCT09MRUFODQo+ID4gICAgSU4gICBVSU5UTiAgICAgICBEYXRhU2l6ZSwN Cj4gPiAgICBPVVQgIFVJTlQ4ICAgICAgICpIYXNoVmFsdWUNCj4gPiAgICApOw0KPiA+ICsjZW5k aWYNCj4gPg0KPiA+ICAvKioNCj4gPiAgICBSZXRyaWV2ZXMgdGhlIHNpemUsIGluIGJ5dGVzLCBv ZiB0aGUgY29udGV4dCBidWZmZXINCj4gPiByZXF1aXJlZCBmb3IgU0hBLTI1NiBoYXNoIG9wZXJh dGlvbnMuDQo+ID4gQEAgLTM0NTMsNiArMzQ1Niw3IEBAIHN0cnVjdCBfRURLSUlfQ1JZUFRPX1BS T1RPQ09MIHsNCj4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19NRDVfVVBEQVRFDQo+ID4gSG1hY01k NVVwZGF0ZTsNCj4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19NRDVfRklOQUwNCj4gPiBIbWFjTWQ1 RmluYWw7DQo+ID4gICNlbmRpZg0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0Qm9vbCAoUGNkU0hBMUVu YWJsZSkpDQo+ID4gICAgLy8vIEhNQUMgU0hBMQ0KPiA+ICAgIEVES0lJX0NSWVBUT19ITUFDX1NI QTFfTkVXDQo+ID4gSG1hY1NoYTFOZXc7DQo+ID4gICAgRURLSUlfQ1JZUFRPX0hNQUNfU0hBMV9G UkVFDQo+ID4gSG1hY1NoYTFGcmVlOw0KPiA+IEBAIC0zNDYwLDYgKzM0NjQsNyBAQCBzdHJ1Y3Qg X0VES0lJX0NSWVBUT19QUk9UT0NPTCB7DQo+ID4gICAgRURLSUlfQ1JZUFRPX0hNQUNfU0hBMV9E VVBMSUNBVEUNCj4gPiBIbWFjU2hhMUR1cGxpY2F0ZTsNCj4gPiAgICBFREtJSV9DUllQVE9fSE1B Q19TSEExX1VQREFURQ0KPiA+IEhtYWNTaGExVXBkYXRlOw0KPiA+ICAgIEVES0lJX0NSWVBUT19I TUFDX1NIQTFfRklOQUwNCj4gPiBIbWFjU2hhMUZpbmFsOw0KPiA+ICsjZW5kaWYNCj4gPiAgICAv Ly8gSE1BQyBTSEEyNTYNCj4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19TSEEyNTZfTkVXDQo+ID4g SG1hY1NoYTI1Nk5ldzsNCj4gPiAgICBFREtJSV9DUllQVE9fSE1BQ19TSEEyNTZfRlJFRQ0KPiA+ IEhtYWNTaGEyNTZGcmVlOw0KPiA+IEBAIC0zNTEwLDYgKzM1MTUsNyBAQCBzdHJ1Y3QgX0VES0lJ X0NSWVBUT19QUk9UT0NPTCB7DQo+ID4gICAgRURLSUlfQ1JZUFRPX1JTQV9QS0NTMV9WRVJJRlkN Cj4gPiBSc2FQa2NzMVZlcmlmeTsNCj4gPiAgICBFREtJSV9DUllQVE9fUlNBX0dFVF9QUklWQVRF X0tFWV9GUk9NX1BFTQ0KPiA+IFJzYUdldFByaXZhdGVLZXlGcm9tUGVtOw0KPiA+ICAgIEVES0lJ X0NSWVBUT19SU0FfR0VUX1BVQkxJQ19LRVlfRlJPTV9YNTA5DQo+ID4gUnNhR2V0UHVibGljS2V5 RnJvbVg1MDk7DQo+ID4gKyNpZiAoRml4ZWRQY2RHZXRCb29sIChQY2RTSEExRW5hYmxlKSkNCj4g PiAgICAvLy8gU2hhMQ0KPiA+ICAgIEVES0lJX0NSWVBUT19TSEExX0dFVF9DT05URVhUX1NJWkUN Cj4gPiBTaGExR2V0Q29udGV4dFNpemU7DQo+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfSU5JVA0K PiA+IFNoYTFJbml0Ow0KPiA+IEBAIC0zNTE3LDYgKzM1MjMsNyBAQCBzdHJ1Y3QgX0VES0lJX0NS WVBUT19QUk9UT0NPTCB7DQo+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTFfVVBEQVRFDQo+ID4gU2hh MVVwZGF0ZTsNCj4gPiAgICBFREtJSV9DUllQVE9fU0hBMV9GSU5BTA0KPiA+IFNoYTFGaW5hbDsN Cj4gPiAgICBFREtJSV9DUllQVE9fU0hBMV9IQVNIX0FMTA0KPiA+IFNoYTFIYXNoQWxsOw0KPiA+ ICsjZW5kaWYNCj4gPiAgICAvLy8gU2hhMjU2DQo+ID4gICAgRURLSUlfQ1JZUFRPX1NIQTI1Nl9H RVRfQ09OVEVYVF9TSVpFDQo+ID4gU2hhMjU2R2V0Q29udGV4dFNpemU7DQo+ID4gICAgRURLSUlf Q1JZUFRPX1NIQTI1Nl9JTklUDQo+ID4gU2hhMjU2SW5pdDsNCj4gPiAtLQ0KPiA+IDIuMjEuMC53 aW5kb3dzLjENCj4gPg0KPiA+DQo+ID4gDQoNCg==