From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 075B921D1E2CE for ; Fri, 25 Aug 2017 19:21:38 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP; 25 Aug 2017 19:24:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,427,1498546800"; d="scan'208";a="144070841" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga005.fm.intel.com with ESMTP; 25 Aug 2017 19:24:14 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 25 Aug 2017 19:24:14 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Sat, 26 Aug 2017 10:24:11 +0800 From: "Zeng, Star" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/PiSmmCpuDxeSmm: Fix memory protection crash Thread-Index: AQHTHIf0iDrAg4RIVk2t8D1jiWakqKKUT9cAgACG1YD//5tSAIABeTNw Date: Sat, 26 Aug 2017 02:24:11 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B9232C1@shsmsx102.ccr.corp.intel.com> References: <1503544809-166388-1-git-send-email-star.zeng@intel.com> <0432078c-6490-139e-20d8-c6eac58ffd3f@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B91DC10@shsmsx102.ccr.corp.intel.com> <50a6768d-77d9-c038-f5a1-62d9101bc6e4@redhat.com> In-Reply-To: <50a6768d-77d9-c038-f5a1-62d9101bc6e4@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] UefiCpuPkg/PiSmmCpuDxeSmm: Fix memory protection crash X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Aug 2017 02:21:38 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQpJIGFtIG9rIHRvIGNlbnRyYWxpemUgdGhlIGRlZmluaXRpb24gaW4gdGhlIHBh dGNoKFYyIHdpbGwgY292ZXIgaXQpLCBob3cgYWJvdXQgUGlTbW1DcHVEeGVTbW0uYz8NCg0KSGF2 ZSB5b3UgaGVscGVkIGdldCB0aGUgdGVzdCByZXN1bHQgd2l0aCB0aGUgcGF0Y2g/DQoNCg0KVGhh bmtzLA0KU3Rhcg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNl ayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXSANClNlbnQ6IEZyaWRheSwgQXVndXN0IDI1LCAy MDE3IDc6NTIgUE0NClRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCkNjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+ OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyXSBb UEFUQ0hdIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW06IEZpeCBtZW1vcnkgcHJvdGVjdGlvbiBj cmFzaA0KDQpPbiAwOC8yNS8xNyAxMTo1MywgWmVuZywgU3RhciB3cm90ZToNCj4gTGFzemxvLA0K PiANCj4gWDY0IGRlZmluZWQgbVBoeXNpY2FsQWRkcmVzc0JpdHMgYWxyZWFkeSBiZWZvcmUgdGhl IHBhdGNoLCBhbmQgaGFzIHRoZSBjb2RlIGJlbG93IHRvIGFzc2lnbiBpdC4NCj4gDQo+ICAgbVBo eXNpY2FsQWRkcmVzc0JpdHMgPSBDYWxjdWxhdGVNYXhpbXVtU3VwcG9ydEFkZHJlc3MgKCk7DQoN ClRoYW5rcy4NCg0KRG8geW91IHRoaW5rIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gY2VudHJhbGl6 ZSB0aGUgZGVmaW5pdGlvbiAoaS5lLiwgdGhlDQphbGxvY2F0aW9uKSBvZiB0aGUgbVBoeXNpY2Fs QWRkcmVzc0JpdHMgdmFyaWFibGUgaW4gdGhpcyBwYXRjaD8NCg0KVGhhdCBpcywNCi0gaW5zdGVh ZCBvZiBhZGRpbmcgbVBoeXNpY2FsQWRkcmVzc0JpdHMgdG8gIklhMzIvUGFnZVRibC5jIiwNCi0g eW91IGNvdWxkIG1vdmUgaXQgZnJvbSAiWDY0L1BhZ2VUYmwuYyIgdG8gIlNtbUNwdU1lbW9yeU1h bmFnZW1lbnQuYyINCiAgKG9yIGFub3RoZXIgQyBzb3VyY2UgZmlsZSB0aGF0IGlzIGJ1aWx0IGlu dG8gYm90aCBJYTMyIGFuZCBYNjQpLg0KDQpUaGFua3MsDQpMYXN6bG8NCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1i b3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIA0KPiBMYXN6bG8gRXJzZWsNCj4gU2Vu dDogRnJpZGF5LCBBdWd1c3QgMjUsIDIwMTcgNTo1MCBQTQ0KPiBUbzogWmVuZywgU3RhciA8c3Rh ci56ZW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljIA0KPiA8ZXJpYy5kb25nQGlu dGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvUGlTbW1D cHVEeGVTbW06IEZpeCBtZW1vcnkgDQo+IHByb3RlY3Rpb24gY3Jhc2gNCj4gDQo+IFN0YXIsDQo+ IA0KPiBPbiAwOC8yNC8xNyAwNToyMCwgU3RhciBaZW5nIHdyb3RlOg0KPj4gaHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjQgcmVwb3J0cyBtZW1vcnkgDQo+ PiBwcm90ZWN0aW9uIGNyYXNoIGluIFBpU21tQ3B1RHhlU21tLCBJYTMyIGJ1aWxkIHdpdGggUkFN IGFib3ZlIDRHQiAob2YgDQo+PiB3aGljaCAyR0IgYXJlIHBsYWNlZCBpbiA2NC1iaXQgYWRkcmVz cykuDQo+PiBJdCBpcyBiZWNhdXNlIFVFRkkgYnVpbGRzIGlkZW50aXR5IG1hcHBpbmcgcGFnZSB0 YWJsZXMsDQo+Pj4gNEcgYWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGF0IElhMzIgYnVpbGQuDQo+ Pg0KPj4gVGhpcyBwYXRjaCBpcyB0byBnZXQgdGhlIFBoeXNpY2FsQWRkcmVzc0JpdHMgdGhhdCBp cyB1c2VkIHRvIGJ1aWxkIGluIA0KPj4gUGFnZVRibC5jKElhMzIvWDY0KSwgYW5kIHVzZSBpdCB0 byBjaGVjayB3aGV0aGVyIHRoZSBhZGRyZXNzIGlzIA0KPj4gc3VwcG9ydGVkIG9yIG5vdCBpbiBD b252ZXJ0TWVtb3J5UGFnZUF0dHJpYnV0ZXMoKS4NCj4+DQo+PiBXaXRoIHRoaXMgcGF0Y2gsIHRo ZSBkZWJ1ZyBtZXNzYWdlcyB3aWxsIGJlIGxpa2UgYmVsb3cuDQo+PiBVZWZpTWVtb3J5IHByb3Rl Y3Rpb246IDB4MCAtIDB4OUYwMDAgU3VjY2VzcyBVZWZpTWVtb3J5IHByb3RlY3Rpb246IA0KPj4g MHgxMDAwMDAgLSAweDgwNzAwMCBTdWNjZXNzIFVlZmlNZW1vcnkgcHJvdGVjdGlvbjogMHg4MDgw MDAgLSANCj4+IDB4ODEwMDAwIFN1Y2Nlc3MgVWVmaU1lbW9yeSBwcm90ZWN0aW9uOiAweDgxODAw MCAtIDB4ODIwMDAwIFN1Y2Nlc3MgDQo+PiBVZWZpTWVtb3J5DQo+PiBwcm90ZWN0aW9uOiAweDE1 MTAwMDAgLSAweDdCNzk4MDAwIFN1Y2Nlc3MgVWVmaU1lbW9yeSBwcm90ZWN0aW9uOiANCj4+IDB4 N0I3OUIwMDAgLSAweDdFNTM4MDAwIFN1Y2Nlc3MgVWVmaU1lbW9yeSBwcm90ZWN0aW9uOiAweDdF NTM5MDAwIC0NCj4+IDB4N0U1NDUwMDAgU3VjY2VzcyBVZWZpTWVtb3J5IHByb3RlY3Rpb246IDB4 N0U1NUEwMDAgLSAweDdFNjFGMDAwIA0KPj4gU3VjY2VzcyBVZWZpTWVtb3J5IHByb3RlY3Rpb246 IDB4N0U2MkIwMDAgLSAweDdGNkFCMDAwIFN1Y2Nlc3MgDQo+PiBVZWZpTWVtb3J5IHByb3RlY3Rp b246IDB4N0Y3MDMwMDAgLSAweDdGNzBCMDAwIFN1Y2Nlc3MgVWVmaU1lbW9yeQ0KPj4gcHJvdGVj dGlvbjogMHg3RjcwRjAwMCAtIDB4N0Y3NzgwMDAgU3VjY2VzcyBVZWZpTWVtb3J5IHByb3RlY3Rp b246IA0KPj4gMHgxMDAwMDAwMDAgLSAweDE4MDAwMDAwMCBVbnN1cHBvcnRlZA0KPj4NCj4+IENj OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4+IENjOiBMYXN6bG8gRXJzZWsg PGxlcnNla0ByZWRoYXQuY29tPg0KPj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNv bT4NCj4+IE9yaWdpbmFsbHktc3VnZ2VzdGVkLWJ5OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGlu dGVsLmNvbT4NCj4+IFJlcG9ydGVkLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t Pg0KPj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50 IDEuMQ0KPj4gU2lnbmVkLW9mZi1ieTogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0K Pj4gLS0tDQo+PiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1BhZ2VUYmwuYyAgICAg ICAgICAgfCAgNCArKysNCj4+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhl U21tLmggICAgICAgICB8ICAxICsNCj4+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNw dU1lbW9yeU1hbmFnZW1lbnQuYyB8IDMxDQo+PiArKysrKysrKysrKysrKysrKy0tLS0tDQo+PiAg MyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPj4NCj4+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvUGFnZVRibC5jDQo+ PiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9QYWdlVGJsLmMNCj4+IGluZGV4IDMy Y2U1OTU4YzU5Yy4uZTg4YjQyZDczMzQzIDEwMDY0NA0KPj4gLS0tIGEvVWVmaUNwdVBrZy9QaVNt bUNwdUR4ZVNtbS9JYTMyL1BhZ2VUYmwuYw0KPj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9JYTMyL1BhZ2VUYmwuYw0KPj4gQEAgLTE2LDYgKzE2LDggQEAgV0lUSE9VVCBXQVJSQU5U SUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1Q TElFRC4NCj4+ICANCj4+ICAjaW5jbHVkZSAiUGlTbW1DcHVEeGVTbW0uaCINCj4+ICANCj4+ICtV SU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUGh5c2ljYWxBZGRyZXNzQml0czsN Cj4+ICsNCj4+ICAvKioNCj4+ICAgIENyZWF0ZSBQYWdlVGFibGUgZm9yIFNNTSB1c2UuDQo+PiAg DQo+PiBAQCAtMzYsNiArMzgsOCBAQCBTbW1Jbml0UGFnZVRhYmxlICgNCj4+ICAgIC8vDQo+PiAg ICBJbml0aWFsaXplU3BpbkxvY2sgKG1QRkxvY2spOw0KPj4gIA0KPj4gKyAgbVBoeXNpY2FsQWRk cmVzc0JpdHMgPSAzMjsNCj4+ICsNCj4+ICAgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RDcHVTbW1Q cm9maWxlRW5hYmxlKSkgew0KPj4gICAgICAvLw0KPj4gICAgICAvLyBTZXQgb3duIFBhZ2UgRmF1 bHQgZW50cnkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBvbmUsIGJlY2F1c2UgDQo+PiBTTU0gUHJv ZmlsZSBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNt bS5oDQo+PiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPj4g aW5kZXggZGJjZTllYzUyMGZlLi4xY2Y4NWMxNDgxYTcgMTAwNjQ0DQo+PiAtLS0gYS9VZWZpQ3B1 UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4+ICsrKyBiL1VlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPj4gQEAgLTQxOSw2ICs0MTksNyBAQCBl eHRlcm4gU1BJTl9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1Db25maWdTbW1Db2Rl QWNjZXNzQ2hlY2tMb2NrOw0KPj4gIGV4dGVybiBTUElOX0xPQ0sgICAgICAgICAgICAgICAgICAg ICAgICAgICAqbU1lbW9yeU1hcHBlZExvY2s7DQo+PiAgZXh0ZXJuIEVGSV9TTVJBTV9ERVNDUklQ VE9SICAgICAgICAgICAgICAgICptU21tQ3B1U21yYW1SYW5nZXM7DQo+PiAgZXh0ZXJuIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TbW1DcHVTbXJhbVJhbmdlQ291bnQ7DQo+ PiArZXh0ZXJuIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1QaHlzaWNhbEFk ZHJlc3NCaXRzOw0KPj4gIA0KPj4gIC8vDQo+PiAgLy8gQ29weSBvZiB0aGUgUGNkUHRlTWVtb3J5 RW5jcnlwdGlvbkFkZHJlc3NPck1hc2sNCj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0KPj4gYi9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0KPj4gaW5kZXggYTUzNTM4OWMyNmNl Li4zYWQ1MjU2ZjFlMDMgMTAwNjQ0DQo+PiAtLS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21t L1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0KPj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMNCj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4gIC8q KiBAZmlsZQ0KPj4gIA0KPj4gLUNvcHlyaWdodCAoYykgMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gK0NvcHlyaWdodCAoYykgMjAxNiAtIDIwMTcs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPj4gK3Jlc2VydmVkLjxCUj4NCj4+ICBU aGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQg YW5kIG1hZGUgDQo+PiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m IHRoZSBCU0QgTGljZW5zZSAgd2hpY2ggDQo+PiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlv bi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIA0KPj4gZm91bmQgYXQgQEAg LTM4MCw2ICszODAsNyBAQCBDb252ZXJ0TWVtb3J5UGFnZUF0dHJpYnV0ZXMgKA0KPj4gICAgUEFH RV9BVFRSSUJVVEUgICAgICAgICAgICAgICAgICAgIFNwbGl0QXR0cmlidXRlOw0KPj4gICAgUkVU VVJOX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4+ICAgIEJPT0xFQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICBJc0VudHJ5TW9kaWZpZWQ7DQo+PiArICBFRklfUEhZU0lD QUxfQUREUkVTUyAgICAgICAgICAgICAgTWF4aW11bVN1cHBvcnRNZW1BZGRyZXNzOw0KPj4gIA0K Pj4gICAgQVNTRVJUIChBdHRyaWJ1dGVzICE9IDApOw0KPj4gICAgQVNTRVJUICgoQXR0cmlidXRl cyAmIH4oRUZJX01FTU9SWV9SUCB8IEVGSV9NRU1PUllfUk8gfA0KPj4gRUZJX01FTU9SWV9YUCkp ID09IDApOyBAQCAtMzkxLDYgKzM5MiwxNyBAQCBDb252ZXJ0TWVtb3J5UGFnZUF0dHJpYnV0ZXMg KA0KPj4gICAgICByZXR1cm4gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOw0KPj4gICAgfQ0KPj4g IA0KPj4gKyAgTWF4aW11bVN1cHBvcnRNZW1BZGRyZXNzID0gKEVGSV9QSFlTSUNBTF9BRERSRVNT KShVSU5UTikoTFNoaWZ0VTY0DQo+PiArICgxLCBtUGh5c2ljYWxBZGRyZXNzQml0cykgLSAxKTsg IGlmIChCYXNlQWRkcmVzcyA+IE1heGltdW1TdXBwb3J0TWVtQWRkcmVzcykgew0KPj4gKyAgICBy ZXR1cm4gUkVUVVJOX1VOU1VQUE9SVEVEOw0KPj4gKyAgfQ0KPj4gKyAgaWYgKExlbmd0aCA+IE1h eGltdW1TdXBwb3J0TWVtQWRkcmVzcykgew0KPj4gKyAgICByZXR1cm4gUkVUVVJOX1VOU1VQUE9S VEVEOw0KPj4gKyAgfQ0KPj4gKyAgaWYgKChMZW5ndGggIT0gMCkgJiYgKEJhc2VBZGRyZXNzID4g TWF4aW11bVN1cHBvcnRNZW1BZGRyZXNzIC0gKExlbmd0aCAtIDEpKSkgew0KPj4gKyAgICByZXR1 cm4gUkVUVVJOX1VOU1VQUE9SVEVEOw0KPj4gKyAgfQ0KPj4gKw0KPj4gIC8vICBERUJVRyAoKERF QlVHX0VSUk9SLCAiQ29udmVydE1lbW9yeVBhZ2VBdHRyaWJ1dGVzKCV4KSAtICUwMTZseCwgDQo+ PiAlMDE2bHgsICUwMmx4XG4iLCBJc1NldCwgQmFzZUFkZHJlc3MsIExlbmd0aCwgQXR0cmlidXRl cykpOw0KPj4gIA0KPj4gICAgaWYgKElzU3BsaXR0ZWQgIT0gTlVMTCkgew0KPj4gQEAgLTEwMzcs NiArMTA0OSw3IEBAIFNldFVlZmlNZW1NYXBBdHRyaWJ1dGVzICgNCj4+ICAgIFZPSUQNCj4+ICAg ICkNCj4+ICB7DQo+PiArICBFRklfU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KPj4gICAgRUZJ X01FTU9SWV9ERVNDUklQVE9SICpNZW1vcnlNYXA7DQo+PiAgICBVSU5UTiAgICAgICAgICAgICAg ICAgTWVtb3J5TWFwRW50cnlDb3VudDsNCj4+ICAgIFVJTlROICAgICAgICAgICAgICAgICBJbmRl eDsNCj4+IEBAIC0xMDUyLDEyICsxMDY1LDE4IEBAIFNldFVlZmlNZW1NYXBBdHRyaWJ1dGVzICgN Cj4+ICAgIE1lbW9yeU1hcCA9IG1VZWZpTWVtb3J5TWFwOw0KPj4gICAgZm9yIChJbmRleCA9IDA7 IEluZGV4IDwgTWVtb3J5TWFwRW50cnlDb3VudDsgSW5kZXgrKykgew0KPj4gICAgICBpZiAoSXNV ZWZpUGFnZU5vdFByZXNlbnQoTWVtb3J5TWFwKSkgew0KPj4gLSAgICAgIERFQlVHICgoREVCVUdf SU5GTywgIlVlZmlNZW1vcnkgcHJvdGVjdGlvbjogMHglbHggLSAweCVseFxuIiwgTWVtb3J5TWFw LT5QaHlzaWNhbFN0YXJ0LCBNZW1vcnlNYXAtPlBoeXNpY2FsU3RhcnQgKyAoVUlOVDY0KUVGSV9Q QUdFU19UT19TSVpFKChVSU5UTilNZW1vcnlNYXAtPk51bWJlck9mUGFnZXMpKSk7DQo+PiAtICAg ICAgU21tU2V0TWVtb3J5QXR0cmlidXRlcyAoDQo+PiArICAgICAgU3RhdHVzID0gU21tU2V0TWVt b3J5QXR0cmlidXRlcyAoDQo+PiArICAgICAgICAgICAgICAgICBNZW1vcnlNYXAtPlBoeXNpY2Fs U3RhcnQsDQo+PiArICAgICAgICAgICAgICAgICBFRklfUEFHRVNfVE9fU0laRSgoVUlOVE4pTWVt b3J5TWFwLT5OdW1iZXJPZlBhZ2VzKSwNCj4+ICsgICAgICAgICAgICAgICAgIEVGSV9NRU1PUllf UlANCj4+ICsgICAgICAgICAgICAgICAgICk7DQo+PiArICAgICAgREVCVUcgKCgNCj4+ICsgICAg ICAgIERFQlVHX0lORk8sDQo+PiArICAgICAgICAiVWVmaU1lbW9yeSBwcm90ZWN0aW9uOiAweCVs eCAtIDB4JWx4ICVyXG4iLA0KPj4gICAgICAgICAgTWVtb3J5TWFwLT5QaHlzaWNhbFN0YXJ0LA0K Pj4gLSAgICAgICAgRUZJX1BBR0VTX1RPX1NJWkUoKFVJTlROKU1lbW9yeU1hcC0+TnVtYmVyT2ZQ YWdlcyksDQo+PiAtICAgICAgICBFRklfTUVNT1JZX1JQDQo+PiAtICAgICAgICApOw0KPj4gKyAg ICAgICAgTWVtb3J5TWFwLT5QaHlzaWNhbFN0YXJ0ICsgKFVJTlQ2NClFRklfUEFHRVNfVE9fU0la RSgoVUlOVE4pTWVtb3J5TWFwLT5OdW1iZXJPZlBhZ2VzKSwNCj4+ICsgICAgICAgIFN0YXR1cw0K Pj4gKyAgICAgICAgKSk7DQo+PiAgICAgIH0NCj4+ICAgICAgTWVtb3J5TWFwID0gTkVYVF9NRU1P UllfREVTQ1JJUFRPUihNZW1vcnlNYXAsIG1VZWZpRGVzY3JpcHRvclNpemUpOw0KPj4gICAgfQ0K Pj4NCj4gDQo+IGJlZm9yZSBhcHBseWluZyB0aGlzIHBhdGNoIGZvciBsb2NhbCB0ZXN0aW5nLCBJ IGZpZ3VyZWQgSSdkIGxvb2sgaXQgb3ZlciBxdWlja2x5Lg0KPiANCj4gSSB0aGluayB0aGF0IHlv dSBtaXNzZWQgYWRkaW5nIHRoZSBYNjQgY2hhbmdlcyB0byB0aGUgY29tbWl0LCB3aXRoIA0KPiAi Z2l0IGFkZCIuIEJlY2F1c2UsIHRoZSAibVBoeXNpY2FsQWRkcmVzc0JpdHMiIHZhcmlhYmxlIGlz IGRlY2xhcmVkIGluIA0KPiBjb21tb24gY29kZSwgaXQgaXMgYWxzbyBjb25zdW1lZCBpbiBjb21t b24gY29kZSwgYnV0IGl0IGlzIG9ubHkgDQo+IGRlZmluZWQgKGkuZS4sDQo+IGFsbG9jYXRlZCkg YW5kIHNldCBpbiBJYTMyIGNvZGUuIEkgYmVsaWV2ZSB0aGF0IGFwcGx5aW5nIHRoaXMgZXhhY3Qg cGF0Y2ggd291bGQgcHJldmVudCBQaVNtbUNwdUR4ZVNtbSBldmVuIGZyb20gbGlua2luZy4NCj4g DQo+IEkgdGhpbmsgZm9yIFg2NCB5b3UgbGlrZWx5IGhhdmUgYSBjaGFuZ2Ugc2ltaWxhciB0byB0 aGUgSWEzMiBvbmUgKGRlZmluaW5nIHRoZSB2YXJpYWJsZSBhbmQgc2V0dGluZyBpdCB0byB0aGUg YWN0dWFsIHBoeXNpY2FsIGFkZHJlc3MgYml0cywgbGlrZWx5IGZyb20gdGhlIENQVSBIT0IpLCBi dXQgaXQncyBub3QgcGFydCBvZiB0aGUgcGF0Y2guDQo+IA0KPiBJZiBJJ20gcmlnaHQgYW5kIHlv dSBkZWNpZGUgdG8gcG9zdCB2MiwgdGhlbiBJIHN1Z2dlc3QgYW5vdGhlciAodmVyeQ0KPiBzbWFs bCkgaW1wcm92ZW1lbnQ6IEkgdGhpbmsgdGhlIGRlZmluaXRpb24gKD1hbGxvY2F0aW9uKSBvZiAi bVBoeXNpY2FsQWRkcmVzc0JpdHMiIGNvdWxkIGFsc28gYmUgbW92ZWQgdG8gY29tbW9uIGNvZGU7 IG9ubHkgdGhlIGFzc2lnbm1lbnRzIGhhdmUgdG8gYmUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljLg0K PiANCj4gVGhhbmtzDQo+IExhc3psbw0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Vk azItZGV2ZWwNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+IA0K DQo=