From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: Re: [PATCH v3 13/16 - RFC] x86: add multiboot2 protocol support for EFI platforms Date: Wed, 1 Jun 2016 21:03:31 +0200 Message-ID: <20160601190331.GG5490@olila.local.net-space.pl> References: <1460723596-13261-1-git-send-email-daniel.kiper@oracle.com> <1460723596-13261-14-git-send-email-daniel.kiper@oracle.com> <57458D5502000078000EE979@prv-mh.provo.novell.com> <20160525210259.GP5490@olila.local.net-space.pl> <5748294102000078000EF1DA@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b8BQl-0005QM-IG for xen-devel@lists.xenproject.org; Wed, 01 Jun 2016 19:03:51 +0000 Content-Disposition: inline In-Reply-To: <5748294102000078000EF1DA@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Juergen Gross , stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, xen-devel@lists.xenproject.org, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBNYXkgMjcsIDIwMTYgYXQgMDM6MDI6MjVBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDI1LjA1LjE2IGF0IDIzOjAyLCA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ IHdyb3RlOgo+ID4gT24gV2VkLCBNYXkgMjUsIDIwMTYgYXQgMDM6MzI6MzdBTSAtMDYwMCwgSmFu IEJldWxpY2ggd3JvdGU6Cj4gPj4gPj4+IE9uIDE1LjA0LjE2IGF0IDE0OjMzLCA8ZGFuaWVsLmtp cGVyQG9yYWNsZS5jb20+IHdyb3RlOgo+ID4+ID4gIGJhZF9jcHU6Cj4gPj4gPiAgICAgICAgICBt b3YgICAgICQoc3ltX3BoeXMoLkxiYWRfY3B1X21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCj4g Pj4gPiAtICAgICAgICBqbXAgICAgIHByaW50X2Vycgo+ID4+ID4gKyAgICAgICAgbW92ICAgICAk MHhCODAwMCwlZWRpICAgICAgICAgICAgICAgICAgICMgVkdBIGZyYW1lYnVmZmVyCj4gPj4gPiAr ICAgICAgICBqbXAgICAgIDFmCj4gPj4gPiAgbm90X211bHRpYm9vdDoKPiA+PiA+ICAgICAgICAg IG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UK PiA+PiA+IC1wcmludF9lcnI6Cj4gPj4gPiAtICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkg ICMgVkdBIGZyYW1lYnVmZmVyCj4gPj4gPiArICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkg ICAgICAgICAgICAgICAgICAgIyBWR0EgZnJhbWVidWZmZXIKPiA+PiA+ICsgICAgICAgIGptcCAg ICAgMWYKPiA+PiA+ICttYjJfdG9vX29sZDoKPiA+PiA+ICsgICAgICAgIG1vdiAgICAgJChzeW1f cGh5cyguTGJhZF9sZHJfbWIyKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKPiA+PiA+ICsgICAgICAg IHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSBmcmFtZWJ1 ZmZlcgo+ID4+Cj4gPj4gTGVhdmluZyBhc2lkZSB0aGF0ICJmcmFtZWJ1ZmZlciIgcmVhbGx5IGlz IGEgYmFkIHRlcm0gaGVyZSAod2UncmUKPiA+PiB0YWxraW5nIG9mIHRleHQgbW9kZSBvdXRwdXQg YWZ0ZXIgYWxsKSwgbGltaXRpbmcgdGhlIG91dHB1dCB0byBzZXJpYWwKPiA+Cj4gPiBZZXAsIGJ1 dCB0aGVuIHdlIHNob3VsZCBjaGFuZ2UgdGhpcyBpbiBvdGhlciBwbGFjZXMgdG9vLiBNYXliZSBp biBzZXBhcmF0ZQo+ID4gcGF0Y2guCj4KPiBTaW5jZSB5b3UgdG91Y2ggKG1vdmUpIGl0LCByZXBs YWNpbmcgdGhlIHdvcmQgImZyYW1lYnVmZmVyIiB3b3VsZG4ndAo+IHNlZW0gbGlrZSBzb21ldGhp bmcgbWFraW5nIHRoZSBwYXRjaCBhbnkgbW9yZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZC4KPgo+ ID4+IGlzbid0IGdvaW5nIHRvIGJlIHZlcnkgaGVscGZ1bCBpbiB0aGUgZmllbGQsIEknbSBhZnJh aWQuIEV2ZW4gbW9yZSBzbwo+ID4+IHRoYXQgdGhlcmUncyBubyBndWFyYW50ZWUgZm9yIGEgVUFS VCB0byBiZSBhdCBwb3J0IDB4M2Y4LiBUaGF0J3MKPiA+Cj4gPiBSaWdodCBidXQgd2UgZG8gbm90 IGhhdmUgYmlnIGNob2ljZSBoZXJlIGF0IHZlcnkgZWFybHkgYm9vdCBzdGFnZS4uLiA6LSgoKAo+ Cj4gRXhjdXNlIG1lPyBZb3UncmUgcnVubmluZyBvbiBFRkksIHNvIHlvdSBoYXZlIGZ1bGwgaW5m cmFzdHJ1Y3R1cmUKPiBhdmFpbGFibGUgdG8geW91LiBBcyBtdWNoIGFzIGluIGEgbm9ybWFsIEJJ T1Mgc2NlbmFyaW8gKGFuZCBvbiBhCj4gaGFsZiB3YXkgbm9ybWFsIHN5c3RlbSkgd2UgY2FuIGFz c3VtZSBhIHRleHQgbW9kZSBzY3JlZW4gd2l0aAo+IHZpZGVvIG1lbW9yeSBtYXBwZWQgYXQgQjgw MDAsIHVuZGVyIEVGSSB3ZSBjYW4gYXNzdW1lIG91dHB1dAo+IGNhcGFiaWxpdGllcyAod2hpY2hl dmVyIHRoZSBzeXN0ZW0gb3duZXIgc2V0IHVwIGluIHRoZSBmaXJtd2FyZQo+IHNldHVwKS4KClBv dGVudGlhbGx5IHdlIGNhbiBkbyB0aGF0IGZvciBiYWRfY3B1IG9ubHkuIEhvd2V2ZXIsIGRvZXMg aXQgcGF5cz8KSSBzdXBwb3NlIHRoYXQgbW9zdCwgaWYgbm90IGFsbCwgcGxhdGZvcm1zIHdpdGgg VUVGSSBoYXZlIENQVXMgd2l0aApYODZfRkVBVFVSRV9MTS4KClNhZGx5LCBJdCBpdCBub3QgZmVh c2libGUgZm9yIG5vdF9tdWx0aWJvb3QgYW5kIG1iMl90b29fb2xkLiBGb3JtZXIKbWVhbnMgdGhh dCB3ZSB3ZXJlIGxvYWRlZCBieSB1bmtub3duIGJvb3QgbG9hZGVyIGFuZCBpbnRlcmZhY2UgaXMK bm90IGRlZmluZWQuIEhlbmNlLCB3ZSBhcmUgbm90IGFibGUgdG8gZ2V0IGFueXRoaW5nIGZyb20g RUZJLiBMYXR0ZXIKbWVhbnMgdGhhdCB3ZSB3ZXJlIGJvb3RlZCB2aWEgb2xkZXIgbXVsdGlib290 MiB2ZXJzaW9uIHdoaWNoIHNodXRkb3duCmJvb3Qgc2VydmljZXMuCgo+ID4+IG5vdCBtdWNoIG9m IGEgcHJvYmxlbSBmb3IgdGhlIG90aGVyIHR3byBtZXNzYWdlcyBhcyBwZW9wbGUgYXJlCj4gPj4g dW5saWtlbHkgdG8gdHJ5IHRvIGJvb3QgWGVuIG9uIGFuIHVuc3VpdGFibGUgc3lzdGVtLCBidXQg SSB2aWV3IGl0Cj4gPj4gYXMgcXVpdGUgcG9zc2libGUgZm9yIFhlbiB0byBiZSB0cmllZCB0byBn ZXQgYm9vdGVkIHdpdGggYW4KPiA+PiB1bnN1aXRhYmxlIGdydWIyLgo+ID4+Cj4gPj4gSU9XIC0g dGhpcyBuZWVkcyBhIGJldHRlciBzb2x1dGlvbiwgcHJlc3VtYWJseSB1c2luZyBFRkkgYm9vdAo+ ID4+IHNlcnZpY2Ugb3V0cHV0IGZ1bmN0aW9ucy4KPiA+Cj4gPiBObyB3YXksIGhlcmUgYm9vdCBz ZXJ2aWNlcyBhcmUgZGVhZC4gR1JVQjIgKG9yIG90aGVyIGxvYWRlcikKPiA+IHNodXRkb3duIHRo ZW0uLi4gOi0oKCgKPgo+IFdhc24ndCBvbmUgb2YgeW91ciBncnViMiBjaGFuZ2VzIGJlaW5nIHBy ZWNpc2VseSB0aGUgZGVmZXJyYWwgb2YKPiB0aGF0IHRvIFhlbj8KClN1cmUsIGJ1dCBpZiB3ZSBh cmUgaGVyZSB0aGVuIGl0IG1lYW5zIHRoYXQgd2Ugd2VyZSBsb2FkZWQgYnkgZWFybGllciBtdWx0 aWJvb3QyCnByb3RvY29sIHZlcnNpb24gd2hpY2ggZG9lcyBub3QgdW5kZXJzdGFuZCBmZWF0dXJl cyBhZGRlZCBieSBtZS4KCj4gPj4gPiArICAgICAgICBjbGQKPiA+PiA+ICsKPiA+PiA+ICsgICAg ICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCj4gPj4gPiArICAgICAg ICBjbXAgICAgICRNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMsJWVheAo+ID4+ID4gKyAgICAg ICAgamUgICAgICBlZmlfbXVsdGlib290Ml9wcm90bwo+ID4+ID4gKwo+ID4+ID4gKyAgICAgICAg LyogSnVtcCB0byBub3RfbXVsdGlib290IGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1v ZGUuICovCj4gPj4gPiArICAgICAgICBsZWEgICAgIG5vdF9tdWx0aWJvb3QoJXJpcCksJXJkaQo+ ID4+ID4gKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCj4gPj4KPiA+PiBXaGF0IEkndmUg c2FpZCBhYm92ZSB3b3VsZCBhbHNvIGVsaW1pbmF0ZSB0aGUgbmVlZCB0byBzd2l0Y2ggdG8KPiA+ PiAzMi1iaXQgbW9kZSBqdXN0IGZvciBlbWl0dGluZyBhbiBlcnJvciBtZXNzYWdlIGFuZCBoYWx0 aW5nIHRoZQo+ID4+IHN5c3RlbS4KPiA+Cj4gPiBJdCBpcyBub3QgcG9zc2libGUuIFdlIGp1c3Qg a25vdyB0aGF0IHdlIHJ1biBvbiBFRkkgcGxhdGZvcm0gaGVyZS4KPiA+IEhvd2V2ZXIsIHdlIGFy ZSBub3QgYWJsZSB0byBnZXQgRUZJIFN5c3RlbVRhYmxlIHBvaW50ZXIuCj4KPiBIb3cgYXJlIHdl IG5vdCBhYmxlPyBMYXRlciBDIGNvZGUgZG9lcyBpdCBhZmFpciwgc28gd2h5IHdvdWxkIGl0IG5v dAo+IGJlIHBvc3NpYmxlIGhlcmU/CgpEaXR0by4KCj4gPj4gPiArZWZpX211bHRpYm9vdDJfcHJv dG86Cj4gPj4KPiA+PiAuTGVmaV9tdWx0aWJvb3QyX3Byb3RvCj4gPgo+ID4gT0sgaWYgeW91IGlu c2lzdC4gSG93ZXZlciwgSSB0aGluayB0aGF0IHdlIGFyZSBsb29zaW5nIGhlbHBmdWwKPiA+IGRl YnVnIGluZm9ybWF0aW9uIHRoaXMgd2F5Lgo+Cj4gSSBkb24ndCBzZWUgd2h5IG9yIGhvdy4gTGFi ZWxzIHBlcnNpc3RpbmcgaW4gdGhlIGZpbmFsIHN5bWJvbCB0YWJsZQo+IGFyZSB1c2VmdWwgb25s eSBmb3IgZ2VuZXJhdGluZyBzdGFjayB0cmFjZXMsIHlldCBpZiB5b3UgY3Jhc2ggdGhpcwo+IGVh cmx5IHRoZXJlIHdvbid0IGJlIGFueSBzdGFjayB0cmFjZSBhbnl3YXkgLSB5b3UgZG9uJ3QgZXZl bgo+IGhhdmUgYW4gSURUIHNldCB1cCB5ZXQuCgpPSywgYnV0IGl0IGlzIG11Y2ggZWFzaWVyIHRv IGlkZW50aWZ5IGFkZHJlc3NlcyBmb3IgYnJlYWtwb2ludHMgaWYgeW91CmhhdmUgcHJvcGVyIGxh YmVscy4gQW5kIHRoaXMgb25lIGxvb2tzIHF1aXRlIHVzZWZ1bC4KCj4gPj4gPiArICAgICAgICAv Kgo+ID4+ID4gKyAgICAgICAgICogTXVsdGlib290MiBpbmZvcm1hdGlvbiBhZGRyZXNzIGlzIDMy LWJpdCwKPiA+PiA+ICsgICAgICAgICAqIHNvLCB6ZXJvIGhpZ2hlciBoYWxmIG9mICVyYnguCj4g Pj4gPiArICAgICAgICAgKi8KPiA+PiA+ICsgICAgICAgIG1vdiAgICAgJWVieCwlZWJ4Cj4gPj4K PiA+PiBXYWl0LCBubyAtIHRoYXQncyBhIHByb3RvY29sIGJ1ZyB0aGVuLiBXZSdyZSBiZWluZyBl bnRlcmVkIGluIDY0LWJpdAo+ID4+IG1vZGUgaGVyZSwgc28gcmVnaXN0ZXJzIHNob3VsZCBiZSBp biA2NC1iaXQgY2xlYW4gc3RhdGUuCj4gPgo+ID4gWW91IG1lYW4gaGlnaGVyIGhhbGYgY2xlYXJl ZC4gUmlnaHQ/IFRoaXMgaXMgbm90IGd1YXJhbnRlZWQuCj4KPiBIZW5jZSBtZSBzYXlpbmcgInRo YXQncyBhIHByb3RvY29sIGJ1ZyB0aGVuIi4KCldoeT8gUHJvdG9jb2wgc3RyaWN0bHkgc2F5cyB0 aGF0ICJ0aGlzIGlzIG5vdCBndWFyYW50ZWVkIi4KV2hhdCBpcyB0aGUgcHJvYmxlbSB3aXRoIHRo YXQ/IFBvdGVudGlhbGx5IGxvYWRlciBjYW4gc2V0CiVyYnggaGlnaGVyIGhhbGYgdG8gZS5nLiAw IGJ1dCBJIGRvIG5vdCB0aGluayBpdCBpcyBuZWVkZWQuCgo+ID4gUGxlYXNlIGNoZWNrIHRoaXM6 Cj4gPiBodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDE2LTAz L21zZzAwMzA0Lmh0bWwKPgo+IE90aGVyIHRoYW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXRj aCBJIGNhbid0IHNlZSBhbnl0aGluZyBsaWtlIHRoYXQsCj4gaW4gcGFydGljdWxhcgo+IC0gbm8g b2NjdXJyZW5jZSBvZiAiZWJ4IiBpbiBhbnkgb2YgdGhlIGFkZGVkIG9yIGNoYW5nZWQgY29kZQo+ IC0gTVVMVElCT09UX0VGSV9NQklfUkVHSVNURVIgZ2V0dGluZyAjZGVmaW5lLWQgYXMgcmJ4CgpQ bGVhc2UgY2hlY2sgbXVsdGlib290MiBzcGVjLCBzZWN0aW9uIDMuMiwgTWFjaGluZSBzdGF0ZS4g SXQgaXMgbm90CmZyZXNoZXN0IG9uZSAoSSBhbSB3b3JraW5nIG9uIEVGSSB1cGRhdGVzIHJpZ2h0 IG5vdykgYnV0IEkgaG9wZSB0aGF0IGl0LAp0b2dldGhlciB3aXRoIHBhdGNoIGNvbW1lbnQsIHdp bGwgc2hlZCBzb21lIGxpZ2h0LgoKPiA+PiA+ICsgICAgICAgIC8qIFNraXAgTXVsdGlib290MiBp bmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLwo+ID4+ID4gKyAgICAgICAgbGVhICAgICAoTUIyX2Zp eGVkX3NpemVvZitNVUxUSUJPT1QyX1RBR19BTElHTi0xKSglcmJ4KSwlcmN4Cj4gPj4gPiArICAg ICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVyY3gKPiA+Pgo+ID4+IE9y IGlmIHRoZXJlIHJlYWxseSB3YXMgYSByZWFzb24gdG8gZG8gdGhlIGFib3ZlLCBhbmQgaWYgdGhl cmUgaXMgYQo+ID4+IHJlYXNvbiBub3QgdG8gYXNzdW1lIHRoaXMgZGF0YSBpcyBsb2NhdGVkIGJl bG93IDRHYiwgdGhlbgo+ID4+IGNhbGN1bGF0aW9ucyBsaWtlIHRoaXMgY291bGQgYXZvaWQgdGhl IFJFWDY0IHByZWZpeCBieSB1c2luZyAlZWN4Lgo+ID4KPiA+IEhlcmUgeW91IHNhaWQgc29tZXRo aW5nIGRpZmZlcmVudDoKPiA+ICAgaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94 ZW4tZGV2ZWwvMjAxNS0wMy9tc2cwMzU1Ny5odG1sCj4gPgo+ID4gU28/Cj4KPiBTbz8gWW91IHNp bXBseSB3ZW50IHRvbyBmYXI6IFRoZXJlIHRhbGsgd2FzIG9mIG1lbW9yeSBhY2Nlc3NlcywKPiBp LmUuIHRoZSAoJXJieCkgcGFydCBvZiB0aGUgaW5zdHJ1Y3Rpb24gYWJvdmUuIFVzaW5nICglZWJ4 KSB0aGVyZQo+IHdvdWxkIGNhdXNlIGEgcG9pbnRsZXNzIGFkZHJlc3Mgc2l6ZSBvdmVycmlkZSBw cmVmaXggZW1pdHRlZC4gTm93Cj4gaW4gdGhlIG5ldyBmb3JtIGFib3ZlIHlvdSBmb3JjZSBhIHBv aW50bGVzcyBSRVggcHJlZml4IHRvIGJlCj4gZW1pdHRlZC4gVGhlIHdob2xlIHBvaW50IG9mIGJv dGggb2YgbXkgcmVxdWVzdHMgaXMgLSBhdm9pZCBwcmVmaXhlcwo+IGlmIHlvdSBkb24ndCByZWFs bHkgbmVlZCB0aGVtLgoKV2lsY28hIFRoYW5rcyBmb3IgZXhwbGFuYXRpb24uCgo+ID4+ID4gKzA6 Cj4gPj4gPiArICAgICAgICAvKiBHZXQgRUZJIFN5c3RlbVRhYmxlIGFkZHJlc3MgZnJvbSBNdWx0 aWJvb3QyIGluZm9ybWF0aW9uLiAqLwo+ID4+ID4gKyAgICAgICAgY21wbCAgICAkTVVMVElCT09U Ml9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJjeCkKPiA+PiA+ICsgICAgICAgIGpuZSAg ICAgMWYKPiA+PiA+ICsKPiA+PiA+ICsgICAgICAgIG1vdiAgICAgTUIyX2VmaTY0X3N0KCVyY3gp LCVyc2kKPiA+PiA+ICsKPiA+PiA+ICsgICAgICAgIC8qIERvIG5vdCBjbGVhciBCU1MgdHdpY2Ug YW5kIGRvIG5vdCBnbyBpbnRvIHJlYWwgbW9kZS4gKi8KPiA+PiA+ICsgICAgICAgIG1vdmIgICAg JDEsc2tpcF9yZWFsbW9kZSglcmlwKQo+ID4+Cj4gPj4gSG93IGlzIHRoZSBzZXR0aW5nIG9mIHNr aXBfcmVhbG1vZGUgcmVsYXRlZCB0byB0aGUgY2xlYXJpbmcgb2YgQlNTPwo+ID4+IE9oLCBJJ3Zl IGZvdW5kIHRoZSBjb25uZWN0aW9uIGJlbG93IChhbGJlaXQgc2VlIHRoZXJlIGZvciBpdHMKPiA+ PiB2YWxpZGl0eSksIGJ1dCBJIHRoaW5rIG1lbnRpb25pbmcgdGhpcyBoZXJlIGlzIG1vcmUgY29u ZnVzaW5nIHRoYW4KPiA+PiBjbGFyaWZ5aW5nLgo+ID4KPiA+IEluIGdlbmVyYWwgSSBoYXZlIGEg cHJvYmxlbSBza2lwX3JlYWxtb2RlLiBUaGUgbmFtZSBpdHNlbGYgaXMgY29uZnVzaW5nCj4gPiBo ZXJlIGFuZCB0aGVyZS4gUHJvYmFibHkgaXQgc2hvdWxkIGJlIGNoYW5nZWQuIEhvd2V2ZXIsIEkg ZG8gbm90IGhhdmUKPiA+IGlkZWEgZm9yIGdvb2QgY29tcGFjdCBuYW1lIGRlc2NyaWJpbmcgYWxs IHNraXBfcmVhbG1vZGUgdXNhZ2VzLiBBbmQgSSBkbwo+ID4gbm90IHRoaW5rIHRoYXQgd2Ugc2hv dWxkIGFkZCBhbm90aGVyIHZhcmlhYmxlIHdoaWNoIHdpbGwgYmUgdXNlZCBpbiBzaW1pbGFyCj4g PiB3YXkgYnV0IHdpdGggZGlmZmVyZW50IG5hbWUgdG8gY2xhcmlmeSBzaXR1YXRpb24uCj4KPiBK dXN0IGNsYXJpZnkgdGhpbmdzIGJ5IHN1aXRhYmxlIChicmllZikgY29tbWVudHM/CgpJZiBpdCBp cyBhY2NlcHRhYmxlIGJ5IHlvdSBndXlzIHRoZW4gT0suCgo+ID4+ID4gQEAgLTE3MCwxMiArMzEz LDE5IEBAIG11bHRpYm9vdDJfcHJvdG86Cj4gPj4gPiAgICAgICAgICBqbmUgICAgIDFmCj4gPj4g Pgo+ID4+ID4gICAgICAgICAgbW92ICAgICBNQjJfbWVtX2xvd2VyKCVlY3gpLCVlZHgKPiA+PiA+ IC0gICAgICAgIGptcCAgICAgdHJhbXBvbGluZV9zZXR1cAo+ID4+ID4gKyAgICAgICAgam1wICAg ICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKPiA+PiA+Cj4gPj4gPiAgMToKPiA+PiA+ICsgICAgICAg IC8qIEVGSSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgdmlhIGxlZ2FjeSBCSU9TIHBhdGguICovCj4g Pj4gPiArICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1CMl90YWdf dHlwZSglZWN4KQo+ID4+ID4gKyAgICAgICAgamUgICAgICBtYjJfdG9vX29sZAo+ID4+ID4gKwo+ ID4+ID4gKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFn X3R5cGUoJWVjeCkKPiA+PiA+ICsgICAgICAgIGplICAgICAgbWIyX3Rvb19vbGQKPiA+Pgo+ID4+ IEFjY29yZGluZyB0byB0aGUgY29tbWVudCB3ZSdyZSBvbiB0aGUgbGVnYWN5IEJJT1MgYm9vdCBw YXRoCj4gPj4gaGVyZSwgeWV0IGF0IG1iMl90b29fb2xkIHlvdSBhc3N1bWUgbm8gdGV4dCBtb2Rl IFZHQS4gSS5lLiBJJ20KPiA+PiBub3cgZXZlbiBjb25mdXNlZCBhYm91dCB0aGUgb3V0cHV0IGhh bmRsaW5nIHRoZXJlLgo+ID4KPiA+IEl0IGlzIGNvcnJlY3QuIE9sZCBHUlVCMiAob3Igb3RoZXIg bGVnYWN5IG11bHRpYm9vdDIgY29tcGF0aWJsZSBib290Cj4gPiBsb2FkZXIpIHdoaWNoIHJ1bnMg b24gRUZJIHBsYXRmb3JtIGFuZCBkb2VzIG5vdCBoYXZlIG15IGZlYXR1cmVzIHdpbGwKPiA+IGp1 bXAgaW50byB0aGF0IHBhdGguIEFuZCB3ZSBkbyBub3Qgc3VwcG9ydCB0aGF0LCBzbywgd2Ugc2hv dWxkIGZhaWwKPiA+IGluIHRoZSBiZXN0IHBvc3NpYmxlIHdheSBoZXJlLgo+ID4KPiA+IFlvdXIg Y29tbWVudCBzdWdnZXN0IHRoYXQgY29kZSBjb21tZW50IHNob3VsZCBiZSBpbXByb3ZlZCBhbmQK PiA+IHBocmFzZWQgcHJlY2lzZWx5LiBJIHdpbGwgZG8gdGhhdC4KPgo+IE5vdCBuZWNlc3Nhcmls eTogRmlyc3Qgb2YgYWxsIHlvdSBkaWRuJ3QgY2xhcmlmeSB3aGF0IHZpZGVvIG1vZGUgd2UncmUK PiBpbiBpbiB0aGF0IG9sZC1ncnViMiBjYXNlLiBEbyB3ZSBoYXZlIHRleHQgbW9kZT8gSWYgc28s IG91dHB1dCBzaG91bGQKPiBub3QgYmUgYXZvaWRlZC4gQW5kIGlmIHdlJ3JlIGluIGEgZ3JhcGhp Y2FsIG1vZGUgd2l0aG91dCBhbnkgdmdhPQo+IG9wdGlvbiB0aGF0IGdydWIyIG1heSBoYXZlIGNo b3NlbiB0byBpbnRlcnByZXQsIHRoYXQgd291bGQgc21lbGwgbGlrZQo+IGEgYnVnIGluIGdydWIy LgoKSGVyZSBib290IHNlcnZpY2VzIGFyZSBkZWFkLiBUaGV5IHdlcmUgc2h1dGRvd24gYnkgR1JV QjIgKG9yIG90aGVyCmxlZ2FjeSBib290IGxvYWRlcikuIFNvLCB3ZSBkbyBub3QgaGF2ZSBzaW1w bGUgYWNjZXNzIHRvIEdPUCBvcgphbnl0aGluZyBsaWtlIHRoYXQuIEFtIEkgbWlzc2luZyBzb21l dGhpbmc/Cgo+ID4+ID4gKyAgICBlZmlfdGFibGVzKCk7Cj4gPj4gPiArICAgIHNldHVwX2VmaV9w Y2koKTsKPiA+PiA+ICsgICAgZWZpX3ZhcmlhYmxlcygpOwo+ID4+ID4gKwo+ID4+ID4gKyAgICBp ZiAoIGdvcCApCj4gPj4gPiArICAgICAgICBlZmlfc2V0X2dvcF9tb2RlKGdvcCwgZ29wX21vZGUp Owo+ID4+ID4gKwo+ID4+ID4gKyAgICBlZmlfZXhpdF9ib290KEltYWdlSGFuZGxlLCBTeXN0ZW1U YWJsZSk7Cj4KPiAoQnR3LCByZWdhcmRpbmcgeW91ciBlYXJsaWVyIHN0YXRlbWVudCBvZiBib290 IHNlcnZpY2VzIGJlaW5nCj4gdW5hdmFpbGFibGUgaW4gdGhlIGVhcmx5IGFzc2VtYmx5IGVudHJ5 IGNvZGU6IEhlcmUgaXMgdGhlCj4gZXhpdC1ib290LXNlcnZpY2VzIHBsYWNlLCBpLmUuIHVwIHRv IGhlcmUgYm9vdCBzZXJ2aWNlcyBjYW4gYmUgdXNlZCwKPiB3aGljaCB0aGVyZWZvcmUgaW5jbHVk ZXMgdGhlIGFzc2VtYmx5IHBhcnQgb2YgdGhlIGJvb3QgcGF0aC4pCgpUaGlzIGlzIHJlYWNoYWJs ZSBpZiBldmVyeXRoaW5nIHdlbnQgT0suIElmIGl0IGRvZXMgbm90IHZlcnkgZWFybHkKdGhlbiBV RUZJIHN0dWZmIGlzIHVuYXZhaWxhYmxlLiBQbGVhc2UgbG9vayBhYm92ZSBmb3IgbW9yZSBkZXRh aWxzLgoKPiA+PiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCj4gPj4gPiArKysgYi94 ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwo+ID4+ID4gQEAgLTEzLDYgKzEzLDExIEBAIHN0cnVjdCBl ZmkgX19yZWFkX21vc3RseSBlZmkgPSB7Cj4gPj4gPiAgCS5zbWJpb3MzID0gRUZJX0lOVkFMSURf VEFCTEVfQUREUgo+ID4+ID4gIH07Cj4gPj4gPgo+ID4+ID4gK3ZvaWQgX19pbml0IGVmaV9tdWx0 aWJvb3QyKHZvaWQpCj4gPj4gPiArewo+ID4+ID4gKyAgICAvKiBUT0RPOiBGYWlsIGlmIGVudGVy ZWQhICovCj4gPj4gPiArfQo+ID4+Cj4gPj4gV2h5IG5vdCBqdXN0IEJVRygpPyBXaGF0IGV4YWN0 bHkgeW91IGRvIGhlcmUgZG9lc24ndCBzZWVtIHRvCj4gPj4gbWF0dGVyLCBhcyB0aGUgc3ltYm9s IGlzIHVucmVhY2hhYmxlIGluIHRoaXMgY2FzZSBhbnl3YXkgKHlvdQo+ID4+IG9ubHkgbmVlZCBp dCB0byBwbGVhc2UgdGhlIGxpbmtlcikuCj4gPgo+ID4gV2Ugc2hvdWxkIHByaW50IG1lYW5pbmdm dWwgbWVzc2FnZSBoZXJlIHVzaW5nIGJvb3Qgc2VydmljZXMuCj4KPiBXaGljaCBib290IHNlcnZp Y2VzPyBXZSdyZSBub3QgcnVubmluZyBvbiBFRkkgaWYgd2UgZ2V0IGhlcmUuIEFuZAo+IGFzIHNh aWQsIHRoaXMgZnVuY3Rpb24gaXMgdW5yZWFjaGFibGUgb24gbm9uLUVGSSBhZmFpY3QsIHNvIC4u LgoKSXQgaXMuIEFzc2VtYmx5IGNvZGUgaW4gaGVhZC5TIGlzIGJ1aWxkIHVuY29uZGl0aW9uYWxs eS4KCj4gPiBUbyBkbyB0aGF0IHdlIG5lZWQgYSBmZXcgbGluZSBvZiBhc3NlbWJseSBwcm9iYWJs eS4gQW5kIEJVRygpCj4gPiBpcyBub3Qgc29sdXRpb24gaGVyZS4KPgo+IC4uLiBJIGRvbid0IGZv bGxvdyB5b3UgaGVyZS4KPgo+ID4+ID4gLS0tIGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUwo+ID4+ ID4gKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwo+ID4+ID4gQEAgLTE5Miw3ICsxOTIsNyBA QCBTRUNUSU9OUwo+ID4+ID4gICAgfSA6dGV4dAo+ID4+ID4KPiA+PiA+ICAgIC8qIEFsaWduIEJT UyB0byBzcGVlZHVwIGl0cyBpbml0aWFsaXphdGlvbi4gKi8KPiA+PiA+IC0gIC4gPSBBTElHTig0 KTsKPiA+PiA+ICsgIC4gPSBBTElHTig4KTsKPiA+PiA+ICAgIC5ic3MgOiB7ICAgICAgICAgICAg ICAgICAgICAgLyogQlNTICovCj4gPj4gPiAgICAgICAgIC4gPSBBTElHTihTVEFDS19TSVpFKTsK PiA+PiA+ICAgICAgICAgX19ic3Nfc3RhcnQgPSAuOwo+ID4+ID4gQEAgLTIwNyw3ICsyMDcsNyBA QCBTRUNUSU9OUwo+ID4+ID4gICAgICAgICAqKC5ic3MucGVyY3B1LnJlYWRfbW9zdGx5KQo+ID4+ ID4gICAgICAgICAuID0gQUxJR04oU01QX0NBQ0hFX0JZVEVTKTsKPiA+PiA+ICAgICAgICAgX19w ZXJfY3B1X2RhdGFfZW5kID0gLjsKPiA+PiA+IC0gICAgICAgLiA9IEFMSUdOKDQpOwo+ID4+ID4g KyAgICAgICAuID0gQUxJR04oOCk7Cj4gPj4gPiAgICAgICAgIF9fYnNzX2VuZCA9IC47Cj4gPj4K PiA+PiBJcyB0aGF0IHJlYWxseSB3b3J0aCBpdD8gSS5lLiBpcyBnb2luZyBmcm9tIFNUT1NEIHRv IFNUT1NRIHJlYWxseSBhCj4gPj4gbWVhbmluZ2Z1bCB3aW4/Cj4gPgo+ID4gUHJvYmFibHkgeWVz IGJ1dCBJIGRvIG5vdCB0aGluayB0aGF0IGFueWJvZHkgd2lsbCBiZSBzZWUgYm9vdCB0aW1lCj4g PiBkaWZmZXJlbmNlLiBPbiB0aGUgb3RoZXIgaGFuZCB3aHkgbm90IGRvIHRoYXQ/IEl0IGRvZXMg bm90IGNvc3QgYSBsb3QuCj4KPiBCdXQgaXQgZ3Jvd3MgYW4gYWxyZWFkeSBsYXJnaXNoIHBhdGNo LgoKSWYgQW5kcmV3IGRvIG5vdCBvYmplY3QgSSBjYW4gbGVhdmUvdXNlIHN0b3NkL3N0b3NsIGFz IGlzLgoKRGFuaWVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=