From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v13 1/9] x86: add multiboot2 protocol support Date: Wed, 25 Jan 2017 23:11:25 +0100 Message-ID: <1485382293-13800-2-git-send-email-daniel.kiper@oracle.com> References: <1485382293-13800-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cWVnb-0002gN-La for xen-devel@lists.xenproject.org; Wed, 25 Jan 2017 22:12:15 +0000 In-Reply-To: <1485382293-13800-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, 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+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgpUZXN0ZWQtYnk6IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAY2FyZG9lLmNvbT4K LS0tCnYxMyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAgLSBhZGQgRW1hY3MgZmlsZS1sb2NhbCB2 YXJpYWJsZXMKICAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKS4KCnYxMiAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAgLSByZXBsYWNlIFRBQnMgd2l0aCBzcGFjZXMgaW4geGVuL2luY2x1 ZGUveGVuL211bHRpYm9vdDIuaAogICAgICAoc3VnZ2VzdGVkIGJ5IERvdWcgR29sZHN0ZWluKS4K CnY5IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIC5MIGxhYmVsIGluc3RlYWQgb2YgbnVt ZXJpYyBvbmUgaW4gbXVsdGlib290MiBkYXRhIHNjYW5uaW5nIGxvb3A7CiAgICAgSSBob3BlIHRo YXQgdGhpcyBjaGFuZ2UgZG9lcyBub3QgaW52YWxpZGF0ZSBKYW4ncyBSZXZpZXdlZC1ieQogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjggLSBzdWdnZXN0aW9ucy9maXhlczoKICAg LSB1c2Ugc2l6ZW9mKDx2YXI+LzxleHByPikgaW5zdGVhZCBvZiBzaXplb2YoPHR5cGU+KQogICAg IGlmIGl0IGlzIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NyAt IHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbmFtZSBtYmlfbWJpL21iaTJfbWJpIHRvIG1iaV9y ZWxvYy9tYmkyX3JlbG9jIHJlc3BlY3RpdmVseQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIGluaXRpYWxpemUgbWJpX291dC0+ZmxhZ3MgdXNpbmcgInw9IiBpbnN0ZWFkIG9m ICI9IgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBzaXplb2YoKm1t YXBfZHN0KSBpbnN0ZWFkIG9mIHNpemVvZihtZW1vcnlfbWFwX3QpCiAgICAgaWYgaXQgbWFrZXMg c2Vuc2UKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY2IC0gc3VnZ2VzdGlvbnMv Zml4ZXM6CiAgIC0gcHJvcGVybHkgaW5kZXggbXVsdGlib290Ml90YWdfbW1hcF90LmVudHJpZXNb XQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGRvIG5vdCBpbmRleCBtYmlf b3V0X21vZHNbXSBiZXlvbmQgaXRzIGVuZAogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3Bl ciksCiAgIC0gcmVkdWNlIG51bWJlciBvZiBjYXN0cwogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3 IENvb3BlciBhbmQgSmFuIEJldWxpY2gpLAogICAtIGFkZCBicmFjZXMgdG8gaW5jcmVhc2UgY29k ZSByZWFkYWJpbGl0eQogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlcikuCgp2NSAtIHN1 Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGNoZWNrIG11bHRpYm9vdDJfdGFnX21tYXBfdC5lbnRyeV9z aXplIGJlZm9yZQogICAgIG11bHRpYm9vdDJfdGFnX21tYXBfdC5lbnRyaWVzW10gdXNlCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcHJvcGVybHkgaW5kZXggbXVsdGlib290 Ml90YWdfbW1hcF90LmVudHJpZXNbXQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIHVzZSAidHlwZSBuYW1lW10iIGluc3RhZCBvZiAidHlwZSBuYW1lWzBdIgogICAgIGluIHhl bi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSByZW1vdmUgdW5uZWVkZWQgY29tbWVudAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpLgoKdjQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBhdm9pZCBhc3NlbWJseSB1c2Fn ZSBpbiB4ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jLAogICAtIGZpeCBib3VuZGFyeSBjaGVjayBp c3N1ZSBhbmQgb3B0aW1pemUKICAgICBmb3IoKSBsb29wcyBpbiBtYmkyX21iaSgpLAogICAtIG1v dmUgdG8gc3RkY2FsbCBjYWxsaW5nIGNvbnZlbnRpb24sCiAgIC0gcmVtb3ZlIHVubmVlZGVkIHR5 cGVvZigpIGZyb20gQUxJR05fVVAoKSBtYWNybwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIGFkZCBhbmQgdXNlIE5VTEwgZGVmaW5pdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9v dC9yZWxvYy5jCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZG8gbm90IHJl YWQgZGF0YSBiZXlvbmQgdGhlIGVuZCBvZiBtdWx0aWJvb3QyCiAgICAgaW5mb3JtYXRpb24gaW4g eGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gYWRkIDpyZXEgdG8gc29tZSAubWFjcm8gYXJndW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJsZSwKICAgLSBhZGQgLkwg dG8gbXVsdGlib290Ml9oZWFkZXJfZW5kIGxhYmVsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCksCiAgIC0gYWRkIC5MIHRvIG11bHRpYm9vdDJfcHJvdG8gbGFiZWwKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGxhYmVsIG5hbWVzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlb3Jk ZXIgcmVsb2MoKSBhcmd1bWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSByZW1vdmUgLkwgZnJvbSBtdWx0aWJvb3QyIGhlYWRlciBsYWJlbHMKICAgICAoc3VnZ2VzdGVk IGJ5IEFuZHJldyBDb29wZXIsIEphbiBCZXVsaWNoIGFuZCBLb25yYWQgUnplc3p1dGVrIFdpbGsp LAogICAtIHRha2UgaW50byBhY2NvdW50IGFsaWdubWVudCB3aGVuIHNraXBwaW5nIG11bHRpYm9v dDIgZml4ZWQgcGFydAogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwK ICAgLSBjcmVhdGUgbW9kdWxlcyBkYXRhIGlmIG1vZHVsZXMgY291bnQgIT0gMAogICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgbWFjcm9zCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVkdWNlIG51bWJlciBvZiBjYXN0cwogICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBjb25zdCBpZiBwb3NzaWJsZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGRyb3Agc3RhdGljIGFuZCBfX3VzZWRfXyBh dHRyaWJ1dGUgZnJvbSByZWxvYygpCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gcmVtb3ZlIGlzb2xhdGVkL3N0cmF5IF9fcGFja2VkIGF0dHJpYnV0ZSBmcm9tCiAgICAgbXVs dGlib290Ml9tZW1vcnlfbWFwX3QgdHlwZSBkZWZpbml0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gcmVmb3JtYXQgeGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaAog ICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNv bW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIHJl bW92ZSBoYXJkIHRhYnMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoIGFuZCBLb25yYWQg Unplc3p1dGVrIFdpbGspLgoKdjIgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBnZW5lcmF0ZSBt dWx0aWJvb3QyIGhlYWRlciB1c2luZyBtYWNyb3MKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gc2ltcGxpZnkgYXNzZW1ibHkgaW4geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZG8gbm90IGluY2x1ZGUgaW5jbHVk ZS94ZW4vY29tcGlsZXIuaAogICAgIGluIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0 aGUgZW5kIG9mIG11bHRpYm9vdDIgaW5mb3JtYXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKS4KCnYyIC0gbm90IGZpeGVkIHlldDoKICAgLSBkeW5hbWljIGRlcGVuZGVuY3kgZ2Vu ZXJhdGlvbiBmb3IgeGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuUzsKICAgICB0aGlzIHJlcXVpcmVz IG1vcmUgd29yazsgSSBhbSBub3Qgc3VyZSB0aGF0IGl0IHBheXMgYmVjYXVzZQogICAgIHBvdGVu dGlhbCBwYXRjaCByZXF1aXJlcyBtb3JlIGNoYW5nZXMgdGhhbiBhZGRpdGlvbiBvZiBqdXN0CiAg ICAgbXVsdGlib290Mi5oIHRvIE1ha2VmaWxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaXNvbGF0ZWQvc3RyYXkgX19wYWNrZWQgYXR0cmlidXRlIHVzYWdlIGZvciBtdWx0 aWJvb3QyX21lbW9yeV9tYXBfdAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgotLS0K IHhlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlICAgICAgICB8ICAgIDMgKy0KIHhlbi9hcmNoL3g4 Ni9ib290L2hlYWQuUyAgICAgICAgICB8ICAxMDcgKysrKysrKysrKysrKysrKysrKysrKy0KIHhl bi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgICAgICAgICB8ICAxNTQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgfCAgICA5 ICsrCiB4ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oICAgICAgfCAgMTY5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNDMyIGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3hl bi9tdWx0aWJvb3QyLmgKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9NYWtlZmlsZSBi L3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCmluZGV4IDZkMjA2NDYuLmM2MjQ2YzggMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290 L01ha2VmaWxlCkBAIC00LDcgKzQsOCBAQCBERUZTX0hfREVQUyA9IGRlZnMuaCAkKEJBU0VESVIp L2luY2x1ZGUveGVuL3N0ZGJvb2wuaAogCiBDTURMSU5FX0RFUFMgPSAkKERFRlNfSF9ERVBTKSB2 aWRlby5oCiAKLVJFTE9DX0RFUFMgPSAkKERFRlNfSF9ERVBTKSAkKEJBU0VESVIpL2luY2x1ZGUv eGVuL211bHRpYm9vdC5oCitSRUxPQ19ERVBTID0gJChERUZTX0hfREVQUykgJChCQVNFRElSKS9p bmNsdWRlL3hlbi9tdWx0aWJvb3QuaCBcCisJICAgICAkKEJBU0VESVIpL2luY2x1ZGUveGVuL211 bHRpYm9vdDIuaAogCiBoZWFkLm86IGNtZGxpbmUuUyByZWxvYy5TCiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9ib290L2hlYWQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwppbmRleCAx MjZlMmUyLi44NGNmNDRkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKKysr IGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCkBAIC0xLDUgKzEsNiBAQAogI2luY2x1ZGUgPHhl bi9jb25maWcuaD4KICNpbmNsdWRlIDx4ZW4vbXVsdGlib290Lmg+CisjaW5jbHVkZSA8eGVuL211 bHRpYm9vdDIuaD4KICNpbmNsdWRlIDxwdWJsaWMveGVuLmg+CiAjaW5jbHVkZSA8YXNtL2FzbV9k ZWZucy5oPgogI2luY2x1ZGUgPGFzbS9kZXNjLmg+CkBAIC0xOSw2ICsyMCwyOCBAQAogI2RlZmlu ZSBCT09UX1BTRVVET1JNX0NTIDB4MDAyMAogI2RlZmluZSBCT09UX1BTRVVET1JNX0RTIDB4MDAy OAogCisjZGVmaW5lIE1CMl9IVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX0hFQURFUl9UQUdfIyNu YW1lKQorI2RlZmluZSBNQjJfVFQobmFtZSkgICAgICAoTVVMVElCT09UMl9UQUdfVFlQRV8jI25h bWUpCisKKyAgICAgICAgLm1hY3JvIG1iMmh0X2FyZ3MgYXJnOnJlcSwgYXJnczp2YXJhcmcKKyAg ICAgICAgLmxvbmcgXGFyZworICAgICAgICAuaWZuYiBcYXJncworICAgICAgICBtYjJodF9hcmdz IFxhcmdzCisgICAgICAgIC5lbmRpZgorICAgICAgICAuZW5kbQorCisgICAgICAgIC5tYWNybyBt YjJodF9pbml0IHR5cGU6cmVxLCByZXE6cmVxLCBhcmdzOnZhcmFyZworICAgICAgICAuYWxpZ24g TVVMVElCT09UMl9UQUdfQUxJR04KKy5MbWIyaHRfaW5pdF9zdGFydFxAOgorICAgICAgICAuc2hv cnQgXHR5cGUKKyAgICAgICAgLnNob3J0IFxyZXEKKyAgICAgICAgLmxvbmcgLkxtYjJodF9pbml0 X2VuZFxAIC0gLkxtYjJodF9pbml0X3N0YXJ0XEAKKyAgICAgICAgLmlmbmIgXGFyZ3MKKyAgICAg ICAgbWIyaHRfYXJncyBcYXJncworICAgICAgICAuZW5kaWYKKy5MbWIyaHRfaW5pdF9lbmRcQDoK KyAgICAgICAgLmVuZG0KKwogRU5UUlkoc3RhcnQpCiAgICAgICAgIGptcCAgICAgX19zdGFydAog CkBAIC0zNCw2ICs1Nyw0MiBAQCBtdWx0aWJvb3QxX2hlYWRlcl9zdGFydDogICAgICAgLyoqKiBN VUxUSUJPT1QxIEhFQURFUiAqKioqLwogICAgICAgICAubG9uZyAgIC0oTVVMVElCT09UX0hFQURF Ul9NQUdJQyArIE1VTFRJQk9PVF9IRUFERVJfRkxBR1MpCiBtdWx0aWJvb3QxX2hlYWRlcl9lbmQ6 CiAKKy8qKiogTVVMVElCT09UMiBIRUFERVIgKioqKi8KKy8qIFNvbWUgaWRlYXMgYXJlIHRha2Vu IGZyb20gZ3J1Yi0yLjAwL2dydWItY29yZS90ZXN0cy9ib290L2tlcm5lbC1pMzg2LlMgZmlsZS4g Ki8KKyAgICAgICAgLmFsaWduICBNVUxUSUJPT1QyX0hFQURFUl9BTElHTgorCittdWx0aWJvb3Qy X2hlYWRlcl9zdGFydDoKKyAgICAgICAgLyogTWFnaWMgbnVtYmVyIGluZGljYXRpbmcgYSBNdWx0 aWJvb3QyIGhlYWRlci4gKi8KKyAgICAgICAgLmxvbmcgICBNVUxUSUJPT1QyX0hFQURFUl9NQUdJ QworICAgICAgICAvKiBBcmNoaXRlY3R1cmU6IGkzODYuICovCisgICAgICAgIC5sb25nICAgTVVM VElCT09UMl9BUkNISVRFQ1RVUkVfSTM4NgorICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBs ZW5ndGguICovCisgICAgICAgIC5sb25nICAgLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQgLSBtdWx0 aWJvb3QyX2hlYWRlcl9zdGFydAorICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBjaGVja3N1 bS4gKi8KKyAgICAgICAgLmxvbmcgICAtKE1VTFRJQk9PVDJfSEVBREVSX01BR0lDICsgTVVMVElC T09UMl9BUkNISVRFQ1RVUkVfSTM4NiArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICguTG11 bHRpYm9vdDJfaGVhZGVyX2VuZCAtIG11bHRpYm9vdDJfaGVhZGVyX3N0YXJ0KSkKKworICAgICAg ICAvKiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHJlcXVlc3QgdGFnLiAqLworICAgICAgICBtYjJo dF9pbml0IE1CMl9IVChJTkZPUk1BVElPTl9SRVFVRVNUKSwgTUIyX0hUKFJFUVVJUkVEKSwgXAor ICAgICAgICAgICAgICAgICAgIE1CMl9UVChCQVNJQ19NRU1JTkZPKSwgTUIyX1RUKE1NQVApCisK KyAgICAgICAgLyogQWxpZ24gbW9kdWxlcyBhdCBwYWdlIGJvdW5kcnkuICovCisgICAgICAgIG1i Mmh0X2luaXQgTUIyX0hUKE1PRFVMRV9BTElHTiksIE1CMl9IVChSRVFVSVJFRCkKKworICAgICAg ICAvKiBDb25zb2xlIGZsYWdzIHRhZy4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoQ09O U09MRV9GTEFHUyksIE1CMl9IVChPUFRJT05BTCksIFwKKyAgICAgICAgICAgICAgICAgICBNVUxU SUJPT1QyX0NPTlNPTEVfRkxBR1NfRUdBX1RFWFRfU1VQUE9SVEVECisKKyAgICAgICAgLyogRnJh bWVidWZmZXIgdGFnLiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChGUkFNRUJVRkZFUiks IE1CMl9IVChPUFRJT05BTCksIFwKKyAgICAgICAgICAgICAgICAgICAwLCAvKiBOdW1iZXIgb2Yg dGhlIGNvbHVtbnMgLSBubyBwcmVmZXJlbmNlLiAqLyBcCisgICAgICAgICAgICAgICAgICAgMCwg LyogTnVtYmVyIG9mIHRoZSBsaW5lcyAtIG5vIHByZWZlcmVuY2UuICovIFwKKyAgICAgICAgICAg ICAgICAgICAwICAvKiBOdW1iZXIgb2YgYml0cyBwZXIgcGl4ZWwgLSBubyBwcmVmZXJlbmNlLiAq LworCisgICAgICAgIC8qIE11bHRpYm9vdDIgaGVhZGVyIGVuZCB0YWcuICovCisgICAgICAgIG1i Mmh0X2luaXQgTUIyX0hUKEVORCksIE1CMl9IVChSRVFVSVJFRCkKKy5MbXVsdGlib290Ml9oZWFk ZXJfZW5kOgorCiAgICAgICAgIC5zZWN0aW9uIC5pbml0LnJvZGF0YSwgImEiLCBAcHJvZ2JpdHMK ICAgICAgICAgLmFsaWduIDQKIApAQCAtODIsMTAgKzE0MSw1MiBAQCBfX3N0YXJ0OgogICAgICAg ICBtb3YgICAgICVlY3gsJWVzCiAgICAgICAgIG1vdiAgICAgJWVjeCwlc3MKIAotICAgICAgICAv KiBDaGVjayBmb3IgTXVsdGlib290IGJvb3Rsb2FkZXIgKi8KKyAgICAgICAgLyogQm9vdGxvYWRl cnMgbWF5IHNldCBtdWx0aWJvb3R7MSwyfS5tZW1fbG93ZXIgdG8gYSBub256ZXJvIHZhbHVlLiAq LworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorCisgICAgICAgIC8qIENoZWNrIGZvciBNdWx0 aWJvb3QyIGJvb3Rsb2FkZXIuICovCisgICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExP QURFUl9NQUdJQywlZWF4CisgICAgICAgIGplICAgICAgLkxtdWx0aWJvb3QyX3Byb3RvCisKKyAg ICAgICAgLyogQ2hlY2sgZm9yIE11bHRpYm9vdCBib290bG9hZGVyLiAqLwogICAgICAgICBjbXAg ICAgICRNVUxUSUJPT1RfQk9PVExPQURFUl9NQUdJQywlZWF4CiAgICAgICAgIGpuZSAgICAgbm90 X211bHRpYm9vdAogCisgICAgICAgIC8qIEdldCBtZW1fbG93ZXIgZnJvbSBNdWx0aWJvb3QgaW5m b3JtYXRpb24uICovCisgICAgICAgIHRlc3RiICAgJE1CSV9NRU1MSU1JVFMsTUJfZmxhZ3MoJWVi eCkKKworICAgICAgICAvKiBOb3QgYXZhaWxhYmxlPyBCREEgdmFsdWUgd2lsbCBiZSBmaW5lLiAq LworICAgICAgICBjbW92bnogIE1CX21lbV9sb3dlciglZWJ4KSwlZWR4CisgICAgICAgIGptcCAg ICAgdHJhbXBvbGluZV9zZXR1cAorCisuTG11bHRpYm9vdDJfcHJvdG86CisgICAgICAgIC8qIFNr aXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAgICAgICBsZWEgICAg IChNQjJfZml4ZWRfc2l6ZW9mK01VTFRJQk9PVDJfVEFHX0FMSUdOLTEpKCVlYngpLCVlY3gKKyAg ICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisKKy5MbWIyX3Rz aXplOgorICAgICAgICAvKiBDaGVjayBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRvdGFsIHNpemUu ICovCisgICAgICAgIG1vdiAgICAgJWVjeCwlZWRpCisgICAgICAgIHN1YiAgICAgJWVieCwlZWRp CisgICAgICAgIGNtcCAgICAgJWVkaSxNQjJfZml4ZWRfdG90YWxfc2l6ZSglZWJ4KQorICAgICAg ICBqYmUgICAgIHRyYW1wb2xpbmVfc2V0dXAKKworICAgICAgICAvKiBHZXQgbWVtX2xvd2VyIGZy b20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09U Ml9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPLE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBjbW92 ZSAgIE1CMl9tZW1fbG93ZXIoJWVjeCksJWVkeAorICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVf c2V0dXAKKworICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5mb3JtYXRp b24/ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ELE1CMl90YWdf dHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKworICAgICAgICAv KiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLworICAgICAgICBhZGQg ICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CisgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1Qy X1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJ R04tMSksJWVjeAorICAgICAgICBqbXAgICAgIC5MbWIyX3RzaXplCisKK3RyYW1wb2xpbmVfc2V0 dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEg Ki8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAq LwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrICho aWdoKSAqLwpAQCAtMTAwLDkgKzIwMSw2IEBAIF9fc3RhcnQ6CiAgICAgICAgICAqIENvbXBhcmUg dGhlIHZhbHVlIGluIHRoZSBCREEgd2l0aCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUKICAgICAg ICAgICogbXVsdGlib290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxlKSBhbmQgdXNlIHRoZSBzbWFs bGVzdC4KICAgICAgICAgICovCi0gICAgICAgIHRlc3RiICAgJE1CSV9NRU1MSU1JVFMsKCVlYngp Ci0gICAgICAgIGp6ICAgICAgMmYgICAgICAgICAgICAgICAgICAvKiBub3QgYXZhaWxhYmxlPyBC REEgdmFsdWUgd2lsbCBiZSBmaW5lICovCi0gICAgICAgIG1vdiAgICAgTUJfbWVtX2xvd2VyKCVl YngpLCVlZHgKICAgICAgICAgY21wICAgICAkMHgxMDAsJWVkeCAgICAgICAgIC8qIGlzIHRoZSBt dWx0aWJvb3QgdmFsdWUgdG9vIHNtYWxsPyAqLwogICAgICAgICBqYiAgICAgIDJmICAgICAgICAg ICAgICAgICAgLyogaWYgc28sIGRvIG5vdCB1c2UgaXQgKi8KICAgICAgICAgc2hsICAgICAkMTAt NCwlZWR4CkBAIC0xMjEsNiArMjE5LDcgQEAgX19zdGFydDoKICAgICAgICAgbW92ICAgICAkc3lt X3BoeXMoY3B1MF9zdGFjaykrMTAyNCwlZXNwCiAgICAgICAgIHB1c2ggICAgJWVjeCAgICAgICAg ICAgICAgICAvKiBCb290IHRyYW1wb2xpbmUgYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAl ZWJ4ICAgICAgICAgICAgICAgIC8qIE11bHRpYm9vdCBpbmZvcm1hdGlvbiBhZGRyZXNzLiAqLwor ICAgICAgICBwdXNoICAgICVlYXggICAgICAgICAgICAgICAgLyogTXVsdGlib290IG1hZ2ljLiAq LwogICAgICAgICBjYWxsICAgIHJlbG9jCiAgICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyht dWx0aWJvb3RfcHRyKQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jIGIv eGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwppbmRleCA5MTQwNWU5Li45MWZhYjlkIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3Jl bG9jLmMKQEAgLTUsMTUgKzUsMTggQEAKICAqIGFuZCBtb2R1bGVzLiBUaGlzIGlzIG1vc3QgZWFz aWx5IGRvbmUgZWFybHkgd2l0aCBwYWdpbmcgZGlzYWJsZWQuCiAgKgogICogQ29weXJpZ2h0IChj KSAyMDA5LCBDaXRyaXggU3lzdGVtcywgSW5jLgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMTYg T3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg KiBBdXRob3JzOgogICogICAgS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KKyAqICAgIERhbmll bCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+CiAgKi8KIAogLyoKICAqIFRoaXMgZW50 cnkgcG9pbnQgaXMgZW50ZXJlZCBmcm9tIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyB3aXRoOgot ICogICAtIDB4NCglZXNwKSA9IE1VTFRJQk9PVF9JTkZPUk1BVElPTl9BRERSRVNTLAotICogICAt IDB4OCglZXNwKSA9IEJPT1RfVFJBTVBPTElORV9BRERSRVNTLgorICogICAtIDB4NCglZXNwKSA9 IE1VTFRJQk9PVF9NQUdJQywKKyAqICAgLSAweDgoJWVzcCkgPSBNVUxUSUJPT1RfSU5GT1JNQVRJ T05fQUREUkVTUywKKyAqICAgLSAweGMoJWVzcCkgPSBCT09UX1RSQU1QT0xJTkVfQUREUkVTUy4K ICAqLwogYXNtICgKICAgICAiICAgIC50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgpA QCAtMjQsNiArMjcsMTAgQEAgYXNtICgKIAogI2luY2x1ZGUgImRlZnMuaCIKICNpbmNsdWRlICIu Li8uLi8uLi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QuaCIKKyNpbmNsdWRlICIuLi8uLi8uLi9pbmNs dWRlL3hlbi9tdWx0aWJvb3QyLmgiCisKKyNkZWZpbmUgZ2V0X21iMl9kYXRhKHRhZywgdHlwZSwg bWVtYmVyKSAgICgoKG11bHRpYm9vdDJfdGFnXyMjdHlwZSMjX3QgKikodGFnKSktPm1lbWJlcikK KyNkZWZpbmUgZ2V0X21iMl9zdHJpbmcodGFnLCB0eXBlLCBtZW1iZXIpICgodTMyKWdldF9tYjJf ZGF0YSh0YWcsIHR5cGUsIG1lbWJlcikpCiAKIHN0YXRpYyB1MzIgYWxsb2M7CiAKQEAgLTMyLDYg KzM5LDEyIEBAIHN0YXRpYyB1MzIgYWxsb2NfbWVtKHUzMiBieXRlcykKICAgICByZXR1cm4gYWxs b2MgLT0gQUxJR05fVVAoYnl0ZXMsIDE2KTsKIH0KIAorc3RhdGljIHZvaWQgemVyb19tZW0odTMy IHMsIHUzMiBieXRlcykKK3sKKyAgICB3aGlsZSAoIGJ5dGVzLS0gKQorICAgICAgICAqKGNoYXIg KilzKysgPSAwOworfQorCiBzdGF0aWMgdTMyIGNvcHlfbWVtKHUzMiBzcmMsIHUzMiBieXRlcykK IHsKICAgICB1MzIgZHN0LCBkc3RfcmV0OwpAQCAtNTgsMTMgKzcxLDExIEBAIHN0YXRpYyB1MzIg Y29weV9zdHJpbmcodTMyIHNyYykKICAgICByZXR1cm4gY29weV9tZW0oc3JjLCBwIC0gc3JjICsg MSk7CiB9CiAKLW11bHRpYm9vdF9pbmZvX3QgX19zdGRjYWxsICpyZWxvYyh1MzIgbWJpX2luLCB1 MzIgdHJhbXBvbGluZSkKK3N0YXRpYyBtdWx0aWJvb3RfaW5mb190ICptYmlfcmVsb2ModTMyIG1i aV9pbikKIHsKICAgICBpbnQgaTsKICAgICBtdWx0aWJvb3RfaW5mb190ICptYmlfb3V0OwogCi0g ICAgYWxsb2MgPSB0cmFtcG9saW5lOwotCiAgICAgbWJpX291dCA9IF9wKGNvcHlfbWVtKG1iaV9p biwgc2l6ZW9mKCptYmlfb3V0KSkpOwogCiAgICAgaWYgKCBtYmlfb3V0LT5mbGFncyAmIE1CSV9D TURMSU5FICkKQEAgLTEwMSwzICsxMTIsMTM2IEBAIG11bHRpYm9vdF9pbmZvX3QgX19zdGRjYWxs ICpyZWxvYyh1MzIgbWJpX2luLCB1MzIgdHJhbXBvbGluZSkKIAogICAgIHJldHVybiBtYmlfb3V0 OwogfQorCitzdGF0aWMgbXVsdGlib290X2luZm9fdCAqbWJpMl9yZWxvYyh1MzIgbWJpX2luKQor eworICAgIGNvbnN0IG11bHRpYm9vdDJfZml4ZWRfdCAqbWJpX2ZpeCA9IF9wKG1iaV9pbik7Cisg ICAgY29uc3QgbXVsdGlib290Ml9tZW1vcnlfbWFwX3QgKm1tYXBfc3JjOworICAgIGNvbnN0IG11 bHRpYm9vdDJfdGFnX3QgKnRhZzsKKyAgICBtb2R1bGVfdCAqbWJpX291dF9tb2RzID0gTlVMTDsK KyAgICBtZW1vcnlfbWFwX3QgKm1tYXBfZHN0OworICAgIG11bHRpYm9vdF9pbmZvX3QgKm1iaV9v dXQ7CisgICAgdTMyIHB0cjsKKyAgICB1bnNpZ25lZCBpbnQgaSwgbW9kX2lkeCA9IDA7CisKKyAg ICBwdHIgPSBhbGxvY19tZW0oc2l6ZW9mKCptYmlfb3V0KSk7CisgICAgbWJpX291dCA9IF9wKHB0 cik7CisgICAgemVyb19tZW0ocHRyLCBzaXplb2YoKm1iaV9vdXQpKTsKKworICAgIC8qIFNraXAg TXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAgIHB0ciA9IEFMSUdOX1VQ KG1iaV9pbiArIHNpemVvZigqbWJpX2ZpeCksIE1VTFRJQk9PVDJfVEFHX0FMSUdOKTsKKworICAg IC8qIEdldCB0aGUgbnVtYmVyIG9mIG1vZHVsZXMuICovCisgICAgZm9yICggdGFnID0gX3AocHRy KTsgKHUzMil0YWcgLSBtYmlfaW4gPCBtYmlfZml4LT50b3RhbF9zaXplOworICAgICAgICAgIHRh ZyA9IF9wKEFMSUdOX1VQKCh1MzIpdGFnICsgdGFnLT5zaXplLCBNVUxUSUJPT1QyX1RBR19BTElH TikpICkKKyAgICB7CisgICAgICAgIGlmICggdGFnLT50eXBlID09IE1VTFRJQk9PVDJfVEFHX1RZ UEVfTU9EVUxFICkKKyAgICAgICAgICAgICsrbWJpX291dC0+bW9kc19jb3VudDsKKyAgICAgICAg ZWxzZSBpZiAoIHRhZy0+dHlwZSA9PSBNVUxUSUJPT1QyX1RBR19UWVBFX0VORCApCisgICAgICAg ICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoIG1iaV9vdXQtPm1vZHNfY291bnQgKQorICAg IHsKKyAgICAgICAgbWJpX291dC0+ZmxhZ3MgfD0gTUJJX01PRFVMRVM7CisgICAgICAgIG1iaV9v dXQtPm1vZHNfYWRkciA9IGFsbG9jX21lbShtYmlfb3V0LT5tb2RzX2NvdW50ICogc2l6ZW9mKCpt Ymlfb3V0X21vZHMpKTsKKyAgICAgICAgbWJpX291dF9tb2RzID0gX3AobWJpX291dC0+bW9kc19h ZGRyKTsKKyAgICB9CisKKyAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gZml4ZWQg cGFydC4gKi8KKyAgICBwdHIgPSBBTElHTl9VUChtYmlfaW4gKyBzaXplb2YoKm1iaV9maXgpLCBN VUxUSUJPT1QyX1RBR19BTElHTik7CisKKyAgICAvKiBQdXQgYWxsIG5lZWRlZCBkYXRhIGludG8g bWJpX291dC4gKi8KKyAgICBmb3IgKCB0YWcgPSBfcChwdHIpOyAodTMyKXRhZyAtIG1iaV9pbiA8 IG1iaV9maXgtPnRvdGFsX3NpemU7CisgICAgICAgICAgdGFnID0gX3AoQUxJR05fVVAoKHUzMil0 YWcgKyB0YWctPnNpemUsIE1VTFRJQk9PVDJfVEFHX0FMSUdOKSkgKQorICAgICAgICBzd2l0Y2gg KCB0YWctPnR5cGUgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgTVVMVElCT09UMl9UQUdfVFlQ RV9CT09UX0xPQURFUl9OQU1FOgorICAgICAgICAgICAgbWJpX291dC0+ZmxhZ3MgfD0gTUJJX0xP QURFUk5BTUU7CisgICAgICAgICAgICBwdHIgPSBnZXRfbWIyX3N0cmluZyh0YWcsIHN0cmluZywg c3RyaW5nKTsKKyAgICAgICAgICAgIG1iaV9vdXQtPmJvb3RfbG9hZGVyX25hbWUgPSBjb3B5X3N0 cmluZyhwdHIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNVUxUSUJPT1Qy X1RBR19UWVBFX0NNRExJTkU6CisgICAgICAgICAgICBtYmlfb3V0LT5mbGFncyB8PSBNQklfQ01E TElORTsKKyAgICAgICAgICAgIHB0ciA9IGdldF9tYjJfc3RyaW5nKHRhZywgc3RyaW5nLCBzdHJp bmcpOworICAgICAgICAgICAgbWJpX291dC0+Y21kbGluZSA9IGNvcHlfc3RyaW5nKHB0cik7Cisg ICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFT SUNfTUVNSU5GTzoKKyAgICAgICAgICAgIG1iaV9vdXQtPmZsYWdzIHw9IE1CSV9NRU1MSU1JVFM7 CisgICAgICAgICAgICBtYmlfb3V0LT5tZW1fbG93ZXIgPSBnZXRfbWIyX2RhdGEodGFnLCBiYXNp Y19tZW1pbmZvLCBtZW1fbG93ZXIpOworICAgICAgICAgICAgbWJpX291dC0+bWVtX3VwcGVyID0g Z2V0X21iMl9kYXRhKHRhZywgYmFzaWNfbWVtaW5mbywgbWVtX3VwcGVyKTsKKyAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgIGNhc2UgTVVMVElCT09UMl9UQUdfVFlQRV9NTUFQOgorICAgICAg ICAgICAgaWYgKCBnZXRfbWIyX2RhdGEodGFnLCBtbWFwLCBlbnRyeV9zaXplKSA8IHNpemVvZigq bW1hcF9zcmMpICkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgbWJpX291 dC0+ZmxhZ3MgfD0gTUJJX01FTU1BUDsKKyAgICAgICAgICAgIG1iaV9vdXQtPm1tYXBfbGVuZ3Ro ID0gZ2V0X21iMl9kYXRhKHRhZywgbW1hcCwgc2l6ZSk7CisgICAgICAgICAgICBtYmlfb3V0LT5t bWFwX2xlbmd0aCAtPSBzaXplb2YobXVsdGlib290Ml90YWdfbW1hcF90KTsKKyAgICAgICAgICAg IG1iaV9vdXQtPm1tYXBfbGVuZ3RoIC89IGdldF9tYjJfZGF0YSh0YWcsIG1tYXAsIGVudHJ5X3Np emUpOworICAgICAgICAgICAgbWJpX291dC0+bW1hcF9sZW5ndGggKj0gc2l6ZW9mKCptbWFwX2Rz dCk7CisKKyAgICAgICAgICAgIG1iaV9vdXQtPm1tYXBfYWRkciA9IGFsbG9jX21lbShtYmlfb3V0 LT5tbWFwX2xlbmd0aCk7CisKKyAgICAgICAgICAgIG1tYXBfc3JjID0gZ2V0X21iMl9kYXRhKHRh ZywgbW1hcCwgZW50cmllcyk7CisgICAgICAgICAgICBtbWFwX2RzdCA9IF9wKG1iaV9vdXQtPm1t YXBfYWRkcik7CisKKyAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbWJpX291dC0+bW1hcF9s ZW5ndGggLyBzaXplb2YoKm1tYXBfZHN0KTsgaSsrICkKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAvKiBJbml0IHNpemUgbWVtYmVyIHByb3Blcmx5LiAqLworICAgICAgICAgICAgICAg IG1tYXBfZHN0W2ldLnNpemUgPSBzaXplb2YoKm1tYXBfZHN0KTsKKyAgICAgICAgICAgICAgICBt bWFwX2RzdFtpXS5zaXplIC09IHNpemVvZihtbWFwX2RzdFtpXS5zaXplKTsKKyAgICAgICAgICAg ICAgICAvKiBOb3cgY29weSBhIGdpdmVuIHJlZ2lvbiBkYXRhLiAqLworICAgICAgICAgICAgICAg IG1tYXBfZHN0W2ldLmJhc2VfYWRkcl9sb3cgPSAodTMyKW1tYXBfc3JjLT5hZGRyOworICAgICAg ICAgICAgICAgIG1tYXBfZHN0W2ldLmJhc2VfYWRkcl9oaWdoID0gKHUzMikobW1hcF9zcmMtPmFk ZHIgPj4gMzIpOworICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLmxlbmd0aF9sb3cgPSAodTMy KW1tYXBfc3JjLT5sZW47CisgICAgICAgICAgICAgICAgbW1hcF9kc3RbaV0ubGVuZ3RoX2hpZ2gg PSAodTMyKShtbWFwX3NyYy0+bGVuID4+IDMyKTsKKyAgICAgICAgICAgICAgICBtbWFwX2RzdFtp XS50eXBlID0gbW1hcF9zcmMtPnR5cGU7CisgICAgICAgICAgICAgICAgbW1hcF9zcmMgPSBfcCht bWFwX3NyYykgKyBnZXRfbWIyX2RhdGEodGFnLCBtbWFwLCBlbnRyeV9zaXplKTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTVVMVElCT09UMl9UQUdf VFlQRV9NT0RVTEU6CisgICAgICAgICAgICBpZiAoIG1vZF9pZHggPj0gbWJpX291dC0+bW9kc19j b3VudCApCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIG1iaV9vdXRfbW9k c1ttb2RfaWR4XS5tb2Rfc3RhcnQgPSBnZXRfbWIyX2RhdGEodGFnLCBtb2R1bGUsIG1vZF9zdGFy dCk7CisgICAgICAgICAgICBtYmlfb3V0X21vZHNbbW9kX2lkeF0ubW9kX2VuZCA9IGdldF9tYjJf ZGF0YSh0YWcsIG1vZHVsZSwgbW9kX2VuZCk7CisgICAgICAgICAgICBwdHIgPSBnZXRfbWIyX3N0 cmluZyh0YWcsIG1vZHVsZSwgY21kbGluZSk7CisgICAgICAgICAgICBtYmlfb3V0X21vZHNbbW9k X2lkeF0uc3RyaW5nID0gY29weV9zdHJpbmcocHRyKTsKKyAgICAgICAgICAgIG1iaV9vdXRfbW9k c1ttb2RfaWR4XS5yZXNlcnZlZCA9IDA7CisgICAgICAgICAgICArK21vZF9pZHg7CisgICAgICAg ICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5EOgorICAg ICAgICAgICAgcmV0dXJuIG1iaV9vdXQ7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg IGJyZWFrOworICAgICAgICB9CisKKyAgICByZXR1cm4gbWJpX291dDsKK30KKworbXVsdGlib290 X2luZm9fdCBfX3N0ZGNhbGwgKnJlbG9jKHUzMiBtYl9tYWdpYywgdTMyIG1iaV9pbiwgdTMyIHRy YW1wb2xpbmUpCit7CisgICAgYWxsb2MgPSB0cmFtcG9saW5lOworCisgICAgaWYgKCBtYl9tYWdp YyA9PSBNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMgKQorICAgICAgICByZXR1cm4gbWJpMl9y ZWxvYyhtYmlfaW4pOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIG1iaV9yZWxvYyhtYmlfaW4p OworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0 eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5k ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMu YwppbmRleCAwZTFmMDlkLi45MmY1ZDgxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBA IC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogI2luY2x1ZGUgPGFzbS9o YXJkaXJxLmg+CiAjaW5jbHVkZSA8eGVuL211bHRpYm9vdC5oPgorI2luY2x1ZGUgPHhlbi9tdWx0 aWJvb3QyLmg+CiAKICNkZWZpbmUgREVGSU5FKF9zeW0sIF92YWwpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBhc20gdm9sYXRpbGUgKCJcbi5h c2NpaVwiPT0+I2RlZmluZSAiICNfc3ltICIgJTAgLyogIiAjX3ZhbCAiICovPD09XCIiIFwKQEAg LTE2Nyw2ICsxNjgsMTQgQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUJfZmxh Z3MsIG11bHRpYm9vdF9pbmZvX3QsIGZsYWdzKTsKICAgICBPRkZTRVQoTUJfY21kbGluZSwgbXVs dGlib290X2luZm9fdCwgY21kbGluZSk7CiAgICAgT0ZGU0VUKE1CX21lbV9sb3dlciwgbXVsdGli b290X2luZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBCTEFOSygpOworCisgICAgREVGSU5FKE1CMl9m aXhlZF9zaXplb2YsIHNpemVvZihtdWx0aWJvb3QyX2ZpeGVkX3QpKTsKKyAgICBPRkZTRVQoTUIy X2ZpeGVkX3RvdGFsX3NpemUsIG11bHRpYm9vdDJfZml4ZWRfdCwgdG90YWxfc2l6ZSk7CisgICAg T0ZGU0VUKE1CMl90YWdfdHlwZSwgbXVsdGlib290Ml90YWdfdCwgdHlwZSk7CisgICAgT0ZGU0VU KE1CMl90YWdfc2l6ZSwgbXVsdGlib290Ml90YWdfdCwgc2l6ZSk7CisgICAgT0ZGU0VUKE1CMl9t ZW1fbG93ZXIsIG11bHRpYm9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdCwgbWVtX2xvd2VyKTsKKyAg ICBCTEFOSygpOwogCiAgICAgT0ZGU0VUKERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4s IHZtX2Fzc2lzdCk7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5o IGIveGVuL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hM2UzMTE5Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUveGVuL211 bHRpYm9vdDIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTks MjAwMywyMDA3LDIwMDgsMjAwOSwyMDEwICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KyAqCisgKiAgbXVsdGlib290Mi5oIC0gTXVsdGlib290IDIgaGVhZGVyIGZpbGUuCisgKgorICog IEJhc2VkIG9uIGdydWItMi4wMC9pbmNsdWRlL211bHRpYm9vdDIuaCBmaWxlLgorICoKKyAqICBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYSBjb3B5CisgKiAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiAgZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv biB0aGUKKyAqICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqICBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICog IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisgKgorICogIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg KiAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIEFOWQorICogIERFVkVMT1BF UiBPUiBESVNUUklCVVRPUiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksCisgKiAgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgorICogIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCisgKi8KKworI2lmbmRlZiBfX01VTFRJQk9PVDJfSF9fCisjZGVmaW5lIF9fTVVMVElC T09UMl9IX18KKworLyogVGhlIG1hZ2ljIGZpZWxkIHNob3VsZCBjb250YWluIHRoaXMuICAqLwor I2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9NQUdJQyAgICAgICAgICAgICAgICAgICAgICAgICAw eGU4NTI1MGQ2CisKKy8qIFRoaXMgc2hvdWxkIGJlIGluICVlYXggb24geDg2IGFyY2hpdGVjdHVy ZS4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQyAgICAgICAgICAgICAg ICAgICAgIDB4MzZkNzYyODkKKworLyogSG93IG1hbnkgYnl0ZXMgZnJvbSB0aGUgc3RhcnQgb2Yg dGhlIGZpbGUgd2Ugc2VhcmNoIGZvciB0aGUgaGVhZGVyLiAgKi8KKyNkZWZpbmUgTVVMVElCT09U Ml9TRUFSQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzI3NjgKKworLyogTXVsdGli b290IDIgaGVhZGVyIGFsaWdubWVudC4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfQUxJ R04gICAgICAgICAgICAgICAgICAgICAgICAgOAorCisvKiBBbGlnbm1lbnQgb2YgbXVsdGlib290 IDIgbW9kdWxlcy4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJfTU9EX0FMSUdOICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAKKworLyogQWxpZ25tZW50IG9mIHRoZSBtdWx0aWJv b3QgMiBpbmZvIHN0cnVjdHVyZS4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSU5GT19BTElHTiAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKworLyogTXVsdGlib290IDIgYXJj aGl0ZWN0dXJlcy4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9BUkNISVRFQ1RVUkVfSTM4NiAgICAg ICAgICAgICAgICAgICAgMAorI2RlZmluZSBNVUxUSUJPT1QyX0FSQ0hJVEVDVFVSRV9NSVBTMzIg ICAgICAgICAgICAgICAgICA0CisKKy8qIEhlYWRlciB0YWcgdHlwZXMuICovCisjZGVmaW5lIE1V TFRJQk9PVDJfSEVBREVSX1RBR19FTkQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUg TVVMVElCT09UMl9IRUFERVJfVEFHX0lORk9STUFUSU9OX1JFUVVFU1QgICAgICAgMQorI2RlZmlu ZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfQUREUkVTUyAgICAgICAgICAgICAgICAgICAyCisjZGVm aW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19FTlRSWV9BRERSRVNTICAgICAgICAgICAgIDMKKyNk ZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0NPTlNPTEVfRkxBR1MgICAgICAgICAgICAgNAor I2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfRlJBTUVCVUZGRVIgICAgICAgICAgICAgICA1 CisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19NT0RVTEVfQUxJR04gICAgICAgICAgICAg IDYKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0VGSV9CUyAgICAgICAgICAgICAgICAg ICAgNworI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfRU5UUllfQUREUkVTU19FRkkzMiAg ICAgICA4CisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVSX1RBR19FTlRSWV9BRERSRVNTX0VGSTY0 ICAgICAgIDkKKworLyogSGVhZGVyIHRhZyBmbGFncy4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9I RUFERVJfVEFHX1JFUVVJUkVEICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNVUxUSUJPT1Qy X0hFQURFUl9UQUdfT1BUSU9OQUwgICAgICAgICAgICAgICAgICAxCisKKy8qIEhlYWRlciBjb25z b2xlIHRhZyBjb25zb2xlX2ZsYWdzLiAqLworI2RlZmluZSBNVUxUSUJPT1QyX0NPTlNPTEVfRkxB R1NfQ09OU09MRV9SRVFVSVJFRCAgICAgICAxCisjZGVmaW5lIE1VTFRJQk9PVDJfQ09OU09MRV9G TEFHU19FR0FfVEVYVF9TVVBQT1JURUQgICAgIDIKKworLyogRmxhZ3Mgc2V0IGluIHRoZSAnZmxh Z3MnIG1lbWJlciBvZiB0aGUgbXVsdGlib290IGhlYWRlci4gICovCisjZGVmaW5lIE1VTFRJQk9P VDJfVEFHX1RZUEVfRU5EICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVVMVElC T09UMl9UQUdfVFlQRV9DTURMSU5FICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNVUxU SUJPT1QyX1RBR19UWVBFX0JPT1RfTE9BREVSX05BTUUgICAgICAgICAgICAyCisjZGVmaW5lIE1V TFRJQk9PVDJfVEFHX1RZUEVfTU9EVUxFICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUg TVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPICAgICAgICAgICAgICAgNAorI2RlZmlu ZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JPT1RERVYgICAgICAgICAgICAgICAgICAgICA1CisjZGVm aW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfTU1BUCAgICAgICAgICAgICAgICAgICAgICAgIDYKKyNk ZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9WQkUgICAgICAgICAgICAgICAgICAgICAgICAgNwor I2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0ZSQU1FQlVGRkVSICAgICAgICAgICAgICAgICA4 CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRUxGX1NFQ1RJT05TICAgICAgICAgICAgICAg IDkKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9BUE0gICAgICAgICAgICAgICAgICAgICAg ICAgMTAKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FRkkzMiAgICAgICAgICAgICAgICAg ICAgICAgMTEKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCAgICAgICAgICAgICAg ICAgICAgICAgMTIKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9TTUJJT1MgICAgICAgICAg ICAgICAgICAgICAgMTMKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9BQ1BJX09MRCAgICAg ICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9BQ1BJX05FVyAg ICAgICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9ORVRXT1JL ICAgICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FRklf TU1BUCAgICAgICAgICAgICAgICAgICAgMTcKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9F RklfQlMgICAgICAgICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQ RV9FRkkzMl9JSCAgICAgICAgICAgICAgICAgICAgMTkKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdf VFlQRV9FRkk2NF9JSCAgICAgICAgICAgICAgICAgICAgMjAKKworLyogTXVsdGlib290IDIgdGFn IGFsaWdubWVudC4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfQUxJR04gICAgICAgICAgICAg ICAgICAgICAgICAgICAgOAorCisvKiBNZW1vcnkgdHlwZXMuICovCisjZGVmaW5lIE1VTFRJQk9P VDJfTUVNT1JZX0FWQUlMQUJMRSAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTVVMVElC T09UMl9NRU1PUllfUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBNVUxU SUJPT1QyX01FTU9SWV9BQ1BJX1JFQ0xBSU1BQkxFICAgICAgICAgICAgICAzCisjZGVmaW5lIE1V TFRJQk9PVDJfTUVNT1JZX05WUyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUg TVVMVElCT09UMl9NRU1PUllfQkFEUkFNICAgICAgICAgICAgICAgICAgICAgICAgNQorCisvKiBG cmFtZWJ1ZmZlciB0eXBlcy4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9GUkFNRUJVRkZFUl9UWVBF X0lOREVYRUQgICAgICAgICAgICAgMAorI2RlZmluZSBNVUxUSUJPT1QyX0ZSQU1FQlVGRkVSX1RZ UEVfUkdCICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1VTFRJQk9PVDJfRlJBTUVCVUZGRVJf VFlQRV9FR0FfVEVYVCAgICAgICAgICAgIDIKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3R5cGVk ZWYgc3RydWN0IHsKKyAgICB1MzIgdG90YWxfc2l6ZTsKKyAgICB1MzIgcmVzZXJ2ZWQ7Cit9IG11 bHRpYm9vdDJfZml4ZWRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAg IHUzMiBzaXplOworfSBtdWx0aWJvb3QyX3RhZ190OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAg dTMyIHR5cGU7CisgICAgdTMyIHNpemU7CisgICAgY2hhciBzdHJpbmdbXTsKK30gbXVsdGlib290 Ml90YWdfc3RyaW5nX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1 MzIgc2l6ZTsKKyAgICB1MzIgbWVtX2xvd2VyOworICAgIHUzMiBtZW1fdXBwZXI7Cit9IG11bHRp Ym9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHU2NCBh ZGRyOworICAgIHU2NCBsZW47CisgICAgdTMyIHR5cGU7CisgICAgdTMyIHplcm87Cit9IG11bHRp Ym9vdDJfbWVtb3J5X21hcF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7Cisg ICAgdTMyIHNpemU7CisgICAgdTMyIGVudHJ5X3NpemU7CisgICAgdTMyIGVudHJ5X3ZlcnNpb247 CisgICAgbXVsdGlib290Ml9tZW1vcnlfbWFwX3QgZW50cmllc1tdOworfSBtdWx0aWJvb3QyX3Rh Z19tbWFwX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1MzIgc2l6 ZTsKKyAgICB1NjQgcG9pbnRlcjsKK30gbXVsdGlib290Ml90YWdfZWZpNjRfdDsKKwordHlwZWRl ZiBzdHJ1Y3QgeworICAgIHUzMiB0eXBlOworICAgIHUzMiBzaXplOworICAgIHU2NCBwb2ludGVy OworfSBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAg dTMyIHR5cGU7CisgICAgdTMyIHNpemU7CisgICAgdTMyIG1vZF9zdGFydDsKKyAgICB1MzIgbW9k X2VuZDsKKyAgICBjaGFyIGNtZGxpbmVbXTsKK30gbXVsdGlib290Ml90YWdfbW9kdWxlX3Q7Cisj ZW5kaWYgLyogX19BU1NFTUJMWV9fICovCisKKyNlbmRpZiAvKiBfX01VTFRJQk9PVDJfSF9fICov Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=