From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH RFC 00/39] x86/KVM: Xen HVM guest support Date: Tue, 9 Apr 2019 07:04:26 +0200 Message-ID: <59deb041-2b5d-8451-32c7-644fe36e053b__96.4795750164171$1554786335$gmane$org@suse.com> References: <20190220201609.28290-1-joao.m.martins@oracle.com> <35051310-c497-8ad5-4434-1b8426a317d2@redhat.com> <8b1f4912-4f92-69ae-ae01-d899d5640572@oracle.com> <3ee91f33-2973-c2db-386f-afbf138081b4@redhat.com> <59676804-786d-3df8-7752-8e45dec6d65b@oracle.com> <94738323-ebdf-d58e-55b6-313e27c923b0@oracle.com> <585163c2-8dea-728d-7556-9cb3559f0eca@suse.com> <97808492-58ee-337f-c894-900b34b7b1a5@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hDivy-0000N5-K4 for xen-devel@lists.xenproject.org; Tue, 09 Apr 2019 05:04:34 +0000 In-Reply-To: <97808492-58ee-337f-c894-900b34b7b1a5@oracle.com> Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Joao Martins Cc: Stefano Stabellini , xen-devel@lists.xenproject.org, kvm@vger.kernel.org, =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , x86@kernel.org, linux-kernel@vger.kernel.org, Ankur Arora , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Paolo Bonzini , Boris Ostrovsky , Thomas Gleixner List-Id: xen-devel@lists.xenproject.org T24gMDgvMDQvMjAxOSAxOTozMSwgSm9hbyBNYXJ0aW5zIHdyb3RlOgo+IE9uIDQvOC8xOSAxMTo0 MiBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4gT24gMDgvMDQvMjAxOSAxMjozNiwgSm9hbyBN YXJ0aW5zIHdyb3RlOgo+Pj4gT24gNC84LzE5IDc6NDQgQU0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6 Cj4+Pj4gT24gMTIvMDMvMjAxOSAxODoxNCwgSm9hbyBNYXJ0aW5zIHdyb3RlOgo+Pj4+PiBPbiAy LzIyLzE5IDQ6NTkgUE0sIFBhb2xvIEJvbnppbmkgd3JvdGU6Cj4+Pj4+PiBPbiAyMS8wMi8xOSAx Mjo0NSwgSm9hbyBNYXJ0aW5zIHdyb3RlOgo+Pj4+Pj4+IE9uIDIvMjAvMTkgOTowOSBQTSwgUGFv bG8gQm9uemluaSB3cm90ZToKPj4+Pj4+Pj4gT24gMjAvMDIvMTkgMjE6MTUsIEpvYW8gTWFydGlu cyB3cm90ZToKPj4+Pj4+Pj4+ICAyLiBQViBEcml2ZXIgc3VwcG9ydCAocGF0Y2hlcyAxNyAtIDM5 KQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICBXZSBzdGFydCBieSByZWRpcmVjdGluZyBoeXBlcmNhbGxz IGZyb20gdGhlIGJhY2tlbmQgdG8gcm91dGluZXMKPj4+Pj4+Pj4+ICB3aGljaCBlbXVsYXRlIHRo ZSBiZWhhdmlvdXIgdGhhdCBQViBiYWNrZW5kcyBleHBlY3QgaS5lLiBncmFudAo+Pj4+Pj4+Pj4g IHRhYmxlIGFuZCBpbnRlcmRvbWFpbiBldmVudHMuIE5leHQsIHdlIGFkZCBzdXBwb3J0IGZvciBs YXRlCj4+Pj4+Pj4+PiAgaW5pdGlhbGl6YXRpb24gb2YgeGVuYnVzLCBmb2xsb3dlZCBieSBpbXBs ZW1lbnRpbmcKPj4+Pj4+Pj4+ICBmcm9udGVuZC9iYWNrZW5kIGNvbW11bmljYXRpb24gbWVjaGFu aXNtcyAoaS5lLiBncmFudCB0YWJsZXMgYW5kCj4+Pj4+Pj4+PiAgaW50ZXJkb21haW4gZXZlbnQg Y2hhbm5lbHMpLiBGaW5hbGx5LCBpbnRyb2R1Y2UgeGVuLXNoaW0ua28sCj4+Pj4+Pj4+PiAgd2hp Y2ggd2lsbCBzZXR1cCBhIGxpbWl0ZWQgWGVuIGVudmlyb25tZW50LiBUaGlzIHVzZXMgdGhlIGFk ZGVkCj4+Pj4+Pj4+PiAgZnVuY3Rpb25hbGl0eSBvZiBYZW4gc3BlY2lmaWMgc2hhcmVkIG1lbW9y eSAoZ3JhbnQgdGFibGVzKSBhbmQKPj4+Pj4+Pj4+ICBub3RpZmljYXRpb25zIChldmVudCBjaGFu bmVscykuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEkgYW0gYSBiaXQgd29ycmllZCBieSB0aGUgbGFzdCBw YXRjaGVzLCB0aGV5IHNlZW0gcmVhbGx5IGJyaXR0bGUgYW5kCj4+Pj4+Pj4+IHByb25lIHRvIGJy ZWFrYWdlLiAgSSBkb24ndCBrbm93IFhlbiB3ZWxsIGVub3VnaCB0byB1bmRlcnN0YW5kIGlmIHRo ZQo+Pj4+Pj4+PiBsYWNrIG9mIHN1cHBvcnQgZm9yIEdOVE1BUF9ob3N0X21hcCBpcyBmaXhhYmxl LCBidXQgaWYgbm90LCB5b3UgaGF2ZSB0bwo+Pj4+Pj4+PiBkZWZpbmUgYSBjb21wbGV0ZWx5IGRp ZmZlcmVudCBoeXBlcmNhbGwuCj4+Pj4+Pj4+Cj4+Pj4+Pj4gSSBndWVzcyBBbmt1ciBhbHJlYWR5 IGFuc3dlcmVkIHRoaXM7IHNvIGp1c3QgdG8gc3RhY2sgdGhpcyBvbiB0b3Agb2YgaGlzIGNvbW1l bnQuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgeGVuX3NoaW1fZG9tYWluKCkgaXMgb25seSBtZWFudCB0 byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGJhY2tlbmQKPj4+Pj4+PiBoYXMvY2FuLWhhdmUg ZnVsbCBhY2Nlc3MgdG8gZ3Vlc3QgbWVtb3J5IFtpLmUuIG5ldGJhY2sgYW5kIGJsa2JhY2sgd291 bGQgd29yawo+Pj4+Pj4+IHdpdGggc2ltaWxhciBhc3N1bXB0aW9ucyBhcyB2aG9zdD9dLiBGb3Ig dGhlIG5vcm1hbCBjYXNlLCB3aGVyZSBhIGJhY2tlbmQgKmluIGEKPj4+Pj4+PiBndWVzdCogbWFw cyBhbmQgdW5tYXBzIG90aGVyIGd1ZXN0IG1lbW9yeSwgdGhpcyBpcyBub3QgYXBwbGljYWJsZSBh bmQgdGhlc2UKPj4+Pj4+PiBjaGFuZ2VzIGRvbid0IGFmZmVjdCB0aGF0IGNhc2UuCj4+Pj4+Pj4K Pj4+Pj4+PiBJT1csIHRoZSBQViBiYWNrZW5kIGhlcmUgc2l0cyBvbiB0aGUgaHlwZXJ2aXNvciwg YW5kIHRoZSBoeXBlcmNhbGxzIGFyZW4ndAo+Pj4+Pj4+IGFjdHVhbCBoeXBlcmNhbGxzIGJ1dCBy YXRoZXIgaW52b2tpbmcgc2hpbV9oeXBlcmNhbGwoKS4gVGhlIGNhbGwgY2hhaW4gd291bGQgZ28K Pj4+Pj4+PiBtb3JlIG9yIGxlc3MgbGlrZToKPj4+Pj4+Pgo+Pj4+Pj4+IDxuZXRiYWNrfGJsa2Jh Y2t8c2NzaWJhY2s+Cj4+Pj4+Pj4gIGdudHRhYl9tYXBfcmVmcyhtYXBfb3BzLCBwYWdlcykKPj4+ Pj4+PiAgICBIWVBFUlZJU09SX2dyYW50X3RhYmxlX29wKEdOVFRBQk9QX21hcF9ncmFudF9yZWYs Li4uKQo+Pj4+Pj4+ICAgICAgc2hpbV9oeXBlcmNhbGwoKQo+Pj4+Pj4+ICAgICAgICBzaGltX2hj YWxsX2dudG1hcCgpCj4+Pj4+Pj4KPj4+Pj4+PiBPdXIgcmVhc29uaW5nIHdhcyB0aGF0IGdpdmVu IHdlIGFyZSBhbHJlYWR5IGluIEtWTSwgd2h5IG1hcHBpbmcgYSBwYWdlIGlmIHRoZQo+Pj4+Pj4+ IHVzZXIgKGkuZS4gdGhlIGtlcm5lbCBQViBiYWNrZW5kKSBpcyBoaW1zZWxmPyBUaGUgbGFjayBv ZiBHTlRNQVBfaG9zdF9tYXAgaXMgaG93Cj4+Pj4+Pj4gdGhlIHNoaW0gZGV0ZXJtaW5lcyBpdHMg dXNlciBkb2Vzbid0IHdhbnQgdG8gbWFwIHRoZSBwYWdlLiBBbHNvLCB0aGVyZSdzIGFub3RoZXIK Pj4+Pj4+PiBpc3N1ZSB3aGVyZSBQViBiYWNrZW5kcyBhbHdheXMgbmVlZCBhIHN0cnVjdCBwYWdl IHRvIHJlZmVyZW5jZSB0aGUgZGV2aWNlCj4+Pj4+Pj4gaW5mbGlnaHQgZGF0YSBhcyBBbmt1ciBw b2ludGVkIG91dC4KPj4+Pj4+Cj4+Pj4+PiBVbHRpbWF0ZWx5IGl0J3MgdXAgdG8gdGhlIFhlbiBw ZW9wbGUuICBJdCBkb2VzIG1ha2UgdGhlaXIgQVBJIHVnbGllciwKPj4+Pj4+IGVzcGVjaWFsbHkg dGhlIGluL291dCBjaGFuZ2UgZm9yIHRoZSBwYXJhbWV0ZXIuICBJZiB5b3UgY2FuIGF0IGxlYXN0 Cj4+Pj4+PiBhdm9pZCB0aGF0LCBpdCB3b3VsZCBhbGxldmlhdGUgbXkgY29uY2VybnMgcXVpdGUg YSBiaXQuCj4+Pj4+Cj4+Pj4+IEluIG15IHZpZXcsIHdlIGhhdmUgdHdvIG9wdGlvbnMgb3ZlcmFs bDoKPj4+Pj4KPj4+Pj4gMSkgTWFrZSBpdCBleHBsaWNpdCwgdGhlIGNoYW5nZXMgdGhlIFBWIGRy aXZlcnMgd2UgaGF2ZSB0byBtYWtlIGluCj4+Pj4+IG9yZGVyIHRvIHN1cHBvcnQgeGVuX3NoaW1f ZG9tYWluKCkuIFRoaXMgY291bGQgbWVhbiBlLmcuIGEpIGFkZCBhIGNhbGxiYWNrCj4+Pj4+IGFy Z3VtZW50IHRvIGdudHRhYl9tYXBfcmVmcygpIHRoYXQgaXMgaW52b2tlZCBmb3IgZXZlcnkgcGFn ZSB0aGF0IGdldHMgbG9va2VkIHVwCj4+Pj4+IHN1Y2Nlc3NmdWxseSwgYW5kIGluc2lkZSB0aGlz IGNhbGxiYWNrIHRoZSBQViBkcml2ZXIgbWF5IHVwZGF0ZSBpdCdzIHRyYWNraW5nCj4+Pj4+IHBh Z2UuIEhlcmUgd2Ugbm8gbG9uZ2VyIGhhdmUgdGhpcyBpbi9vdXQgcGFyYW1ldGVyIGluIGdudHRh Yl9tYXBfcmVmcywgYW5kIGFsbAo+Pj4+PiBzaGltX2RvbWFpbiBzcGVjaWZpYyBiaXRzIHdvdWxk IGJlIGEgbGl0dGxlIG1vcmUgYWJzdHJhY3RlZCBmcm9tIFhlbiBQVgo+Pj4+PiBiYWNrZW5kcy4g U2VlIG5ldGJhY2sgZXhhbXBsZSBiZWxvdyB0aGUgc2Npc3NvcnMgbWFyay4gT3IgYikgaGF2ZSBz b3J0IG9mIGEKPj4+Pj4gdHJhbnNsYXRlX2dyZWYoKSBhbmQgcHV0X2dyZWYoKSBBUEkgdGhhdCBY ZW4gUFYgZHJpdmVycyB1c2Ugd2hpY2ggbWFrZSBpdCBldmVuCj4+Pj4+IG1vcmUgZXhwbGljaXQg dGhhdCB0aGVyZSdzIG5vIGdyYW50IG9wcyBpbnZvbHZlZC4gVGhlIGxhdHRlciBpcyBtb3JlIGlu dmFzaXZlLgo+Pj4+Pgo+Pj4+PiAyKSBUaGUgc2Vjb25kIG9wdGlvbiBpcyB0byBzdXBwb3J0IGd1 ZXN0IGdyYW50IG1hcHBpbmcvdW5tYXBwaW5nIFsqXSB0byBhbGxvdwo+Pj4+PiBob3N0aW5nIFBW IGJhY2tlbmRzIGluc2lkZSB0aGUgZ3Vlc3QuIFRoaXMgd291bGQgcmVtb3ZlIHRoZSBYZW4gY2hh bmdlcyBpbiB0aGlzCj4+Pj4+IHNlcmllcyBjb21wbGV0ZWx5LiBCdXQgaXQgd291bGQgcmVxdWly ZSBhbm90aGVyIGd1ZXN0IGJlaW5nIHVzZWQKPj4+Pj4gYXMgbmV0YmFjay9ibGtiYWNrL3hlbnN0 b3JlZCwgYW5kIGxlc3MgcGVyZm9ybWFuY2UgdGhhbiAxKSAodGhvdWdoLCBpbiB0aGVvcnksCj4+ Pj4+IGl0IHdvdWxkIGJlIGVxdWl2YWxlbnQgdG8gd2hhdCBkb2VzIFhlbiB3aXRoIGdyYW50cy9l dmVudHMpLiBUaGUgb25seSBjaGFuZ2VzIGluCj4+Pj4+IExpbnV4IFhlbiBjb2RlIGlzIGFkZGlu ZyB4ZW5zdG9yZWQgZG9tYWluIHN1cHBvcnQsIGJ1dCB0aGF0IGlzIHVzZWZ1bCBvbiBpdHMgb3du Cj4+Pj4+IG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgd29yay4KPj4+Pj4KPj4+Pj4gSSB0aGlu ayB0aGVyZSdzIHZhbHVlIG9uIGJvdGg7IDEpIGlzIHByb2JhYmx5IG1vcmUgZmFtaWxpYXIgZm9y IEtWTSB1c2Vycwo+Pj4+PiBwZXJoYXBzIChhcyBpdCBpcyBzaW1pbGFyIHRvIHdoYXQgdmhvc3Qg ZG9lcz8pIHdoaWxlICAyKSBlcXVhdGVzIHRvIGltcGxlbWVudGluZwo+Pj4+PiBYZW4gZGlzYWdy ZWdhdGlvbiBjYXBhYmlsaXRpZXMgaW4gS1ZNLgo+Pj4+Pgo+Pj4+PiBUaG91Z2h0cz8gWGVuIG1h aW50YWluZXJzIHdoYXQncyB5b3VyIHRha2Ugb24gdGhpcz8KPj4+Pgo+Pj4+IFdoYXQgSSdkIGxp a2UgYmVzdCB3b3VsZCBiZSBhIG5ldyBoYW5kbGUgKGUuZy4geGVuaG9zdF90ICopIHVzZWQgYXMg YW4KPj4+PiBhYnN0cmFjdGlvbiBsYXllciBmb3IgdGhpcyBraW5kIG9mIHN0dWZmLiBJdCBzaG91 bGQgYmUgcGFzc2VkIHRvIHRoZQo+Pj4+IGJhY2tlbmRzIGFuZCB0aG9zZSB3b3VsZCBwYXNzIGl0 IG9uIHRvIGxvdy1sZXZlbCBYZW4gZHJpdmVycyAoeGVuYnVzLAo+Pj4+IGV2ZW50IGNoYW5uZWxz LCBncmFudCB0YWJsZSwgLi4uKS4KPj4+Pgo+Pj4gU28gaWYgSUlSQyBiYWNrZW5kcyB3b3VsZCB1 c2UgdGhlIHhlbmhvc3QgbGF5ZXIgdG8gYWNjZXNzIGdyYW50cyBvciBmcmFtZXMKPj4+IHJlZmVy ZW5jZWQgYnkgZ3JhbnRzLCBhbmQgdGhhdCB3b3VsZCBncm9rIGludG8gc29tZSBvZiB0aGlzLiBJ T1csIHlvdSB3b3VsZCBoYXZlCj4+PiB0d28gaW1wbGVtZW50b3JzIG9mIHhlbmhvc3Q6IG9uZSBm b3IgbmVzdGVkIHJlbW90ZS9sb2NhbCBldmVudHMrZ3JhbnRzIGFuZAo+Pj4gYW5vdGhlciBmb3Ig dGhpcyAic2hpbSBkb21haW4iID8KPj4KPj4gQXMgSSdkIG5lZWQgdGhhdCBmb3IgbmVzdGVkIFhl biBJIGd1ZXNzIHRoYXQgd291bGQgbWFrZSBpdCAzIHZhcmlhbnRzLgo+PiBQcm9iYWJseSB0aGUg eGVuLXNoaW0gdmFyaWFudCB3b3VsZCBuZWVkIG1vcmUgaG9va3MsIGJ1dCB0aGF0IHNob3VsZCBi ZQo+PiBubyBwcm9ibGVtLgo+Pgo+IEkgcHJvYmFibHkgbWVzc2VkIHVwIGluIHRoZSBzaG9ydCBk ZXNjcmlwdGlvbiBidXQgIm5lc3RlZCByZW1vdGUvbG9jYWwKPiBldmVudHMrZ3JhbnRzIiB3YXMg cmVmZXJyaW5nIHRvIG5lc3RlZCBYZW4gKEZXSVcgcmVtb3RlIG1lYW50IEwwIGFuZCBsb2NhbCBM MSkuCj4gU28gbWF5YmUgb25seSAyIHZhcmlhbnRzIGFyZSBuZWVkZWQ/CgpJIG5lZWQgb25lIHhl bmhvc3QgdmFyaWFudCBmb3IgdGhlICJub3JtYWwiIGNhc2UgYXMgdG9kYXk6IHRhbGtpbmcgdG8K dGhlIHNpbmdsZSBoeXBlcnZpc29yIChvciBpbiBuZXN0ZWQgY2FzZTogdG8gdGhlIEwxIGh5cGVy dmlzb3IpLgoKVGhlbiBJIG5lZWQgYSB2YXJpYW50IGZvciB0aGUgbmVzdGVkIGNhc2UgdGFsa2lu ZyB0byBMMCBoeXBlcnZpc29yLgoKQW5kIHlvdSBuZWVkIGEgdmFyaWFudCB0YWxraW5nIHRvIHhl bi1zaGltLgoKVGhlIGZpcnN0IHR3byB2YXJpYW50cyBjYW4gYmUgYWN0aXZlIGluIHRoZSBzYW1l IHN5c3RlbSBpbiBjYXNlIG9mCm5lc3RlZCBYZW46IHRoZSBiYWNrZW5kcyBvZiBMMiBkb20wIGFy ZSB0YWxraW5nIHRvIEwxIGh5cGVydmlzb3IsCndoaWxlIGl0cyBmcm9udGVuZHMgYXJlIHRhbGtp bmcgd2l0aCBMMCBoeXBlcnZpc29yLgoKPiAKPj4+PiBJIHdhcyBwbGFubmluZyB0byBkbyB0aGF0 ICh0aGUgeGVuaG9zdF90ICogc3R1ZmYpIHNvb24gaW4gb3JkZXIgdG8gYWRkCj4+Pj4gc3VwcG9y dCBmb3IgbmVzdGVkIFhlbiB1c2luZyBQViBkZXZpY2VzICh5b3UgbmVlZCB0d28gWGVuc3RvcmVz IGZvciB0aGF0Cj4+Pj4gYXMgdGhlIG5lc3RlZCBkb20wIGlzIGFjdGluZyBhcyBYZW4gYmFja2Vu ZCBzZXJ2ZXIsIHdoaWxlIHVzaW5nIFBWCj4+Pj4gZnJvbnRlbmRzIGZvciBhY2Nlc3NpbmcgdGhl ICJyZWFsIiB3b3JsZCBvdXRzaWRlKS4KPj4+Pgo+Pj4+IFRoZSB4ZW5ob3N0X3Qgc2hvdWxkIGJl IHVzZWQgZm9yOgo+Pj4+Cj4+Pj4gLSBhY2Nlc3NpbmcgWGVuc3RvcmUKPj4+PiAtIGlzc3Vpbmcg YW5kIHJlY2VpdmluZyBldmVudHMKPj4+PiAtIGRvaW5nIGh5cGVyY2FsbHMKPj4+PiAtIGdyYW50 IHRhYmxlIG9wZXJhdGlvbnMKPj4+Pgo+Pj4KPj4+IEluIHRoZSB0ZXh0IGFib3ZlLCBJIHNvcnQg b2Ygc3VnZ2VzdGVkIGEgc2xpY2Ugb2YgdGhpcyBvbiAxLmIpIHdpdGggYQo+Pj4gdHJhbnNsYXRl X2dyZWYoKSBhbmQgcHV0X2dyZWYoKSBBUEkgLS0gdG8gZ2V0IHRoZSBwYWdlIGZyb20gYSBncmVm LiBUaGlzIHdhcwo+Pj4gYmVjYXVzZSBvZiB0aGUgZmxhZ3N8aG9zdF9hZGRyIGh1cmRsZSB3ZSBk ZXBpY3RlZCBhYm92ZSB3cnQgdG8gdXNpbmcgdXNpbmcgZ3JhbnQKPj4+IG1hcHMvdW5tYXBzLiBZ b3UgdGhpbmsgc29tZSBvZiB0aGUgeGVuaG9zdCBsYXllciB3b3VsZCBiZSBhbW1lbmFibGUgdG8g c3VwcG9ydAo+Pj4gdGhpcyBjYXNlPwo+Pgo+PiBJIHRoaW5rIHNvLCB5ZXMuCj4+Cj4+Pgo+Pj4+ IFNvIGV4YWN0bHkgdGhlIGtpbmQgb2Ygc3R1ZmYgeW91IHdhbnQgdG8gZG8sIHRvby4KPj4+Pgo+ Pj4gQ29vbCBpZGVhIQo+Pgo+PiBJbiB0aGUgZW5kIHlvdSBtaWdodCBtYWtlIG15IGxpZmUgZWFz aWVyIGZvciBuZXN0ZWQgWGVuLiA6LSkKPj4KPiBIZWhlIDopCj4gCj4+IERvIHlvdSB3YW50IHRv IGhhdmUgYSB0cnkgd2l0aCB0aGF0IGlkZWEgb3Igc2hvdWxkIEkgZG8gdGhhdD8gSSBtaWdodCBi ZQo+PiBhYmxlIHRvIHN0YXJ0IHdvcmtpbmcgb24gdGhhdCBpbiBhYm91dCBhIG1vbnRoLgo+Pgo+ IEFua3VyIChDQydlZCkgd2lsbCBnaXZlIGEgc2hvdCBhdCBpdCwgYW5kIHNob3VsZCBzdGFydCBh IG5ldyB0aHJlYWQgb24gdGhpcwo+IHhlbmhvc3QgYWJzdHJhY3Rpb24gbGF5ZXIuCgpHcmVhdCwg bG9va2luZyBmb3J3YXJkIHRvIGl0IQoKCkp1ZXJnZW4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=