From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90]) by mx.groups.io with SMTP id smtpd.web11.8672.1613743818570103563 for ; Fri, 19 Feb 2021 06:10:18 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=BfUCVOE0; spf=pass (domain: amazon.de, ip: 52.95.49.90, mailfrom: prvs=6776c88c3=graf@amazon.de) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1613743818; x=1645279818; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=mKQC+xcf74QrGDK8JtLnvbjuCE75Bz6nXg1EXlbtWbY=; b=BfUCVOE0EonZIO00fJn/MLYtSrDT4mERhvSm45Y4vr3zCUw9vZynX3UG z0SP5AvP8dK2WQUX9f05rmcYYg31OY3ESNG/axlksYY54ptEE/1/0ZFL3 gHeToxMY8SvzigdpEETyr2GOXmnBsik2/f4mltb09bjHUM/gM8G0dwyzo E=; X-IronPort-AV: E=Sophos;i="5.81,189,1610409600"; d="scan'208";a="88094159" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-6002.iad6.amazon.com with ESMTP; 19 Feb 2021 14:10:07 +0000 Received: from EX13MTAUWC002.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-2a-1c1b5cdd.us-west-2.amazon.com (Postfix) with ESMTPS id 9B89DA210F; Fri, 19 Feb 2021 14:10:06 +0000 (UTC) Received: from EX13D20UWC001.ant.amazon.com (10.43.162.244) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 19 Feb 2021 14:10:05 +0000 Received: from Alexanders-MacBook-Air.local (10.43.161.13) by EX13D20UWC001.ant.amazon.com (10.43.162.244) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 19 Feb 2021 14:10:03 +0000 Subject: Re: [edk2-devel] [PATCH 1/2] MdeModulePkg/Core/Dxe: Allow to force runtime allocations at separate range To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Leif Lindholm , Laszlo Ersek , "Ard Biesheuvel" , "Justen, Jordan L" , "Woodhouse, David" , "Hendrik Borghorst" References: <20210218200953.20943-1-graf@amazon.com> <20210218200953.20943-2-graf@amazon.com> From: "Alexander Graf" Message-ID: <5efeedb0-d0de-8428-3a88-190ccf02707e@amazon.com> Date: Fri, 19 Feb 2021 15:10:02 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [10.43.161.13] X-ClientProxiedBy: EX13D06UWA002.ant.amazon.com (10.43.160.143) To EX13D20UWC001.ant.amazon.com (10.43.162.244) Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 SGkgTWlrZSwKClRoYW5rcyBhIGxvdCBmb3IgdGhlIHBvaW50ZXIhIEluIG15IGNhc2UsIHRoZSBk ZWZhdWx0cyBmb3IgdGhlIApwcmVhbGxvY2F0ZWQgbWVtb3J5IHJlZ2lvbnMgd2FzIGp1c3Qgbm90 IGJpZyBlbm91Z2ggdG8gcHJldmVudCAKaGliZXJuYXRpb24gYnJlYWthZ2UuIEkgaW5jcmVhc2Vk IHRoZW0gbm93IGFzIGludGVuZGVkIGFuZCBldmVyeXRoaW5nIAp3b3JrcyBsaWtlIGEgY2hhcm0u CgpQbGVhc2UgaWdub3JlIHRoaXMgcGF0Y2ggc2V0LCB0aGUgZXhpc3RpbmcgbWVjaGFuaXNtIGlz IGRlZmluaXRlbHkgCnN1cGVyaW9yIDopCgoKVGhhbmtzIQoKQWxleAoKCk9uIDE4LjAyLjIxIDIz OjI4LCBLaW5uZXksIE1pY2hhZWwgRCB3cm90ZToKPiAKPiBIaSBBbGV4LAo+IAo+IFRoaXMgZmVh dHVyZSBpcyBhbHJlYWR5IGF2YWlsYWJsZSBmcm9tIHRoZSBEWEUgQ29yZSB1c2luZyB0aGUgTWVt b3J5VHlwZUluZm9ybWF0aW9uIGFuZCB3YXMKPiBzcGVjaWZpY2FsbHkgYWRkZWQgdG8gc3VwcG9y dCBoaWJlcm5hdGlvbiB1c2UgY2FzZS4KPiAKPiBUaGVyZSBpcyBhbiBvcHRpb25hbCBIT0IgdGhh dCBpcyBwYXNzZWQgaW50byBEWEUgQ29yZSB0aGF0IGNhbiBwcm92aWRlIGJpbiBzaXplcyBmb3Ig YW55IHN1cHBvcnRlZCBtZW1vcnkgdHlwZXMuICBOb3QganVzdCBSdW50aW1lIGFuZCBBQ1BJLgo+ IAo+IFRoaXMgZmVhdHVyZSBjYW4gdXNlIGEgZml4ZWQgSE9CIG9yIHVzZSBhIGR5bmFtaWMgSE9C IGZyb20gYSBVRUZJIFZhcmlhYmxlLCBzbyB0aGF0IGNoYW5nZXMgaW4gdGhlIG1lbW9yeSB1c2Fn ZSBvZgo+IHRoZSBjcml0aWNhbCBtZW1vcnkgdHlwZXMgZm9yIGhpYmVybmF0aW9uIGNhbiBiZSB0 cmFja2VkIGFuZCBzdG9yZWQgaW4gdGhlIFVFRkkgVmFyaWFibGVzIGFuZCBiZSB1c2VkIHRvIHBv cHVsYXRlCj4gdGhlIEhPQi4gIEl0IGlzIGEgcGxhdGZvcm0gY2hvaWNlIHRvIHVzZSBmaXhlZCBv ciBkeW5hbWljIEhPQi4KPiAKPiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxv Yi9tYXN0ZXIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvR3VpZC9NZW1vcnlUeXBlSW5mb3JtYXRpb24u aAo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzk3OGI5ZDUxMWY1 YjljYjdiYzViMDk3NDlmODZjMzliZWM1MTUyNWQvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0djZC9H Y2QuYyNMMjIzMwo+IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzk3 OGI5ZDUxMWY1YjljYjdiYzViMDk3NDlmODZjMzliZWM1MTUyNWQvTWRlTW9kdWxlUGtnL0NvcmUv RHhlL01lbS9QYWdlLmMjTDQ1Cj4gCj4gVGhlIERYRSBDb3JlIHVzZSB0aGUgSE9CIHRvIHByZS1h bGxvY2F0ZSBiaW5zIGZvciB0aGUgbWVtb3J5IHR5cGVzIGFuZCBkbyBhbGxvY2F0aW9ucyBmcm9t IHRob3NlIGJpbnMuCj4gCj4gVGhlIFVFRkkgTWVtb3J5IE1hcCBwcm92aWRlcyBhbiBlbnRyeSBm b3IgdGhlIGVudGlyZSBiaW4gKG5vIGp1c3QgdGhlIGFsbG9jYXRlZCBzcGFjZSksIHNvIHNtYWxs Cj4gZGlmZmVyZW5jZXMgaW4gYWxsb2NhdGlvbnMgZnJvbSBib290IHRvIGJvb3QgZG8gbm90IGNo YW5nZSB0aGUgVUVGSSBtZW1vcnkgbWFwLiAgVGhpcyBhbHNvCj4gcmVkdWNlcyB0aGUgdG90YWwg bnVtYmVyIG9mIG1lbW9yeSBtYXAgZW50cmllcyBpbiB0aGUgVUVGSSBtZW1vcnkgbWFwLgo+IAo+ IElmIGR5bmFtaWMgSE9CIGlzIHVzZWQsIHRoZW4gdGhlIEJvb3QgTWFuYWdlciBjb21wYXJlcyB0 aGUgYWN0dWFsIG1lbW9yeSB1c2FnZSB0byB0aGUgSE9CLgo+IElmIHRoZSB1c2FnZSBpcyBsYXJn ZXIgb3Igc21hbGxlciBieSBtb3JlIHRoYW4gYSB0aHJlc2hvbGQsIHRoZW4gdGhlIFVFRkkgVmFy aWFibGUgaXMKPiB1cGRhdGVkLiAgVGhlIHBsYXRmb3JtIGhhcyB0aGUgY2hvaWNlIHRvIHJlYm9v dCBvciBjb250aW51ZSBib290aW5nIGFmdGVyIHRoaXMgVUVJRiBWYXJpYWJsZQo+IHVwZGF0ZSBi YXNlZCBvbiBhIFBDRC4gIFRoZSByZWJvb3QgY2FuIGhlbHAgbWFrZSBzdXJlIHRoZSBmaXJzdCBi b290IHRvIHRoZSBPUyBoYXMgdGhlIHJpZ2h0Cj4gYmluIHNpemVzIHRvIHN1cHBvcnQgZnV0dXJl IGhpYmVybmF0ZSBib290IGZsb3dzLgo+IAo+IAo+IE1pa2UKPiAKPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YgQWxleGFuZGVyIEdyYWYgdmlhIGdyb3Vwcy5pbwo+PiBTZW50 OiBUaHVyc2RheSwgRmVicnVhcnkgMTgsIDIwMjEgMTI6MTAgUE0KPj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvCj4+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IExhc3ps byBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBBcmQgQmllc2hldXZlbCA8YXJkYit0aWFub2Nv cmVAa2VybmVsLm9yZz47Cj4+IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRl bC5jb20+OyBXb29kaG91c2UsIERhdmlkIDxkd213QGFtYXpvbi5jby51az47IEhlbmRyaWsgQm9y Z2hvcnN0IDxoYm9yZ2hvckBhbWF6b24uZGU+Cj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFU Q0ggMS8yXSBNZGVNb2R1bGVQa2cvQ29yZS9EeGU6IEFsbG93IHRvIGZvcmNlIHJ1bnRpbWUgYWxs b2NhdGlvbnMgYXQgc2VwYXJhdGUgcmFuZ2UKPj4KPj4gT3BlcmF0aW5nIFN5c3RlbXMgdGhhdCBn ZXQgaGliZXJuYXRlZCBleHBlY3QgYWxsIG5vbi1ib290LXRpbWUgYWxsb2NhdGlvbnMKPj4gdG8g YmUgaWRlbnRpY2FsIGJlZm9yZSBhbmQgYWZ0ZXIgaGliZXJuYXRpb24uCj4+Cj4+IEluIGVkazIs IHdlIGNyZWF0ZSBwb29scyBhbmQgYWxsb2NhdGUgcGFnZXMgc3RhcnRpbmcgZnJvbSB0aGUgaGln aGVzdAo+PiBhbGxvd2VkIGFkZHJlc3MgZm9yIHRoZSBhbGxvY2F0aW9uLCB1c3VhbGx5IDB4RkZG RkZGRkYuIFR5cGljYWxseSwgdGhhdAo+PiBtZWFucyB3ZSBhbGxvY2F0ZSBhIGZldyBwYWdlcyBv ZiBib290IHRpbWUgZGF0YSwgdGhlbiBhIGZldyBwYWdlcyBvZgo+PiBydW50aW1lIGRhdGEsIHRo ZW4gYW5vdGhlciBmZXcgcGFnZXMgb2YgYm9vdCB0aW1lIGRhdGEgYW5kIGFnYWluIHJ1bnRpbWUK Pj4gZGF0YS4gRXZlcnkgYWxsb2NhdGlvbiBoYXMgZGlyZWN0IGltcGFjdCBvbiB0aGUgZm9sbG93 aW5nIGFsbG9jYXRpb25zLgo+Pgo+PiBUaGUgcHJvYmxlbSB3aXRoIHRoaXMgc2NoZW1lIGlzIHRo YXQgc21hbGwgY29kZSBjaGFuZ2VzIGluIGJvb3QgdGltZSBjb2RlCj4+IGFscmVhZHkgY2FuIGhh dmUgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIHJ1bnRpbWUgYWxsb2NhdGlvbnMsIHdoaWNoIHRoZW4K Pj4gYnJlYWsgaGliZXJuYXRpb24uCj4+Cj4+IFRoaXMgcGF0Y2ggYWRkcyBhIG1lY2hhbmlzbSB0 byBvdmVycmlkZSB0aGUgTWF4QWRkcmVzcyBmb3IgcnVudGltZQo+PiBhbGxvY2F0aW9ucyB3aXRo IGEgdGFyZ2V0IGRlZmluZWQgUGNkIHZhbHVlLiBXaXRoIHRoaXMgZmVhdHVyZSBlbmFibGVkLAo+ PiB3ZSBjYW4gaGF2ZSBkaWZmZXJlbnQgYWxsb2NhdGlvbiByYW5nZXMgZm9yIHJ1bnRpbWUgYW5k IGJvb3QgdGltZQo+PiBhbGxvY2F0aW9ucy4KPj4KPj4gVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZXJt aW5lIGF0IGJvb3QgdGltZSB3aGV0aGVyIHRvIGxvYWQgYW4gb2xkLAo+PiBoaWJlcm5hdGlvbiBj b21wYXRpYmxlIHJ1bnRpbWUgYWxsb2NhdGlvbiBwYXRoIG9yIGEgbmV3LCBoaWJlcm5hdGlvbgo+ PiB1bnNhZmUgcnVudGltZSBhbGxvY2F0aW9uLiBBbGwgd2l0aGluIHRoZSBzYW1lIGVkazIgdGFy Z2V0IGJpbmFyeS4KPj4gSXQgYWxzbyBhbGxvd3MgdXMgdG8gbW9kaWZ5IGJvb3QgdGltZSBiZWhh dmlvciwgc3VjaCBhcyBtb2RpZnlpbmcKPj4gYnVmZmVyIGFsbG9jYXRpb24gbWVjaGFuaXNtcyB3 aXRob3V0IGNvbXByb21pc2luZyBvbiBoaWJlcm5hdGlvbiBzYWZldHkuCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IEFsZXhhbmRlciBHcmFmIDxncmFmQGFtYXpvbi5jb20+Cj4+IC0tLQo+PiAgIE1kZU1v ZHVsZVBrZy9Db3JlL0R4ZS9EeGVNYWluLmluZiB8ICA0ICsrKwo+PiAgIE1kZU1vZHVsZVBrZy9D b3JlL0R4ZS9NZW0vUGFnZS5jICB8IDcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+PiAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjICAgICB8IDE2ICsrKysr KysrKwo+PiAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cudW5pICAgICB8IDEyICsrKysrKysK Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQg YS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYgYi9NZGVNb2R1bGVQa2cvQ29yZS9E eGUvRHhlTWFpbi5pbmYKPj4gaW5kZXggZTRiY2E4OTU3Ny4uMDY5NjI0Njk3MCAxMDA2NDQKPj4g LS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0R4ZU1haW4uaW5mCj4+ICsrKyBiL01kZU1vZHVs ZVBrZy9Db3JlL0R4ZS9EeGVNYWluLmluZgo+PiBAQCAtMTg2LDYgKzE4NiwxMCBAQAo+PiAgICAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEhlYXBHdWFyZFByb3BlcnR5TWFzayAg ICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUwo+PiAgICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBD T05TVU1FUwo+PiAgICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZ3Vm9sRHhl TWF4RW5jYXBzdWxhdGlvbkRlcHRoICAgICAgICAgICAjIyBDT05TVU1FUwo+PiArICBnRWZpTWRl TW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRW5mb3JjZU1heEFDUElSZWNsYWltTWVtb3J5ICAg ICAgICAgICAgICMjIENPTlNVTUVTCj4+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RFbmZvcmNlTWF4QUNQSU1lbW9yeU5WUyAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMK Pj4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVuZm9yY2VNYXhFZmlSdW50 aW1lU2VydmljZXNDb2RlICAgICAgICAjIyBDT05TVU1FUwo+PiArICBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkRW5mb3JjZU1heEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEgICAgICAg ICMjIENPTlNVTUVTCj4+Cj4+ICAgIyBbSG9iXQo+PiAgICMgUkVTT1VSQ0VfREVTQ1JJUFRPUiAg ICMjIENPTlNVTUVTCj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvTWVtL1Bh Z2UuYyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUGFnZS5jCj4+IGluZGV4IDczMWJmMDhi YzkuLjkxNTk5YWRjY2IgMTAwNjQ0Cj4+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0v UGFnZS5jCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUGFnZS5jCj4+IEBAIC0x MDA3LDYgKzEwMDcsNzQgQEAgQ29yZVVwZGF0ZU1lbW9yeUF0dHJpYnV0ZXMgKAo+PiAgICAgQ29y ZVJlbGVhc2VNZW1vcnlMb2NrICgpOwo+PiAgIH0KPj4KPj4gK1VJTlQ2NAo+PiArRW5mb3JjZU1h eEFkZHJlc3MgKAo+PiArICBJTiBVSU5UNjQgICAgICAgICAgIE1heEFkZHJlc3MsCj4+ICsgIElO IEVGSV9NRU1PUllfVFlQRSAgTmV3VHlwZSwKPj4gKyAgSU4gVUlOVDY0ICAgICAgICAgICBOdW1i ZXJPZlBhZ2VzCj4+ICsgICkKPj4gK3sKPj4gKyAgVUlOVDY0ICAgICBOdW1iZXJPZkJ5dGVzID0g TFNoaWZ0VTY0IChOdW1iZXJPZlBhZ2VzLCBFRklfUEFHRV9TSElGVCk7Cj4+ICsgIFVJTlQ2NCAg ICAgTG93ZXN0UG9zc2libGUgPSBNYXhBZGRyZXNzOwo+PiArICBVSU5UNjQgICAgIEZvcmNlTWF4 QWRkcmVzczsKPj4gKyAgTElTVF9FTlRSWSAqTGluazsKPj4gKyAgTUVNT1JZX01BUCAqRW50cnk7 Cj4+ICsKPj4gKyAgc3dpdGNoIChOZXdUeXBlKSB7Cj4+ICsgIGNhc2UgRWZpQUNQSVJlY2xhaW1N ZW1vcnk6Cj4+ICsgICAgRm9yY2VNYXhBZGRyZXNzID0gUGNkR2V0NjQoUGNkRW5mb3JjZU1heEFD UElSZWNsYWltTWVtb3J5KTsKPj4gKyAgICBicmVhazsKPj4gKyAgY2FzZSBFZmlBQ1BJTWVtb3J5 TlZTOgo+PiArICAgIEZvcmNlTWF4QWRkcmVzcyA9IFBjZEdldDY0KFBjZEVuZm9yY2VNYXhBQ1BJ TWVtb3J5TlZTKTsKPj4gKyAgICBicmVhazsKPj4gKyAgY2FzZSBFZmlSdW50aW1lU2VydmljZXND b2RlOgo+PiArICAgIEZvcmNlTWF4QWRkcmVzcyA9IFBjZEdldDY0KFBjZEVuZm9yY2VNYXhFZmlS dW50aW1lU2VydmljZXNDb2RlKTsKPj4gKyAgICBicmVhazsKPj4gKyAgY2FzZSBFZmlSdW50aW1l U2VydmljZXNEYXRhOgo+PiArICAgIEZvcmNlTWF4QWRkcmVzcyA9IFBjZEdldDY0KFBjZEVuZm9y Y2VNYXhFZmlSdW50aW1lU2VydmljZXNEYXRhKTsKPj4gKyAgICBicmVhazsKPj4gKyAgZGVmYXVs dDoKPj4gKyAgICBGb3JjZU1heEFkZHJlc3MgPSBNYXhBZGRyZXNzOwo+PiArICAgIGJyZWFrOwo+ PiArICB9Cj4+ICsKPj4gKyAgLy8KPj4gKyAgLy8gVGhlIGN1cnJlbnRseSByZXF1ZXN0ZWQgYWRk cmVzcyBhbHJlYWR5IGZpdHMgb3VyIGZvcmNlZCBtYXggY29uc3RyYWludD8KPj4gKyAgLy8gR3Jl YXQsIGxldCdzIHVzZSB0aGF0IHRoZW4uCj4+ICsgIC8vCj4+ICsgIGlmIChGb3JjZU1heEFkZHJl c3MgPj0gTWF4QWRkcmVzcykgewo+PiArICAgIHJldHVybiBNYXhBZGRyZXNzOwo+PiArICB9Cj4+ ICsKPj4gKyAgLy8KPj4gKyAgLy8gQ2hlY2sgaWYgdGhlIGFsbG9jYXRpb24gd291bGQgZml0LiBJ ZiBub3QsIGRvbid0IGZvcmNlIGl0Lgo+PiArICAvLwo+PiArICBmb3IgKExpbmsgPSBnTWVtb3J5 TWFwLkZvcndhcmRMaW5rOyBMaW5rICE9ICZnTWVtb3J5TWFwOyBMaW5rID0gTGluay0+Rm9yd2Fy ZExpbmspIHsKPj4gKyAgICBFbnRyeSA9IENSIChMaW5rLCBNRU1PUllfTUFQLCBMaW5rLCBNRU1P UllfTUFQX1NJR05BVFVSRSk7Cj4+ICsKPj4gKyAgICAvLwo+PiArICAgIC8vIElmIGl0J3Mgbm90 IGEgZnJlZSBlbnRyeSwgZG9uJ3QgYm90aGVyIHdpdGggaXQKPj4gKyAgICAvLwo+PiArICAgIGlm IChFbnRyeS0+VHlwZSAhPSBFZmlDb252ZW50aW9uYWxNZW1vcnkpIHsKPj4gKyAgICAgIGNvbnRp bnVlOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGlmICgoRW50cnktPlN0YXJ0IDwgTG93ZXN0UG9z c2libGUpICYmCj4+ICsgICAgICAgICgoRW50cnktPkVuZCAtIEVudHJ5LT5TdGFydCkgPj0gTnVt YmVyT2ZCeXRlcykpIHsKPj4gKyAgICAgIExvd2VzdFBvc3NpYmxlID0gRW50cnktPkVuZDsKPj4g KyAgICB9Cj4+ICsgIH0KPj4gKyAgREVCVUcgKChERUJVR19FUlJPUiB8IERFQlVHX1BBR0UsICJG b3JjZT0lbHggTG93ZXN0PSVseCBNYXg9JWx4XG4iLCBGb3JjZU1heEFkZHJlc3MsIExvd2VzdFBv c3NpYmxlLCBNYXhBZGRyZXNzKSk7Cj4+ICsKPj4gKyAgLy8KPj4gKyAgLy8gV2UgZG9uJ3QgaGF2 ZSBmcmVlIFJBTSBhdmFpbGFibGUgaW4gdGhlIGRlc2lyZWQgdGFyZ2V0IGFyZWE/IEJhaWwgb3V0 IQo+PiArICAvLwo+PiArICBpZiAoRm9yY2VNYXhBZGRyZXNzIDwgTG93ZXN0UG9zc2libGUpIHsK Pj4gKyAgICByZXR1cm4gTWF4QWRkcmVzczsKPj4gKyAgfQo+PiArCj4+ICsgIHJldHVybiBGb3Jj ZU1heEFkZHJlc3M7Cj4+ICt9Cj4+Cj4+ICAgLyoqCj4+ICAgICBJbnRlcm5hbCBmdW5jdGlvbi4g RmluZHMgYSBjb25zZWN1dGl2ZSBmcmVlIHBhZ2UgcmFuZ2UgYmVsb3cKPj4gQEAgLTEwNDEsNiAr MTEwOSw4IEBAIENvcmVGaW5kRnJlZVBhZ2VzSSAoCj4+ICAgICBMSVNUX0VOVFJZICAgICAgKkxp bms7Cj4+ICAgICBNRU1PUllfTUFQICAgICAgKkVudHJ5Owo+Pgo+PiArICBNYXhBZGRyZXNzID0g RW5mb3JjZU1heEFkZHJlc3MoTWF4QWRkcmVzcywgTmV3VHlwZSwgTnVtYmVyT2ZQYWdlcyk7Cj4+ ICsKPj4gICAgIGlmICgoTWF4QWRkcmVzcyA8IEVGSV9QQUdFX01BU0spIHx8KE51bWJlck9mUGFn ZXMgPT0gMCkpIHsKPj4gICAgICAgcmV0dXJuIDA7Cj4+ICAgICB9Cj4+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cu ZGVjCj4+IGluZGV4IDE0ODM5NTUxMTAuLmNiYWQ0OGFmNWUgMTAwNjQ0Cj4+IC0tLSBhL01kZU1v ZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQ a2cuZGVjCj4+IEBAIC0xNTM1LDYgKzE1MzUsMjIgQEAKPj4gICAgICMgQFByb21wdCBNYXhpbXVt IHBlcm1pdHRlZCBGd1ZvbCBzZWN0aW9uIG5lc3RpbmcgZGVwdGggKGV4Y2x1c2l2ZSkuCj4+ICAg ICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRndWb2xEeGVNYXhFbmNhcHN1bGF0 aW9uRGVwdGh8MHgxMHxVSU5UMzJ8MHgwMDAwMDAzMAo+Pgo+PiArICAjIyBNYXhpbXVtIGFkZHJl c3MgdGhhdCBhIGR5bmFtaWMgRWZpQUNQSVJlY2xhaW1NZW1vcnkgYWxsb2NhdGlvbiBjYW4gYmUg cmVxdWVzdGVkIGF0Cj4+ICsgICMgQFByb21wdCBNYXhpbXVtIGFkZHJlc3MgZm9yIEVmaUFDUElS ZWNsYWltTWVtb3J5IGFsbG9jYXRpb25zCj4+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RFbmZvcmNlTWF4QUNQSVJlY2xhaW1NZW1vcnl8MHhGRkZGRkZGRkZGRkZGRkZGfFVJ TlQ2NHwweDMwMDAxMDE2Cj4+ICsKPj4gKyAgIyMgTWF4aW11bSBhZGRyZXNzIHRoYXQgYSBkeW5h bWljIEVmaUFDUElNZW1vcnlOVlMgYWxsb2NhdGlvbiBjYW4gYmUgcmVxdWVzdGVkIGF0Cj4+ICsg ICMgQFByb21wdCBNYXhpbXVtIGFkZHJlc3MgZm9yIEVmaUFDUElNZW1vcnlOVlMgYWxsb2NhdGlv bnMKPj4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVuZm9yY2VNYXhBQ1BJ TWVtb3J5TlZTfDB4RkZGRkZGRkZGRkZGRkZGRnxVSU5UNjR8MHgzMDAwMTAxNwo+PiArCj4+ICsg ICMjIE1heGltdW0gYWRkcmVzcyB0aGF0IGEgZHluYW1pYyBFZmlSdW50aW1lU2VydmljZXNDb2Rl IGFsbG9jYXRpb24gY2FuIGJlIHJlcXVlc3RlZCBhdAo+PiArICAjIEBQcm9tcHQgTWF4aW11bSBh ZGRyZXNzIGZvciBFZmlSdW50aW1lU2VydmljZXNDb2RlIGFsbG9jYXRpb25zCj4+ICsgIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RFbmZvcmNlTWF4RWZpUnVudGltZVNlcnZpY2Vz Q29kZXwweEZGRkZGRkZGRkZGRkZGRkZ8VUlOVDY0fDB4MzAwMDEwMTgKPj4gKwo+PiArICAjIyBN YXhpbXVtIGFkZHJlc3MgdGhhdCBhIGR5bmFtaWMgRWZpUnVudGltZVNlcnZpY2VzRGF0YSBhbGxv Y2F0aW9uIGNhbiBiZSByZXF1ZXN0ZWQgYXQKPj4gKyAgIyBAUHJvbXB0IE1heGltdW0gYWRkcmVz cyBmb3IgRWZpUnVudGltZVNlcnZpY2VzRGF0YSBhbGxvY2F0aW9ucwo+PiArICBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRW5mb3JjZU1heEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGF8 MHhGRkZGRkZGRkZGRkZGRkZGfFVJTlQ2NHwweDMwMDAxMDE5Cj4+ICsKPj4gICBbUGNkc1BhdGNo YWJsZUluTW9kdWxlLCBQY2RzRHluYW1pYywgUGNkc0R5bmFtaWNFeF0KPj4gICAgICMjIFRoaXMg UENEIGRlZmluZXMgdGhlIENvbnNvbGUgb3V0cHV0IHJvdy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMg MjUgYWNjb3JkaW5nIHRvIFVFRkkgc3BlYy4KPj4gICAgICMgIFRoaXMgUENEIGNvdWxkIGJlIHNl dCB0byAwIHRoZW4gY29uc29sZSBvdXRwdXQgd291bGQgYmUgYXQgbWF4IGNvbHVtbiBhbmQgbWF4 IHJvdy4KPj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cudW5pIGIvTWRl TW9kdWxlUGtnL01kZU1vZHVsZVBrZy51bmkKPj4gaW5kZXggZWY5ZjRkOTdiOS4uMGRjNWMxOTYw YiAxMDA2NDQKPj4gLS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy51bmkKPj4gKysrIGIv TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy51bmkKPj4gQEAgLTEzMzAsMyArMTMzMCwxNSBAQAo+ PiAgICNzdHJpbmcgU1RSX2dFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZF9QY2RQY2llUmVz aXphYmxlQmFyU3VwcG9ydF9IRUxQICNsYW5ndWFnZSBlbi1VUyAiSW5kaWNhdGVzIGlmIHRoZSBQ Q0llCj4+IFJlc2l6YWJsZSBCQVIgQ2FwYWJpbGl0eSBTdXBwb3J0ZWQuPEJSPjxCUj5cbiIKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUUlVFICAtIFBDSWUgUmVzaXph YmxlIEJBUgo+PiBDYXBhYmlsaXR5IGlzIHN1cHBvcnRlZC48QlI+XG4iCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFMU0UgLSBQQ0llIFJlc2l6YWJsZSBCQVIKPj4g Q2FwYWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkLjxCUj4iCj4+ICsKPj4gKyNzdHJpbmcgU1RSX2dF ZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RFbmZvcmNlTWF4QUNQSVJlY2xhaW1NZW1v cnlfUFJPTVBUICNsYW5ndWFnZSBlbi1VUyAiTWF4aW11bSBhZGRyZXNzIGZvcgo+PiBFZmlBQ1BJ UmVjbGFpbU1lbW9yeSBhbGxvY2F0aW9ucyIKPj4gKyNzdHJpbmcgU1RSX2dFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RFbmZvcmNlTWF4QUNQSVJlY2xhaW1NZW1vcnlfSEVMUCAjbGFu Z3VhZ2UgZW4tVVMgIk1heGltdW0gYWRkcmVzcyB0aGF0IGEKPj4gZHluYW1pYyBFZmlBQ1BJUmVj bGFpbU1lbW9yeSBhbGxvY2F0aW9uIGNhbiBiZSByZXF1ZXN0ZWQgYXQiCj4+ICsKPj4gKyNzdHJp bmcgU1RSX2dFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RFbmZvcmNlTWF4QUNQSU1l bW9yeU5WU19QUk9NUFQgI2xhbmd1YWdlIGVuLVVTICJNYXhpbXVtIGFkZHJlc3MgZm9yCj4+IEVm aUFDUElNZW1vcnlOVlMgYWxsb2NhdGlvbnMiCj4+ICsjc3RyaW5nIFNUUl9nRWZpTWRlTW9kdWxl UGtnVG9rZW5TcGFjZUd1aWQuUGNkRW5mb3JjZU1heEFDUElNZW1vcnlOVlNfSEVMUCAjbGFuZ3Vh Z2UgZW4tVVMgIk1heGltdW0gYWRkcmVzcyB0aGF0IGEKPj4gZHluYW1pYyBFZmlBQ1BJTWVtb3J5 TlZTIGFsbG9jYXRpb24gY2FuIGJlIHJlcXVlc3RlZCBhdCIKPj4gKwo+PiArI3N0cmluZyBTVFJf Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVuZm9yY2VNYXhFZmlSdW50aW1lU2Vy dmljZXNDb2RlX1BST01QVCAjbGFuZ3VhZ2UgZW4tVVMgIk1heGltdW0gYWRkcmVzcwo+PiBmb3Ig RWZpUnVudGltZVNlcnZpY2VzQ29kZSBhbGxvY2F0aW9ucyIKPj4gKyNzdHJpbmcgU1RSX2dFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RFbmZvcmNlTWF4RWZpUnVudGltZVNlcnZpY2Vz Q29kZV9IRUxQICNsYW5ndWFnZSBlbi1VUyAiTWF4aW11bSBhZGRyZXNzIHRoYXQKPj4gYSBkeW5h bWljIEVmaVJ1bnRpbWVTZXJ2aWNlc0NvZGUgYWxsb2NhdGlvbiBjYW4gYmUgcmVxdWVzdGVkIGF0 Igo+PiArCj4+ICsjc3RyaW5nIFNUUl9nRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNk RW5mb3JjZU1heEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGFfUFJPTVBUICNsYW5ndWFnZSBlbi1VUyAi TWF4aW11bSBhZGRyZXNzCj4+IGZvciBFZmlSdW50aW1lU2VydmljZXNEYXRhIGFsbG9jYXRpb25z Igo+PiArI3N0cmluZyBTVFJfZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVuZm9y Y2VNYXhFZmlSdW50aW1lU2VydmljZXNEYXRhX0hFTFAgI2xhbmd1YWdlIGVuLVVTICJNYXhpbXVt IGFkZHJlc3MgdGhhdAo+PiBhIGR5bmFtaWMgRWZpUnVudGltZVNlcnZpY2VzRGF0YSBhbGxvY2F0 aW9uIGNhbiBiZSByZXF1ZXN0ZWQgYXQiCj4+IC0tCj4+IDIuMTYuNAo+Pgo+Pgo+Pgo+Pgo+PiBB bWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkgR21iSAo+PiBLcmF1c2Vuc3RyLiAzOAo+ PiAxMDExNyBCZXJsaW4KPj4gR2VzY2hhZWZ0c2Z1ZWhydW5nOiBDaHJpc3RpYW4gU2NobGFlZ2Vy LCBKb25hdGhhbiBXZWlzcwo+PiBFaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVu YnVyZyB1bnRlciBIUkIgMTQ5MTczIEIKPj4gU2l0ejogQmVybGluCj4+IFVzdC1JRDogREUgMjg5 IDIzNyA4NzkKPj4KPj4KPj4KPj4KPj4KPj4gCj4+Cj4gCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBD ZW50ZXIgR2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRz ZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hsYWVnZXIsIEpvbmF0aGFuIFdlaXNzCkVpbmdldHJhZ2Vu IGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0ZW5idXJnIHVudGVyIEhSQiAxNDkxNzMgQgpTaXR6OiBC ZXJsaW4KVXN0LUlEOiBERSAyODkgMjM3IDg3OQoKCg==