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: Wed, 10 Apr 2019 09:14:55 +0200 Message-ID: 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> <59deb041-2b5d-8451-32c7-644fe36e053b@suse.com> <8e2e1d56-3490-365c-e2de-c3fd262518ba@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hE7Rl-0000WN-W5 for xen-devel@lists.xenproject.org; Wed, 10 Apr 2019 07:15:02 +0000 In-Reply-To: <8e2e1d56-3490-365c-e2de-c3fd262518ba@oracle.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Ankur Arora , 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, Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Paolo Bonzini , Boris Ostrovsky , Thomas Gleixner List-Id: xen-devel@lists.xenproject.org T24gMTAvMDQvMjAxOSAwODo1NSwgQW5rdXIgQXJvcmEgd3JvdGU6Cj4gT24gMjAxOS0wNC0wOCAx MDowNCBwLm0uLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+PiBPbiAwOC8wNC8yMDE5IDE5OjMxLCBK b2FvIE1hcnRpbnMgd3JvdGU6Cj4+PiBPbiA0LzgvMTkgMTE6NDIgQU0sIEp1ZXJnZW4gR3Jvc3Mg d3JvdGU6Cj4+Pj4gT24gMDgvMDQvMjAxOSAxMjozNiwgSm9hbyBNYXJ0aW5zIHdyb3RlOgo+Pj4+ PiBPbiA0LzgvMTkgNzo0NCBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4+Pj4+IE9uIDEyLzAz LzIwMTkgMTg6MTQsIEpvYW8gTWFydGlucyB3cm90ZToKPj4+Pj4+PiBPbiAyLzIyLzE5IDQ6NTkg UE0sIFBhb2xvIEJvbnppbmkgd3JvdGU6Cj4+Pj4+Pj4+IE9uIDIxLzAyLzE5IDEyOjQ1LCBKb2Fv IE1hcnRpbnMgd3JvdGU6Cj4+Pj4+Pj4+PiBPbiAyLzIwLzE5IDk6MDkgUE0sIFBhb2xvIEJvbnpp bmkgd3JvdGU6Cj4+Pj4+Pj4+Pj4gT24gMjAvMDIvMTkgMjE6MTUsIEpvYW8gTWFydGlucyB3cm90 ZToKPj4+Pj4+Pj4+Pj4gwqAgMi4gUFYgRHJpdmVyIHN1cHBvcnQgKHBhdGNoZXMgMTcgLSAzOSkK Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gwqAgV2Ugc3RhcnQgYnkgcmVkaXJlY3RpbmcgaHlwZXJj YWxscyBmcm9tIHRoZSBiYWNrZW5kIHRvCj4+Pj4+Pj4+Pj4+IHJvdXRpbmVzCj4+Pj4+Pj4+Pj4+ IMKgIHdoaWNoIGVtdWxhdGUgdGhlIGJlaGF2aW91ciB0aGF0IFBWIGJhY2tlbmRzIGV4cGVjdCBp LmUuIGdyYW50Cj4+Pj4+Pj4+Pj4+IMKgIHRhYmxlIGFuZCBpbnRlcmRvbWFpbiBldmVudHMuIE5l eHQsIHdlIGFkZCBzdXBwb3J0IGZvciBsYXRlCj4+Pj4+Pj4+Pj4+IMKgIGluaXRpYWxpemF0aW9u IG9mIHhlbmJ1cywgZm9sbG93ZWQgYnkgaW1wbGVtZW50aW5nCj4+Pj4+Pj4+Pj4+IMKgIGZyb250 ZW5kL2JhY2tlbmQgY29tbXVuaWNhdGlvbiBtZWNoYW5pc21zIChpLmUuIGdyYW50Cj4+Pj4+Pj4+ Pj4+IHRhYmxlcyBhbmQKPj4+Pj4+Pj4+Pj4gwqAgaW50ZXJkb21haW4gZXZlbnQgY2hhbm5lbHMp LiBGaW5hbGx5LCBpbnRyb2R1Y2UgeGVuLXNoaW0ua28sCj4+Pj4+Pj4+Pj4+IMKgIHdoaWNoIHdp bGwgc2V0dXAgYSBsaW1pdGVkIFhlbiBlbnZpcm9ubWVudC4gVGhpcyB1c2VzIHRoZQo+Pj4+Pj4+ Pj4+PiBhZGRlZAo+Pj4+Pj4+Pj4+PiDCoCBmdW5jdGlvbmFsaXR5IG9mIFhlbiBzcGVjaWZpYyBz aGFyZWQgbWVtb3J5IChncmFudCB0YWJsZXMpIGFuZAo+Pj4+Pj4+Pj4+PiDCoCBub3RpZmljYXRp b25zIChldmVudCBjaGFubmVscykuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBJIGFtIGEgYml0IHdv cnJpZWQgYnkgdGhlIGxhc3QgcGF0Y2hlcywgdGhleSBzZWVtIHJlYWxseQo+Pj4+Pj4+Pj4+IGJy aXR0bGUgYW5kCj4+Pj4+Pj4+Pj4gcHJvbmUgdG8gYnJlYWthZ2UuwqAgSSBkb24ndCBrbm93IFhl biB3ZWxsIGVub3VnaCB0byB1bmRlcnN0YW5kCj4+Pj4+Pj4+Pj4gaWYgdGhlCj4+Pj4+Pj4+Pj4g bGFjayBvZiBzdXBwb3J0IGZvciBHTlRNQVBfaG9zdF9tYXAgaXMgZml4YWJsZSwgYnV0IGlmIG5v dCwKPj4+Pj4+Pj4+PiB5b3UgaGF2ZSB0bwo+Pj4+Pj4+Pj4+IGRlZmluZSBhIGNvbXBsZXRlbHkg ZGlmZmVyZW50IGh5cGVyY2FsbC4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSSBndWVzcyBBbmt1ciBh bHJlYWR5IGFuc3dlcmVkIHRoaXM7IHNvIGp1c3QgdG8gc3RhY2sgdGhpcyBvbgo+Pj4+Pj4+Pj4g dG9wIG9mIGhpcyBjb21tZW50Lgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSB4ZW5fc2hpbV9kb21h aW4oKSBpcyBvbmx5IG1lYW50IHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZQo+Pj4+Pj4+Pj4gdGhl IGJhY2tlbmQKPj4+Pj4+Pj4+IGhhcy9jYW4taGF2ZSBmdWxsIGFjY2VzcyB0byBndWVzdCBtZW1v cnkgW2kuZS4gbmV0YmFjayBhbmQKPj4+Pj4+Pj4+IGJsa2JhY2sgd291bGQgd29yawo+Pj4+Pj4+ Pj4gd2l0aCBzaW1pbGFyIGFzc3VtcHRpb25zIGFzIHZob3N0P10uIEZvciB0aGUgbm9ybWFsIGNh c2UsIHdoZXJlCj4+Pj4+Pj4+PiBhIGJhY2tlbmQgKmluIGEKPj4+Pj4+Pj4+IGd1ZXN0KiBtYXBz IGFuZCB1bm1hcHMgb3RoZXIgZ3Vlc3QgbWVtb3J5LCB0aGlzIGlzIG5vdAo+Pj4+Pj4+Pj4gYXBw bGljYWJsZSBhbmQgdGhlc2UKPj4+Pj4+Pj4+IGNoYW5nZXMgZG9uJ3QgYWZmZWN0IHRoYXQgY2Fz ZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJT1csIHRoZSBQViBiYWNrZW5kIGhlcmUgc2l0cyBvbiB0 aGUgaHlwZXJ2aXNvciwgYW5kIHRoZQo+Pj4+Pj4+Pj4gaHlwZXJjYWxscyBhcmVuJ3QKPj4+Pj4+ Pj4+IGFjdHVhbCBoeXBlcmNhbGxzIGJ1dCByYXRoZXIgaW52b2tpbmcgc2hpbV9oeXBlcmNhbGwo KS4gVGhlCj4+Pj4+Pj4+PiBjYWxsIGNoYWluIHdvdWxkIGdvCj4+Pj4+Pj4+PiBtb3JlIG9yIGxl c3MgbGlrZToKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiA8bmV0YmFja3xibGtiYWNrfHNjc2liYWNrPgo+ Pj4+Pj4+Pj4gwqAgZ250dGFiX21hcF9yZWZzKG1hcF9vcHMsIHBhZ2VzKQo+Pj4+Pj4+Pj4gwqDC oMKgIEhZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3AoR05UVEFCT1BfbWFwX2dyYW50X3JlZiwuLi4p Cj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIHNoaW1faHlwZXJjYWxsKCkKPj4+Pj4+Pj4+IMKgwqDCoMKg wqDCoMKgIHNoaW1faGNhbGxfZ250bWFwKCkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBPdXIgcmVhc29u aW5nIHdhcyB0aGF0IGdpdmVuIHdlIGFyZSBhbHJlYWR5IGluIEtWTSwgd2h5IG1hcHBpbmcKPj4+ Pj4+Pj4+IGEgcGFnZSBpZiB0aGUKPj4+Pj4+Pj4+IHVzZXIgKGkuZS4gdGhlIGtlcm5lbCBQViBi YWNrZW5kKSBpcyBoaW1zZWxmPyBUaGUgbGFjayBvZgo+Pj4+Pj4+Pj4gR05UTUFQX2hvc3RfbWFw IGlzIGhvdwo+Pj4+Pj4+Pj4gdGhlIHNoaW0gZGV0ZXJtaW5lcyBpdHMgdXNlciBkb2Vzbid0IHdh bnQgdG8gbWFwIHRoZSBwYWdlLgo+Pj4+Pj4+Pj4gQWxzbywgdGhlcmUncyBhbm90aGVyCj4+Pj4+ Pj4+PiBpc3N1ZSB3aGVyZSBQViBiYWNrZW5kcyBhbHdheXMgbmVlZCBhIHN0cnVjdCBwYWdlIHRv IHJlZmVyZW5jZQo+Pj4+Pj4+Pj4gdGhlIGRldmljZQo+Pj4+Pj4+Pj4gaW5mbGlnaHQgZGF0YSBh cyBBbmt1ciBwb2ludGVkIG91dC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVWx0aW1hdGVseSBpdCdzIHVw IHRvIHRoZSBYZW4gcGVvcGxlLsKgIEl0IGRvZXMgbWFrZSB0aGVpciBBUEkKPj4+Pj4+Pj4gdWds aWVyLAo+Pj4+Pj4+PiBlc3BlY2lhbGx5IHRoZSBpbi9vdXQgY2hhbmdlIGZvciB0aGUgcGFyYW1l dGVyLsKgIElmIHlvdSBjYW4gYXQKPj4+Pj4+Pj4gbGVhc3QKPj4+Pj4+Pj4gYXZvaWQgdGhhdCwg aXQgd291bGQgYWxsZXZpYXRlIG15IGNvbmNlcm5zIHF1aXRlIGEgYml0Lgo+Pj4+Pj4+Cj4+Pj4+ Pj4gSW4gbXkgdmlldywgd2UgaGF2ZSB0d28gb3B0aW9ucyBvdmVyYWxsOgo+Pj4+Pj4+Cj4+Pj4+ Pj4gMSkgTWFrZSBpdCBleHBsaWNpdCwgdGhlIGNoYW5nZXMgdGhlIFBWIGRyaXZlcnMgd2UgaGF2 ZSB0byBtYWtlIGluCj4+Pj4+Pj4gb3JkZXIgdG8gc3VwcG9ydCB4ZW5fc2hpbV9kb21haW4oKS4g VGhpcyBjb3VsZCBtZWFuIGUuZy4gYSkgYWRkIGEKPj4+Pj4+PiBjYWxsYmFjawo+Pj4+Pj4+IGFy Z3VtZW50IHRvIGdudHRhYl9tYXBfcmVmcygpIHRoYXQgaXMgaW52b2tlZCBmb3IgZXZlcnkgcGFn ZSB0aGF0Cj4+Pj4+Pj4gZ2V0cyBsb29rZWQgdXAKPj4+Pj4+PiBzdWNjZXNzZnVsbHksIGFuZCBp bnNpZGUgdGhpcyBjYWxsYmFjayB0aGUgUFYgZHJpdmVyIG1heSB1cGRhdGUKPj4+Pj4+PiBpdCdz IHRyYWNraW5nCj4+Pj4+Pj4gcGFnZS4gSGVyZSB3ZSBubyBsb25nZXIgaGF2ZSB0aGlzIGluL291 dCBwYXJhbWV0ZXIgaW4KPj4+Pj4+PiBnbnR0YWJfbWFwX3JlZnMsIGFuZCBhbGwKPj4+Pj4+PiBz aGltX2RvbWFpbiBzcGVjaWZpYyBiaXRzIHdvdWxkIGJlIGEgbGl0dGxlIG1vcmUgYWJzdHJhY3Rl ZCBmcm9tCj4+Pj4+Pj4gWGVuIFBWCj4+Pj4+Pj4gYmFja2VuZHMuIFNlZSBuZXRiYWNrIGV4YW1w bGUgYmVsb3cgdGhlIHNjaXNzb3JzIG1hcmsuIE9yIGIpIGhhdmUKPj4+Pj4+PiBzb3J0IG9mIGEK Pj4+Pj4+PiB0cmFuc2xhdGVfZ3JlZigpIGFuZCBwdXRfZ3JlZigpIEFQSSB0aGF0IFhlbiBQViBk cml2ZXJzIHVzZSB3aGljaAo+Pj4+Pj4+IG1ha2UgaXQgZXZlbgo+Pj4+Pj4+IG1vcmUgZXhwbGlj aXQgdGhhdCB0aGVyZSdzIG5vIGdyYW50IG9wcyBpbnZvbHZlZC4gVGhlIGxhdHRlciBpcwo+Pj4+ Pj4+IG1vcmUgaW52YXNpdmUuCj4+Pj4+Pj4KPj4+Pj4+PiAyKSBUaGUgc2Vjb25kIG9wdGlvbiBp cyB0byBzdXBwb3J0IGd1ZXN0IGdyYW50IG1hcHBpbmcvdW5tYXBwaW5nCj4+Pj4+Pj4gWypdIHRv IGFsbG93Cj4+Pj4+Pj4gaG9zdGluZyBQViBiYWNrZW5kcyBpbnNpZGUgdGhlIGd1ZXN0LiBUaGlz IHdvdWxkIHJlbW92ZSB0aGUgWGVuCj4+Pj4+Pj4gY2hhbmdlcyBpbiB0aGlzCj4+Pj4+Pj4gc2Vy aWVzIGNvbXBsZXRlbHkuIEJ1dCBpdCB3b3VsZCByZXF1aXJlIGFub3RoZXIgZ3Vlc3QgYmVpbmcg dXNlZAo+Pj4+Pj4+IGFzIG5ldGJhY2svYmxrYmFjay94ZW5zdG9yZWQsIGFuZCBsZXNzIHBlcmZv cm1hbmNlIHRoYW4gMSkKPj4+Pj4+PiAodGhvdWdoLCBpbiB0aGVvcnksCj4+Pj4+Pj4gaXQgd291 bGQgYmUgZXF1aXZhbGVudCB0byB3aGF0IGRvZXMgWGVuIHdpdGggZ3JhbnRzL2V2ZW50cykuIFRo ZQo+Pj4+Pj4+IG9ubHkgY2hhbmdlcyBpbgo+Pj4+Pj4+IExpbnV4IFhlbiBjb2RlIGlzIGFkZGlu ZyB4ZW5zdG9yZWQgZG9tYWluIHN1cHBvcnQsIGJ1dCB0aGF0IGlzCj4+Pj4+Pj4gdXNlZnVsIG9u IGl0cyBvd24KPj4+Pj4+PiBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGlzIHdvcmsuCj4+Pj4+Pj4K Pj4+Pj4+PiBJIHRoaW5rIHRoZXJlJ3MgdmFsdWUgb24gYm90aDsgMSkgaXMgcHJvYmFibHkgbW9y ZSBmYW1pbGlhciBmb3IKPj4+Pj4+PiBLVk0gdXNlcnMKPj4+Pj4+PiBwZXJoYXBzIChhcyBpdCBp cyBzaW1pbGFyIHRvIHdoYXQgdmhvc3QgZG9lcz8pIHdoaWxlwqAgMikgZXF1YXRlcwo+Pj4+Pj4+ IHRvIGltcGxlbWVudGluZwo+Pj4+Pj4+IFhlbiBkaXNhZ3JlZ2F0aW9uIGNhcGFiaWxpdGllcyBp biBLVk0uCj4+Pj4+Pj4KPj4+Pj4+PiBUaG91Z2h0cz8gWGVuIG1haW50YWluZXJzIHdoYXQncyB5 b3VyIHRha2Ugb24gdGhpcz8KPj4+Pj4+Cj4+Pj4+PiBXaGF0IEknZCBsaWtlIGJlc3Qgd291bGQg YmUgYSBuZXcgaGFuZGxlIChlLmcuIHhlbmhvc3RfdCAqKSB1c2VkCj4+Pj4+PiBhcyBhbgo+Pj4+ Pj4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRoaXMga2luZCBvZiBzdHVmZi4gSXQgc2hvdWxkIGJl IHBhc3NlZCB0byB0aGUKPj4+Pj4+IGJhY2tlbmRzIGFuZCB0aG9zZSB3b3VsZCBwYXNzIGl0IG9u IHRvIGxvdy1sZXZlbCBYZW4gZHJpdmVycyAoeGVuYnVzLAo+Pj4+Pj4gZXZlbnQgY2hhbm5lbHMs IGdyYW50IHRhYmxlLCAuLi4pLgo+Pj4+Pj4KPj4+Pj4gU28gaWYgSUlSQyBiYWNrZW5kcyB3b3Vs ZCB1c2UgdGhlIHhlbmhvc3QgbGF5ZXIgdG8gYWNjZXNzIGdyYW50cyBvcgo+Pj4+PiBmcmFtZXMK Pj4+Pj4gcmVmZXJlbmNlZCBieSBncmFudHMsIGFuZCB0aGF0IHdvdWxkIGdyb2sgaW50byBzb21l IG9mIHRoaXMuIElPVywKPj4+Pj4geW91IHdvdWxkIGhhdmUKPj4+Pj4gdHdvIGltcGxlbWVudG9y cyBvZiB4ZW5ob3N0OiBvbmUgZm9yIG5lc3RlZCByZW1vdGUvbG9jYWwKPj4+Pj4gZXZlbnRzK2dy YW50cyBhbmQKPj4+Pj4gYW5vdGhlciBmb3IgdGhpcyAic2hpbSBkb21haW4iID8KPj4+Pgo+Pj4+ IEFzIEknZCBuZWVkIHRoYXQgZm9yIG5lc3RlZCBYZW4gSSBndWVzcyB0aGF0IHdvdWxkIG1ha2Ug aXQgMyB2YXJpYW50cy4KPj4+PiBQcm9iYWJseSB0aGUgeGVuLXNoaW0gdmFyaWFudCB3b3VsZCBu ZWVkIG1vcmUgaG9va3MsIGJ1dCB0aGF0IHNob3VsZCBiZQo+Pj4+IG5vIHByb2JsZW0uCj4+Pj4K Pj4+IEkgcHJvYmFibHkgbWVzc2VkIHVwIGluIHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBidXQgIm5l c3RlZCByZW1vdGUvbG9jYWwKPj4+IGV2ZW50cytncmFudHMiIHdhcyByZWZlcnJpbmcgdG8gbmVz dGVkIFhlbiAoRldJVyByZW1vdGUgbWVhbnQgTDAgYW5kCj4+PiBsb2NhbCBMMSkuCj4+PiBTbyBt YXliZSBvbmx5IDIgdmFyaWFudHMgYXJlIG5lZWRlZD8KPj4KPj4gSSBuZWVkIG9uZSB4ZW5ob3N0 IHZhcmlhbnQgZm9yIHRoZSAibm9ybWFsIiBjYXNlIGFzIHRvZGF5OiB0YWxraW5nIHRvCj4+IHRo ZSBzaW5nbGUgaHlwZXJ2aXNvciAob3IgaW4gbmVzdGVkIGNhc2U6IHRvIHRoZSBMMSBoeXBlcnZp c29yKS4KPj4KPj4gVGhlbiBJIG5lZWQgYSB2YXJpYW50IGZvciB0aGUgbmVzdGVkIGNhc2UgdGFs a2luZyB0byBMMCBoeXBlcnZpc29yLgo+Pgo+PiBBbmQgeW91IG5lZWQgYSB2YXJpYW50IHRhbGtp bmcgdG8geGVuLXNoaW0uCj4+Cj4+IFRoZSBmaXJzdCB0d28gdmFyaWFudHMgY2FuIGJlIGFjdGl2 ZSBpbiB0aGUgc2FtZSBzeXN0ZW0gaW4gY2FzZSBvZgo+PiBuZXN0ZWQgWGVuOiB0aGUgYmFja2Vu ZHMgb2YgTDIgZG9tMCBhcmUgdGFsa2luZyB0byBMMSBoeXBlcnZpc29yLAo+PiB3aGlsZSBpdHMg ZnJvbnRlbmRzIGFyZSB0YWxraW5nIHdpdGggTDAgaHlwZXJ2aXNvci4KPiBUaGFua3MgdGhpcyBp cyBjbGFyaWZ5aW5nLgo+IAo+IFNvLCBlc3NlbnRpYWxseSBiYWNrZW5kIGRyaXZlcnMgd2l0aCBh IHhlbmhvc3RfdCBoYW5kbGUsIGNvbW11bmljYXRlCj4gd2l0aCBYZW4gbG93LWxldmVsIGRyaXZl cnMgZXRjIHVzaW5nIHRoZSBzYW1lIGhhbmRsZSwgaG93ZXZlciwgaWYgdGhleQo+IGNvbW11bmlj YXRlIHdpdGggZnJvbnRlbmQgZHJpdmVycyBmb3IgYWNjZXNzaW5nIHRoZSAicmVhbCIgd29ybGQs Cj4gdGhleSBleGNsdXNpdmVseSB1c2Ugc3RhbmRhcmQgbWVjaGFuaXNtcyAoTGludXggb3IgaHlw ZXJjYWxscyk/CgpUaGlzIHNob3VsZCBiZSBvcGFxdWUgdG8gdGhlIGJhY2tlbmRzLiBUaGUgeGVu aG9zdF90IGhhbmRsZSBzaG91bGQgaGF2ZQphIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB2ZWN0b3Ig Zm9yIHJlbGV2YW50IGdyYW50LSwgZXZlbnQtIGFuZCBYZW5zdG9yZS0KcmVsYXRlZCBmdW5jdGlv bnMuIENhbGxzIHRvIHN1Y2ggZnVuY3Rpb25zIHNob3VsZCBiZSBkb25lIHZpYSBhbiBpbmxpbmUK ZnVuY3Rpb24gd2l0aCB0aGUgeGVuaG9zdF90IGhhbmRsZSBiZWluZyBvbmUgcGFyYW1ldGVyLCB0 aGF0IGZ1bmN0aW9uCndpbGwgdGhlbiBjYWxsIHRoZSBjb3JyZWN0IGltcGxlbWVudGF0aW9uLgoK PiBJbiB0aGlzIHNjZW5hcmlvIEwyIGRvbTAgeGVuLW5ldGJhY2sgYW5kIEwyIGRvbTAgeGVuLW5l dGZyb250IHNob3VsZAo+IGp1c3QgYmUgYWJsZSB0byB1c2UgTGludXggaW50ZXJmYWNlcy4gQnV0 IGlmIEwyIGRvbTAgeGVuYnVzLWJhY2tlbmQKPiBuZWVkcyB0byB0YWxrIHRvIEwyIGRvbTAgeGVu YnVzLWZyb250ZW5kIHRoZW4gZG8geW91IHNlZSB0aGVtIGxheWVyZWQKPiBvciBhcmUgdGhleSBz dGlsbCBleGNsdXNpdmVseSB0YWxraW5nIHZpYSB0aGUgc3RhbmRhcmQgbWVjaGFuaXNtcz8KClRo ZSBkaXN0aW5jdGlvbiBpcyBtYWRlIHZpYSB0aGUgZnVuY3Rpb24gdmVjdG9yIGluIHhlbmhvc3Rf dC4gU28gdGhlCm9ubHkgY2hhbmdlIGluIGJhY2tlbmRzIG5lZWRlZCBpcyB0aGUgaW50cm9kdWN0 aW9uIG9mIHhlbmhvc3RfdC4KCldoZXRoZXIgd2Ugd2FudCB0byBpbnRyb2R1Y2UgeGVuaG9zdF90 IGluIGZyb250ZW5kcywgdG9vLCBpcyBUQkQuCgoKSnVlcmdlbgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==