From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 5AF592034BBF2 for ; Thu, 9 Nov 2017 16:18:04 -0800 (PST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2017 16:22:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,371,1505804400"; d="scan'208";a="1242271758" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga002.fm.intel.com with ESMTP; 09 Nov 2017 16:22:06 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 9 Nov 2017 16:22:05 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 9 Nov 2017 16:22:05 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002; Fri, 10 Nov 2017 08:22:03 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" Thread-Topic: [edk2] [PATCH v3] UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map Thread-Index: AQHTWWTanUvTv9fcMEGlbWbj50OVoqMMwI7Q Date: Fri, 10 Nov 2017 00:22:02 +0000 Message-ID: References: <20171109013958.15832-1-jian.j.wang@intel.com> <5d4b6d41-c348-9175-ac0a-5ddb0d58c565@redhat.com> In-Reply-To: <5d4b6d41-c348-9175-ac0a-5ddb0d58c565@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzM3ZWFkOGEtMDI5My00YzJjLWJiYjctMDQ0MjliZGM2MGE4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJsbFBzRk5pWUhhQnJZUkx2TXFyQTZ3YlRMV0lYZUtrNWlwQ2FnbUpqOWs4aHRDeHJJSFh6bmdDUkZlamptZWQrIn0= x-ctpclassification: CTP_IC 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 v3] UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map 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: Fri, 10 Nov 2017 00:18:04 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciBjYXRjaGluZyB0aGVtLiBUaGVyZSdsbCBiZSB2NSB0b2RheTopDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVy c2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAwOSwgMjAxNyAxMDox MyBQTQ0KPiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29t PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsy XSBbUEFUQ0ggdjNdIFVlZmlDcHVQa2cvQ3B1RHhlOiBGaXggbXVsdGlwbGUgZW50cmllcyBvZg0K PiBSVF9DT0RFIGluIG1lbW9yeSBtYXANCj4gDQo+IEhpIEppYW4sDQo+IA0KPiB0aGlzIGlzIHY0 LCBidXQgdGhlIHN1YmplY3Qgc2F5cyB2MyA6KSBJZiB5b3UgcG9zdCBhIG5ldyB2ZXJzaW9uLCBw bGVhc2UNCj4gbWFrZSBzdXJlIHRoYXQgaXQgc2F5cyAidjUiIGluIHRoZSBzdWJqZWN0Lg0KPiAN Cj4gVGhlIGxvZ2ljIGxvb2tzIE9LIHRvIG1lOyBJJ3ZlIGdvdCBzb21lIGNvbW1lbnRzIG9uIHN0 eWxlOg0KPiANCj4gT24gMTEvMDkvMTcgMDI6MzksIEppYW4gSiBXYW5nIHdyb3RlOg0KPiA+PiB2 NDoNCj4gPj4gYS4gUmVtb3ZlIERvVXBkYXRlIGFuZCBjaGVjayBhdHRyaWJ1dGVzIG1pc21hdGNo IGFsbCB0aGUgdGltZSB0byBhdm9pZA0KPiA+PiAgICBhIGxvZ2ljIGhvbGUNCj4gPj4gYi4gQWRk IHdhcm5pbmcgbWVzc2FnZSBpZiBmYWlsZWQgdG8gdXBkYXRlIGNhcGFiaWxpdHkNCj4gPj4gYy4g QWRkIGxvY2FsIHZhcmlhYmxlIHRvIGhvbGQgbmV3IGF0dHJpYnV0ZXMgdG8gbWFrZSBjb2RlIGNs ZWFuZXINCj4gPg0KPiA+PiB2MzoNCj4gPj4gYS4gQWRkIGNvbW1lbnQgdG8gZXhwbGFpbiBtb3Jl IG9uIHVwZGF0aW5nIG1lbW9yeSBjYXBhYmlsaXRpZXMNCj4gPj4gYi4gRml4IGxvZ2ljIGhvbGUg aW4gdXBkYXRpbmcgYXR0cmlidXRlcw0KPiA+PiBjLiBJbnN0ZWFkIG9mIGNoZWNraW5nIGlsbGVn YWwgbWVtb3J5IHNwYWNlIGFkZHJlc3MgYW5kIHNpemUsIHVzZSByZXR1cm4NCj4gPj4gICAgc3Rh dHVzIG9mIGdEUy0+U2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMoKSB0byBza2lwIG1lbW9yeSBi bG9jayB3aGljaA0KPiA+PiAgICBjYW5ub3QgYmUgdXBkYXRlZCB3aXRoIG5ldyBjYXBhYmlsaXRp ZXMuDQo+ID4NCj4gPj4gdjINCj4gPj4gYS4gRml4IGFuIGlzc3VlIHdoaWNoIHdpbGwgY2F1c2Ug c2V0dGluZyBjYXBhYmlsaXR5IGZhaWx1cmUgaWYgc2l6ZSBpcyBzbWFsbGVyDQo+ID4+ICAgIHRo YW4gYSBwYWdlLg0KPiA+DQo+ID4gTW9yZSB0aGFuIG9uZSBlbnRyeSBvZiBSVF9DT0RFIG1lbW9y eSBtaWdodCBjYXVzZSBib290IHByb2JsZW0gZm9yDQo+IHNvbWUNCj4gPiBvbGQgT1NzLiBUaGlz IHBhdGNoIHdpbGwgZml4IHRoaXMgaXNzdWUgdG8ga2VlcCBPUyBjb21wYXRpYmlsaXR5IGFzIG11 Y2gNCj4gPiBhcyBwb3NzaWJsZS4NCj4gPg0KPiA+IE1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24s IHBsZWFzZSByZWZlciB0bw0KPiA+ICAgICBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTc1Mw0KPiA+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGlu dGVsLmNvbT4NCj4gPiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4g Q2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gQ29udHJpYnV0ZWQtdW5k ZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYt Ynk6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIFVl ZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jIHwgNjkNCj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNTAgaW5zZXJ0aW9u cygrKSwgMTkgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9D cHVEeGUvQ3B1UGFnZVRhYmxlLmMNCj4gYi9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUu Yw0KPiA+IGluZGV4IGQzMTJlYjY2ZjguLmExZDgwNGNhZWQgMTAwNjQ0DQo+ID4gLS0tIGEvVWVm aUNwdVBrZy9DcHVEeGUvQ3B1UGFnZVRhYmxlLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0NwdUR4 ZS9DcHVQYWdlVGFibGUuYw0KPiA+IEBAIC03ODksOCArNzg5LDcgQEAgUmVmcmVzaEdjZE1lbW9y eUF0dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPiAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCYXNlQWRkcmVzczsNCj4gPiAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWdlU3RhcnRBZGRyZXNzOw0KPiA+ICAgIFVJTlQ2NCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXM7DQo+ID4gLSAgVUlOVDY0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzOw0KPiA+IC0gIEJPT0xFQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERvVXBkYXRlOw0KPiA+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5ld0F0dHJpYnV0ZXM7DQo+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4NCj4gPiAgICAvLw0KPiA+IEBAIC04MDIsOSArODAx LDggQEAgUmVmcmVzaEdjZE1lbW9yeUF0dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPg0KPiA+ICAg IEdldEN1cnJlbnRQYWdpbmdDb250ZXh0ICgmUGFnaW5nQ29udGV4dCk7DQo+ID4NCj4gPiAtICBE b1VwZGF0ZSAgICAgID0gRkFMU0U7DQo+ID4gLSAgQ2FwYWJpbGl0aWVzICA9IDA7DQo+ID4gICAg QXR0cmlidXRlcyAgICA9IDA7DQo+ID4gKyAgTmV3QXR0cmlidXRlcyA9IDA7DQo+ID4gICAgQmFz ZUFkZHJlc3MgICA9IDA7DQo+ID4gICAgUGFnZUxlbmd0aCAgICA9IDA7DQo+ID4NCj4gPiBAQCAt ODEzLDYgKzgxMSwzNCBAQCBSZWZyZXNoR2NkTWVtb3J5QXR0cmlidXRlc0Zyb21QYWdpbmcgKA0K PiA+ICAgICAgICBjb250aW51ZTsNCj4gPiAgICAgIH0NCj4gPg0KPiA+ICsgICAgLy8NCj4gPiAr ICAgIC8vIFN5bmMgdGhlIGFjdHVhbCBwYWdpbmcgcmVsYXRlZCBjYXBhYmlsaXRpZXMgYmFjayB0 byBHQ0Qgc2VydmljZSBmaXJzdC4NCj4gPiArICAgIC8vIEFzIGEgc2lkZSBlZmZlY3QgKGdvb2Qg b25lKSwgdGhpcyBjYW4gYWxzbyBoZWxwIHRvIGF2b2lkIHVubmVjZXNzYXJ5DQo+ID4gKyAgICAv LyBtZW1vcnkgbWFwIGVudHJpZXMgZHVlIHRvIHRoZSBkaWZmZXJlbnQgY2FwYWJpbGl0aWVzIG9m IHRoZSBzYW1lIHR5cGUNCj4gPiArICAgIC8vIG1lbW9yeSwgc3VjaCBhcyBtdWx0aXBsZSBSVF9D T0RFIGFuZCBSVF9EQVRBIGVudHJpZXMgaW4gbWVtb3J5DQo+IG1hcCwNCj4gPiArICAgIC8vIHdo aWNoIGNvdWxkIGNhdXNlIGJvb3QgZmFpbHVyZSBvZiBzb21lIG9sZCBMaW51eCBkaXN0cm8gKGJl Zm9yZSB2NC4zKS4NCj4gPiArICAgIC8vDQo+ID4gKyAgICBTdGF0dXMgPSBnRFMtPlNldE1lbW9y eVNwYWNlQ2FwYWJpbGl0aWVzICgNCj4gPiArICAgICAgICAgICAgICAgICAgICBNZW1vcnlTcGFj ZU1hcFtJbmRleF0uQmFzZUFkZHJlc3MsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTWVtb3J5 U3BhY2VNYXBbSW5kZXhdLkxlbmd0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICBNZW1vcnlT cGFjZU1hcFtJbmRleF0uQ2FwYWJpbGl0aWVzIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICBF RklfTUVNT1JZX1BBR0VUWVBFX01BU0sNCj4gPiArICAgICAgICAgICAgICAgICAgICApOw0KPiA+ ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAg ICAvLyBJZiB3ZSBjYW5ub3QgdWRwYXRlIHRoZSBjYXBhYmlsaXRpZXMsIHdlIGNhbm5vdCB1cGRh dGUgaXRzDQo+ID4gKyAgICAgIC8vIGF0dHJpYnV0ZXMgZWl0aGVyLiBTbyBqdXN0IHNpbXBseSBz a2lwIGN1cnJlbnQgYmxvY2sgb2YgbWVtb3J5Lg0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICBE RUJVRyAoKA0KPiA+ICsgICAgICAgIERFQlVHX1dBUk4sDQo+ID4gKyAgICAgICAgIkZhaWxlZCB0 byB1cGRhdGUgY2FwYWJpbGl0eTogWyVkXSAlMDE2bHggLSAlMDE2bHggKCUwMTZseCAtDQo+ID4g JTAxNmx4KVxyXG4iLA0KPiA+ICsgICAgICAgIEluZGV4LCBCYXNlQWRkcmVzcywgQmFzZUFkZHJl c3MgKyBMZW5ndGggLSAxLA0KPiANCj4gKDEpIEkgdGhpbmsgeW91IGZvcmdvdCBhYm91dCBteSBu b3RlIHRoYXQgSW5kZXggKHdoaWNoIGlzIG9mIHR5cGUgVUlOVE4pDQo+IHNob3VsZCBub3QgYmUg cHJpbnRlZCB3aXRoICIlZCIuIEluc3RlYWQsIChVSU5UNjQpSW5kZXggc2hvdWxkIGJlDQo+IHBy aW50ZWQgd2l0aCAiJWx1Ii4NCj4gDQo+ID4gKyAgICAgICAgTWVtb3J5U3BhY2VNYXBbSW5kZXhd LkNhcGFiaWxpdGllcywNCj4gPiArICAgICAgICBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQ2FwYWJp bGl0aWVzIHwgRUZJX01FTU9SWV9QQUdFVFlQRV9NQVNLDQo+ID4gKyAgICAgICAgKSk7DQo+ID4g KyAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAgICAgIGlmIChNZW1vcnlT cGFjZU1hcFtJbmRleF0uQmFzZUFkZHJlc3MgPj0gKEJhc2VBZGRyZXNzICsgUGFnZUxlbmd0aCkp IHsNCj4gPiAgICAgICAgLy8NCj4gPiAgICAgICAgLy8gQ3VycmVudCBtZW1vcnkgc3BhY2Ugc3Rh cnRzIGF0IGEgbmV3IHBhZ2UuIFJlc2V0dGluZyBQYWdlTGVuZ3RoIHdpbGwNCj4gPiBAQCAtODI2 LDcgKzg1Miw5IEBAIFJlZnJlc2hHY2RNZW1vcnlBdHRyaWJ1dGVzRnJvbVBhZ2luZyAoDQo+ID4g ICAgICAgIFBhZ2VMZW5ndGggLT0gKE1lbW9yeVNwYWNlTWFwW0luZGV4XS5CYXNlQWRkcmVzcyAt IEJhc2VBZGRyZXNzKTsNCj4gPiAgICAgIH0NCj4gPg0KPiA+IC0gICAgLy8gU3luYyByZWFsIHBh Z2UgYXR0cmlidXRlcyB0byBHQ0QNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBTeW5jIGFjdHVh bCBwYWdlIGF0dHJpYnV0ZXMgdG8gR0NEDQo+ID4gKyAgICAvLw0KPiA+ICAgICAgQmFzZUFkZHJl c3MgICAgICAgPSBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQmFzZUFkZHJlc3M7DQo+ID4gICAgICBN ZW1vcnlTcGFjZUxlbmd0aCA9IE1lbW9yeVNwYWNlTWFwW0luZGV4XS5MZW5ndGg7DQo+ID4gICAg ICB3aGlsZSAoTWVtb3J5U3BhY2VMZW5ndGggPiAwKSB7DQo+ID4gQEAgLTg0MiwyMyArODcwLDI2 IEBAIFJlZnJlc2hHY2RNZW1vcnlBdHRyaWJ1dGVzRnJvbVBhZ2luZyAoDQo+ID4gICAgICAgICAg UGFnZVN0YXJ0QWRkcmVzcyAgPSAoKlBhZ2VFbnRyeSkgJg0KPiAoVUlOVDY0KVBhZ2VBdHRyaWJ1 dGVUb01hc2soUGFnZUF0dHJpYnV0ZSk7DQo+ID4gICAgICAgICAgUGFnZUxlbmd0aCAgICAgICAg PSBQYWdlQXR0cmlidXRlVG9MZW5ndGggKFBhZ2VBdHRyaWJ1dGUpIC0gKEJhc2VBZGRyZXNzIC0N Cj4gUGFnZVN0YXJ0QWRkcmVzcyk7DQo+ID4gICAgICAgICAgQXR0cmlidXRlcyAgICAgICAgPSBH ZXRBdHRyaWJ1dGVzRnJvbVBhZ2VFbnRyeSAoUGFnZUVudHJ5KTsNCj4gPiAtDQo+ID4gLSAgICAg ICAgaWYgKEF0dHJpYnV0ZXMgIT0gKE1lbW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzICYN Cj4gRUZJX01FTU9SWV9QQUdFVFlQRV9NQVNLKSkgew0KPiA+IC0gICAgICAgICAgRG9VcGRhdGUg PSBUUlVFOw0KPiA+IC0gICAgICAgICAgQXR0cmlidXRlcyB8PSAoTWVtb3J5U3BhY2VNYXBbSW5k ZXhdLkF0dHJpYnV0ZXMgJg0KPiB+RUZJX01FTU9SWV9QQUdFVFlQRV9NQVNLKTsNCj4gPiAtICAg ICAgICAgIENhcGFiaWxpdGllcyA9IEF0dHJpYnV0ZXMgfCBNZW1vcnlTcGFjZU1hcFtJbmRleF0u Q2FwYWJpbGl0aWVzOw0KPiA+IC0gICAgICAgIH0gZWxzZSB7DQo+ID4gLSAgICAgICAgICBEb1Vw ZGF0ZSA9IEZBTFNFOw0KPiA+IC0gICAgICAgIH0NCj4gPiAgICAgICAgfQ0KPiA+DQo+ID4gICAg ICAgIExlbmd0aCA9IE1JTiAoUGFnZUxlbmd0aCwgTWVtb3J5U3BhY2VMZW5ndGgpOw0KPiA+IC0g ICAgICBpZiAoRG9VcGRhdGUpIHsNCj4gPiAtICAgICAgICBnRFMtPlNldE1lbW9yeVNwYWNlQ2Fw YWJpbGl0aWVzIChCYXNlQWRkcmVzcywgTGVuZ3RoLCBDYXBhYmlsaXRpZXMpOw0KPiA+IC0gICAg ICAgIGdEUy0+U2V0TWVtb3J5U3BhY2VBdHRyaWJ1dGVzIChCYXNlQWRkcmVzcywgTGVuZ3RoLCBB dHRyaWJ1dGVzKTsNCj4gPiAtICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJVcGRhdGUgbWVt b3J5IHNwYWNlIGF0dHJpYnV0ZTogWyUwMmRdICUwMTZseA0KPiAtICUwMTZseCAoJTA4bHggLT4g JTA4bHgpXHJcbiIsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgsIEJh c2VBZGRyZXNzLCBCYXNlQWRkcmVzcyArIExlbmd0aCAtIDEsDQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkF0dHJpYnV0ZXMsIEF0dHJpYnV0 ZXMpKTsNCj4gPiArICAgICAgaWYgKEF0dHJpYnV0ZXMgIT0gKE1lbW9yeVNwYWNlTWFwW0luZGV4 XS5BdHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAmIEVGSV9NRU1PUllf UEFHRVRZUEVfTUFTSykpIHsNCj4gPiArICAgICAgICBOZXdBdHRyaWJ1dGVzID0gKE1lbW9yeVNw YWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAm IH5FRklfTUVNT1JZX1BBR0VUWVBFX01BU0spIHwgQXR0cmlidXRlczsNCj4gDQo+ICgyKSBUbyBt eSB1bmRlcnN0YW5kaW5nLCB0aGUgZWRrMiBjb2Rpbmcgc3R5bGUgd2FudHMgdXMgdG8ga2VlcCB0 aGUNCj4gYml0d2lzZS1hbmQgb3BlcmF0b3IgKCImIikgYXQgdGhlIGVuZCBvZiB0aGUgbGluZS4N Cj4gDQo+ID4gKyAgICAgICAgU3RhdHVzID0gZ0RTLT5TZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMg KA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcywNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBO ZXdBdHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgICAg ICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiArICAgICAgICBERUJVRyAoKA0KPiA+ ICsgICAgICAgICAgREVCVUdfSU5GTywNCj4gPiArICAgICAgICAgICJVcGRhdGVkIG1lbW9yeSBz cGFjZSBhdHRyaWJ1dGU6IFslZF0gJTAxNmx4IC0gJTAxNmx4ICglMDE2bHggLQ0KPiA+ICUwMTZs eClcclxuIiwNCj4gPiArICAgICAgICAgIEluZGV4LCBCYXNlQWRkcmVzcywgQmFzZUFkZHJlc3Mg KyBMZW5ndGggLSAxLA0KPiANCj4gKDMpIFNhbWUgY29tbWVudCBhcyAoMSkuDQo+IA0KPiBUaGFu a3MsDQo+IExhc3psbw0KPiANCj4gPiArICAgICAgICAgIE1lbW9yeVNwYWNlTWFwW0luZGV4XS5B dHRyaWJ1dGVzLA0KPiA+ICsgICAgICAgICAgTmV3QXR0cmlidXRlcw0KPiA+ICsgICAgICAgICAg KSk7DQo+ID4gICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICBQYWdlTGVuZ3RoICAgICAgICAtPSBM ZW5ndGg7DQo+ID4NCg0K