From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v10 07/13] x86: add multiboot2 protocol support for EFI platforms Date: Wed, 30 Nov 2016 14:04:13 +0100 Message-ID: <1480511059-14062-8-git-send-email-daniel.kiper@oracle.com> References: <1480511059-14062-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 1cC4a2-0003Wb-La for xen-devel@lists.xenproject.org; Wed, 30 Nov 2016 13:05:46 +0000 In-Reply-To: <1480511059-14062-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 VGhpcyB3YXkgWGVuIGNhbiBiZSBsb2FkZWQgb24gRUZJIHBsYXRmb3JtcyB1c2luZyBHUlVCMiBh bmQKb3RoZXIgYm9vdCBsb2FkZXJzIHdoaWNoIHN1cHBvcnQgbXVsdGlib290MiBwcm90b2NvbC4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0t LQp2MTAgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gcmVwbGFjZSBsam1wbCB3aXRoIGxyZXRx CiAgICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgICAtIGludHJvZHVjZSBlZmlf cGxhdGZvcm0gdG8gaW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eQogICAgICAoc3VnZ2VzdGVkIGJ5 IEFuZHJldyBDb29wZXIpLgoKdjkgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSB1c2UgLkwgbGFi ZWxzIGluc3RlYWQgb2YgbnVtZXJpYyBvbmVzIGluIG11bHRpYm9vdDIgZGF0YSBzY2FubmluZyBs b29wcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjggLSBzdWdnZXN0aW9ucy9m aXhlczoKICAgLSB1c2UgX19ic3Nfc3RhcnQoJXJpcCkvX19ic3NfZW5kKCVyaXApIGluc3RlYWQg b2YKICAgICBvZiAuc3RhcnRvZi4oLmJzcykoJXJpcCkvJC5zaXplb2YuKC5ic3MpIGJlY2F1c2UK ICAgICBsYXR0ZXIgaXMgbm90IHRlc3RlZCBleHRlbnNpdmVseSBpbiBkaWZmZXJlbnQKICAgICBi dWlsdCBlbnZpcm9ubWVudHMgeWV0CiAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKSwK ICAgLSBmaXggbXVsdGlib290MiBkYXRhIHNjYW5uaW5nIGxvb3AgaW4geDg2XzMyIGNvZGUKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgY2hlY2sgZm9yIGV4dHJhIG1l bSBmb3IgbWJpIGRhdGEgaWYgWGVuIGlzIGxvYWRlZAogICAgIHZpYSBtdWx0aWJvb3QyIHByb3Rv Y29sIG9uIEVGSSBwbGF0Zm9ybQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY3IC0g c3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZG8gbm90IGFsbG9jYXRlIHR3aWNlIG1lbW9yeSBmb3Ig dHJhbXBvbGluZSBpZiB3ZSB3ZXJlCiAgICAgbG9hZGVkIHZpYSBtdWx0aWJvb3QyIHByb3RvY29s IG9uIEVGSSBwbGF0Zm9ybSwKICAgLSB3cmFwIGxvbmcgbGluZQogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKS4KCnY2IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gaW1wcm92ZSBsYWJlbCBu YW1lcyBpbiBhc3NlbWJseQogICAgIGVycm9yIHByaW50aW5nIGNvZGUKICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcyBhbmQgZml4ZXMKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY0IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAg IC0gcmVtb3ZlIHJlZHVuZGFudCBCU1MgYWxpZ25tZW50LAogICAtIHVwZGF0ZSBCU1MgYWxpZ25t ZW50IGNoZWNrLAogICAtIHVzZSBfX3NldF9iaXQoKSBpbnN0ZWFkIG9mIHNldF9iaXQoKSBpZiBw b3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGNhbGwgZWZpX2Fy Y2hfY3B1KCkgZnJvbSBlZmlfbXVsdGlib290MigpCiAgICAgZXZlbiBpZiB0aGUgc2FtZSB3b3Jr IGlzIGRvbmUgbGF0ZXIgaW4KICAgICBvdGhlciBwbGFjZSByaWdodCBub3cKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYzplZmlfbXVs dGlib290MigpCiAgICAgZmFpbCBwcm9wZXJseSBvbiBFRkkgcGxhdGZvcm1zLAogICAtIGRvIG5v dCByZWFkIGRhdGEgYmV5b25kIHRoZSBlbmQgb2YgbXVsdGlib290MgogICAgIGluZm9ybWF0aW9u IGluIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIHVzZSAzMi1iaXQgcmVnaXN0ZXJzIGluIHg4Nl82NCBjb2RlIGlmIHBvc3NpYmxl CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gbXVsdGlib290MiBpbmZvcm1h dGlvbiBhZGRyZXNzIGlzIDY0LWJpdAogICAgIGluIHg4Nl82NCBjb2RlLCBzbywgdHJlYXQgaXQg aXMgYXMgaXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgY21vdmNj IGlmIHBvc3NpYmxlLAogICAtIGxlYXZlIG9ubHkgb25lIHNwYWNlIGJldHdlZW4gcmVwIGFuZCBz dG9zcQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgZXJyb3Ig aGFuZGxpbmcsCiAgIC0gaW1wcm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcywKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVhcmx5IGVycm9yIG1lc3NhZ2VzIHBy aW50aW5nIGNvZGUsCiAgIC0gaW1wcm92ZSBsYWJlbCBuYW1lcwogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFudXBzLgoKdjMgLSBzdWdnZXN0aW9u cy9maXhlczoKICAgLSB0YWtlIGludG8gYWNjb3VudCBhbGlnbm1lbnQgd2hlbiBza2lwcGluZyBt dWx0aWJvb3QyIGZpeGVkIHBhcnQKICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsg V2lsayksCiAgIC0gaW1wcm92ZSBzZWdtZW50IHJlZ2lzdGVycyBpbml0aWFsaXphdGlvbgogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoIGFuZCBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAt IGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4K CnYyIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZ2VuZXJhdGUgbXVsdGlib290MiBoZWFkZXIg dXNpbmcgbWFjcm9zCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gc3dpdGNo IENQVSB0byB4ODZfMzIgbW9kZSBiZWZvcmUKICAgICBqdW1waW5nIHRvIDMyLWJpdCBjb2RlCiAg ICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKSwKICAgLSByZWR1Y2UgY29kZSBjaGFuZ2Vz IHRvIGluY3JlYXNlIHBhdGNoIHJlYWRhYmlsaXR5CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIGlnbm9yZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lDX01FTUlORk8gdGFnIG9u IEVGSSBwbGF0Zm9ybQogICAgIGFuZCBmaW5kIG9uIG15IG93biBtdWx0aWJvb3QyLm1lbV9sb3dl ciB2YWx1ZSwKICAgLSBzdG9wIGV4ZWN1dGlvbiBpZiBFRkkgcGxhdGZvcm0gaXMgZGV0ZWN0ZWQK ICAgICBpbiBsZWdhY3kgQklPUyBwYXRoLgotLS0KIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyAg ICAgICAgICB8ICAyNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogeGVu L2FyY2gveDg2L2VmaS9lZmktYm9vdC5oICAgICAgIHwgICA1NCArKysrKysrLQogeGVuL2FyY2gv eDg2L2VmaS9zdHViLmMgICAgICAgICAgIHwgICAzOCArKysrKysKIHhlbi9hcmNoL3g4Ni94ODZf NjQvYXNtLW9mZnNldHMuYyB8ICAgIDIgKwogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAgICAg ICAgIHwgICAgNCArLQogeGVuL2NvbW1vbi9lZmkvYm9vdC5jICAgICAgICAgICAgIHwgICAxMSAr KwogNiBmaWxlcyBjaGFuZ2VkLCAzNDkgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3Qv aGVhZC5TCmluZGV4IGQ0MjNmZDguLmFjOTNkZjAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9i b290L2hlYWQuUworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTg5LDYgKzg5LDEz IEBAIG11bHRpYm9vdDJfaGVhZGVyX3N0YXJ0OgogICAgICAgICAgICAgICAgICAgIDAsIC8qIE51 bWJlciBvZiB0aGUgbGluZXMgLSBubyBwcmVmZXJlbmNlLiAqLyBcCiAgICAgICAgICAgICAgICAg ICAgMCAgLyogTnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIC0gbm8gcHJlZmVyZW5jZS4gKi8KIAor ICAgICAgICAvKiBJbmhpYml0IGJvb3Rsb2FkZXIgZnJvbSBjYWxsaW5nIEV4aXRCb290U2Vydmlj ZXMoKS4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRUZJX0JTKSwgTUIyX0hUKE9QVElP TkFMKQorCisgICAgICAgIC8qIEVGSTY0IGVudHJ5IHBvaW50LiAqLworICAgICAgICBtYjJodF9p bml0IE1CMl9IVChFTlRSWV9BRERSRVNTX0VGSTY0KSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAg ICAgICAgICAgICAgICAgIHN5bV9waHlzKF9fZWZpNjRfc3RhcnQpCisKICAgICAgICAgLyogTXVs dGlib290MiBoZWFkZXIgZW5kIHRhZy4gKi8KICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5E KSwgTUIyX0hUKFJFUVVJUkVEKQogLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CkBAIC0xMDAsMjAg KzEwNyw0OCBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKIGdkdF9ib290X2Rlc2NyOgogICAg ICAgICAud29yZCAgIDYqOC0xCiAgICAgICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9n ZHQpCisgICAgICAgIC5sb25nICAgMCAvKiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCisKKyAg ICAgICAgLmFsaWduIDQKK3ZnYV90ZXh0X2J1ZmZlcjoKKyAgICAgICAgLmxvbmcgICAweGI4MDAw CisKK2VmaV9wbGF0Zm9ybToKKyAgICAgICAgLmJ5dGUgICAwCiAKIC5MYmFkX2NwdV9tc2c6IC5h c2NpeiAiRVJSOiBOb3QgYSA2NC1iaXQgQ1BVISIKIC5MYmFkX2xkcl9tc2c6IC5hc2NpeiAiRVJS OiBOb3QgYSBNdWx0aWJvb3QgYm9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmJzOiAuYXNjaXogIkVS UjogQm9vdGxvYWRlciBzaHV0ZG93biBFRkkgeDY0IGJvb3Qgc2VydmljZXMhIgorLkxiYWRfbGRy X25zdDogLmFzY2l6ICJFUlI6IEVGSSBTeXN0ZW1UYWJsZSBpcyBub3QgcHJvdmlkZWQgYnkgYm9v dGxvYWRlciEiCisuTGJhZF9sZHJfbmloOiAuYXNjaXogIkVSUjogRUZJIEltYWdlSGFuZGxlIGlz IG5vdCBwcm92aWRlZCBieSBib290bG9hZGVyISIKKy5MYmFkX2VmaV9tc2c6IC5hc2NpeiAiRVJS OiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkISIKIAogICAgICAgICAuc2Vj dGlvbiAuaW5pdC50ZXh0LCAiYXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92 ICAgICAkKHN5bV9waHlzKC5MYmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAg ICAgICBqbXAgICAgIHByaW50X2VycgorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211 bHRpYm9vdDoKICAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQotcHJpbnRfZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVl ZGkgICMgVkdBIGZyYW1lYnVmZmVyCi0xOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAg ICBqbXAgICAgIC5MZ2V0X3Z0YgorLkxtYjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1f cGh5cyguTGJhZF9sZHJfbnN0KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAg ICAuTGdldF92dGIKKy5MbWIyX25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxi YWRfbGRyX25paCkpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRf dnRiCisuTG1iMl9ub19iczoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9u YnMpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAg ICAgICAgICAgICAgICAgICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAu THNlbmRfY2hyCisuTG1iMl9lZmlfaWFfMzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cygu TGJhZF9lZmlfbXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRp LCVlZGkgICAgICAgICAgICAgICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAg IGptcCAgICAgLkxzZW5kX2NocgorLkxnZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlz KHZnYV90ZXh0X2J1ZmZlciksJWVkaQorLkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVz aSksJWJsCiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1ww JyBzZW50aW5lbAogICAgICAgICBqZSAgICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNm OCs1LCVkeCAgICMgVUFSVCBMaW5lIFN0YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNTgsMTg2 IEBAIHByaW50X2VycjoKICAgICAgICAgbW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJh bnNtaXQgSG9sZGluZyBSZWdpc3RlcgogICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAg b3V0ICAgICAlYWwsJWR4ICAgICAgICAjIFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFs IGxpbmUKLSAgICAgICAgbW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVy IHRvIHRoZSBWR0EgZnJhbWVidWZmZXIKKyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAj IElzIHRoZSBWR0EgdGV4dCBidWZmZXIgYXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2Vu ZF9jaHIKKyAgICAgICAgbW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVy IHRvIHRoZSBWR0EgdGV4dCBidWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAg c3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZy YW1lYnVmZmVyCi0gICAgICAgIGptcCAgICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAg ICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAg IGptcCAgICAgLkxzZW5kX2NocgogLkxoYWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQK IAorICAgICAgICAuY29kZTY0CisKK19fZWZpNjRfc3RhcnQ6CisgICAgICAgIGNsZAorCisgICAg ICAgIC8qIFZHQSBpcyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCisgICAgICAg IG1vdmwgICAkMCx2Z2FfdGV4dF9idWZmZXIoJXJpcCkKKworICAgICAgICAvKiBDaGVjayBmb3Ig TXVsdGlib290MiBib290bG9hZGVyLiAqLworICAgICAgICBjbXAgICAgICRNVUxUSUJPT1QyX0JP T1RMT0FERVJfTUFHSUMsJWVheAorICAgICAgICBqZSAgICAgIC5MZWZpX211bHRpYm9vdDJfcHJv dG8KKworICAgICAgICAvKiBKdW1wIHRvIG5vdF9tdWx0aWJvb3QgYWZ0ZXIgc3dpdGNoaW5nIENQ VSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICBub3RfbXVsdGlib290KCVyaXAp LCVlZGkKKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisKKy5MZWZpX211bHRpYm9vdDJf cHJvdG86CisgICAgICAgIC8qIFplcm8gRUZJIFN5c3RlbVRhYmxlIGFuZCBFRkkgSW1hZ2VIYW5k bGUgYWRkcmVzc2VzLiAqLworICAgICAgICB4b3IgICAgICVlc2ksJWVzaQorICAgICAgICB4b3Ig ICAgICVlZGksJWVkaQorCisgICAgICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBm aXhlZCBwYXJ0LiAqLworICAgICAgICBsZWEgICAgIChNQjJfZml4ZWRfc2l6ZW9mK01VTFRJQk9P VDJfVEFHX0FMSUdOLTEpKCVyYngpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1Qy X1RBR19BTElHTi0xKSwlZWN4CisKKy5MZWZpX21iMl90c2l6ZToKKyAgICAgICAgLyogQ2hlY2sg TXVsdGlib290MiBpbmZvcm1hdGlvbiB0b3RhbCBzaXplLiAqLworICAgICAgICBtb3YgICAgICVl Y3gsJXI4ZAorICAgICAgICBzdWIgICAgICVlYngsJXI4ZAorICAgICAgICBjbXAgICAgICVyOGQs TUIyX2ZpeGVkX3RvdGFsX3NpemUoJXJieCkKKyAgICAgICAgamJlICAgICBydW5fYnMKKworICAg ICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZhaWxhYmxlPyAqLworICAgICAgICBjbXBs ICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSV9CUyxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAg ICAgam5lICAgICAuTGVmaV9tYjJfc3QKKworICAgICAgICAvKiBXZSBhcmUgb24gRUZJIHBsYXRm b3JtIGFuZCBFRkkgYm9vdCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlLiAqLworICAgICAgICBpbmNi ICAgIGVmaV9wbGF0Zm9ybSglcmlwKQorCisgICAgICAgIC8qCisgICAgICAgICAqIERpc2FibGUg cmVhbCBtb2RlIGFuZCBvdGhlciBsZWdhY3kgc3R1ZmYgd2hpY2ggc2hvdWxkIG5vdAorICAgICAg ICAgKiBiZSBydW4gb24gRUZJIHBsYXRmb3Jtcy4KKyAgICAgICAgICovCisgICAgICAgIGluY2Ig ICAgc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbXAgICAgIC5MZWZpX21iMl9uZXh0X3Rh ZworCisuTGVmaV9tYjJfc3Q6CisgICAgICAgIC8qIEdldCBFRkkgU3lzdGVtVGFibGUgYWRkcmVz cyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJ Qk9PVDJfVEFHX1RZUEVfRUZJNjQsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAg TUIyX2VmaTY0X3N0KCVyY3gpLCVyc2kKKyAgICAgICAgamUgICAgICAuTGVmaV9tYjJfbmV4dF90 YWcKKworICAgICAgICAvKiBHZXQgRUZJIEltYWdlSGFuZGxlIGFkZHJlc3MgZnJvbSBNdWx0aWJv b3QyIGluZm9ybWF0aW9uLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBF X0VGSTY0X0lILE1CMl90YWdfdHlwZSglcmN4KQorICAgICAgICBjbW92ZSAgIE1CMl9lZmk2NF9p aCglcmN4KSwlcmRpCisgICAgICAgIGplICAgICAgLkxlZmlfbWIyX25leHRfdGFnCisKKyAgICAg ICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLworICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAg ICAgICAgamUgICAgICBydW5fYnMKKworLkxlZmlfbWIyX25leHRfdGFnOgorICAgICAgICAvKiBH byB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLworICAgICAgICBhZGQgICAg IE1CMl90YWdfc2l6ZSglcmN4KSwlZWN4CisgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RB R19BTElHTi0xKSwlZWN4CisgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04t MSksJWVjeAorICAgICAgICBqbXAgICAgIC5MZWZpX21iMl90c2l6ZQorCitydW5fYnM6CisgICAg ICAgIC8qIEFyZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNtcGIg ICAgJDAsZWZpX3BsYXRmb3JtKCVyaXApCisgICAgICAgIGpueiAgICAgMGYKKworICAgICAgICAv KiBKdW1wIHRvIC5MbWIyX25vX2JzIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUu ICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9fYnMoJXJpcCksJWVkaQorICAgICAgICBqbXAg ICAgIHg4Nl8zMl9zd2l0Y2gKKworMDoKKyAgICAgICAgLyogSXMgRUZJIFN5c3RlbVRhYmxlIGFk ZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJzaSwl cnNpCisgICAgICAgIGpueiAgICAgMWYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX3N0 IGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAg LkxtYjJfbm9fc3QoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKwor MToKKyAgICAgICAgLyogSXMgRUZJIEltYWdlSGFuZGxlIGFkZHJlc3MgcHJvdmlkZWQgYnkgYm9v dCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJkaSwlcmRpCisgICAgICAgIGpueiAgICAg MmYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX2loIGFmdGVyIHN3aXRjaGluZyBDUFUg dG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9faWgoJXJpcCksJWVk aQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKworMjoKKyAgICAgICAgcHVzaCAgICAl cmF4CisgICAgICAgIHB1c2ggICAgJXJkaQorCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRp YWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4KKyAgICAgICAgICogSXQgbXVzdCBiZSBk b25lIGVhcmxpZXIgdGhhbiBpbiBCSU9TIGNhc2UKKyAgICAgICAgICogYmVjYXVzZSBlZmlfbXVs dGlib290MigpIHRvdWNoZXMgaXQuCisgICAgICAgICAqLworICAgICAgICBsZWEgICAgIF9fYnNz X3N0YXJ0KCVyaXApLCVlZGkKKyAgICAgICAgbGVhICAgICBfX2Jzc19lbmQoJXJpcCksJWVjeAor ICAgICAgICBzdWIgICAgICVlZGksJWVjeAorICAgICAgICBzaHIgICAgICQzLCVlY3gKKyAgICAg ICAgeG9yICAgICAlZWF4LCVlYXgKKyAgICAgICAgcmVwIHN0b3NxCisKKyAgICAgICAgcG9wICAg ICAlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBpcyBjYWxs ZWQgYWNjb3JkaW5nIHRvIFN5c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAtIElOOiAl cmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNpIC0gRUZJIFN5c3RlbVRhYmxlLAorICAgICAgICAg KiAgIC0gT1VUOiAlcmF4IC0gaGlnaGVzdCB1c2FibGUgbWVtb3J5IGFkZHJlc3MgYmVsb3cgMSBN aUI7CisgICAgICAgICAqICAgICAgICAgICAgICAgICBtZW1vcnkgYWJvdmUgdGhpcyBhZGRyZXNz IGlzIHJlc2VydmVkIGZvciB0cmFtcG9saW5lOworICAgICAgICAgKiAgICAgICAgICAgICAgICAg bWVtb3J5IGJlbG93IHRoaXMgYWRkcmVzcyBpcyB1c2VkIGFzIGEgc3RvcmFnZSBmb3IKKyAgICAg ICAgICogICAgICAgICAgICAgICAgIG1iaSBzdHJ1Y3QgY3JlYXRlZCBpbiByZWxvYygpLgorICAg ICAgICAgKgorICAgICAgICAgKiBNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lDX01FTUlORk8gdGFn IGlzIG5vdCBwcm92aWRlZAorICAgICAgICAgKiBvbiBFRkkgcGxhdGZvcm1zLiBIZW5jZSwgaXQg Y291bGQgbm90IGJlIHVzZWQgbGlrZQorICAgICAgICAgKiBvbiBsZWdhY3kgQklPUyBwbGF0Zm9y bXMuCisgICAgICAgICAqLworICAgICAgICBjYWxsICAgIGVmaV9tdWx0aWJvb3QyCisKKyAgICAg ICAgLyogQ29udmVydCBtZW1vcnkgYWRkcmVzcyB0byBieXRlcy8xNiBhbmQgc3RvcmUgaXQgaW4g c2FmZSBwbGFjZS4gKi8KKyAgICAgICAgc2hyICAgICAkNCwlZWF4CisgICAgICAgIG1vdiAgICAg JWVheCwlZWN4CisKKyAgICAgICAgcG9wICAgICAlcmF4CisKKyAgICAgICAgLyogSnVtcCB0byB0 cmFtcG9saW5lX3NldHVwIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisg ICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9zZXR1cCglcmlwKSwlZWRpCisKK3g4Nl8zMl9zd2l0 Y2g6CisgICAgICAgIGNsaQorCisgICAgICAgIC8qIEluaXRpYWxpemUgR0RUUi4gKi8KKyAgICAg ICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQorCisgICAgICAgIC8qIFJlbG9hZCBjb2Rl IHNlbGVjdG9yLiAqLworICAgICAgICBwdXNocSAgICRCT09UX0NTMzIKKyAgICAgICAgbGVhICAg ICBjczMyX3N3aXRjaCglcmlwKSwlZWR4CisgICAgICAgIHB1c2ggICAgJXJkeAorICAgICAgICBs cmV0cQorCisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0Y2g6CisgICAgICAgIC8qIEluaXRp YWxpemUgYmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAgICAgbW92ICAgICAkQk9PVF9EUywl ZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAgICAgbW92ICAgICAlZWR4LCVlcwor ICAgICAgICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8qICVlc3AgaXMgaW5pdGlhbGl6ZWQg bGF0ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRlc2NyaXB0b3IgdG8gdW51c2VkIHNl Z21lbnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorICAgICAgICBt b3YgICAgICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVkeCwlZ3MKKworICAgICAgICAvKiBE aXNhYmxlIHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAlY3IwLCVlZHgKKyAgICAgICAgYW5k ICAgICAkKH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlY3IwCisKKyAg ICAgICAgLyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAqLworICAgICAgICBqbXAg ICAgIColZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAgICAgICBjbGkKQEAgLTE1Nyw3 ICszNjUsNyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1 ZSB3aWxsIGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVl ZHgKLSAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGptcCAgICAgdHJh bXBvbGluZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9wcm90bzoKICAgICAgICAgLyogU2tp cCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCkBAIC0xNjksMjQgKzM3Nywz MyBAQCBfX3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVkaQogICAgICAgICBzdWIgICAg ICVlYngsJWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVi eCkKLSAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGpiZSAgICAgdHJh bXBvbGluZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRp Ym9vdDIgaW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZ UEVfQkFTSUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkKICAgICAgICAgY21vdmUgICBNQjJf bWVtX2xvd2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisg ICAgICAgIGplICAgICAgLkxtYjJfbmV4dF90YWcKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxh dGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1Qy X1RBR19UWVBFX0VGSTMyLE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIy X2VmaV9pYV8zMgorCisgICAgICAgIC8qIEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290 IHNlcnZpY2VzLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0 LE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAg ICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAg ICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKKy5MbWIyX25leHRfdGFnOgogICAgICAgICAvKiBHbyB0byBuZXh0IE11 bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLwogICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6 ZSglZWN4KSwlZWN4CiAgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwl ZWN4CiAgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAogICAg ICAgICBqbXAgICAgIC5MbWIyX3RzaXplCiAKLXRyYW1wb2xpbmVfc2V0dXA6Cit0cmFtcG9saW5l X2Jpb3Nfc2V0dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJl bG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEg c2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5 IGNoZWNrIChoaWdoKSAqLwpAQCAtMjAyLDE2ICs0MTksMTkgQEAgdHJhbXBvbGluZV9zZXR1cDoK ICAgICAgICAgICogbXVsdGlib290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxlKSBhbmQgdXNlIHRo ZSBzbWFsbGVzdC4KICAgICAgICAgICovCiAgICAgICAgIGNtcCAgICAgJDB4MTAwLCVlZHggICAg ICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVlIHRvbyBzbWFsbD8gKi8KLSAgICAgICAgamIg ICAgICAyZiAgICAgICAgICAgICAgICAgIC8qIGlmIHNvLCBkbyBub3QgdXNlIGl0ICovCisgICAg ICAgIGpiICAgICAgdHJhbXBvbGluZV9zZXR1cCAgICAvKiBpZiBzbywgZG8gbm90IHVzZSBpdCAq LwogICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKICAgICAgICAgY21wICAgICAlZWN4LCVlZHgg ICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEgdmFsdWUgKi8KICAgICAgICAgY21vdmIgICAl ZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2UgdGhlIHNtYWxsZXIgKi8KIAotMjogICAgICAv KiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICovCisgICAgICAgIC8qIFJlc2VydmUg NjRrYiBmb3IgdGhlIHRyYW1wb2xpbmUuICovCiAgICAgICAgIHN1YiAgICAgJDB4MTAwMCwlZWN4 CiAKICAgICAgICAgLyogRnJvbSBhcmNoL3g4Ni9zbXBib290LmM6IHN0YXJ0X2VpcCBoYWQgYmV0 dGVyIGJlIHBhZ2UtYWxpZ25lZCEgKi8KICAgICAgICAgeG9yICAgICAlY2wsICVjbAorCit0cmFt cG9saW5lX3NldHVwOgorICAgICAgICAvKiBTYXZlIHRyYW1wb2xpbmUgYWRkcmVzcyBmb3IgbGF0 ZXIgdXNlLiAqLwogICAgICAgICBzaGwgICAgICQ0LCAlZWN4CiAgICAgICAgIG1vdiAgICAgJWVj eCxzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpCiAKQEAgLTIyMyw3ICs0NDMsMTQgQEAgdHJhbXBv bGluZV9zZXR1cDoKICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAgICBtb3YgICAgICVlYXgs c3ltX3BoeXMobXVsdGlib290X3B0cikKIAotICAgICAgICAvKiBJbml0aWFsaXplIEJTUyAobm8g bmFzdHkgc3VycHJpc2VzISkgKi8KKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gbm90IHplcm8g QlNTIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLgorICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQg ZWFybGllci4KKyAgICAgICAgICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3Bs YXRmb3JtKQorICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1Mg KG5vIG5hc3R5IHN1cnByaXNlcyEpLiAqLwogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jz c19zdGFydCksJWVkaQogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gK ICAgICAgICAgc3ViICAgICAlZWRpLCVlY3gKQEAgLTIzMSw2ICs0NTgsNyBAQCB0cmFtcG9saW5l X3NldHVwOgogICAgICAgICBzaHIgICAgICQyLCVlY3gKICAgICAgICAgcmVwIHN0b3NsCiAKKzE6 CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQu ICovCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAogICAgICAgICBjcHVpZApAQCAt MjgyLDggKzUxMCwxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjbXAgICAgICRzeW1f cGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAgICAgamIgICAgICAxYgogCisg ICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUu ICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3BsYXRmb3JtKQorICAgICAgICBq bnogICAgIDFmCisKICAgICAgICAgY2FsbCAgICBjbWRsaW5lX3BhcnNlX2Vhcmx5CiAKKzE6CiAg ICAgICAgIC8qIFN3aXRjaCB0byBsb3ctbWVtb3J5IHN0YWNrLiAgKi8KICAgICAgICAgbW92ICAg ICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKICAgICAgICAgbGVhICAgICAweDEwMDAw KCVlZGkpLCVlc3AKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaCBiL3hl bi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAppbmRleCA2MmMwMTBlLi5kYzg1N2Q4IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKKysrIGIveGVuL2FyY2gveDg2L2VmaS9l ZmktYm9vdC5oCkBAIC0xNDYsNiArMTQ2LDggQEAgc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNo X3Byb2Nlc3NfbWVtb3J5X21hcChFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSwKIHsKICAg ICBzdHJ1Y3QgZTgyMGVudHJ5ICplOwogICAgIHVuc2lnbmVkIGludCBpOworICAgIC8qIENoZWNr IGZvciBleHRyYSBtZW0gZm9yIG1iaSBkYXRhIGlmIFhlbiBpcyBsb2FkZWQgdmlhIG11bHRpYm9v dDIgcHJvdG9jb2wuICovCisgICAgVUlOVE4gZXh0cmFfbWVtID0gZWZpX2VuYWJsZWQoRUZJX0xP QURFUikgPyAwIDogKDY0IDw8IDEwKTsKIAogICAgIC8qIFBvcHVsYXRlIEU4MjAgdGFibGUgYW5k IGNoZWNrIHRyYW1wb2xpbmUgYXJlYSBhdmFpbGFiaWxpdHkuICovCiAgICAgZSA9IGU4MjBtYXAg LSAxOwpAQCAtMTY4LDcgKzE3MCw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJjaF9wcm9j ZXNzX21lbW9yeV9tYXAoRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUsCiAgICAgICAgICAg ICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICAgICAgY2FzZSBFZmlDb252ZW50aW9uYWxNZW1vcnk6 CiAgICAgICAgICAgICBpZiAoICF0cmFtcG9saW5lX3BoeXMgJiYgZGVzYy0+UGh5c2ljYWxTdGFy dCArIGxlbiA8PSAweDEwMDAwMCAmJgotICAgICAgICAgICAgICAgICBsZW4gPj0gY2ZnLnNpemUg JiYgZGVzYy0+UGh5c2ljYWxTdGFydCArIGxlbiA+IGNmZy5hZGRyICkKKyAgICAgICAgICAgICAg ICAgbGVuID49IGNmZy5zaXplICsgZXh0cmFfbWVtICYmCisgICAgICAgICAgICAgICAgIGRlc2Mt PlBoeXNpY2FsU3RhcnQgKyBsZW4gPiBjZmcuYWRkciApCiAgICAgICAgICAgICAgICAgY2ZnLmFk ZHIgPSAoZGVzYy0+UGh5c2ljYWxTdGFydCArIGxlbiAtIGNmZy5zaXplKSAmIFBBR0VfTUFTSzsK ICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICBjYXNlIEVmaUxvYWRlckNv ZGU6CkBAIC0yMTAsMTIgKzIxMywxNCBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGVmaV9hcmNoX2Fs bG9jYXRlX21tYXBfYnVmZmVyKFVJTlROIG1hcF9zaXplKQogCiBzdGF0aWMgdm9pZCBfX2luaXQg ZWZpX2FyY2hfcHJlX2V4aXRfYm9vdCh2b2lkKQogewotICAgIGlmICggIXRyYW1wb2xpbmVfcGh5 cyApCi0gICAgewotICAgICAgICBpZiAoICFjZmcuYWRkciApCi0gICAgICAgICAgICBibGV4aXQo TCJObyBtZW1vcnkgZm9yIHRyYW1wb2xpbmUiKTsKKyAgICBpZiAoIHRyYW1wb2xpbmVfcGh5cyAp CisgICAgICAgIHJldHVybjsKKworICAgIGlmICggIWNmZy5hZGRyICkKKyAgICAgICAgYmxleGl0 KEwiTm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7CisKKyAgICBpZiAoIGVmaV9lbmFibGVkKEVG SV9MT0FERVIpICkKICAgICAgICAgcmVsb2NhdGVfdHJhbXBvbGluZShjZmcuYWRkcik7Ci0gICAg fQogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgbm9yZXR1cm4gZWZpX2FyY2hfcG9zdF9leGl0X2Jv b3Qodm9pZCkKQEAgLTY1Myw2ICs2NTgsNDMgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgZWZpX2Fy Y2hfdXNlX2NvbmZpZ19maWxlKEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQogCiBzdGF0 aWMgdm9pZCBlZmlfYXJjaF9mbHVzaF9kY2FjaGVfYXJlYShjb25zdCB2b2lkICp2YWRkciwgVUlO VE4gc2l6ZSkgeyB9CiAKK3BhZGRyX3QgX19pbml0IGVmaV9tdWx0aWJvb3QyKEVGSV9IQU5ETEUg SW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAgIEVGSV9H UkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcDsKKyAgICBVSU5UTiBjb2xzLCBnb3BfbW9kZSA9 IH4wLCByb3dzOworCisgICAgX19zZXRfYml0KEVGSV9CT09ULCAmZWZpX2ZsYWdzKTsKKyAgICBf X3NldF9iaXQoRUZJX1JTLCAmZWZpX2ZsYWdzKTsKKworICAgIGVmaV9pbml0KEltYWdlSGFuZGxl LCBTeXN0ZW1UYWJsZSk7CisKKyAgICBlZmlfY29uc29sZV9zZXRfbW9kZSgpOworCisgICAgaWYg KCBTdGRPdXQtPlF1ZXJ5TW9kZShTdGRPdXQsIFN0ZE91dC0+TW9kZS0+TW9kZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICZjb2xzLCAmcm93cykgPT0gRUZJX1NVQ0NFU1MgKQorICAgICAg ICBlZmlfYXJjaF9jb25zb2xlX2luaXQoY29scywgcm93cyk7CisKKyAgICBnb3AgPSBlZmlfZ2V0 X2dvcCgpOworCisgICAgaWYgKCBnb3AgKQorICAgICAgICBnb3BfbW9kZSA9IGVmaV9maW5kX2dv cF9tb2RlKGdvcCwgMCwgMCwgMCk7CisKKyAgICBlZmlfYXJjaF9lZGQoKTsKKyAgICBlZmlfYXJj aF9jcHUoKTsKKworICAgIGVmaV90YWJsZXMoKTsKKyAgICBzZXR1cF9lZmlfcGNpKCk7CisgICAg ZWZpX3ZhcmlhYmxlcygpOworCisgICAgaWYgKCBnb3AgKQorICAgICAgICBlZmlfc2V0X2dvcF9t b2RlKGdvcCwgZ29wX21vZGUpOworCisgICAgZWZpX2V4aXRfYm9vdChJbWFnZUhhbmRsZSwgU3lz dGVtVGFibGUpOworCisgICAgLyogUmV0dXJuIGhpZ2hlc3QgdXNhYmxlIG1lbW9yeSBhZGRyZXNz IGJlbG93IDEgTWlCLiAqLworICAgIHJldHVybiBjZmcuYWRkcjsKK30KKwogLyoKICAqIExvY2Fs IHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1 Yi5jIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKaW5kZXggNDE1ODEyNC4uNmVhNmFhMSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKKysrIGIveGVuL2FyY2gveDg2L2VmaS9z dHViLmMKQEAgLTMsNiArMyw0NCBAQAogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAjaW5jbHVkZSA8 eGVuL2xpYi5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL2VmaWJpbmQu aD4KKyNpbmNsdWRlIDxlZmkvZWZpZGVmLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNhcHN1bGUuaD4K KyNpbmNsdWRlIDxlZmkvZWZpY29uLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRldnAuaD4KKyNpbmNs dWRlIDxlZmkvZWZpYXBpLmg+CisKKy8qCisgKiBIZXJlIHdlIGFyZSBpbiBFRkkgc3R1Yi4gRUZJ IGNhbGxzIGFyZSBub3Qgc3VwcG9ydGVkIGR1ZSB0byBsYWNrCisgKiBvZiByZWxldmFudCBmdW5j dGlvbmFsaXR5IGluIGNvbXBpbGVyIGFuZC9vciBsaW5rZXIuCisgKgorICogZWZpX211bHRpYm9v dDIoKSBpcyBhbiBleGNlcHRpb24uIFBsZWFzZSBsb29rIGJlbG93IGZvciBtb3JlIGRldGFpbHMu CisgKi8KKworcGFkZHJfdCBfX2luaXQgbm9yZXR1cm4gZWZpX211bHRpYm9vdDIoRUZJX0hBTkRM RSBJbWFnZUhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVG SV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAgIENIQVIxNiAqZXJyID0gTCJYZW4g ZG9lcyBub3QgaGF2ZSBFRkkgY29kZSBidWlsZCBpbiEhIVxyXG5TeXN0ZW0gaGFsdGVkISEhXHJc biI7CisgICAgU0lNUExFX1RFWFRfT1VUUFVUX0lOVEVSRkFDRSAqU3RkRXJyOworCisgICAgU3Rk RXJyID0gU3lzdGVtVGFibGUtPlN0ZEVyciA/IFN5c3RlbVRhYmxlLT5TdGRFcnIgOiBTeXN0ZW1U YWJsZS0+Q29uT3V0OworCisgICAgLyoKKyAgICAgKiBQcmludCBlcnJvciBtZXNzYWdlIGFuZCBo YWx0IHRoZSBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBXZSBoYXZlIHRvIG9wZW4gY29kZSBNUyB4 NjQgY2FsbGluZyBjb252ZW50aW9uCisgICAgICogaW4gYXNzZW1ibHkgYmVjYXVzZSBoZXJlIHRo aXMgY29udmVudGlvbiBtYXkKKyAgICAgKiBub3QgYmUgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IEMg Y29tcGlsZXIuCisgICAgICovCisgICAgYXNtIHZvbGF0aWxlKAorICAgICIgICAgY2FsbCAlMiAg ICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAiMDogIGhsdCAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisgICAgIiAgICBqbXAgIDBiICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAg ICAgIDogIitjIiAoU3RkRXJyKSwgIitkIiAoZXJyKSA6ICJnIiAoU3RkRXJyLT5PdXRwdXRTdHJp bmcpCisgICAgICAgOiAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiLCAibWVtb3J5Iik7 CisKKyAgICB1bnJlYWNoYWJsZSgpOworfQogCiBib29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGlu dCBmZWF0dXJlKQogewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0 cy5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCmluZGV4IGI0MzdhOGYuLjJh MjI2NTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYworKysg Yi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKQEAgLTE3NSw2ICsxNzUsOCBAQCB2 b2lkIF9fZHVtbXlfXyh2b2lkKQogICAgIE9GRlNFVChNQjJfdGFnX3R5cGUsIG11bHRpYm9vdDJf dGFnX3QsIHR5cGUpOwogICAgIE9GRlNFVChNQjJfdGFnX3NpemUsIG11bHRpYm9vdDJfdGFnX3Qs IHNpemUpOwogICAgIE9GRlNFVChNQjJfbWVtX2xvd2VyLCBtdWx0aWJvb3QyX3RhZ19iYXNpY19t ZW1pbmZvX3QsIG1lbV9sb3dlcik7CisgICAgT0ZGU0VUKE1CMl9lZmk2NF9zdCwgbXVsdGlib290 Ml90YWdfZWZpNjRfdCwgcG9pbnRlcik7CisgICAgT0ZGU0VUKE1CMl9lZmk2NF9paCwgbXVsdGli b290Ml90YWdfZWZpNjRfaWhfdCwgcG9pbnRlcik7CiAgICAgQkxBTksoKTsKIAogICAgIE9GRlNF VChET01BSU5fdm1fYXNzaXN0LCBzdHJ1Y3QgZG9tYWluLCB2bV9hc3Npc3QpOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKaW5kZXgg YjBiMWM5Yi4uZTBlMjUyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUworKysg Yi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCkBAIC0zMzEsNSArMzMxLDUgQEAgQVNTRVJUKElTX0FM SUdORUQoX19pbml0X2VuZCwgICBQQUdFX1NJWkUpLCAiX19pbml0X2VuZCBtaXNhbGlnbmVkIikK IAogQVNTRVJUKElTX0FMSUdORUQodHJhbXBvbGluZV9zdGFydCwgNCksICJ0cmFtcG9saW5lX3N0 YXJ0IG1pc2FsaWduZWQiKQogQVNTRVJUKElTX0FMSUdORUQodHJhbXBvbGluZV9lbmQsICAgNCks ICJ0cmFtcG9saW5lX2VuZCBtaXNhbGlnbmVkIikKLUFTU0VSVChJU19BTElHTkVEKF9fYnNzX3N0 YXJ0LCAgICAgIDQpLCAiX19ic3Nfc3RhcnQgbWlzYWxpZ25lZCIpCi1BU1NFUlQoSVNfQUxJR05F RChfX2Jzc19lbmQsICAgICAgICA0KSwgIl9fYnNzX2VuZCBtaXNhbGlnbmVkIikKK0FTU0VSVChJ U19BTElHTkVEKF9fYnNzX3N0YXJ0LCAgICAgIDgpLCAiX19ic3Nfc3RhcnQgbWlzYWxpZ25lZCIp CitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19lbmQsICAgICAgICA4KSwgIl9fYnNzX2VuZCBtaXNh bGlnbmVkIikKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21tb24v ZWZpL2Jvb3QuYwppbmRleCA2OTgwMTcwLi4xY2NiMmMzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L2VmaS9ib290LmMKKysrIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCkBAIC03OSw2ICs3OSwxNyBA QCBzdGF0aWMgc2l6ZV90IHdzdHJsZW4oY29uc3QgQ0hBUjE2ICogcyk7CiBzdGF0aWMgaW50IHNl dF9jb2xvcih1MzIgbWFzaywgaW50IGJwcCwgdTggKnBvcywgdTggKnN6KTsKIHN0YXRpYyBib29s X3QgbWF0Y2hfZ3VpZChjb25zdCBFRklfR1VJRCAqZ3VpZDEsIGNvbnN0IEVGSV9HVUlEICpndWlk Mik7CiAKK3N0YXRpYyB2b2lkIGVmaV9pbml0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9T WVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKK3N0YXRpYyB2b2lkIGVmaV9jb25zb2xlX3NldF9t b2RlKHZvaWQpOworc3RhdGljIEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmVmaV9nZXRf Z29wKHZvaWQpOworc3RhdGljIFVJTlROIGVmaV9maW5kX2dvcF9tb2RlKEVGSV9HUkFQSElDU19P VVRQVVRfUFJPVE9DT0wgKmdvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSU5U TiBjb2xzLCBVSU5UTiByb3dzLCBVSU5UTiBkZXB0aCk7CitzdGF0aWMgdm9pZCBlZmlfdGFibGVz KHZvaWQpOworc3RhdGljIHZvaWQgc2V0dXBfZWZpX3BjaSh2b2lkKTsKK3N0YXRpYyB2b2lkIGVm aV92YXJpYWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBlZmlfc2V0X2dvcF9tb2RlKEVGSV9HUkFQ SElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCwgVUlOVE4gZ29wX21vZGUpOworc3RhdGljIHZvaWQg ZWZpX2V4aXRfYm9vdChFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpT eXN0ZW1UYWJsZSk7CisKIHN0YXRpYyBjb25zdCBFRklfQk9PVF9TRVJWSUNFUyAqX19pbml0ZGF0 YSBlZmlfYnM7CiBzdGF0aWMgVUlOVDMyIF9faW5pdGRhdGEgZWZpX2JzX3JldmlzaW9uOwogc3Rh dGljIEVGSV9IQU5ETEUgX19pbml0ZGF0YSBlZmlfaWg7Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=