From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v12 05/11] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Thu, 19 Oct 2017 15:12:29 +0100 Message-ID: <1496a647-e2f9-bab3-c7f9-5a766d7c28d2@linaro.org> References: <20171017132432.24093-1-paul.durrant@citrix.com> <20171017132432.24093-6-paul.durrant@citrix.com> <759ace10-543f-346c-74fc-c2dd8f80a92a@linaro.org> <01fde88658c54fb6a3b903060a6a4650@AMSPEX02CL03.citrite.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e5BYp-0006En-BR for xen-devel@lists.xenproject.org; Thu, 19 Oct 2017 14:12:35 +0000 Received: by mail-qk0-f176.google.com with SMTP id l194so10489469qke.13 for ; Thu, 19 Oct 2017 07:12:33 -0700 (PDT) In-Reply-To: <01fde88658c54fb6a3b903060a6a4650@AMSPEX02CL03.citrite.net> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Paul Durrant , "xen-devel@lists.xenproject.org" Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Julien Grall , Jan Beulich , Ian Jackson , Daniel De Graaf , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAxOS8xMC8xNyAxNDozNSwgUGF1bCBEdXJyYW50IHdyb3RlOgo+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBKdWxpZW4gR3JhbGwgW21haWx0bzpqdWxpZW4uZ3Jh bGxAbGluYXJvLm9yZ10KPj4gU2VudDogMTkgT2N0b2JlciAyMDE3IDE0OjI5Cj4+IFRvOiBQYXVs IER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCj4+IENjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+OyBXZWkgTGl1Cj4+IDx3ZWkubGl1MkBjaXRyaXguY29tPjsgS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPjsKPj4gR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1 bmxhcEBjaXRyaXguY29tPjsgQW5kcmV3IENvb3Blcgo+PiA8QW5kcmV3LkNvb3BlcjNAY2l0cml4 LmNvbT47IElhbiBKYWNrc29uIDxJYW4uSmFja3NvbkBjaXRyaXguY29tPjsgVGltCj4+IChYZW4u b3JnKSA8dGltQHhlbi5vcmc+OyBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPjsg SmFuIEJldWxpY2gKPj4gPGpiZXVsaWNoQHN1c2UuY29tPjsgRGFuaWVsIERlIEdyYWFmIDxkZ2Rl Z3JhQHR5Y2hvLm5zYS5nb3Y+OyBSb2dlcgo+PiBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgo+PiBTdWJqZWN0OiBSZTogW1hlbi1kZXZlbF0gW1BBVENIIHYxMiAwNS8xMV0geDg2L21t OiBhZGQKPj4gSFlQRVJWSVNPUl9tZW1vcnlfb3AgdG8gYWNxdWlyZSBndWVzdCByZXNvdXJjZXMK Pj4KPj4gSGksCj4+Cj4+IE9uIDEwLzE5LzIwMTcgMDE6NTcgUE0sIFBhdWwgRHVycmFudCB3cm90 ZToKPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4+IEZyb206IEp1bGllbiBHcmFs bCBbbWFpbHRvOmp1bGllbi5ncmFsbEBsaW5hcm8ub3JnXQo+Pj4+IFNlbnQ6IDE5IE9jdG9iZXIg MjAxNyAxMzoyMwo+Pj4+IFRvOiBQYXVsIER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29t PjsgeGVuLQo+PiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+Pj4+IENjOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyBXZWkgTGl1Cj4+Pj4gPHdlaS5saXUy QGNpdHJpeC5jb20+OyBLb25yYWQgUnplc3p1dGVrIFdpbGsKPj4gPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+Owo+Pj4+IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAY2l0cml4LmNvbT47IEFu ZHJldyBDb29wZXIKPj4+PiA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IElhbiBKYWNrc29u IDxJYW4uSmFja3NvbkBjaXRyaXguY29tPjsKPj4gVGltCj4+Pj4gKFhlbi5vcmcpIDx0aW1AeGVu Lm9yZz47IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+OyBKYW4KPj4gQmV1bGlj aAo+Pj4+IDxqYmV1bGljaEBzdXNlLmNvbT47IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNo by5uc2EuZ292PjsgUm9nZXIKPj4+PiBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgo+ Pj4+IFN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBbUEFUQ0ggdjEyIDA1LzExXSB4ODYvbW06IGFk ZAo+Pj4+IEhZUEVSVklTT1JfbWVtb3J5X29wIHRvIGFjcXVpcmUgZ3Vlc3QgcmVzb3VyY2VzCj4+ Pj4KPj4+PiBIaSwKPj4+Pgo+Pj4+IE9uIDE3LzEwLzE3IDE0OjI0LCBQYXVsIER1cnJhbnQgd3Jv dGU6Cj4+Pj4+IENlcnRhaW4gbWVtb3J5IHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSBndWVz dCBhcmUgbm90IG5lY2Vzc2FyaWx5Cj4+Pj4+IHByZXNlbnQgaW4gdGhlIGd1ZXN0IFAyTS4KPj4+ Pj4KPj4+Pj4gVGhpcyBwYXRjaCBhZGRzIHRoZSBib2lsZXJwbGF0ZSBmb3IgbmV3IG1lbW9yeSBv cCB0byBhbGxvdyBzdWNoIGEKPj4+PiByZXNvdXJjZQo+Pj4+PiB0byBiZSBwcml2LW1hcHBlZCBk aXJlY3RseSwgYnkgZWl0aGVyIGEgUFYgb3IgSFZNIHRvb2xzIGRvbWFpbi4KPj4+Pj4KPj4+Pj4g Tk9URTogV2hpbHN0IHRoZSBuZXcgb3AgaXMgbm90IGludHJpbnNpY2x5IHNwZWNpZmljIHRvIHRo ZSB4ODYgYXJjaGl0ZWN0dXJlLAo+Pj4+PiAgICAgICAgICBJIGhhdmUgbm8gbWVhbnMgdG8gdGVz dCBpdCBvbiBhbiBBUk0gcGxhdGZvcm0gYW5kIHNvIGNhbm5vdCB2ZXJpZnkKPj4+Pj4gICAgICAg ICAgdGhhdCBpdCBmdW5jdGlvbnMgY29ycmVjdGx5Lgo+Pj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgo+Pj4+PiAtLS0KPj4+Pgo+ Pj4+IFsuLi5dCj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbWVtb3J5LmMgYi94 ZW4vY29tbW9uL21lbW9yeS5jCj4+Pj4+IGluZGV4IGFkOTg3ZTBmMjkuLmNkZDJlMDMwY2YgMTAw NjQ0Cj4+Pj4+IC0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKPj4+Pj4gKysrIGIveGVuL2NvbW1v bi9tZW1vcnkuYwo+Pj4+PiBAQCAtOTY1LDYgKzk2NSw5NSBAQCBzdGF0aWMgbG9uZyB4YXRwX3Bl cm1pc3Npb25fY2hlY2soc3RydWN0Cj4+IGRvbWFpbgo+Pj4+ICpkLCB1bnNpZ25lZCBpbnQgc3Bh Y2UpCj4+Pj4KPj4+PiBbLi4uXQo+Pj4+Cj4+Pj4+ICsgICAgaWYgKCByYyApCj4+Pj4+ICsgICAg ICAgIGdvdG8gb3V0Owo+Pj4+PiArCj4+Pj4+ICsgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNs YXRlKGN1cnJkKSApCj4+Pj4+ICsgICAgewo+Pj4+PiArICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vl c3QoeG1hci5mcmFtZV9saXN0LCBtZm5fbGlzdCwgeG1hci5ucl9mcmFtZXMpICkKPj4+Pj4gKyAg ICAgICAgICAgIHJjID0gLUVGQVVMVDsKPj4+Pj4gKyAgICB9Cj4+Pj4+ICsgICAgZWxzZQo+Pj4+ PiArICAgIHsKPj4+Pj4gKyAgICAgICAgeGVuX3Bmbl90IGdmbl9saXN0W0FSUkFZX1NJWkUobWZu X2xpc3QpXTsKPj4+Pj4gKyAgICAgICAgdW5zaWduZWQgaW50IGk7Cj4+Pj4+ICsKPj4+Pj4gKyAg ICAgICAgcmMgPSAtRUZBVUxUOwo+Pj4+PiArICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChn Zm5fbGlzdCwgeG1hci5mcmFtZV9saXN0LCB4bWFyLm5yX2ZyYW1lcykgKQo+Pj4+PiArICAgICAg ICAgICAgZ290byBvdXQ7Cj4+Pj4+ICsKPj4+Pj4gKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCB4 bWFyLm5yX2ZyYW1lczsgaSsrICkKPj4+Pj4gKyAgICAgICAgewo+Pj4+PiArICAgICAgICAgICAg cmMgPSBzZXRfZm9yZWlnbl9wMm1fZW50cnkoY3VycmQsIGdmbl9saXN0W2ldLAo+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihtZm5fbGlzdFtpXSkpOwo+ Pj4+Cj4+Pj4gU29tZXRoaW5nIGxvb2tzIGEgYml0IG9kZCB0byBtZSBoZXJlLiBXaGVuIEkgcmVh ZCBmb3JlaWduIG1hcHBpbmcsIEkKPj4+PiBkaXJlY3RseSBhc3NvY2lhdGUgdG8gbWFwcGluZyBm cm9tIGEgZm9yZWlnbiBkb21haW4uCj4+Pj4KPj4+PiBPbiBBcm0sIHdlIHdpbGwgYWx3YXlzIGdl dCBhIHJlZmVyZW5jZSBvbiB0aGF0IHBhZ2UgdG8gcHJldmVudCBpdAo+Pj4+IGRpc2FwcGVhcmlu ZyBpZiB0aGUgZm9yZWlnbiBkb21haW4gaXMgZGVzdHJveWVkIGJ1dCB0aGUgbWFwcGluZyBpcyBz dGlsbAo+Pj4+IHByZXNlbnQuCj4+Pj4KPj4+PiBUaGlzIHJlZmVyZW5jZSB3aWxsIGVpdGhlciBi ZSBwdXQgd2l0aCBhbiB1bm1hcHBlZCBoeXBlcmNhbGwgb3Igd2hpbGUKPj4+PiB0ZWFyZG93biB0 aGUgZG9tYWluLgo+Pj4+Cj4+Pj4gUGVyIG15IHVuZGVyc3RhbmRpbmcsIHRoaXMgTUZOIGRvZXMg bm90IGJlbG9uZyB0byBhbnkgZG9tYWluIChvciBhdAo+Pj4+IGxlYXN0IGN1cnJkKS4gUmlnaHQ/ Cj4+Pgo+Pj4gTm8uIFRoZSBtZm5zIGRvIGJlbG9uZyB0byB0aGUgdGFyZ2V0IGRvbWFpbi4KPj4K Pj4gVG8gYmUgZnVsbHkgc2FmZSwgeW91IG5lZWQgdG8gdGFrZSBhIHJlZmVyZW5jZSBvbiBlYWNo IHBhZ2UgeW91IG1hcHBlZC4KPj4gU28gd2hvIGlzIGdvaW5nIHRvIGdldCBhIHJlZmVyZW5jZSBv biB0aGVtPyBXaG8gaXMgZ29pbmcgdG8gZHJvcCB0aGF0Pwo+Pgo+IAo+IFllcywgdGhhdCdzIHRy dWUgYnV0IGl0J3MgYWxzbyB0cnVlIG9mIHByaXYgbWFwcGluZyBBSVVJLiBJIHRoaW5rIHRoZSBj b3JyZWN0IGZpeCBpcyB0byBkZWFsIHdpdGggdGhpcyBpbiBzZXRfcDJtX2ZvcmVpZ25fZW50cnko KSBzbyB0aGF0IGl0IGlzIGZpeGVkIGZvciBib3RoIGNhc2VzLiBJIGRvbid0IHRoaW5rIGl0IGlz IHNvbWV0aGluZyB0aGF0IG91Z2h0IHRvIGJlIGFkZHJlc3NlZCBoZXJlLi4uIHVubGVzcyBJJ20g bWlzc2luZyBzb21ldGhpbmcuCgpGb3IgeDg2IG1heWJlLiBGb3IgQXJtLCBmb3JlaWduIG1hcHBp bmcgYXJlIGFsc28gZXhwb3NlZCB0byBndWVzdCBhbmQgd2UgCmdldCBhIHJlZmVyZW5jZSBldmVy eSB0aW1lLiBJdCBpcyBwcm9iYWJseSBhbiBvdmVyc2lnaHQgb24gdGhlIHg4NiBzaWRlLgoKPiAK Pj4+Cj4+Pj4gU28gdGhlcmUgaXMgbm8gd2F5IHRvIGdldC9wdXQgYSByZWZlcmVuY2Ugb24gdGhh dAo+Pj4+IHBhZ2UuIFNvIEkgYW0gdW5jb252aW5jZWQgdGhhdCB0aGlzIGlzIHZlcnkgc2FmZS4K Pj4+Pgo+Pj4+IEFsc28gbG9va2luZyBhdCB0aGUgeDg2IHNpZGUsIEkgY2FuJ3QgZmluZCBzdWNo IHJlZmVyZW5jZSBpbiB0aGUgZm9yZWlnbgo+Pj4+IHBhdGggaW4gcDJtX2FkZF9mb3JlaWduLiBE aWQgSSBtaXNzIGFueXRoaW5nPwo+Pj4KPj4+IE5vLCBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGFu eSByZWZlcmVuY2UgY291bnRpbmcgdGhlcmUuLi4gYnV0IHRoaXMgaXMgbm8KPj4gZGlmZmVyZW50 IHRvIHByaXYgbWFwcGluZy4gSSdtIG5vdCB0cnlpbmcgdG8gZml4IHRoZSBtYXBwaW5nIGluZnJh c3RydWN0dXJlIGF0Cj4+IHRoaXMgcG9pbnQuCj4+Pgo+Pj4+Cj4+Pj4gTm90ZSB0aGF0IHg4NiBk b2VzIG5vdCBoYW5kbGUgcDJtIHRlYXJkb3duIHdpdGggZm9yZWlnbiBtYXAgYXQgdGhlCj4+Pj4g bW9tZW50IChzZWUgcDJtX2FkZF9mb3JlaWduKS4KPj4+Pgo+Pj4+IFlvdSBhcmUgYnktcGFzc2lu ZyB0aGlzIGNoZWNrIGFuZCBJIGNhbid0IHNlZSBob3cgdGhpcyB3b3VsZCBiZSBzYWZlIGZvcgo+ Pj4+IHRoZSB4ODYgc2lkZSB0b28uCj4+Pj4KPj4+Cj4+PiBJIGRvbid0IGZvbGxvdy4gV2hhdCBj aGVjayBhbSBJIGJ5LXBhc3NpbmcgdGhhdCBpcyBjb3ZlcmVkIHdoZW4gcHJpdgo+PiBtYXBwaW5n Pwo+Pgo+PiAgICAgICAvKgo+PiAgICAgICAgKiBodm0gZml4bWU6IHVudGlsIHN1cHBvcnQgaXMg YWRkZWQgdG8gcDJtIHRlYXJkb3duIGNvZGUgdG8KPj4gY2xlYW51cCBhbnkKPj4gICAgICAgICog Zm9yZWlnbiBlbnRyaWVzLCBsaW1pdCB0aGlzIHRvIGhhcmR3YXJlIGRvbWFpbiBvbmx5Lgo+PiAg ICAgICAgKi8KPj4KPj4gSG93IHRoaXMgaXMgc2FmZSB3aXRoIHlvdXIgbmV3IHNvbHV0aW9uPyBU aGF0IGxvb2tzIGxpa2UgYSByZWdyZXNzaW9uLi4uCj4gCj4gV2VsbCwgdGhlIG5ldyBoeXBlcmNh bGwgaXMgdG9vbHMtb25seSBidXQgSSBjYW4gYWRkIHRoZSBleHRyYSBjaGVjayBmb3IgdGhlIGhh cmR3YXJlIGRvbWFpbiBhbHRob3VnaCBpdCdzIHByb2JhYmx5IHJlZHVuZGFudCBpbiBwcmFjdGlj ZS4KCldlbGwgYSBmb3JlaWduIGRvbWFpbiBjYW4gYmUgbmFzdHkgd2l0aCB5b3UuIExpa2UgcmVt b3ZpbmcgdGhlIG1hcHBpbmcgCmZyb20gaXRzZWxmIHJlc3VsdGluZyB0byBmcmVlIHRoZSBtZW1v cnkuLi4gU28geW91IG1heSBlbmQgdXAgCndyaXRpbmcvcmVhZCB3cm9uZyBtYXBwaW5nIG9yIGV2 ZW4gd29ydGggaW4gYW5vdGhlciBkb21haW4uCgpCdXQgdGhhdCdzIG1heSBub3QgaW1wYWN0IHRo aXMgbmV3IGh5cGVyY2FsbC4KCj4gCj4+Cj4+IFsuLi5dCj4+Cj4+Pj4+ICsgICAgICogICAgICAg ICAgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgTUZOcyBvZiB0aGUgcmVzb3VyY2UuCj4+Pj4+ ICsgICAgICogICAgICAgICAgSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhlbiBpdCBpcyBl eHBlY3RlZCB0aGF0LCBvbgo+Pj4+PiArICAgICAqICAgICAgICAgIGVudHJ5LCBmcmFtZV9saXN0 IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYSBsaXN0IG9mIEdGTnMKPj4+Pj4gKyAgICAgKiAgICAg ICAgICB0aGF0IHdpbGwgYmUgbWFwcGVkIHRvIHRoZSBNRk5zIG9mIHRoZSByZXNvdXJjZS4KPj4+ Pj4gKyAgICAgKiAgICAgICAgICBJZiAtRUlPIGlzIHJldHVybmVkIHRoZW4gdGhlIGZyYW1lX2xp c3QgaGFzIG9ubHkgYmVlbgo+Pj4+PiArICAgICAqICAgICAgICAgIHBhcnRpYWxseSBtYXBwZWQg YW5kIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gdW5tYXAgYWxsCj4+Pj4+ICsgICAgICogICAg ICAgICAgdGhlIEdGTnMuCj4+Pj4+ICsgICAgICogICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgbWF5 IGJlIE5VTEwgaWYgbnJfZnJhbWVzIGlzIDAuCj4+Pj4+ICsgICAgICovCj4+Pj4+ICsgICAgWEVO X0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCkgZnJhbWVfbGlzdDsKPj4+Pj4gK307Cj4+Pj4+ICt0 eXBlZGVmIHN0cnVjdCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UKPj4+PiB4ZW5fbWVtX2FjcXVp cmVfcmVzb3VyY2VfdDsKPj4+Pj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1fYWNx dWlyZV9yZXNvdXJjZV90KTsKPj4+Pj4gKwo+Pj4+PiAgICAgI2VuZGlmIC8qIGRlZmluZWQoX19Y RU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwo+Pj4+Pgo+Pj4+PiAgICAgLyoKPj4+ Pgo+Pj4KPj4+IFNvcnJ5IHRvIGJlIGdldHRpbmcgZnJ1c3RyYXRlZCB3aXRoIHRoaXMsIGJ1dCBJ J20gd29uZGVyaW5nIGhvdyBtYW55IG1vcmUKPj4gY29sb3VycyBJIG5lZWQgdG8gcGFpbnQgdGhp cyBiaWtlLXNoZWQuCj4+Cj4+IEkgZG9uJ3Qga25vdyBob3cgeDg2IGxvb2tzIGxpa2UgYW5kIG1h eWJlIHRoaXMgaXMgZmluZSBmb3IgQW5kcmV3IGFuZAo+PiBKYW4uIEJ1dCBmb3IgQXJtLCBpdCBk b2VzIG5vdCBsb29rIGNvcnJlY3QuCj4+Cj4+IFRvIGdpdmUgeW91IGFuIGlkZWEsIG15IGZpcnN0 IHRob3VnaHQgdG8gaW1wbGVtZW50IHlvdXIgbmV3bHkgd3JvbmdseQo+PiBuYW1lZCBmdW5jdGlv biB3YXMgdG8ganVzdCBjYWxsIHAybV9zZXRfZW50cnkgd2l0aCBwMm1fbWFwX2ZvcmVpZ24uIEJ1 dAo+PiBmcm9tIHRoaXMgZGlzY3Vzc2lvbiBpdCB3b3VsZCBsb29rIHBsYWluIHdyb25nLgo+Pgo+ PiBTbyB0aGlzIG1lYW5zIHRoZSBpbnRlcmZhY2UgaXMgbm90IGNsZWFyIGVub3VnaC4KPiAKPiBJ J2QgcHJlZmVyIHRvIG1ha2UgdGhlIHdob2xlIHRoaW5nIHg4Ni1vbmx5IHNpbmNlIHRoYXQncyB0 aGUgb25seSBwbGF0Zm9ybSBvbiB3aGljaCBJIGNhbiB0ZXN0IGl0LCBhbmQgaW5kZWVkIHRoZSBj b2RlIHVzZWQgdG8gYmUgeDg2LW9ubHkuIEphbiBvYmplY3RlZCB0byB0aGlzIHNvIGFsbCBJJ20g dHJ5aW5nIHRvIGFjaGlldmUgaXMgdGhhdCBpdCBidWlsZHMgZm9yIEFSTS4gUGxlYXNlIGNhbiB5 b3UgYW5kIEphbiByZWFjaCBhZ3JlZW1lbnQgb24gd2hlcmUgdGhlIGNvZGUgc2hvdWxkIGxpdmUg YW5kIGhvdywgaWYgYXQgYWxsLCBpdCBzaG91bGQgYmUgI2lmZGVmLWVkPwoKSSBhbSBxdWl0ZSBz dXJwcmlzZWQgb2YgIml0IGlzIHRvb2xzLW9ubHkiIHNvIGl0IGlzIGZpbmUgdG8gbm90IHByb3Rl Y3QgCml0IGV2ZW4gaWYgaXQgaXMgeDg2IG9ubHkuIFRoYXQncyBwcm9iYWJseSBnb2luZyB0byBi aXRlIHVzIGluIHRoZSBmdXR1cmUuCgpDaGVlcnMsCi0tIApKdWxpZW4gR3JhbGwKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=