From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v12 02/10] x86: add multiboot2 protocol support Date: Fri, 20 Jan 2017 02:34:12 +0100 Message-ID: <1484876060-2236-3-git-send-email-daniel.kiper@oracle.com> References: <1484876060-2236-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1cUO6X-0000f1-OF for xen-devel@lists.xenproject.org; Fri, 20 Jan 2017 01:35:01 +0000 In-Reply-To: <1484876060-2236-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, konrad.wilk@oracle.com, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org QWRkIG11bHRpYm9vdDIgcHJvdG9jb2wgc3VwcG9ydC4gQWx0ZXIgbWluIG1lbW9yeSBsaW1pdCBo YW5kbGluZyBhcyB3ZQpub3cgbWF5IG5vdCBmaW5kIGl0IGZyb20gZWl0aGVyIG11bHRpYm9vdCAo djEpIG9yIG11bHRpYm9vdDIuCgpUaGlzIHdheSB3ZSBhcmUgbGF5aW5nIHRoZSBmb3VuZGF0aW9u IGZvciBFRkkgKyBHUlVCMiArIFhlbiBkZXZlbG9wbWVudC4KClNpZ25lZC1vZmYtYnk6IERhbmll bCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBEb3VnIEdvbGRzdGVpbiA8Y2FyZG9l QGNhcmRvZS5jb20+Ci0tLQp2MTIgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gcmVwbGFjZSBU QUJzIHdpdGggc3BhY2VzIGluIHhlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKICAgICAgKHN1 Z2dlc3RlZCBieSBEb3VnIEdvbGRzdGVpbikuCgp2OSAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAt IHVzZSAuTCBsYWJlbCBpbnN0ZWFkIG9mIG51bWVyaWMgb25lIGluIG11bHRpYm9vdDIgZGF0YSBz Y2FubmluZyBsb29wOwogICAgIEkgaG9wZSB0aGF0IHRoaXMgY2hhbmdlIGRvZXMgbm90IGludmFs aWRhdGUgSmFuJ3MgUmV2aWV3ZWQtYnkKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4K CnY4IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIHNpemVvZig8dmFyPi88ZXhwcj4pIGlu c3RlYWQgb2Ygc2l6ZW9mKDx0eXBlPikKICAgICBpZiBpdCBpcyBwb3NzaWJsZQogICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjcgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSByZW5h bWUgbWJpX21iaS9tYmkyX21iaSB0byBtYmlfcmVsb2MvbWJpMl9yZWxvYyByZXNwZWN0aXZlbHkK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbml0aWFsaXplIG1iaV9vdXQt PmZsYWdzIHVzaW5nICJ8PSIgaW5zdGVhZCBvZiAiPSIKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSB1c2Ugc2l6ZW9mKCptbWFwX2RzdCkgaW5zdGVhZCBvZiBzaXplb2YobWVt b3J5X21hcF90KQogICAgIGlmIGl0IG1ha2VzIHNlbnNlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkuCgp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHByb3Blcmx5IGluZGV4IG11 bHRpYm9vdDJfdGFnX21tYXBfdC5lbnRyaWVzW10KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBkbyBub3QgaW5kZXggbWJpX291dF9tb2RzW10gYmV5b25kIGl0cyBlbmQKICAg ICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAtIHJlZHVjZSBudW1iZXIgb2YgY2Fz dHMKICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIgYW5kIEphbiBCZXVsaWNoKSwKICAg LSBhZGQgYnJhY2VzIHRvIGluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkKICAgICAoc3VnZ2VzdGVk IGJ5IEFuZHJldyBDb29wZXIpLgoKdjUgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBjaGVjayBt dWx0aWJvb3QyX3RhZ19tbWFwX3QuZW50cnlfc2l6ZSBiZWZvcmUKICAgICBtdWx0aWJvb3QyX3Rh Z19tbWFwX3QuZW50cmllc1tdIHVzZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIHByb3Blcmx5IGluZGV4IG11bHRpYm9vdDJfdGFnX21tYXBfdC5lbnRyaWVzW10KICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgInR5cGUgbmFtZVtdIiBpbnN0YWQg b2YgInR5cGUgbmFtZVswXSIKICAgICBpbiB4ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVtb3ZlIHVubmVlZGVkIGNvbW1l bnQKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY0IC0gc3VnZ2VzdGlvbnMvZml4 ZXM6CiAgIC0gYXZvaWQgYXNzZW1ibHkgdXNhZ2UgaW4geGVuL2FyY2gveDg2L2Jvb3QvcmVsb2Mu YywKICAgLSBmaXggYm91bmRhcnkgY2hlY2sgaXNzdWUgYW5kIG9wdGltaXplCiAgICAgZm9yKCkg bG9vcHMgaW4gbWJpMl9tYmkoKSwKICAgLSBtb3ZlIHRvIHN0ZGNhbGwgY2FsbGluZyBjb252ZW50 aW9uLAogICAtIHJlbW92ZSB1bm5lZWRlZCB0eXBlb2YoKSBmcm9tIEFMSUdOX1VQKCkgbWFjcm8K ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgYW5kIHVzZSBOVUxMIGRl ZmluaXRpb24gaW4geGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAtIGRvIG5vdCByZWFkIGRhdGEgYmV5b25kIHRoZSBlbmQgb2YgbXVs dGlib290MgogICAgIGluZm9ybWF0aW9uIGluIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGFkZCA6cmVxIHRvIHNvbWUgLm1hY3Jv IGFyZ3VtZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBjbW92 Y2MgaWYgcG9zc2libGUsCiAgIC0gYWRkIC5MIHRvIG11bHRpYm9vdDJfaGVhZGVyX2VuZCBsYWJl bAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGFkZCAuTCB0byBtdWx0aWJv b3QyX3Byb3RvIGxhYmVsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1w cm92ZSBsYWJlbCBuYW1lcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjMgLSBz dWdnZXN0aW9ucy9maXhlczoKICAgLSByZW9yZGVyIHJlbG9jKCkgYXJndW1lbnRzCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVtb3ZlIC5MIGZyb20gbXVsdGlib290MiBo ZWFkZXIgbGFiZWxzCiAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyLCBKYW4gQmV1bGlj aCBhbmQgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSB0YWtlIGludG8gYWNjb3VudCBhbGln bm1lbnQgd2hlbiBza2lwcGluZyBtdWx0aWJvb3QyIGZpeGVkIHBhcnQKICAgICAoc3VnZ2VzdGVk IGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gY3JlYXRlIG1vZHVsZXMgZGF0YSBpZiBt b2R1bGVzIGNvdW50ICE9IDAKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBp bXByb3ZlIG1hY3JvcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHJlZHVj ZSBudW1iZXIgb2YgY2FzdHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1 c2UgY29uc3QgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBkcm9wIHN0YXRpYyBhbmQgX191c2VkX18gYXR0cmlidXRlIGZyb20gcmVsb2MoKQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHJlbW92ZSBpc29sYXRlZC9zdHJheSBfX3Bh Y2tlZCBhdHRyaWJ1dGUgZnJvbQogICAgIG11bHRpYm9vdDJfbWVtb3J5X21hcF90IHR5cGUgZGVm aW5pdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHJlZm9ybWF0IHhl bi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVz enV0ZWsgV2lsayksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgS29u cmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSByZW1vdmUgaGFyZCB0YWJzCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCBhbmQgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKS4KCnYyIC0gc3VnZ2Vz dGlvbnMvZml4ZXM6CiAgIC0gZ2VuZXJhdGUgbXVsdGlib290MiBoZWFkZXIgdXNpbmcgbWFjcm9z CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHNpbXBsaWZ5IGFzc2VtYmx5IGlu IHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIGRvIG5vdCBpbmNsdWRlIGluY2x1ZGUveGVuL2NvbXBpbGVyLmgKICAgICBpbiB4ZW4v YXJjaC94ODYvYm9vdC9yZWxvYy5jCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gZG8gbm90IHJlYWQgZGF0YSBiZXlvbmQgdGhlIGVuZCBvZiBtdWx0aWJvb3QyIGluZm9ybWF0 aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIG5vdCBmaXhlZCB5ZXQ6 CiAgIC0gZHluYW1pYyBkZXBlbmRlbmN5IGdlbmVyYXRpb24gZm9yIHhlbi9hcmNoL3g4Ni9ib290 L3JlbG9jLlM7CiAgICAgdGhpcyByZXF1aXJlcyBtb3JlIHdvcms7IEkgYW0gbm90IHN1cmUgdGhh dCBpdCBwYXlzIGJlY2F1c2UKICAgICBwb3RlbnRpYWwgcGF0Y2ggcmVxdWlyZXMgbW9yZSBjaGFu Z2VzIHRoYW4gYWRkaXRpb24gb2YganVzdAogICAgIG11bHRpYm9vdDIuaCB0byBNYWtlZmlsZQog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGlzb2xhdGVkL3N0cmF5IF9fcGFj a2VkIGF0dHJpYnV0ZSB1c2FnZSBmb3IgbXVsdGlib290Ml9tZW1vcnlfbWFwX3QKICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9NYWtlZmlsZSAg ICAgICAgfCAgICAzICstCiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAgMTA3 ICsrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jICAgICAg ICAgfCAgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni94 ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDkgKysKIHhlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3Qy LmggICAgICB8ICAxNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBm aWxlcyBjaGFuZ2VkLCA0MjIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaAoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9ib290L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L2Jvb3QvTWFrZWZpbGUKaW5k ZXggNmQyMDY0Ni4uYzYyNDZjOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvTWFrZWZp bGUKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvTWFrZWZpbGUKQEAgLTQsNyArNCw4IEBAIERFRlNf SF9ERVBTID0gZGVmcy5oICQoQkFTRURJUikvaW5jbHVkZS94ZW4vc3RkYm9vbC5oCiAKIENNRExJ TkVfREVQUyA9ICQoREVGU19IX0RFUFMpIHZpZGVvLmgKIAotUkVMT0NfREVQUyA9ICQoREVGU19I X0RFUFMpICQoQkFTRURJUikvaW5jbHVkZS94ZW4vbXVsdGlib290LmgKK1JFTE9DX0RFUFMgPSAk KERFRlNfSF9ERVBTKSAkKEJBU0VESVIpL2luY2x1ZGUveGVuL211bHRpYm9vdC5oIFwKKwkgICAg ICQoQkFTRURJUikvaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oCiAKIGhlYWQubzogY21kbGluZS5T IHJlbG9jLlMKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2Fy Y2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IDEyNmUyZTIuLjg0Y2Y0NGQgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAg LTEsNSArMSw2IEBACiAjaW5jbHVkZSA8eGVuL2NvbmZpZy5oPgogI2luY2x1ZGUgPHhlbi9tdWx0 aWJvb3QuaD4KKyNpbmNsdWRlIDx4ZW4vbXVsdGlib290Mi5oPgogI2luY2x1ZGUgPHB1YmxpYy94 ZW4uaD4KICNpbmNsdWRlIDxhc20vYXNtX2RlZm5zLmg+CiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4K QEAgLTE5LDYgKzIwLDI4IEBACiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fQ1MgMHgwMDIwCiAjZGVm aW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CiAKKyNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAg KE1VTFRJQk9PVDJfSEVBREVSX1RBR18jI25hbWUpCisjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAg IChNVUxUSUJPT1QyX1RBR19UWVBFXyMjbmFtZSkKKworICAgICAgICAubWFjcm8gbWIyaHRfYXJn cyBhcmc6cmVxLCBhcmdzOnZhcmFyZworICAgICAgICAubG9uZyBcYXJnCisgICAgICAgIC5pZm5i IFxhcmdzCisgICAgICAgIG1iMmh0X2FyZ3MgXGFyZ3MKKyAgICAgICAgLmVuZGlmCisgICAgICAg IC5lbmRtCisKKyAgICAgICAgLm1hY3JvIG1iMmh0X2luaXQgdHlwZTpyZXEsIHJlcTpyZXEsIGFy Z3M6dmFyYXJnCisgICAgICAgIC5hbGlnbiBNVUxUSUJPT1QyX1RBR19BTElHTgorLkxtYjJodF9p bml0X3N0YXJ0XEA6CisgICAgICAgIC5zaG9ydCBcdHlwZQorICAgICAgICAuc2hvcnQgXHJlcQor ICAgICAgICAubG9uZyAuTG1iMmh0X2luaXRfZW5kXEAgLSAuTG1iMmh0X2luaXRfc3RhcnRcQAor ICAgICAgICAuaWZuYiBcYXJncworICAgICAgICBtYjJodF9hcmdzIFxhcmdzCisgICAgICAgIC5l bmRpZgorLkxtYjJodF9pbml0X2VuZFxAOgorICAgICAgICAuZW5kbQorCiBFTlRSWShzdGFydCkK ICAgICAgICAgam1wICAgICBfX3N0YXJ0CiAKQEAgLTM0LDYgKzU3LDQyIEBAIG11bHRpYm9vdDFf aGVhZGVyX3N0YXJ0OiAgICAgICAvKioqIE1VTFRJQk9PVDEgSEVBREVSICoqKiovCiAgICAgICAg IC5sb25nICAgLShNVUxUSUJPT1RfSEVBREVSX01BR0lDICsgTVVMVElCT09UX0hFQURFUl9GTEFH UykKIG11bHRpYm9vdDFfaGVhZGVyX2VuZDoKIAorLyoqKiBNVUxUSUJPT1QyIEhFQURFUiAqKioq LworLyogU29tZSBpZGVhcyBhcmUgdGFrZW4gZnJvbSBncnViLTIuMDAvZ3J1Yi1jb3JlL3Rlc3Rz L2Jvb3Qva2VybmVsLWkzODYuUyBmaWxlLiAqLworICAgICAgICAuYWxpZ24gIE1VTFRJQk9PVDJf SEVBREVSX0FMSUdOCisKK211bHRpYm9vdDJfaGVhZGVyX3N0YXJ0OgorICAgICAgICAvKiBNYWdp YyBudW1iZXIgaW5kaWNhdGluZyBhIE11bHRpYm9vdDIgaGVhZGVyLiAqLworICAgICAgICAubG9u ZyAgIE1VTFRJQk9PVDJfSEVBREVSX01BR0lDCisgICAgICAgIC8qIEFyY2hpdGVjdHVyZTogaTM4 Ni4gKi8KKyAgICAgICAgLmxvbmcgICBNVUxUSUJPT1QyX0FSQ0hJVEVDVFVSRV9JMzg2CisgICAg ICAgIC8qIE11bHRpYm9vdDIgaGVhZGVyIGxlbmd0aC4gKi8KKyAgICAgICAgLmxvbmcgICAuTG11 bHRpYm9vdDJfaGVhZGVyX2VuZCAtIG11bHRpYm9vdDJfaGVhZGVyX3N0YXJ0CisgICAgICAgIC8q IE11bHRpYm9vdDIgaGVhZGVyIGNoZWNrc3VtLiAqLworICAgICAgICAubG9uZyAgIC0oTVVMVElC T09UMl9IRUFERVJfTUFHSUMgKyBNVUxUSUJPT1QyX0FSQ0hJVEVDVFVSRV9JMzg2ICsgXAorICAg ICAgICAgICAgICAgICAgICAgICAgKC5MbXVsdGlib290Ml9oZWFkZXJfZW5kIC0gbXVsdGlib290 Ml9oZWFkZXJfc3RhcnQpKQorCisgICAgICAgIC8qIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gcmVx dWVzdCB0YWcuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKElORk9STUFUSU9OX1JFUVVF U1QpLCBNQjJfSFQoUkVRVUlSRUQpLCBcCisgICAgICAgICAgICAgICAgICAgTUIyX1RUKEJBU0lD X01FTUlORk8pLCBNQjJfVFQoTU1BUCkKKworICAgICAgICAvKiBBbGlnbiBtb2R1bGVzIGF0IHBh Z2UgYm91bmRyeS4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoTU9EVUxFX0FMSUdOKSwg TUIyX0hUKFJFUVVJUkVEKQorCisgICAgICAgIC8qIENvbnNvbGUgZmxhZ3MgdGFnLiAqLworICAg ICAgICBtYjJodF9pbml0IE1CMl9IVChDT05TT0xFX0ZMQUdTKSwgTUIyX0hUKE9QVElPTkFMKSwg XAorICAgICAgICAgICAgICAgICAgIE1VTFRJQk9PVDJfQ09OU09MRV9GTEFHU19FR0FfVEVYVF9T VVBQT1JURUQKKworICAgICAgICAvKiBGcmFtZWJ1ZmZlciB0YWcuICovCisgICAgICAgIG1iMmh0 X2luaXQgTUIyX0hUKEZSQU1FQlVGRkVSKSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAg ICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0aGUgY29sdW1ucyAtIG5vIHByZWZlcmVuY2UuICov IFwKKyAgICAgICAgICAgICAgICAgICAwLCAvKiBOdW1iZXIgb2YgdGhlIGxpbmVzIC0gbm8gcHJl ZmVyZW5jZS4gKi8gXAorICAgICAgICAgICAgICAgICAgIDAgIC8qIE51bWJlciBvZiBiaXRzIHBl ciBwaXhlbCAtIG5vIHByZWZlcmVuY2UuICovCisKKyAgICAgICAgLyogTXVsdGlib290MiBoZWFk ZXIgZW5kIHRhZy4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwgTUIyX0hUKFJF UVVJUkVEKQorLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CisKICAgICAgICAgLnNlY3Rpb24gLmlu aXQucm9kYXRhLCAiYSIsIEBwcm9nYml0cwogICAgICAgICAuYWxpZ24gNAogCkBAIC04MiwxMCAr MTQxLDUyIEBAIF9fc3RhcnQ6CiAgICAgICAgIG1vdiAgICAgJWVjeCwlZXMKICAgICAgICAgbW92 ICAgICAlZWN4LCVzcwogCi0gICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QgYm9vdGxvYWRl ciAqLworICAgICAgICAvKiBCb290bG9hZGVycyBtYXkgc2V0IG11bHRpYm9vdHsxLDJ9Lm1lbV9s b3dlciB0byBhIG5vbnplcm8gdmFsdWUuICovCisgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CisK KyAgICAgICAgLyogQ2hlY2sgZm9yIE11bHRpYm9vdDIgYm9vdGxvYWRlci4gKi8KKyAgICAgICAg Y21wICAgICAkTVVMVElCT09UMl9CT09UTE9BREVSX01BR0lDLCVlYXgKKyAgICAgICAgamUgICAg ICAuTG11bHRpYm9vdDJfcHJvdG8KKworICAgICAgICAvKiBDaGVjayBmb3IgTXVsdGlib290IGJv b3Rsb2FkZXIuICovCiAgICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVF9CT09UTE9BREVSX01BR0lD LCVlYXgKICAgICAgICAgam5lICAgICBub3RfbXVsdGlib290CiAKKyAgICAgICAgLyogR2V0IG1l bV9sb3dlciBmcm9tIE11bHRpYm9vdCBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICAgdGVzdGIgICAk TUJJX01FTUxJTUlUUyxNQl9mbGFncyglZWJ4KQorCisgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/ IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUuICovCisgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2Vy KCVlYngpLCVlZHgKKyAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisKKy5MbXVsdGli b290Ml9wcm90bzoKKyAgICAgICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVk IHBhcnQuICovCisgICAgICAgIGxlYSAgICAgKE1CMl9maXhlZF9zaXplb2YrTVVMVElCT09UMl9U QUdfQUxJR04tMSkoJWVieCksJWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFH X0FMSUdOLTEpLCVlY3gKKworLkxtYjJfdHNpemU6CisgICAgICAgIC8qIENoZWNrIE11bHRpYm9v dDIgaW5mb3JtYXRpb24gdG90YWwgc2l6ZS4gKi8KKyAgICAgICAgbW92ICAgICAlZWN4LCVlZGkK KyAgICAgICAgc3ViICAgICAlZWJ4LCVlZGkKKyAgICAgICAgY21wICAgICAlZWRpLE1CMl9maXhl ZF90b3RhbF9zaXplKCVlYngpCisgICAgICAgIGpiZSAgICAgdHJhbXBvbGluZV9zZXR1cAorCisg ICAgICAgIC8qIEdldCBtZW1fbG93ZXIgZnJvbSBNdWx0aWJvb3QyIGluZm9ybWF0aW9uLiAqLwor ICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lDX01FTUlORk8sTUIyX3Rh Z190eXBlKCVlY3gpCisgICAgICAgIGNtb3ZlICAgTUIyX21lbV9sb3dlciglZWN4KSwlZWR4Cisg ICAgICAgIGplICAgICAgdHJhbXBvbGluZV9zZXR1cAorCisgICAgICAgIC8qIElzIGl0IHRoZSBl bmQgb2YgTXVsdGlib290MiBpbmZvcm1hdGlvbj8gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElC T09UMl9UQUdfVFlQRV9FTkQsTUIyX3RhZ190eXBlKCVlY3gpCisgICAgICAgIGplICAgICAgdHJh bXBvbGluZV9zZXR1cAorCisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290MiBpbmZvcm1h dGlvbiB0YWcuICovCisgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVlY3gpLCVlY3gKKyAg ICAgICAgYWRkICAgICAkKE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgYW5k ICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGptcCAgICAgLkxt YjJfdHNpemUKKwordHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgLyogU2V0IHVwIHRyYW1wb2xp bmUgc2VnbWVudCA2NGsgYmVsb3cgRUJEQSAqLwogICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlY3gg ICAgICAgICAgLyogRUJEQSBzZWdtZW50ICovCiAgICAgICAgIGNtcCAgICAgJDB4YTAwMCwlZWN4 ICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKGhpZ2gpICovCkBAIC0xMDAsOSArMjAxLDYgQEAgX19z dGFydDoKICAgICAgICAgICogQ29tcGFyZSB0aGUgdmFsdWUgaW4gdGhlIEJEQSB3aXRoIHRoZSBp bmZvcm1hdGlvbiBmcm9tIHRoZQogICAgICAgICAgKiBtdWx0aWJvb3Qgc3RydWN0dXJlIChpZiBh dmFpbGFibGUpIGFuZCB1c2UgdGhlIHNtYWxsZXN0LgogICAgICAgICAgKi8KLSAgICAgICAgdGVz dGIgICAkTUJJX01FTUxJTUlUUywoJWVieCkKLSAgICAgICAganogICAgICAyZiAgICAgICAgICAg ICAgICAgIC8qIG5vdCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUgKi8KLSAgICAg ICAgbW92ICAgICBNQl9tZW1fbG93ZXIoJWVieCksJWVkeAogICAgICAgICBjbXAgICAgICQweDEw MCwlZWR4ICAgICAgICAgLyogaXMgdGhlIG11bHRpYm9vdCB2YWx1ZSB0b28gc21hbGw/ICovCiAg ICAgICAgIGpiICAgICAgMmYgICAgICAgICAgICAgICAgICAvKiBpZiBzbywgZG8gbm90IHVzZSBp dCAqLwogICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKQEAgLTEyMSw2ICsyMTksNyBAQCBfX3N0 YXJ0OgogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhjcHUwX3N0YWNrKSsxMDI0LCVlc3AKICAg ICAgICAgcHVzaCAgICAlZWN4ICAgICAgICAgICAgICAgIC8qIEJvb3QgdHJhbXBvbGluZSBhZGRy ZXNzLiAqLwogICAgICAgICBwdXNoICAgICVlYnggICAgICAgICAgICAgICAgLyogTXVsdGlib290 IGluZm9ybWF0aW9uIGFkZHJlc3MuICovCisgICAgICAgIHB1c2ggICAgJWVheCAgICAgICAgICAg ICAgICAvKiBNdWx0aWJvb3QgbWFnaWMuICovCiAgICAgICAgIGNhbGwgICAgcmVsb2MKICAgICAg ICAgbW92ICAgICAlZWF4LHN5bV9waHlzKG11bHRpYm9vdF9wdHIpCiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgYi94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCmluZGV4 IDkxNDA1ZTkuLjBmMmUzNzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMK KysrIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwpAQCAtNSwxNSArNSwxOCBAQAogICogYW5k IG1vZHVsZXMuIFRoaXMgaXMgbW9zdCBlYXNpbHkgZG9uZSBlYXJseSB3aXRoIHBhZ2luZyBkaXNh YmxlZC4KICAqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIENpdHJpeCBTeXN0ZW1zLCBJbmMuCisg KiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBB bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIEF1dGhvcnM6CiAgKiAgICBLZWlyIEZyYXNlciA8 a2VpckB4ZW4ub3JnPgorICogICAgRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNv bT4KICAqLwogCiAvKgogICogVGhpcyBlbnRyeSBwb2ludCBpcyBlbnRlcmVkIGZyb20geGVuL2Fy Y2gveDg2L2Jvb3QvaGVhZC5TIHdpdGg6Ci0gKiAgIC0gMHg0KCVlc3ApID0gTVVMVElCT09UX0lO Rk9STUFUSU9OX0FERFJFU1MsCi0gKiAgIC0gMHg4KCVlc3ApID0gQk9PVF9UUkFNUE9MSU5FX0FE RFJFU1MuCisgKiAgIC0gMHg0KCVlc3ApID0gTVVMVElCT09UX01BR0lDLAorICogICAtIDB4OCgl ZXNwKSA9IE1VTFRJQk9PVF9JTkZPUk1BVElPTl9BRERSRVNTLAorICogICAtIDB4YyglZXNwKSA9 IEJPT1RfVFJBTVBPTElORV9BRERSRVNTLgogICovCiBhc20gKAogICAgICIgICAgLnRleHQgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCkBAIC0yNCw2ICsyNywxMCBAQCBhc20gKAogCiAjaW5j bHVkZSAiZGVmcy5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRpYm9vdC5o IgorI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaCIKKworI2RlZmlu ZSBnZXRfbWIyX2RhdGEodGFnLCB0eXBlLCBtZW1iZXIpICAgKCgobXVsdGlib290Ml90YWdfIyN0 eXBlIyNfdCAqKSh0YWcpKS0+bWVtYmVyKQorI2RlZmluZSBnZXRfbWIyX3N0cmluZyh0YWcsIHR5 cGUsIG1lbWJlcikgKCh1MzIpZ2V0X21iMl9kYXRhKHRhZywgdHlwZSwgbWVtYmVyKSkKIAogc3Rh dGljIHUzMiBhbGxvYzsKIApAQCAtMzIsNiArMzksMTIgQEAgc3RhdGljIHUzMiBhbGxvY19tZW0o dTMyIGJ5dGVzKQogICAgIHJldHVybiBhbGxvYyAtPSBBTElHTl9VUChieXRlcywgMTYpOwogfQog CitzdGF0aWMgdm9pZCB6ZXJvX21lbSh1MzIgcywgdTMyIGJ5dGVzKQoreworICAgIHdoaWxlICgg Ynl0ZXMtLSApCisgICAgICAgICooY2hhciAqKXMrKyA9IDA7Cit9CisKIHN0YXRpYyB1MzIgY29w eV9tZW0odTMyIHNyYywgdTMyIGJ5dGVzKQogewogICAgIHUzMiBkc3QsIGRzdF9yZXQ7CkBAIC01 OCwxMyArNzEsMTEgQEAgc3RhdGljIHUzMiBjb3B5X3N0cmluZyh1MzIgc3JjKQogICAgIHJldHVy biBjb3B5X21lbShzcmMsIHAgLSBzcmMgKyAxKTsKIH0KIAotbXVsdGlib290X2luZm9fdCBfX3N0 ZGNhbGwgKnJlbG9jKHUzMiBtYmlfaW4sIHUzMiB0cmFtcG9saW5lKQorc3RhdGljIG11bHRpYm9v dF9pbmZvX3QgKm1iaV9yZWxvYyh1MzIgbWJpX2luKQogewogICAgIGludCBpOwogICAgIG11bHRp Ym9vdF9pbmZvX3QgKm1iaV9vdXQ7CiAKLSAgICBhbGxvYyA9IHRyYW1wb2xpbmU7Ci0KICAgICBt Ymlfb3V0ID0gX3AoY29weV9tZW0obWJpX2luLCBzaXplb2YoKm1iaV9vdXQpKSk7CiAKICAgICBp ZiAoIG1iaV9vdXQtPmZsYWdzICYgTUJJX0NNRExJTkUgKQpAQCAtMTAxLDMgKzExMiwxMjYgQEAg bXVsdGlib290X2luZm9fdCBfX3N0ZGNhbGwgKnJlbG9jKHUzMiBtYmlfaW4sIHUzMiB0cmFtcG9s aW5lKQogCiAgICAgcmV0dXJuIG1iaV9vdXQ7CiB9CisKK3N0YXRpYyBtdWx0aWJvb3RfaW5mb190 ICptYmkyX3JlbG9jKHUzMiBtYmlfaW4pCit7CisgICAgY29uc3QgbXVsdGlib290Ml9maXhlZF90 ICptYmlfZml4ID0gX3AobWJpX2luKTsKKyAgICBjb25zdCBtdWx0aWJvb3QyX21lbW9yeV9tYXBf dCAqbW1hcF9zcmM7CisgICAgY29uc3QgbXVsdGlib290Ml90YWdfdCAqdGFnOworICAgIG1vZHVs ZV90ICptYmlfb3V0X21vZHMgPSBOVUxMOworICAgIG1lbW9yeV9tYXBfdCAqbW1hcF9kc3Q7Cisg ICAgbXVsdGlib290X2luZm9fdCAqbWJpX291dDsKKyAgICB1MzIgcHRyOworICAgIHVuc2lnbmVk IGludCBpLCBtb2RfaWR4ID0gMDsKKworICAgIHB0ciA9IGFsbG9jX21lbShzaXplb2YoKm1iaV9v dXQpKTsKKyAgICBtYmlfb3V0ID0gX3AocHRyKTsKKyAgICB6ZXJvX21lbShwdHIsIHNpemVvZigq bWJpX291dCkpOworCisgICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBh cnQuICovCisgICAgcHRyID0gQUxJR05fVVAobWJpX2luICsgc2l6ZW9mKCptYmlfZml4KSwgTVVM VElCT09UMl9UQUdfQUxJR04pOworCisgICAgLyogR2V0IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4g Ki8KKyAgICBmb3IgKCB0YWcgPSBfcChwdHIpOyAodTMyKXRhZyAtIG1iaV9pbiA8IG1iaV9maXgt PnRvdGFsX3NpemU7CisgICAgICAgICAgdGFnID0gX3AoQUxJR05fVVAoKHUzMil0YWcgKyB0YWct PnNpemUsIE1VTFRJQk9PVDJfVEFHX0FMSUdOKSkgKQorICAgIHsKKyAgICAgICAgaWYgKCB0YWct PnR5cGUgPT0gTVVMVElCT09UMl9UQUdfVFlQRV9NT0RVTEUgKQorICAgICAgICAgICAgKyttYmlf b3V0LT5tb2RzX2NvdW50OworICAgICAgICBlbHNlIGlmICggdGFnLT50eXBlID09IE1VTFRJQk9P VDJfVEFHX1RZUEVfRU5EICkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICgg bWJpX291dC0+bW9kc19jb3VudCApCisgICAgeworICAgICAgICBtYmlfb3V0LT5mbGFncyB8PSBN QklfTU9EVUxFUzsKKyAgICAgICAgbWJpX291dC0+bW9kc19hZGRyID0gYWxsb2NfbWVtKG1iaV9v dXQtPm1vZHNfY291bnQgKiBzaXplb2YoKm1iaV9vdXRfbW9kcykpOworICAgICAgICBtYmlfb3V0 X21vZHMgPSBfcChtYmlfb3V0LT5tb2RzX2FkZHIpOworICAgIH0KKworICAgIC8qIFNraXAgTXVs dGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAgIHB0ciA9IEFMSUdOX1VQKG1i aV9pbiArIHNpemVvZigqbWJpX2ZpeCksIE1VTFRJQk9PVDJfVEFHX0FMSUdOKTsKKworICAgIC8q IFB1dCBhbGwgbmVlZGVkIGRhdGEgaW50byBtYmlfb3V0LiAqLworICAgIGZvciAoIHRhZyA9IF9w KHB0cik7ICh1MzIpdGFnIC0gbWJpX2luIDwgbWJpX2ZpeC0+dG90YWxfc2l6ZTsKKyAgICAgICAg ICB0YWcgPSBfcChBTElHTl9VUCgodTMyKXRhZyArIHRhZy0+c2l6ZSwgTVVMVElCT09UMl9UQUdf QUxJR04pKSApCisgICAgICAgIHN3aXRjaCAoIHRhZy0+dHlwZSApCisgICAgICAgIHsKKyAgICAg ICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JPT1RfTE9BREVSX05BTUU6CisgICAgICAgICAg ICBtYmlfb3V0LT5mbGFncyB8PSBNQklfTE9BREVSTkFNRTsKKyAgICAgICAgICAgIHB0ciA9IGdl dF9tYjJfc3RyaW5nKHRhZywgc3RyaW5nLCBzdHJpbmcpOworICAgICAgICAgICAgbWJpX291dC0+ Ym9vdF9sb2FkZXJfbmFtZSA9IGNvcHlfc3RyaW5nKHB0cik7CisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBjYXNlIE1VTFRJQk9PVDJfVEFHX1RZUEVfQ01ETElORToKKyAgICAgICAgICAg IG1iaV9vdXQtPmZsYWdzIHw9IE1CSV9DTURMSU5FOworICAgICAgICAgICAgcHRyID0gZ2V0X21i Ml9zdHJpbmcodGFnLCBzdHJpbmcsIHN0cmluZyk7CisgICAgICAgICAgICBtYmlfb3V0LT5jbWRs aW5lID0gY29weV9zdHJpbmcocHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNh c2UgTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPOgorICAgICAgICAgICAgbWJpX291 dC0+ZmxhZ3MgfD0gTUJJX01FTUxJTUlUUzsKKyAgICAgICAgICAgIG1iaV9vdXQtPm1lbV9sb3dl ciA9IGdldF9tYjJfZGF0YSh0YWcsIGJhc2ljX21lbWluZm8sIG1lbV9sb3dlcik7CisgICAgICAg ICAgICBtYmlfb3V0LT5tZW1fdXBwZXIgPSBnZXRfbWIyX2RhdGEodGFnLCBiYXNpY19tZW1pbmZv LCBtZW1fdXBwZXIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNVUxUSUJP T1QyX1RBR19UWVBFX01NQVA6CisgICAgICAgICAgICBpZiAoIGdldF9tYjJfZGF0YSh0YWcsIG1t YXAsIGVudHJ5X3NpemUpIDwgc2l6ZW9mKCptbWFwX3NyYykgKQorICAgICAgICAgICAgICAgIGJy ZWFrOworCisgICAgICAgICAgICBtYmlfb3V0LT5mbGFncyB8PSBNQklfTUVNTUFQOworICAgICAg ICAgICAgbWJpX291dC0+bW1hcF9sZW5ndGggPSBnZXRfbWIyX2RhdGEodGFnLCBtbWFwLCBzaXpl KTsKKyAgICAgICAgICAgIG1iaV9vdXQtPm1tYXBfbGVuZ3RoIC09IHNpemVvZihtdWx0aWJvb3Qy X3RhZ19tbWFwX3QpOworICAgICAgICAgICAgbWJpX291dC0+bW1hcF9sZW5ndGggLz0gZ2V0X21i Ml9kYXRhKHRhZywgbW1hcCwgZW50cnlfc2l6ZSk7CisgICAgICAgICAgICBtYmlfb3V0LT5tbWFw X2xlbmd0aCAqPSBzaXplb2YoKm1tYXBfZHN0KTsKKworICAgICAgICAgICAgbWJpX291dC0+bW1h cF9hZGRyID0gYWxsb2NfbWVtKG1iaV9vdXQtPm1tYXBfbGVuZ3RoKTsKKworICAgICAgICAgICAg bW1hcF9zcmMgPSBnZXRfbWIyX2RhdGEodGFnLCBtbWFwLCBlbnRyaWVzKTsKKyAgICAgICAgICAg IG1tYXBfZHN0ID0gX3AobWJpX291dC0+bW1hcF9hZGRyKTsKKworICAgICAgICAgICAgZm9yICgg aSA9IDA7IGkgPCBtYmlfb3V0LT5tbWFwX2xlbmd0aCAvIHNpemVvZigqbW1hcF9kc3QpOyBpKysg KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIEluaXQgc2l6ZSBtZW1iZXIgcHJv cGVybHkuICovCisgICAgICAgICAgICAgICAgbW1hcF9kc3RbaV0uc2l6ZSA9IHNpemVvZigqbW1h cF9kc3QpOworICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLnNpemUgLT0gc2l6ZW9mKG1tYXBf ZHN0W2ldLnNpemUpOworICAgICAgICAgICAgICAgIC8qIE5vdyBjb3B5IGEgZ2l2ZW4gcmVnaW9u IGRhdGEuICovCisgICAgICAgICAgICAgICAgbW1hcF9kc3RbaV0uYmFzZV9hZGRyX2xvdyA9ICh1 MzIpbW1hcF9zcmMtPmFkZHI7CisgICAgICAgICAgICAgICAgbW1hcF9kc3RbaV0uYmFzZV9hZGRy X2hpZ2ggPSAodTMyKShtbWFwX3NyYy0+YWRkciA+PiAzMik7CisgICAgICAgICAgICAgICAgbW1h cF9kc3RbaV0ubGVuZ3RoX2xvdyA9ICh1MzIpbW1hcF9zcmMtPmxlbjsKKyAgICAgICAgICAgICAg ICBtbWFwX2RzdFtpXS5sZW5ndGhfaGlnaCA9ICh1MzIpKG1tYXBfc3JjLT5sZW4gPj4gMzIpOwor ICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLnR5cGUgPSBtbWFwX3NyYy0+dHlwZTsKKyAgICAg ICAgICAgICAgICBtbWFwX3NyYyA9IF9wKG1tYXBfc3JjKSArIGdldF9tYjJfZGF0YSh0YWcsIG1t YXAsIGVudHJ5X3NpemUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAg ICAgICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX01PRFVMRToKKyAgICAgICAgICAgIGlmICgg bW9kX2lkeCA+PSBtYmlfb3V0LT5tb2RzX2NvdW50ICkKKyAgICAgICAgICAgICAgICBicmVhazsK KworICAgICAgICAgICAgbWJpX291dF9tb2RzW21vZF9pZHhdLm1vZF9zdGFydCA9IGdldF9tYjJf ZGF0YSh0YWcsIG1vZHVsZSwgbW9kX3N0YXJ0KTsKKyAgICAgICAgICAgIG1iaV9vdXRfbW9kc1tt b2RfaWR4XS5tb2RfZW5kID0gZ2V0X21iMl9kYXRhKHRhZywgbW9kdWxlLCBtb2RfZW5kKTsKKyAg ICAgICAgICAgIHB0ciA9IGdldF9tYjJfc3RyaW5nKHRhZywgbW9kdWxlLCBjbWRsaW5lKTsKKyAg ICAgICAgICAgIG1iaV9vdXRfbW9kc1ttb2RfaWR4XS5zdHJpbmcgPSBjb3B5X3N0cmluZyhwdHIp OworICAgICAgICAgICAgbWJpX291dF9tb2RzW21vZF9pZHhdLnJlc2VydmVkID0gMDsKKyAgICAg ICAgICAgICsrbW9kX2lkeDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTVVM VElCT09UMl9UQUdfVFlQRV9FTkQ6CisgICAgICAgICAgICByZXR1cm4gbWJpX291dDsKKworICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIHJldHVy biBtYmlfb3V0OworfQorCittdWx0aWJvb3RfaW5mb190IF9fc3RkY2FsbCAqcmVsb2ModTMyIG1i X21hZ2ljLCB1MzIgbWJpX2luLCB1MzIgdHJhbXBvbGluZSkKK3sKKyAgICBhbGxvYyA9IHRyYW1w b2xpbmU7CisKKyAgICBpZiAoIG1iX21hZ2ljID09IE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJ QyApCisgICAgICAgIHJldHVybiBtYmkyX3JlbG9jKG1iaV9pbik7CisgICAgZWxzZQorICAgICAg ICByZXR1cm4gbWJpX3JlbG9jKG1iaV9pbik7Cit9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv eDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMK aW5kZXggMGUxZjA5ZC4uOTJmNWQ4MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9h c20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAt MTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KICNpbmNsdWRlIDxhc20vaGFy ZGlycS5oPgogI2luY2x1ZGUgPHhlbi9tdWx0aWJvb3QuaD4KKyNpbmNsdWRlIDx4ZW4vbXVsdGli b290Mi5oPgogCiAjZGVmaW5lIERFRklORShfc3ltLCBfdmFsKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYXNtIHZvbGF0aWxlICgiXG4uYXNj aWlcIj09PiNkZWZpbmUgIiAjX3N5bSAiICUwIC8qICIgI192YWwgIiAqLzw9PVwiIiBcCkBAIC0x NjcsNiArMTY4LDE0IEBAIHZvaWQgX19kdW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKE1CX2ZsYWdz LCBtdWx0aWJvb3RfaW5mb190LCBmbGFncyk7CiAgICAgT0ZGU0VUKE1CX2NtZGxpbmUsIG11bHRp Ym9vdF9pbmZvX3QsIGNtZGxpbmUpOwogICAgIE9GRlNFVChNQl9tZW1fbG93ZXIsIG11bHRpYm9v dF9pbmZvX3QsIG1lbV9sb3dlcik7CisgICAgQkxBTksoKTsKKworICAgIERFRklORShNQjJfZml4 ZWRfc2l6ZW9mLCBzaXplb2YobXVsdGlib290Ml9maXhlZF90KSk7CisgICAgT0ZGU0VUKE1CMl9m aXhlZF90b3RhbF9zaXplLCBtdWx0aWJvb3QyX2ZpeGVkX3QsIHRvdGFsX3NpemUpOworICAgIE9G RlNFVChNQjJfdGFnX3R5cGUsIG11bHRpYm9vdDJfdGFnX3QsIHR5cGUpOworICAgIE9GRlNFVChN QjJfdGFnX3NpemUsIG11bHRpYm9vdDJfdGFnX3QsIHNpemUpOworICAgIE9GRlNFVChNQjJfbWVt X2xvd2VyLCBtdWx0aWJvb3QyX3RhZ19iYXNpY19tZW1pbmZvX3QsIG1lbV9sb3dlcik7CisgICAg QkxBTksoKTsKIAogICAgIE9GRlNFVChET01BSU5fdm1fYXNzaXN0LCBzdHJ1Y3QgZG9tYWluLCB2 bV9hc3Npc3QpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaCBi L3hlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYTNlMzExOQotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tdWx0 aWJvb3QyLmgKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LDIw MDMsMjAwNywyMDA4LDIwMDksMjAxMCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisg KgorICogIG11bHRpYm9vdDIuaCAtIE11bHRpYm9vdCAyIGhlYWRlciBmaWxlLgorICoKKyAqICBC YXNlZCBvbiBncnViLTIuMDAvaW5jbHVkZS9tdWx0aWJvb3QyLmggZmlsZS4KKyAqCisgKiAgUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEgY29weQorICogIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g dGhlCisgKiAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqICBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqICBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICog IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBBTlkKKyAqICBERVZFTE9QRVIg T1IgRElTVFJJQlVUT1IgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLAorICogIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKKyAqICBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgorICovCisKKyNpZm5kZWYgX19NVUxUSUJPT1QyX0hfXworI2RlZmluZSBfX01VTFRJQk9P VDJfSF9fCisKKy8qIFRoZSBtYWdpYyBmaWVsZCBzaG91bGQgY29udGFpbiB0aGlzLiAgKi8KKyNk ZWZpbmUgTVVMVElCT09UMl9IRUFERVJfTUFHSUMgICAgICAgICAgICAgICAgICAgICAgICAgMHhl ODUyNTBkNgorCisvKiBUaGlzIHNob3VsZCBiZSBpbiAlZWF4IG9uIHg4NiBhcmNoaXRlY3R1cmUu ICAqLworI2RlZmluZSBNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMgICAgICAgICAgICAgICAg ICAgICAweDM2ZDc2Mjg5CisKKy8qIEhvdyBtYW55IGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRo ZSBmaWxlIHdlIHNlYXJjaCBmb3IgdGhlIGhlYWRlci4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJf U0VBUkNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyNzY4CisKKy8qIE11bHRpYm9v dCAyIGhlYWRlciBhbGlnbm1lbnQuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX0FMSUdO ICAgICAgICAgICAgICAgICAgICAgICAgIDgKKworLyogQWxpZ25tZW50IG9mIG11bHRpYm9vdCAy IG1vZHVsZXMuICAqLworI2RlZmluZSBNVUxUSUJPT1QyX01PRF9BTElHTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAxMDAwCisKKy8qIEFsaWdubWVudCBvZiB0aGUgbXVsdGlib290 IDIgaW5mbyBzdHJ1Y3R1cmUuICAqLworI2RlZmluZSBNVUxUSUJPT1QyX0lORk9fQUxJR04gICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisKKy8qIE11bHRpYm9vdCAyIGFyY2hp dGVjdHVyZXMuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfQVJDSElURUNUVVJFX0kzODYgICAgICAg ICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVVMVElCT09UMl9BUkNISVRFQ1RVUkVfTUlQUzMyICAg ICAgICAgICAgICAgICAgNAorCisvKiBIZWFkZXIgdGFnIHR5cGVzLiAqLworI2RlZmluZSBNVUxU SUJPT1QyX0hFQURFUl9UQUdfRU5EICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1V TFRJQk9PVDJfSEVBREVSX1RBR19JTkZPUk1BVElPTl9SRVFVRVNUICAgICAgIDEKKyNkZWZpbmUg TVVMVElCT09UMl9IRUFERVJfVEFHX0FERFJFU1MgICAgICAgICAgICAgICAgICAgMgorI2RlZmlu ZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfRU5UUllfQUREUkVTUyAgICAgICAgICAgICAzCisjZGVm aW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19DT05TT0xFX0ZMQUdTICAgICAgICAgICAgIDQKKyNk ZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0ZSQU1FQlVGRkVSICAgICAgICAgICAgICAgNQor I2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfTU9EVUxFX0FMSUdOICAgICAgICAgICAgICA2 CisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19FRklfQlMgICAgICAgICAgICAgICAgICAg IDcKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0VOVFJZX0FERFJFU1NfRUZJMzIgICAg ICAgOAorI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfRU5UUllfQUREUkVTU19FRkk2NCAg ICAgICA5CisKKy8qIEhlYWRlciB0YWcgZmxhZ3MuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSEVB REVSX1RBR19SRVFVSVJFRCAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVVMVElCT09UMl9I RUFERVJfVEFHX09QVElPTkFMICAgICAgICAgICAgICAgICAgMQorCisvKiBIZWFkZXIgY29uc29s ZSB0YWcgY29uc29sZV9mbGFncy4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9DT05TT0xFX0ZMQUdT X0NPTlNPTEVfUkVRVUlSRUQgICAgICAgMQorI2RlZmluZSBNVUxUSUJPT1QyX0NPTlNPTEVfRkxB R1NfRUdBX1RFWFRfU1VQUE9SVEVEICAgICAyCisKKy8qIEZsYWdzIHNldCBpbiB0aGUgJ2ZsYWdz JyBtZW1iZXIgb2YgdGhlIG11bHRpYm9vdCBoZWFkZXIuICAqLworI2RlZmluZSBNVUxUSUJPT1Qy X1RBR19UWVBFX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1VTFRJQk9P VDJfVEFHX1RZUEVfQ01ETElORSAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTVVMVElC T09UMl9UQUdfVFlQRV9CT09UX0xPQURFUl9OQU1FICAgICAgICAgICAgMgorI2RlZmluZSBNVUxU SUJPT1QyX1RBR19UWVBFX01PRFVMRSAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIE1V TFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyAgICAgICAgICAgICAgIDQKKyNkZWZpbmUg TVVMVElCT09UMl9UQUdfVFlQRV9CT09UREVWICAgICAgICAgICAgICAgICAgICAgNQorI2RlZmlu ZSBNVUxUSUJPT1QyX1RBR19UWVBFX01NQVAgICAgICAgICAgICAgICAgICAgICAgICA2CisjZGVm aW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfVkJFICAgICAgICAgICAgICAgICAgICAgICAgIDcKKyNk ZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9GUkFNRUJVRkZFUiAgICAgICAgICAgICAgICAgOAor I2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0VMRl9TRUNUSU9OUyAgICAgICAgICAgICAgICA5 CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfQVBNICAgICAgICAgICAgICAgICAgICAgICAg IDEwCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJMzIgICAgICAgICAgICAgICAgICAg ICAgIDExCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQgICAgICAgICAgICAgICAg ICAgICAgIDEyCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfU01CSU9TICAgICAgICAgICAg ICAgICAgICAgIDEzCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfQUNQSV9PTEQgICAgICAg ICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfQUNQSV9ORVcgICAg ICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfTkVUV09SSyAg ICAgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJX01N QVAgICAgICAgICAgICAgICAgICAgIDE3CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJ X0JTICAgICAgICAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVf RUZJMzJfSUggICAgICAgICAgICAgICAgICAgIDE5CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZ UEVfRUZJNjRfSUggICAgICAgICAgICAgICAgICAgIDIwCisKKy8qIE11bHRpYm9vdCAyIHRhZyBh bGlnbm1lbnQuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX0FMSUdOICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDgKKworLyogTWVtb3J5IHR5cGVzLiAqLworI2RlZmluZSBNVUxUSUJPT1Qy X01FTU9SWV9BVkFJTEFCTEUgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1VTFRJQk9P VDJfTUVNT1JZX1JFU0VSVkVEICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTVVMVElC T09UMl9NRU1PUllfQUNQSV9SRUNMQUlNQUJMRSAgICAgICAgICAgICAgMworI2RlZmluZSBNVUxU SUJPT1QyX01FTU9SWV9OVlMgICAgICAgICAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1V TFRJQk9PVDJfTUVNT1JZX0JBRFJBTSAgICAgICAgICAgICAgICAgICAgICAgIDUKKworLyogRnJh bWVidWZmZXIgdHlwZXMuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfRlJBTUVCVUZGRVJfVFlQRV9J TkRFWEVEICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVVMVElCT09UMl9GUkFNRUJVRkZFUl9UWVBF X1JHQiAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNVUxUSUJPT1QyX0ZSQU1FQlVGRkVSX1RZ UEVfRUdBX1RFWFQgICAgICAgICAgICAyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCit0eXBlZGVm IHN0cnVjdCB7CisgICAgdTMyIHRvdGFsX3NpemU7CisgICAgdTMyIHJlc2VydmVkOworfSBtdWx0 aWJvb3QyX2ZpeGVkX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1 MzIgc2l6ZTsKK30gbXVsdGlib290Ml90YWdfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUz MiB0eXBlOworICAgIHUzMiBzaXplOworICAgIGNoYXIgc3RyaW5nW107Cit9IG11bHRpYm9vdDJf dGFnX3N0cmluZ190OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7CisgICAgdTMy IHNpemU7CisgICAgdTMyIG1lbV9sb3dlcjsKKyAgICB1MzIgbWVtX3VwcGVyOworfSBtdWx0aWJv b3QyX3RhZ19iYXNpY19tZW1pbmZvX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1NjQgYWRk cjsKKyAgICB1NjQgbGVuOworICAgIHUzMiB0eXBlOworICAgIHUzMiB6ZXJvOworfSBtdWx0aWJv b3QyX21lbW9yeV9tYXBfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAg IHUzMiBzaXplOworICAgIHUzMiBlbnRyeV9zaXplOworICAgIHUzMiBlbnRyeV92ZXJzaW9uOwor ICAgIG11bHRpYm9vdDJfbWVtb3J5X21hcF90IGVudHJpZXNbXTsKK30gbXVsdGlib290Ml90YWdf bW1hcF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7CisgICAgdTMyIHNpemU7 CisgICAgdTY0IHBvaW50ZXI7Cit9IG11bHRpYm9vdDJfdGFnX2VmaTY0X3Q7CisKK3R5cGVkZWYg c3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1MzIgc2l6ZTsKKyAgICB1NjQgcG9pbnRlcjsK K30gbXVsdGlib290Ml90YWdfZWZpNjRfaWhfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUz MiB0eXBlOworICAgIHUzMiBzaXplOworICAgIHUzMiBtb2Rfc3RhcnQ7CisgICAgdTMyIG1vZF9l bmQ7CisgICAgY2hhciBjbWRsaW5lW107Cit9IG11bHRpYm9vdDJfdGFnX21vZHVsZV90OworI2Vu ZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19NVUxUSUJPT1QyX0hfXyAqLwot LSAKMS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK