From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v2 02/11] xen/hvmlite: Bootstrap HVMlite guest Date: Mon, 25 Apr 2016 09:21:27 -0400 Message-ID: <571E19D7.1080301__47635.2543839768$1461590694$gmane$org@oracle.com> References: <1454341137-14110-1-git-send-email-boris.ostrovsky@oracle.com> <1454341137-14110-3-git-send-email-boris.ostrovsky@oracle.com> <20160424202314.GA3973@pd.tnic> 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 ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1augSv-0005Bd-DF for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 13:22:17 +0000 In-Reply-To: <20160424202314.GA3973@pd.tnic> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Borislav Petkov , "H. Peter Anvin" , Ingo Molnar , Thomas Gleixner Cc: mcgrof@suse.com, linux-kernel@vger.kernel.org, david.vrabel@citrix.com, xen-devel@lists.xenproject.org, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org T24gMDQvMjQvMjAxNiAwNDoyMyBQTSwgQm9yaXNsYXYgUGV0a292IHdyb3RlOgo+IE9uIE1vbiwg RmViIDAxLCAyMDE2IGF0IDEwOjM4OjQ4QU0gLTA1MDAsIEJvcmlzIE9zdHJvdnNreSB3cm90ZToK Pj4gU3RhcnQgSFZNbGl0ZSBndWVzdCBhdCBYRU5fRUxGTk9URV9QSFlTMzJfRU5UUlkgYWRkcmVz cy4gU2V0dXAgaHlwZXJjYWxsCj4+IHBhZ2UsIGluaXRpYWxpemUgYm9vdF9wYXJhbXMsIGVuYWJs ZSBlYXJseSBwYWdlIHRhYmxlcy4KPj4KPj4gU2luY2UgdGhpcyBzdHViIGlzIGV4ZWN1dGVkIGJl Zm9yZSBrZXJuZWwgZW50cnkgcG9pbnQgd2UgY2Fubm90IHVzZQo+PiB2YXJpYWJsZXMgaW4gLmJz cyB3aGljaCBpcyBjbGVhcmVkIGJ5IGtlcm5lbC4gV2UgZXhwbGljaXRseSBwbGFjZQo+PiB2YXJp YWJsZXMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQgaGVyZSBpbnRvIC5kYXRhLgo+Pgo+PiBTaWduZWQt b2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgo+PiAt LS0KPj4gICBhcmNoL3g4Ni94ZW4vTWFrZWZpbGUgICAgICB8ICAgIDEgKwo+PiAgIGFyY2gveDg2 L3hlbi9lbmxpZ2h0ZW4uYyAgIHwgICA4NiArKysrKysrKysrKysrKysrKysrKystCj4+ICAgYXJj aC94ODYveGVuL3hlbi1odm1saXRlLlMgfCAgMTc1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4+ICAgaW5jbHVkZS94ZW4veGVuLmggICAgICAgICAgfCAgICA2 ICsrCj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMo LSkKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC94ODYveGVuL3hlbi1odm1saXRlLlMKPj4K Pj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9NYWtlZmlsZSBiL2FyY2gveDg2L3hlbi9NYWtl ZmlsZQo+PiBpbmRleCBlNDdlNTI3Li4xZDkxM2Q3IDEwMDY0NAo+PiAtLS0gYS9hcmNoL3g4Ni94 ZW4vTWFrZWZpbGUKPj4gKysrIGIvYXJjaC94ODYveGVuL01ha2VmaWxlCj4+IEBAIC0yMywzICsy Myw0IEBAIG9iai0kKENPTkZJR19YRU5fREVCVUdfRlMpCSs9IGRlYnVnZnMubwo+PiAgIG9iai0k KENPTkZJR19YRU5fRE9NMCkJCSs9IHZnYS5vCj4+ICAgb2JqLSQoQ09ORklHX1NXSU9UTEJfWEVO KQkrPSBwY2ktc3dpb3RsYi14ZW4ubwo+PiAgIG9iai0kKENPTkZJR19YRU5fRUZJKQkJKz0gZWZp Lm8KPj4gK29iai0kKENPTkZJR19YRU5fUFZIVk0pIAkrPSB4ZW4taHZtbGl0ZS5vCj4+IGRpZmYg LS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVu LmMKPj4gaW5kZXggNTc3NDgwMC4uNWYwNWZhMiAxMDA2NDQKPj4gLS0tIGEvYXJjaC94ODYveGVu L2VubGlnaHRlbi5jCj4+ICsrKyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYwo+PiBAQCAtMTE4 LDcgKzExOCw4IEBAIERFRklORV9QRVJfQ1BVKHN0cnVjdCB2Y3B1X2luZm8gKiwgeGVuX3ZjcHUp Owo+PiAgICAqLwo+PiAgIERFRklORV9QRVJfQ1BVKHN0cnVjdCB2Y3B1X2luZm8sIHhlbl92Y3B1 X2luZm8pOwo+PiAgIAo+PiAtZW51bSB4ZW5fZG9tYWluX3R5cGUgeGVuX2RvbWFpbl90eXBlID0g WEVOX05BVElWRTsKPj4gK2VudW0geGVuX2RvbWFpbl90eXBlIHhlbl9kb21haW5fdHlwZQo+PiAr CV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhIikpKSA9IFhFTl9OQVRJVkU7Cj4+ICAgRVhQ T1JUX1NZTUJPTF9HUEwoeGVuX2RvbWFpbl90eXBlKTsKPj4gICAKPj4gICB1bnNpZ25lZCBsb25n ICptYWNoaW5lX3RvX3BoeXNfbWFwcGluZyA9ICh2b2lkICopTUFDSDJQSFlTX1ZJUlRfU1RBUlQ7 Cj4+IEBAIC0xNzEsNiArMTcyLDE3IEBAIHN0cnVjdCB0bHNfZGVzY3Mgewo+PiAgICAqLwo+PiAg IHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGxzX2Rlc2NzLCBzaGFkb3dfdGxzX2Rlc2Mp Owo+PiAgIAo+PiArI2lmZGVmIENPTkZJR19YRU5fUFZIVk0KPj4gKy8qCj4+ICsgKiBIVk1saXRl IHZhcmlhYmxlcy4gVGhlc2UgbmVlZCB0byBsaXZlIGluIGRhdGEgc2VnbWVudCBzaW5jZSB0aGV5 IGFyZQo+PiArICogaW5pdGlhbGl6ZWQgYmVmb3JlIHN0YXJ0dXBfezMyfDY0fSwgd2hpY2ggY2xl YXIgLmJzcywgYXJlIGludm9rZWQuCj4gU28gdGhpcyBqdW1wcyBpbnRvIHN0YXJ0dXBfMzIvNjQg YW5kIEkgZG9uJ3QgdGhpbmsgd2UgaGF2ZSB0YWxrZWQgYWJvdXQKPiBpdCB5ZXQsIGhhdmUgd2U/ IEknbSBub3QgYXdhcmUgb2YgYW55IHRocmVhZHMgYWJvdXQgaXQuIEFyZSB3ZSBmaW5lIHdpdGgK PiBpdCwgYXJlIHdlIG5vdD8KPgo+IEkgdGhpbmsgd2UgbmVlZCB0byBhZ3JlZSBvbiBBUEkgd2hl cmUgeGVuIGd1ZXN0cyBzaG91bGQganVtcCBpbnRvCj4gYXJjaC94ODYvIGFuZCBhZGhlcmUgdG8g aXQuIE90aGVyd2lzZSwgd2Ugd2lsbCBicmVhayB4ZW4gYWdhaW4gaWYgd2UgY2hhbmdlCj4gc3R1 ZmYgaW4geDg2IGFuZCB3ZSBkbyBsaWtlIHRvIGNoYW5nZSBzdHVmZiBpbiB4ODYgYWxsIHRoZSB0 aW1lLgo+Cj4gQWRkaW5nIHRpcCBndXlzIGFuZCBsZWF2aW5nIGluIHRoZSByZXN0IGZvciByZWZl cmVuY2UuCgpJIHdhcyBmb2xsb3dpbmcgIERvY3VtZW50YXRpb24veDg2L2Jvb3QudHh0IChwbHVz IGNvbW1lbnRzIGluIGNvZGUgCnByZWNlZGluZyB0aG9zZSB0d28gcm91dGluZXMpIHdoaWNoIEkg Y29uc2lkZXJlZCB0byBiZSB0aGUgQVBJLgoKV2UgYXJlIHN1cHBvc2VkIHRvIGNvbWUgdG8gc3Rh cnR1cF8zMiB3aXRoIHBhZ2luZyBvZmYgYW5kICVlc2kgcG9pbnRpbmcgCnRvIGJvb3RfcGFyYW1z LiBGb3IgNjQtYml0IHBhZ2luZyBpcyBvbiwgJXJzaSBwb2ludHMgdG8gemVyby1wYWdlLiBQbHVz IApjZXJ0YWluIHJlcXVpcmVtZW50cyBvbiBzZWdtZW50IHJlZ2lzdGVycyBhbmQgaW50ZXJydXB0 IGJlaW5nIGRpc2FibGVkLiAKKEkganVzdCBub3RpY2VkIHRoYXQgZm9yIDMyLWJpdCAlZWJwLCAl ZWRpIGFuZCAlZWJ4IGFyZSBzdXBwb3NlZCB0byBiZSAKemVybywgc28gSSdsbCBuZWVkIHRvIGRv IHRoYXQpCgotYm9yaXMKCj4KPiAuLi4KPgo+Cj4KPj4gKyAqLwo+PiAraW50IHhlbl9odm1saXRl IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhIikpKSA9IDA7Cj4+ICtzdHJ1Y3QgaHZtX3N0 YXJ0X2luZm8gaHZtbGl0ZV9zdGFydF9pbmZvIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRh IikpKTsKPj4gK3VpbnQgaHZtbGl0ZV9zdGFydF9pbmZvX3N6ID0gc2l6ZW9mKGh2bWxpdGVfc3Rh cnRfaW5mbyk7Cj4+ICtzdHJ1Y3QgYm9vdF9wYXJhbXMgeGVuX2h2bWxpdGVfYm9vdF9wYXJhbXMg X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEiKSkpOwo+PiArI2VuZGlmCj4+ICsKPj4gICBz dGF0aWMgdm9pZCBjbGFtcF9tYXhfY3B1cyh2b2lkKQo+PiAgIHsKPj4gICAjaWZkZWYgQ09ORklH X1NNUAo+PiBAQCAtMTczMSw2ICsxNzQzLDc4IEBAIGFzbWxpbmthZ2UgX192aXNpYmxlIHZvaWQg X19pbml0IHhlbl9zdGFydF9rZXJuZWwodm9pZCkKPj4gICAjZW5kaWYKPj4gICB9Cj4+ICAgCj4+ ICsjaWZkZWYgQ09ORklHX1hFTl9QVkhWTQo+PiArc3RhdGljIHZvaWQgX19pbml0IGh2bWxpdGVf Ym9vdHBhcmFtcyh2b2lkKQo+PiArewo+PiArCXN0cnVjdCB4ZW5fbWVtb3J5X21hcCBtZW1tYXA7 Cj4+ICsJaW50IGk7Cj4+ICsKPj4gKwltZW1zZXQoJnhlbl9odm1saXRlX2Jvb3RfcGFyYW1zLCAw LCBzaXplb2YoeGVuX2h2bWxpdGVfYm9vdF9wYXJhbXMpKTsKPj4gKwo+PiArCW1lbW1hcC5ucl9l bnRyaWVzID0gQVJSQVlfU0laRSh4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5lODIwX21hcCk7Cj4+ ICsJc2V0X3hlbl9ndWVzdF9oYW5kbGUobWVtbWFwLmJ1ZmZlciwgeGVuX2h2bWxpdGVfYm9vdF9w YXJhbXMuZTgyMF9tYXApOwo+PiArCWlmIChIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fbWVt b3J5X21hcCwgJm1lbW1hcCkpIHsKPj4gKwkJeGVuX3Jhd19jb25zb2xlX3dyaXRlKCJYRU5NRU1f bWVtb3J5X21hcCBmYWlsZWRcbiIpOwo+PiArCQlCVUcoKTsKPj4gKwl9Cj4+ICsKPj4gKwl4ZW5f aHZtbGl0ZV9ib290X3BhcmFtcy5lODIwX21hcFttZW1tYXAubnJfZW50cmllc10uYWRkciA9Cj4+ ICsJCUlTQV9TVEFSVF9BRERSRVNTOwo+PiArCXhlbl9odm1saXRlX2Jvb3RfcGFyYW1zLmU4MjBf bWFwW21lbW1hcC5ucl9lbnRyaWVzXS5zaXplID0KPj4gKwkJSVNBX0VORF9BRERSRVNTIC0gSVNB X1NUQVJUX0FERFJFU1M7Cj4+ICsJeGVuX2h2bWxpdGVfYm9vdF9wYXJhbXMuZTgyMF9tYXBbbWVt bWFwLm5yX2VudHJpZXMrK10udHlwZSA9Cj4+ICsJCUU4MjBfUkVTRVJWRUQ7Cj4+ICsKPj4gKwlz YW5pdGl6ZV9lODIwX21hcCh4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5lODIwX21hcCwKPj4gKwkJ CSAgQVJSQVlfU0laRSh4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5lODIwX21hcCksCj4+ICsJCQkg ICZtZW1tYXAubnJfZW50cmllcyk7Cj4+ICsKPj4gKwl4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5l ODIwX2VudHJpZXMgPSBtZW1tYXAubnJfZW50cmllczsKPj4gKwlmb3IgKGkgPSAwOyBpIDwgeGVu X2h2bWxpdGVfYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzOyBpKyspCj4+ICsJCWU4MjBfYWRkX3Jl Z2lvbih4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5lODIwX21hcFtpXS5hZGRyLAo+PiArCQkJCXhl bl9odm1saXRlX2Jvb3RfcGFyYW1zLmU4MjBfbWFwW2ldLnNpemUsCj4+ICsJCQkJeGVuX2h2bWxp dGVfYm9vdF9wYXJhbXMuZTgyMF9tYXBbaV0udHlwZSk7Cj4+ICsKPj4gKwl4ZW5faHZtbGl0ZV9i b290X3BhcmFtcy5oZHIuY21kX2xpbmVfcHRyID0KPj4gKwkJaHZtbGl0ZV9zdGFydF9pbmZvLmNt ZGxpbmVfcGFkZHI7Cj4+ICsKPj4gKwkvKiBUaGUgZmlyc3QgbW9kdWxlIGlzIGFsd2F5cyByYW1k aXNrICovCj4+ICsJaWYgKGh2bWxpdGVfc3RhcnRfaW5mby5ucl9tb2R1bGVzKSB7Cj4+ICsJCXN0 cnVjdCBodm1fbW9kbGlzdF9lbnRyeSAqbW9kYWRkciA9Cj4+ICsJCQlfX3ZhKGh2bWxpdGVfc3Rh cnRfaW5mby5tb2RsaXN0X3BhZGRyKTsKPj4gKwkJeGVuX2h2bWxpdGVfYm9vdF9wYXJhbXMuaGRy LnJhbWRpc2tfaW1hZ2UgPSBtb2RhZGRyLT5wYWRkcjsKPj4gKwkJeGVuX2h2bWxpdGVfYm9vdF9w YXJhbXMuaGRyLnJhbWRpc2tfc2l6ZSA9IG1vZGFkZHItPnNpemU7Cj4+ICsJfQo+PiArCj4+ICsJ LyoKPj4gKwkgKiBTZWUgRG9jdW1lbnRhdGlvbi94ODYvYm9vdC50eHQuCj4+ICsJICoKPj4gKwkg KiBWZXJzaW9uIDIuMTIgc3VwcG9ydHMgWGVuIGVudHJ5IHBvaW50IGJ1dCB3ZSB3aWxsIHVzZSBk ZWZhdWx0IHg4Ni9QQwo+PiArCSAqIGVudmlyb25tZW50IChpLmUuIGhhcmR3YXJlX3N1YmFyY2gg MCkuCj4+ICsJICovCj4+ICsJeGVuX2h2bWxpdGVfYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPSAw eDIxMjsKPj4gKwl4ZW5faHZtbGl0ZV9ib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXIgPSA5 OyAvKiBYZW4gbG9hZGVyICovCj4+ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBUaGlzIHJvdXRpbmUg KGFuZCB0aG9zZSB0aGF0IGl0IG1pZ2h0IGNhbGwpIHNob3VsZCBub3QgdXNlCj4+ICsgKiBhbnl0 aGluZyB0aGF0IGxpdmVzIGluIC5ic3Mgc2luY2UgdGhhdCBzZWdtZW50IHdpbGwgYmUgY2xlYXJl ZCBsYXRlcgo+PiArICovCj4+ICt2b2lkIF9faW5pdCB4ZW5fcHJlcGFyZV9odm1saXRlKHZvaWQp Cj4+ICt7Cj4+ICsJdTMyIGVheCwgZWN4LCBlZHgsIG1zcjsKPj4gKwl1NjQgcGZuOwo+PiArCj4+ ICsJeGVuX2h2bWxpdGUgPSAxOwo+PiArCj4+ICsJY3B1aWQoeGVuX2NwdWlkX2Jhc2UoKSArIDIs ICZlYXgsICZtc3IsICZlY3gsICZlZHgpOwo+PiArCXBmbiA9IF9fcGEoaHlwZXJjYWxsX3BhZ2Up Owo+PiArCXdybXNyX3NhZmUobXNyLCAodTMyKXBmbiwgKHUzMikocGZuID4+IDMyKSk7Cj4+ICsK Pj4gKwlodm1saXRlX2Jvb3RwYXJhbXMoKTsKPj4gK30KPj4gKyNlbmRpZgo+PiArCj4+ICAgdm9p ZCBfX3JlZiB4ZW5faHZtX2luaXRfc2hhcmVkX2luZm8odm9pZCkKPj4gICB7Cj4+ICAgCWludCBj cHU7Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLWh2bWxpdGUuUyBiL2FyY2gveDg2 L3hlbi94ZW4taHZtbGl0ZS5TCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAw MDAuLmZjN2MwOGMKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9hcmNoL3g4Ni94ZW4veGVuLWh2 bWxpdGUuUwo+PiBAQCAtMCwwICsxLDE3NSBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCBDIDIw MTYsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4+ ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4+ICsgKiB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgo+PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsg KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4+ICsgKiBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25n Cj4+ICsgKiB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KPj4gKyAqLwo+PiArCj4+ICsJLmNvZGUzMgo+PiArCS50ZXh0Cj4+ICsj ZGVmaW5lIF9wYSh4KSAgICAgICAgICAoKHgpIC0gX19TVEFSVF9LRVJORUxfbWFwKQo+PiArCj4+ ICsjaW5jbHVkZSA8bGludXgvZWxmbm90ZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4K Pj4gKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL3NlZ21lbnQu aD4KPj4gKyNpbmNsdWRlIDxhc20vYXNtLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KPj4g KyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLWZsYWdzLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL21zci5o Pgo+PiArI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZWxmbm90ZS5oPgo+PiArCj4+ICsJX19IRUFE Cj4+ICsJLmNvZGUzMgo+PiArCj4+ICsvKiBFbnRyeSBwb2ludCBmb3IgSFZNbGl0ZSBndWVzdHMg Ki8KPj4gK0VOVFJZKGh2bWxpdGVfc3RhcnRfeGVuKQo+PiArCWNsaQo+PiArCWNsZAo+PiArCj4+ ICsJbW92ICRfcGEoZ2R0KSwgJWVheAo+PiArCWxnZHQgKCVlYXgpCj4+ICsKPj4gKwltb3ZsICQo X19CT09UX0RTKSwlZWF4Cj4+ICsJbW92bCAlZWF4LCVkcwo+PiArCW1vdmwgJWVheCwlZXMKPj4g Kwltb3ZsICVlYXgsJXNzCj4+ICsKPj4gKwkvKiBTdGFzaCBodm1fc3RhcnRfaW5mbyAqLwo+PiAr CW1vdiAkX3BhKGh2bWxpdGVfc3RhcnRfaW5mbyksICVlZGkKPj4gKwltb3YgJWVieCwgJWVzaQo+ PiArCW1vdiAkX3BhKGh2bWxpdGVfc3RhcnRfaW5mb19zeiksICVlY3gKPj4gKwltb3YgKCVlY3gp LCAlZWN4Cj4+ICsJcmVwCj4+ICsJbW92c2IKPj4gKwo+PiArCW1vdmwgJF9wYShlYXJseV9zdGFj a19lbmQpLCAlZWF4Cj4+ICsJbW92bCAlZWF4LCAlZXNwCj4+ICsKPj4gKwkvKiBFbmFibGUgUEFF IG1vZGUgKi8KPj4gKwltb3ZsICVjcjQsICVlYXgKPj4gKwlvcmwgJFg4Nl9DUjRfUEFFLCAlZWF4 Cj4+ICsJbW92bCAlZWF4LCAlY3I0Cj4+ICsKPj4gKyNpZmRlZiBDT05GSUdfWDg2XzY0Cj4+ICsJ LyogRW5hYmxlIExvbmcgbW9kZSAqLwo+PiArCW1vdmwgJE1TUl9FRkVSLCAlZWN4Cj4+ICsJcmRt c3IKPj4gKwlidHNsICRfRUZFUl9MTUUsICVlYXgKPj4gKwl3cm1zcgo+PiArCj4+ICsJLyogRW5h YmxlIHByZS1jb25zdHJ1Y3RlZCBwYWdlIHRhYmxlcyAqLwo+PiArCW1vdiAkX3BhKGluaXRfbGV2 ZWw0X3BndCksICVlYXgKPj4gKwltb3ZsICVlYXgsICVjcjMKPj4gKwltb3ZsICQoWDg2X0NSMF9Q RyB8IFg4Nl9DUjBfUEUpLCAlZWF4Cj4+ICsJbW92bCAlZWF4LCAlY3IwCj4+ICsKPj4gKwkvKiBK dW1wIHRvIDY0LWJpdCBtb2RlLiAqLwo+PiArCXB1c2hsICRfX0tFUk5FTF9DUwo+PiArCWxlYWwg X3BhKDFmKSwgJWVheAo+PiArCXB1c2hsICVlYXgKPj4gKwlscmV0Cj4+ICsKPj4gKwkvKiA2NC1i aXQgZW50cnkgcG9pbnQgKi8KPj4gKwkuY29kZTY0Cj4+ICsxOgo+PiArCWNhbGwgeGVuX3ByZXBh cmVfaHZtbGl0ZQo+PiArCj4+ICsJLyogc3RhcnR1cF82NCBleHBlY3RzIGJvb3RfcGFyYW1zIGlu ICVyc2kgKi8KPj4gKwltb3YgJF9wYSh4ZW5faHZtbGl0ZV9ib290X3BhcmFtcyksICVyc2kKPj4g Kwltb3ZxICRfcGEoc3RhcnR1cF82NCksICVyYXgKPj4gKwlqbXAgKiVyYXgKPj4gKwo+PiArI2Vs c2UgLyogQ09ORklHX1g4Nl82NCAqLwo+PiArCj4+ICsJLyogQ2xlYXIgYm9vdCBwYWdlIHRhYmxl cyAqLwo+PiArCW1vdmwgJF9wYShlYXJseV9wZ3RhYmxlKSwgJWVkaQo+PiArCXhvcmwgJWVheCwg JWVheAo+PiArCW1vdmwgJCgoUEFHRV9TSVpFKjUpLzQpLCAlZWN4Cj4+ICsJcmVwIHN0b3NsCj4+ ICsKPj4gKwkvKiBMZXZlbCAzICovCj4+ICsJbW92bCAkX3BhKGVhcmx5X3BndGFibGUpLCAlZWRp Cj4+ICsJbGVhbCAoUEFHRV9TSVpFICtfUEFHRV9QUkVTRU5UKSglZWRpKSwgJWVheAo+PiArCW1v dmwgJDQsICVlY3gKPj4gKzE6Cj4+ICsJbW92bCAlZWF4LCAweDAwKCVlZGkpCj4+ICsJYWRkbCAk OCwgJWVkaQo+PiArCWRlY2wgJWVjeAo+PiArCWpueiAxYgo+PiArCj4+ICsJLyogTGV2ZWwgMiAo Mk0gZW50cmllcykgKi8KPj4gKwltb3ZsICQoX3BhKGVhcmx5X3BndGFibGUpICsgUEFHRV9TSVpF KSwgJWVkaQo+PiArCW1vdmwgJChfUEFHRV9QU0UgfCBfUEFHRV9SVyB8IF9QQUdFX1BSRVNFTlQp LCAlZWF4Cj4+ICsJbW92bCAkMjA0OCwgJWVjeAo+PiArMjoKPj4gKwltb3ZsICVlYXgsIDAoJWVk aSkKPj4gKwlhZGRsICQweDAwMjAwMDAwLCAlZWF4Cj4+ICsJYWRkbCAkOCwgJWVkaQo+PiArCWRl Y2wgJWVjeAo+PiArCWpueiAyYgo+PiArCj4+ICsJLyogRW5hYmxlIHRoZSBib290IHBhZ2luZyAq Lwo+PiArCW1vdmwgJF9wYShlYXJseV9wZ3RhYmxlKSwgJWVheAo+PiArCW1vdmwgJWVheCwgJWNy Mwo+PiArCW1vdmwgJWNyMCwgJWVheAo+PiArCW9ybCAkKFg4Nl9DUjBfUEcgfCBYODZfQ1IwX1BF KSwgJWVheAo+PiArCW1vdmwgJWVheCwgJWNyMAo+PiArCj4+ICsJbGptcCAkX19CT09UX0NTLCQz Zgo+PiArMzoKPj4gKwljYWxsIHhlbl9wcmVwYXJlX2h2bWxpdGUKPj4gKwltb3YgJF9wYSh4ZW5f aHZtbGl0ZV9ib290X3BhcmFtcyksICVlc2kKPj4gKwo+PiArCS8qIHN0YXJ0dXBfMzIgZG9lc24n dCBleHBlY3QgcGFnaW5nIGFuZCBQQUUgdG8gYmUgb24gKi8KPj4gKwlsam1wICRfX0JPT1RfQ1Ms JF9wYSg0ZikKPj4gKzQ6Cj4+ICsJbW92bCAlY3IwLCAlZWF4Cj4+ICsJYW5kbCAkflg4Nl9DUjBf UEcsICVlYXgKPj4gKwltb3ZsICVlYXgsICVjcjAKPj4gKwltb3ZsICVjcjQsICVlYXgKPj4gKwlh bmRsICR+WDg2X0NSNF9QQUUsICVlYXgKPj4gKwltb3ZsICVlYXgsICVjcjQKPj4gKwo+PiArCWxq bXAgICAgJDB4MTAsICRfcGEoc3RhcnR1cF8zMikKPj4gKyNlbmRpZgo+PiArCj4+ICsJLmRhdGEK Pj4gK2dkdDoKPj4gKwkud29yZAlnZHRfZW5kIC0gZ2R0Cj4+ICsJLmxvbmcJX3BhKGdkdCkKPj4g Kwkud29yZAkwCj4+ICsJLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAwIC8qIE5VTEwgZGVzY3JpcHRv ciAqLwo+PiArI2lmZGVmIENPTkZJR19YODZfNjQKPj4gKwkucXVhZAkweDAwYWY5YTAwMDAwMGZm ZmYgLyogX19LRVJORUxfQ1MgKi8KPj4gKyNlbHNlCj4+ICsJLnF1YWQJMHgwMGNmOWEwMDAwMDBm ZmZmIC8qIF9fS0VSTkVMX0NTICovCj4+ICsjZW5kaWYKPj4gKwkucXVhZAkweDAwY2Y5MjAwMDAw MGZmZmYgLyogX19LRVJORUxfRFMgKi8KPj4gK2dkdF9lbmQ6Cj4+ICsKPj4gKwkuYnNzCj4+ICsJ LmJhbGlnbiA0Cj4+ICtlYXJseV9zdGFjazoKPj4gKwkuZmlsbCAxNiwgMSwgMAo+PiArZWFybHlf c3RhY2tfZW5kOgo+PiArCj4+ICsjaWZkZWYgQ09ORklHX1g4Nl8zMgo+PiArCS5zZWN0aW9uICIu cGd0YWJsZSIsImEiLEBub2JpdHMKPj4gKwkuYmFsaWduIDQwOTYKPj4gK2Vhcmx5X3BndGFibGU6 Cj4+ICsJLmZpbGwgNSo0MDk2LCAxLCAwCj4+ICsjZW5kaWYKPj4gKwo+PiArCUVMRk5PVEUoWGVu LCBYRU5fRUxGTk9URV9QSFlTMzJfRU5UUlksCj4+ICsJICAgICAgICAgICAgIF9BU01fUFRSICho dm1saXRlX3N0YXJ0X3hlbiAtIF9fU1RBUlRfS0VSTkVMX21hcCkpCj4+IGRpZmYgLS1naXQgYS9p bmNsdWRlL3hlbi94ZW4uaCBiL2luY2x1ZGUveGVuL3hlbi5oCj4+IGluZGV4IDBjMGUzZWYuLjZh MGQzZjMgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUveGVuL3hlbi5oCj4+ICsrKyBiL2luY2x1ZGUv eGVuL3hlbi5oCj4+IEBAIC0yOSw2ICsyOSwxMiBAQCBleHRlcm4gZW51bSB4ZW5fZG9tYWluX3R5 cGUgeGVuX2RvbWFpbl90eXBlOwo+PiAgICNkZWZpbmUgeGVuX2luaXRpYWxfZG9tYWluKCkJKDAp Cj4+ICAgI2VuZGlmCS8qIENPTkZJR19YRU5fRE9NMCAqLwo+PiAgIAo+PiArI2lmZGVmIENPTkZJ R19YRU5fUFZIVk0KPj4gK2V4dGVybiBpbnQgeGVuX2h2bWxpdGU7Cj4+ICsjZWxzZQo+PiArI2Rl ZmluZSB4ZW5faHZtbGl0ZQkJKDApCj4+ICsjZW5kaWYKPj4gKwo+PiAgICNpZmRlZiBDT05GSUdf WEVOX1BWSAo+PiAgIC8qIFRoaXMgZnVuY3Rpb25hbGl0eSBleGlzdHMgb25seSBmb3IgeDg2LiBU aGUgWEVOX1BWSFZNIHN1cHBvcnQgZXhpc3RzCj4+ICAgICogb25seSBpbiB4ODYgd29ybGQgLSBo ZW5jZSBvbiBBUk0gaXQgd2lsbCBiZSBhbHdheXMgZGlzYWJsZWQuCj4+IC0tIAo+PiAxLjcuMQo+ Pgo+PgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==