From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v4 16/19] x86: add multiboot2 protocol support for EFI platforms Date: Sat, 6 Aug 2016 01:04:39 +0200 Message-ID: <1470438282-4226-17-git-send-email-daniel.kiper@oracle.com> References: <1470438282-4226-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 1bVoBx-0003hl-VE for xen-devel@lists.xenproject.org; Fri, 05 Aug 2016 23:06:14 +0000 In-Reply-To: <1470438282-4226-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, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org VGhpcyB3YXkgWGVuIGNhbiBiZSBsb2FkZWQgb24gRUZJIHBsYXRmb3JtcyB1c2luZyBHUlVCMiBh bmQKb3RoZXIgYm9vdCBsb2FkZXJzIHdoaWNoIHN1cHBvcnQgbXVsdGlib290MiBwcm90b2NvbC4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0t LQp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbW92ZSByZWR1bmRhbnQgQlNTIGFsaWdu bWVudCwKICAgLSB1cGRhdGUgQlNTIGFsaWdubWVudCBjaGVjaywKICAgLSB1c2UgX19zZXRfYml0 KCkgaW5zdGVhZCBvZiBzZXRfYml0KCkgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgpIGZyb20gZWZpX211bHRpYm9vdDIo KQogICAgIGV2ZW4gaWYgdGhlIHNhbWUgd29yayBpcyBkb25lIGxhdGVyIGluCiAgICAgb3RoZXIg cGxhY2UgcmlnaHQgbm93CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0geGVu L2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9vdDIoKQogICAgIGZhaWwgcHJvcGVybHkg b24gRUZJIHBsYXRmb3JtcywKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9m IG11bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgMzItYml0IHJlZ2lzdGVy cyBpbiB4ODZfNjQgY29kZSBpZiBwb3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIG11bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRkcmVzcyBpcyA2NC1iaXQKICAgICBp biB4ODZfNjQgY29kZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlzCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJsZSwKICAgLSBsZWF2ZSBvbmx5 IG9uZSBzcGFjZSBiZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nLAogICAtIGltcHJvdmUgZWFybHkg ZXJyb3IgbWVzc2FnZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1w cm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcyBwcmludGluZyBjb2RlLAogICAtIGltcHJvdmUgbGFi ZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNv bW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5v ciBjbGVhbnVwcy4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdGFrZSBpbnRvIGFjY291 bnQgYWxpZ25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBmaXhlZCBwYXJ0CiAgICAgKHN1 Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgc2VnbWVudCBy ZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCBhbmQg S29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAt IGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3JvcwogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIHN3aXRjaCBDUFUgdG8geDg2XzMyIG1vZGUgYmVmb3JlCiAg ICAganVtcGluZyB0byAzMi1iaXQgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3Bl ciksCiAgIC0gcmVkdWNlIGNvZGUgY2hhbmdlcyB0byBpbmNyZWFzZSBwYXRjaCByZWFkYWJpbGl0 eQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpZ25vcmUgTVVMVElCT09UMl9U QUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBvbiBFRkkgcGxhdGZvcm0KICAgICBhbmQgZmluZCBv biBteSBvd24gbXVsdGlib290Mi5tZW1fbG93ZXIgdmFsdWUsCiAgIC0gc3RvcCBleGVjdXRpb24g aWYgRUZJIHBsYXRmb3JtIGlzIGRldGVjdGVkCiAgICAgaW4gbGVnYWN5IEJJT1MgcGF0aC4KLS0t CiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAgMjQzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaCAgICAg ICB8ICAgNDkgKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jICAgICAgICAgICB8ICAg MjQgKysrKwogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgIHwgICAgOCArLQogeGVu L2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jIHwgICAgMiArCiB4ZW4vYXJjaC94ODYveGVu Lmxkcy5TICAgICAgICAgICAgfCAgICA0ICstCiB4ZW4vY29tbW9uL2VmaS9ib290LmMgICAgICAg ICAgICAgfCAgIDEyICsrCiB4ZW4vaW5jbHVkZS94ZW4vZWZpLmggICAgICAgICAgICAgfCAgICAx ICsKIDggZmlsZXMgY2hhbmdlZCwgMzE5IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyBiL3hlbi9hcmNoL3g4Ni9ib290 L2hlYWQuUwppbmRleCA1ZTYxODU0Li5hY2E1MzcwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv Ym9vdC9oZWFkLlMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCkBAIC04OSw2ICs4OSwx MyBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKICAgICAgICAgICAgICAgICAgICAwLCAvKiBO dW1iZXIgb2YgdGhlIGxpbmVzIC0gbm8gcHJlZmVyZW5jZS4gKi8gXAogICAgICAgICAgICAgICAg ICAgIDAgIC8qIE51bWJlciBvZiBiaXRzIHBlciBwaXhlbCAtIG5vIHByZWZlcmVuY2UuICovCiAK KyAgICAgICAgLyogSW5oaWJpdCBib290bG9hZGVyIGZyb20gY2FsbGluZyBFeGl0Qm9vdFNlcnZp Y2VzKCkuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVGSV9CUyksIE1CMl9IVChPUFRJ T05BTCkKKworICAgICAgICAvKiBFRkk2NCBlbnRyeSBwb2ludC4gKi8KKyAgICAgICAgbWIyaHRf aW5pdCBNQjJfSFQoRU5UUllfQUREUkVTU19FRkk2NCksIE1CMl9IVChPUFRJT05BTCksIFwKKyAg ICAgICAgICAgICAgICAgICBzeW1fcGh5cyhfX2VmaTY0X3N0YXJ0KQorCiAgICAgICAgIC8qIE11 bHRpYm9vdDIgaGVhZGVyIGVuZCB0YWcuICovCiAgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVO RCksIE1CMl9IVChSRVFVSVJFRCkKIC5MbXVsdGlib290Ml9oZWFkZXJfZW5kOgpAQCAtMTAwLDE5 ICsxMDcsNDUgQEAgbXVsdGlib290Ml9oZWFkZXJfc3RhcnQ6CiBnZHRfYm9vdF9kZXNjcjoKICAg ICAgICAgLndvcmQgICA2KjgtMQogICAgICAgICAubG9uZyAgIHN5bV9waHlzKHRyYW1wb2xpbmVf Z2R0KQorICAgICAgICAubG9uZyAgIDAgLyogTmVlZGVkIGZvciA2NC1iaXQgbGdkdCAqLworCitj czMyX3N3aXRjaF9hZGRyOgorICAgICAgICAubG9uZyAgIHN5bV9waHlzKGNzMzJfc3dpdGNoKQor ICAgICAgICAud29yZCAgIEJPT1RfQ1MzMgorCit2Z2FfdGV4dF9idWZmZXI6CisgICAgICAgIC5s b25nICAgMHhiODAwMAogCiAuTGJhZF9jcHVfbXNnOiAuYXNjaXogIkVSUjogTm90IGEgNjQtYml0 IENQVSEiCiAuTGJhZF9sZHJfbXNnOiAuYXNjaXogIkVSUjogTm90IGEgTXVsdGlib290IGJvb3Rs b2FkZXIhIgorLkxiYWRfbGRyX25iczogLmFzY2l6ICJFUlI6IEJvb3Rsb2FkZXIgc2h1dGRvd24g RUZJIHg2NCBib290IHNlcnZpY2VzISIKKy5MYmFkX2xkcl9uc3Q6IC5hc2NpeiAiRVJSOiBFRkkg U3lzdGVtVGFibGUgaXMgbm90IHByb3ZpZGVkIGJ5IGJvb3Rsb2FkZXIhIgorLkxiYWRfbGRyX25p aDogLmFzY2l6ICJFUlI6IEVGSSBJbWFnZUhhbmRsZSBpcyBub3QgcHJvdmlkZWQgYnkgYm9vdGxv YWRlciEiCisuTGJhZF9lZmlfbXNnOiAuYXNjaXogIkVSUjogRUZJIElBLTMyIHBsYXRmb3JtcyBh cmUgbm90IHN1cHBvcnRlZCEiCiAKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4Iiwg QHByb2diaXRzCiAKIGJhZF9jcHU6CiAgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9j cHVfbXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKLSAgICAgICAgam1wICAgICBwcmludF9lcnIK KyAgICAgICAgam1wICAgICAwZgogbm90X211bHRpYm9vdDoKICAgICAgICAgbW92ICAgICAkKHN5 bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotcHJpbnRfZXJyOgot ICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1lYnVmZmVyCisgICAgICAg IGptcCAgICAgMGYKK21iMl9ub19zdDoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFk X2xkcl9uc3QpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBqbXAgICAgIDBmCittYjJf bm9faWg6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbmloKSksJWVzaSAj IEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAwZgorbWIyX25vX2JzOgorICAgICAgICBt b3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25icykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisg ICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0 ZXh0IGJ1ZmZlcgorICAgICAgICBqbXAgICAgIDFmCittYjJfZWZpX2lhXzMyOgorICAgICAgICBt b3YgICAgICQoc3ltX3BoeXMoLkxiYWRfZWZpX21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisg ICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0 ZXh0IGJ1ZmZlcgorICAgICAgICBqbXAgICAgIDFmCiswOiAgICAgIG1vdiAgICAgc3ltX3BoeXMo dmdhX3RleHRfYnVmZmVyKSwlZWRpCiAxOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAogICAgICAg ICB0ZXN0ICAgICVibCwlYmwgICAgICAgICMgVGVybWluYXRlIG9uICdcMCcgc2VudGluZWwKICAg ICAgICAgamUgICAgICAuTGhhbHQKQEAgLTEyMywxMyArMTU2LDE3MyBAQCBwcmludF9lcnI6CiAg ICAgICAgIG1vdiAgICAgJDB4M2Y4KzAsJWR4ICAgIyBVQVJUIFRyYW5zbWl0IEhvbGRpbmcgUmVn aXN0ZXIKICAgICAgICAgbW92ICAgICAlYmwsJWFsCiAgICAgICAgIG91dCAgICAgJWFsLCVkeCAg ICAgICAgIyBTZW5kIGEgY2hhcmFjdGVyIG92ZXIgdGhlIHNlcmlhbCBsaW5lCi0gICAgICAgIG1v dnNiICAgICAgICAgICAgICAgICAgIyBXcml0ZSBhIGNoYXJhY3RlciB0byB0aGUgVkdBIGZyYW1l YnVmZmVyCisgICAgICAgIHRlc3QgICAgJWVkaSwlZWRpICAgICAgIyBJcyB0aGUgVkdBIHRleHQg YnVmZmVyIGF2YWlsYWJsZT8KKyAgICAgICAganogICAgICAxYgorICAgICAgICBtb3ZzYiAgICAg ICAgICAgICAgICAgICMgV3JpdGUgYSBjaGFyYWN0ZXIgdG8gdGhlIFZHQSB0ZXh0IGJ1ZmZlcgog ICAgICAgICBtb3YgICAgICQ3LCVhbAotICAgICAgICBzdG9zYiAgICAgICAgICAgICAgICAgICMg V3JpdGUgYW4gYXR0cmlidXRlIHRvIHRoZSBWR0EgZnJhbWVidWZmZXIKKyAgICAgICAgc3Rvc2Ig ICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVm ZmVyCiAgICAgICAgIGptcCAgICAgMWIKIC5MaGFsdDogaGx0CiAgICAgICAgIGptcCAgICAgLkxo YWx0CiAKKyAgICAgICAgLmNvZGU2NAorCitfX2VmaTY0X3N0YXJ0OgorICAgICAgICBjbGQKKwor ICAgICAgICAvKiBWR0EgaXMgbm90IGF2YWlsYWJsZSBvbiBFRkkgcGxhdGZvcm1zLiAqLworICAg ICAgICBtb3ZsICAgJDAsdmdhX3RleHRfYnVmZmVyKCVyaXApCisKKyAgICAgICAgLyogQ2hlY2sg Zm9yIE11bHRpYm9vdDIgYm9vdGxvYWRlci4gKi8KKyAgICAgICAgY21wICAgICAkTVVMVElCT09U Ml9CT09UTE9BREVSX01BR0lDLCVlYXgKKyAgICAgICAgamUgICAgICAuTGVmaV9tdWx0aWJvb3Qy X3Byb3RvCisKKyAgICAgICAgLyogSnVtcCB0byBub3RfbXVsdGlib290IGFmdGVyIHN3aXRjaGlu ZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgbm90X211bHRpYm9vdCgl cmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisuTGVmaV9tdWx0aWJv b3QyX3Byb3RvOgorICAgICAgICAvKiBaZXJvIEVGSSBTeXN0ZW1UYWJsZSBhbmQgRUZJIEltYWdl SGFuZGxlIGFkZHJlc3Nlcy4gKi8KKyAgICAgICAgeG9yICAgICAlZXNpLCVlc2kKKyAgICAgICAg eG9yICAgICAlZWRpLCVlZGkKKworICAgICAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3JtYXRp b24gZml4ZWQgcGFydC4gKi8KKyAgICAgICAgbGVhICAgICAoTUIyX2ZpeGVkX3NpemVvZitNVUxU SUJPT1QyX1RBR19BTElHTi0xKSglZWJ4KSwlZWN4CisgICAgICAgIGFuZCAgICAgJH4oTVVMVElC T09UMl9UQUdfQUxJR04tMSksJWVjeAorCiswOgorICAgICAgICAvKiBDaGVjayBNdWx0aWJvb3Qy IGluZm9ybWF0aW9uIHRvdGFsIHNpemUuICovCisgICAgICAgIG1vdiAgICAgJWVjeCwlcjhkCisg ICAgICAgIHN1YiAgICAgJWVieCwlcjhkCisgICAgICAgIGNtcCAgICAgJXI4ZCxNQjJfZml4ZWRf dG90YWxfc2l6ZSglcmJ4KQorICAgICAgICBqYmUgICAgIHJ1bl9icworCisgICAgICAgIC8qIEFy ZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJ Qk9PVDJfVEFHX1RZUEVfRUZJX0JTLE1CMl90YWdfdHlwZSglcmN4KQorICAgICAgICBqbmUgICAg IDFmCisKKyAgICAgICAgLyogWWVzLCBza2lwIHJlYWwgbW9kZSBhbmQgZG8gbm90IGRvIG90aGVy IHVubmVlZGVkIHRoaW5ncy4gKi8KKyAgICAgICAgaW5jYiAgICBza2lwX3JlYWxtb2RlKCVyaXAp CisgICAgICAgIGptcCAgICAgOWYKKworMToKKyAgICAgICAgLyogR2V0IEVGSSBTeXN0ZW1UYWJs ZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICAgY21wbCAg ICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAg Y21vdmUgICBNQjJfZWZpNjRfc3QoJXJjeCksJXJzaQorICAgICAgICBqZSAgICAgIDlmCisKKyAg ICAgICAgLyogR2V0IEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZv cm1hdGlvbi4gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NF9J SCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgY21vdmUgICBNQjJfZWZpNjRfaWgoJXJjeCks JXJkaQorICAgICAgICBqZSAgICAgIDlmCisKKyAgICAgICAgLyogSXMgaXQgdGhlIGVuZCBvZiBN dWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RB R19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgamUgICAgICBydW5fYnMKKwor OToKKyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRhZy4gKi8K KyAgICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJXJjeCksJWVjeAorICAgICAgICBhZGQgICAg ICQoTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJ Qk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgam1wICAgICAwYgorCitydW5fYnM6Cisg ICAgICAgIC8qIEFyZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNt cGIgICAgJDAsc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbnogICAgIDBmCisKKyAgICAg ICAgLyogSnVtcCB0byBtYjJfbm9fYnMgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9k ZS4gKi8KKyAgICAgICAgbGVhICAgICBtYjJfbm9fYnMoJXJpcCksJWVkaQorICAgICAgICBqbXAg ICAgIHg4Nl8zMl9zd2l0Y2gKKworMDoKKyAgICAgICAgLyogSXMgRUZJIFN5c3RlbVRhYmxlIGFk ZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJzaSwl cnNpCisgICAgICAgIGpueiAgICAgMWYKKworICAgICAgICAvKiBKdW1wIHRvIG1iMl9ub19zdCBh ZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIG1i Ml9ub19zdCglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisxOgor ICAgICAgICAvKiBJcyBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVzcyBwcm92aWRlZCBieSBib290IGxv YWRlcj8gKi8KKyAgICAgICAgdGVzdCAgICAlcmRpLCVyZGkKKyAgICAgICAgam56ICAgICAyZgor CisgICAgICAgIC8qIEp1bXAgdG8gbWIyX25vX2loIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2 XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgbWIyX25vX2loKCVyaXApLCVlZGkKKyAgICAg ICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisKKzI6CisgICAgICAgIHB1c2ggICAgJXJheAorICAg ICAgICBwdXNoICAgICVyZGkKKworICAgICAgICAvKgorICAgICAgICAgKiBJbml0aWFsaXplIEJT UyAobm8gbmFzdHkgc3VycHJpc2VzISkuCisgICAgICAgICAqIEl0IG11c3QgYmUgZG9uZSBlYXJs aWVyIHRoYW4gaW4gQklPUyBjYXNlCisgICAgICAgICAqIGJlY2F1c2UgZWZpX211bHRpYm9vdDIo KSB0b3VjaGVzIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX2Jzc19zdGFydCgl cmlwKSwlZWRpCisgICAgICAgIGxlYSAgICAgX19ic3NfZW5kKCVyaXApLCVlY3gKKyAgICAgICAg c3ViICAgICAlZWRpLCVlY3gKKyAgICAgICAgc2hyICAgICAkMywlZWN4CisgICAgICAgIHhvciAg ICAgJWVheCwlZWF4CisgICAgICAgIHJlcCBzdG9zcQorCisgICAgICAgIHBvcCAgICAgJXJkaQor CisgICAgICAgIC8qCisgICAgICAgICAqIElOOiAlcmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNp IC0gRUZJIFN5c3RlbVRhYmxlLgorICAgICAgICAgKiBPVVQ6ICVyYXggLSBIaWdoZXN0IGF2YWls YWJsZSBtZW1vcnkgYWRkcmVzcyBiZWxvdyAxIE1pQi4KKyAgICAgICAgICoKKyAgICAgICAgICog TVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBpcyBub3QgcHJvdmlkZWQKKyAg ICAgICAgICogb24gRUZJIHBsYXRmb3Jtcy4gSGVuY2UsIGl0IGNvdWxkIG5vdCBiZSB1c2VkIGxp a2UKKyAgICAgICAgICogb24gbGVnYWN5IEJJT1MgcGxhdGZvcm1zLgorICAgICAgICAgKi8KKyAg ICAgICAgY2FsbCAgICBlZmlfbXVsdGlib290MgorCisgICAgICAgIC8qIENvbnZlcnQgbWVtb3J5 IGFkZHJlc3MgdG8gYnl0ZXMvMTYgYW5kIHN0b3JlIGl0IGluIHNhZmUgcGxhY2UuICovCisgICAg ICAgIHNociAgICAgJDQsJWVheAorICAgICAgICBtb3YgICAgICVlYXgsJWVjeAorCisgICAgICAg IHBvcCAgICAgJXJheAorCisgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBvbGluZV9zZXR1cCBhZnRl ciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIHRyYW1w b2xpbmVfc2V0dXAoJXJpcCksJWVkaQorCit4ODZfMzJfc3dpdGNoOgorICAgICAgICBjbGkKKwor ICAgICAgICAvKiBJbml0aWFsaXNlIEdEVC4gKi8KKyAgICAgICAgbGdkdCAgICBnZHRfYm9vdF9k ZXNjciglcmlwKQorCisgICAgICAgIC8qIFJlbG9hZCBjb2RlIHNlbGVjdG9yLiAqLworICAgICAg ICBsam1wbCAgICpjczMyX3N3aXRjaF9hZGRyKCVyaXApCisKKyAgICAgICAgLmNvZGUzMgorCitj czMyX3N3aXRjaDoKKyAgICAgICAgLyogSW5pdGlhbGlzZSBiYXNpYyBkYXRhIHNlZ21lbnRzLiAq LworICAgICAgICBtb3YgICAgICRCT09UX0RTLCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVk cworICAgICAgICBtb3YgICAgICVlZHgsJWVzCisgICAgICAgIG1vdiAgICAgJWVkeCwlc3MKKyAg ICAgICAgLyogJWVzcCBpcyBpbml0aWFsaXNlZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2Fk IG51bGwgZGVzY3JpcHRvciB0byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAg IHhvciAgICAgJWVkeCwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZnMKKyAgICAgICAgbW92 ICAgICAlZWR4LCVncworCisgICAgICAgIC8qIERpc2FibGUgcGFnaW5nLiAqLworICAgICAgICBt b3YgICAgICVjcjAsJWVkeAorICAgICAgICBhbmQgICAgICQoflg4Nl9DUjBfUEcpLCVlZHgKKyAg ICAgICAgbW92ICAgICAlZWR4LCVjcjAKKworICAgICAgICAvKiBKdW1wIHRvIGVhcmxpZXIgbG9h ZGVkIGFkZHJlc3MuICovCisgICAgICAgIGptcCAgICAgKiVlZGkKKwogX19zdGFydDoKICAgICAg ICAgY2xkCiAgICAgICAgIGNsaQpAQCAtMTU3LDcgKzM1MCw3IEBAIF9fc3RhcnQ6CiAKICAgICAg ICAgLyogTm90IGF2YWlsYWJsZT8gQkRBIHZhbHVlIHdpbGwgYmUgZmluZS4gKi8KICAgICAgICAg Y21vdm56ICBNQl9tZW1fbG93ZXIoJWVieCksJWVkeAotICAgICAgICBqbXAgICAgIHRyYW1wb2xp bmVfc2V0dXAKKyAgICAgICAgam1wICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogLkxtdWx0 aWJvb3QyX3Byb3RvOgogICAgICAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gZml4 ZWQgcGFydC4gKi8KQEAgLTE2OSwxNiArMzYyLDI0IEBAIF9fc3RhcnQ6CiAgICAgICAgIG1vdiAg ICAgJWVjeCwlZWRpCiAgICAgICAgIHN1YiAgICAgJWVieCwlZWRpCiAgICAgICAgIGNtcCAgICAg JWVkaSxNQjJfZml4ZWRfdG90YWxfc2l6ZSglZWJ4KQotICAgICAgICBqYmUgICAgIHRyYW1wb2xp bmVfc2V0dXAKKyAgICAgICAgamJlICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogICAgICAg ICAvKiBHZXQgbWVtX2xvd2VyIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KICAgICAg ICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPLE1CMl90YWdfdHlw ZSglZWN4KQogICAgICAgICBjbW92ZSAgIE1CMl9tZW1fbG93ZXIoJWVjeCksJWVkeAotICAgICAg ICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgamUgICAgICB0cmFtcG9saW5lX2Jp b3Nfc2V0dXAKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3VwcG9y dGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1CMl90 YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIG1iMl9lZmlfaWFfMzIKKworICAgICAgICAv KiBCb290bG9hZGVyIHNodXRkb3duIEVGSSB4NjQgYm9vdCBzZXJ2aWNlcy4gKi8KKyAgICAgICAg Y21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJWVjeCkKKyAg ICAgICAgamUgICAgICBtYjJfbm9fYnMKIAogICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11 bHRpYm9vdDIgaW5mb3JtYXRpb24/ICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFH X1RZUEVfRU5ELE1CMl90YWdfdHlwZSglZWN4KQotICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVf c2V0dXAKKyAgICAgICAgamUgICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogICAgICAgICAv KiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLwogICAgICAgICBhZGQg ICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CkBAIC0xODYsNyArMzg3LDcgQEAgX19zdGFydDoK ICAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CiAgICAgICAg IGptcCAgICAgMGIKIAotdHJhbXBvbGluZV9zZXR1cDoKK3RyYW1wb2xpbmVfYmlvc19zZXR1cDoK ICAgICAgICAgLyogU2V0IHVwIHRyYW1wb2xpbmUgc2VnbWVudCA2NGsgYmVsb3cgRUJEQSAqLwog ICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlY3ggICAgICAgICAgLyogRUJEQSBzZWdtZW50ICovCiAg ICAgICAgIGNtcCAgICAgJDB4YTAwMCwlZWN4ICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKGhpZ2gp ICovCkBAIC0yMDIsMTIgKzQwMywxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICAgKiBt dWx0aWJvb3Qgc3RydWN0dXJlIChpZiBhdmFpbGFibGUpIGFuZCB1c2UgdGhlIHNtYWxsZXN0Lgog ICAgICAgICAgKi8KICAgICAgICAgY21wICAgICAkMHgxMDAsJWVkeCAgICAgICAgIC8qIGlzIHRo ZSBtdWx0aWJvb3QgdmFsdWUgdG9vIHNtYWxsPyAqLwotICAgICAgICBqYiAgICAgIDJmICAgICAg ICAgICAgICAgICAgLyogaWYgc28sIGRvIG5vdCB1c2UgaXQgKi8KKyAgICAgICAgamIgICAgICB0 cmFtcG9saW5lX3NldHVwICAgIC8qIGlmIHNvLCBkbyBub3QgdXNlIGl0ICovCiAgICAgICAgIHNo bCAgICAgJDEwLTQsJWVkeAogICAgICAgICBjbXAgICAgICVlY3gsJWVkeCAgICAgICAgICAgLyog Y29tcGFyZSB3aXRoIEJEQSB2YWx1ZSAqLwogICAgICAgICBjbW92YiAgICVlZHgsJWVjeCAgICAg ICAgICAgLyogYW5kIHVzZSB0aGUgc21hbGxlciAqLwogCi0yOiAgICAgIC8qIFJlc2VydmUgNjRr YiBmb3IgdGhlIHRyYW1wb2xpbmUgKi8KK3RyYW1wb2xpbmVfc2V0dXA6CisgICAgICAgIC8qIFJl c2VydmUgNjRrYiBmb3IgdGhlIHRyYW1wb2xpbmUuICovCiAgICAgICAgIHN1YiAgICAgJDB4MTAw MCwlZWN4CiAKICAgICAgICAgLyogRnJvbSBhcmNoL3g4Ni9zbXBib290LmM6IHN0YXJ0X2VpcCBo YWQgYmV0dGVyIGJlIHBhZ2UtYWxpZ25lZCEgKi8KQEAgLTIyMywxNCArNDI1LDIyIEBAIHRyYW1w b2xpbmVfc2V0dXA6CiAgICAgICAgIGNhbGwgICAgcmVsb2MKICAgICAgICAgbW92ICAgICAlZWF4 LHN5bV9waHlzKG11bHRpYm9vdF9wdHIpCiAKLSAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5v IG5hc3R5IHN1cnByaXNlcyEpICovCisgICAgICAgIC8qCisgICAgICAgICAqIERvIG5vdCB6ZXJv IEJTUyBvbiBFRkkgcGxhdGZvcm0gaGVyZS4KKyAgICAgICAgICogSXQgd2FzIGluaXRpYWxpemVk IGVhcmxpZXIuCisgICAgICAgICAqLworICAgICAgICBjbXBiICAgICQwLHN5bV9waHlzKHNraXBf cmVhbG1vZGUpCisgICAgICAgIGpueiAgICAgMWYKKworICAgICAgICAvKiBJbml0aWFsaXplIEJT UyAobm8gbmFzdHkgc3VycHJpc2VzISkuICovCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9f YnNzX3N0YXJ0KSwlZWRpCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fYnNzX2VuZCksJWVj eAogICAgICAgICBzdWIgICAgICVlZGksJWVjeAotICAgICAgICB4b3IgICAgICVlYXgsJWVheAog ICAgICAgICBzaHIgICAgICQyLCVlY3gKKyAgICAgICAgeG9yICAgICAlZWF4LCVlYXgKICAgICAg ICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBm ZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAog ICAgICAgICBjcHVpZApAQCAtMjgyLDggKzQ5MiwxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAg ICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAg ICAgamIgICAgICAxYgogCisgICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24g RUZJIHBsYXRmb3JtIGhlcmUuICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tpcF9y ZWFsbW9kZSkKKyAgICAgICAgam56ICAgICAxZgorCiAgICAgICAgIGNhbGwgICAgY21kbGluZV9w YXJzZV9lYXJseQogCisxOgogICAgICAgICAvKiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4g ICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGluZV9waHlzKSwlZWRpCiAgICAg ICAgIGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv ZWZpL2VmaS1ib290LmggYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKaW5kZXggM2Y4N2I3 Yy4uNjFmYTE3ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCisrKyBi L3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaApAQCAtMjQ4LDEyICsyNDgsMTQgQEAgc3RhdGlj IHZvaWQgKl9faW5pdCBlZmlfYXJjaF9hbGxvY2F0ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6 ZSkKIAogc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKIHsK LSAgICBpZiAoICF0cmFtcG9saW5lX3BoeXMgKQotICAgIHsKLSAgICAgICAgaWYgKCAhY2ZnLmFk ZHIgKQotICAgICAgICAgICAgYmxleGl0KEwiTm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7Cisg ICAgaWYgKCB0cmFtcG9saW5lX3BoeXMgKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoICFj ZmcuYWRkciApCisgICAgICAgIGJsZXhpdChMIk5vIG1lbW9yeSBmb3IgdHJhbXBvbGluZSIpOwor CisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCiAgICAgICAgIHJlbG9jYXRlX3Ry YW1wb2xpbmUoY2ZnLmFkZHIpOwotICAgIH0KIH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vcmV0 dXJuIGVmaV9hcmNoX3Bvc3RfZXhpdF9ib290KHZvaWQpCkBAIC02ODcsNiArNjg5LDQzIEBAIHN0 YXRpYyBib29sX3QgX19pbml0IGVmaV9hcmNoX3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RB QkxFICpTeXN0ZW1UYWJsZSkKIAogc3RhdGljIHZvaWQgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2Fy ZWEoY29uc3Qgdm9pZCAqdmFkZHIsIFVJTlROIHNpemUpIHsgfQogCitwYWRkcl90IF9faW5pdCBl ZmlfbXVsdGlib290MihFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpT eXN0ZW1UYWJsZSkKK3sKKyAgICBFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7Cisg ICAgVUlOVE4gY29scywgZ29wX21vZGUgPSB+MCwgcm93czsKKworICAgIF9fc2V0X2JpdChFRklf Qk9PVCwgJmVmaS5mbGFncyk7CisgICAgX19zZXRfYml0KEVGSV9SUywgJmVmaS5mbGFncyk7CisK KyAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOworCisgICAgZWZpX2NvbnNv bGVfc2V0X21vZGUoKTsKKworICAgIGlmICggU3RkT3V0LT5RdWVyeU1vZGUoU3RkT3V0LCBTdGRP dXQtPk1vZGUtPk1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29scywgJnJvd3Mp ID09IEVGSV9TVUNDRVNTICkKKyAgICAgICAgZWZpX2FyY2hfY29uc29sZV9pbml0KGNvbHMsIHJv d3MpOworCisgICAgZ29wID0gZWZpX2dldF9nb3AoKTsKKworICAgIGlmICggZ29wICkKKyAgICAg ICAgZ29wX21vZGUgPSBlZmlfZmluZF9nb3BfbW9kZShnb3AsIDAsIDAsIDApOworCisgICAgZWZp X2FyY2hfZWRkKCk7CisgICAgZWZpX2FyY2hfY3B1KCk7CisKKyAgICBlZmlfdGFibGVzKCk7Cisg ICAgc2V0dXBfZWZpX3BjaSgpOworICAgIGVmaV92YXJpYWJsZXMoKTsKKworICAgIGlmICggZ29w ICkKKyAgICAgICAgZWZpX3NldF9nb3BfbW9kZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVmaV9l eGl0X2Jvb3QoSW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKKworICAgIC8qIFJldHVybiBoaWdo ZXN0IGF2YWlsYWJsZSBtZW1vcnkgYWRkcmVzcyBiZWxvdyAxIE1pQi4gKi8KKyAgICByZXR1cm4g Y2ZnLmFkZHI7Cit9CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5j CmluZGV4IDJkYjNhNDYuLmMxNTE5NGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1 Yi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCkBAIC0zLDYgKzMsMzAgQEAKICNpbmNs dWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFn ZS5oPgorI2luY2x1ZGUgPGFzbS9lZmliaW5kLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRlZi5oPgor I2luY2x1ZGUgPGVmaS9lZmljYXBzdWxlLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNvbi5oPgorI2lu Y2x1ZGUgPGVmaS9lZmlkZXZwLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWFwaS5oPgorCitwYWRkcl90 IF9faW5pdCBub3JldHVybiBlZmlfbXVsdGlib290MihFRklfSEFORExFIEltYWdlSGFuZGxlLCBF RklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBDSEFSMTYgKmVyciA9IEwiWGVu IGRvZXMgbm90IGhhdmUgRUZJIGNvZGUgYnVpbGQgaW4hISFcclxuU3lzdGVtIGhhbHRlZCEhIVxy XG4iOworICAgIFNJTVBMRV9URVhUX09VVFBVVF9JTlRFUkZBQ0UgKlN0ZEVycjsKKworICAgIFN0 ZEVyciA9IFN5c3RlbVRhYmxlLT5TdGRFcnIgPyBTeXN0ZW1UYWJsZS0+U3RkRXJyIDogU3lzdGVt VGFibGUtPkNvbk91dDsKKworICAgIC8qIFByaW50IGVycm9yIG1lc3NhZ2UgYW5kIGhhbHQgdGhl IHN5c3RlbS4gKi8KKyAgICBhc20gdm9sYXRpbGUoCisgICAgIiAgICBjYWxsICUyICAgICAgICAg ICAgICAgICAgICAgIFxuIgorICAgICIwOiAgaGx0ICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKyAgICAiICAgIGptcCAgMGIgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgOiAi K2MiIChTdGRFcnIpLCAiK2QiIChlcnIpIDogImciIChTdGRFcnItPk91dHB1dFN0cmluZykKKyAg ICAgICA6ICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIsICJjYyIsICJtZW1vcnkiKTsK KworICAgIHVucmVhY2hhYmxlKCk7Cit9CiAKIHZvaWQgX19pbml0IGZyZWVfZWJtYWxsb2NfdW51 c2VkX21lbSh2b2lkKQogewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4v YXJjaC94ODYvc2V0dXAuYwppbmRleCA2ZTBjYzY5Li4xNWI5Mzg2IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtNzI3LDcgKzcy Nyw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJp X3ApCiAgICAgaWYgKCAhKG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUykgfHwgKG1iaS0+bW9kc19j b3VudCA9PSAwKSApCiAgICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBub3Qgc3BlY2lmaWVkLiBD aGVjayBib290bG9hZGVyIGNvbmZpZ3VyYXRpb24uIik7CiAKLSAgICBpZiAoIGVmaV9lbmFibGVk KEVGSV9CT09UKSApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCiAgICAgewog ICAgICAgICBzZXRfcGR4X3JhbmdlKHhlbl9waHlzX3N0YXJ0ID4+IFBBR0VfU0hJRlQsCiAgICAg ICAgICAgICAgICAgICAgICAgKHhlbl9waHlzX3N0YXJ0ICsgQk9PVFNUUkFQX01BUF9CQVNFKSA+ PiBQQUdFX1NISUZUKTsKQEAgLTc0MCw4ICs3NDAsMTAgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4g X19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgICAgbDNfYm9vdG1hcFtsM190 YWJsZV9vZmZzZXQoQk9PVFNUUkFQX01BUF9CQVNFKV0gPQogICAgICAgICAgICAgbDNlX2Zyb21f cGFkZHIoX19wYShsMl9ib290bWFwKSwgX19QQUdFX0hZUEVSVklTT1IpOwogCi0gICAgICAgIG1l bW1hcF90eXBlID0gbG9hZGVyOworICAgICAgICBtZW1tYXBfdHlwZSA9ICJFRkkiOwogICAgIH0K KyAgICBlbHNlIGlmICggZWZpX2VuYWJsZWQoRUZJX0JPT1QpICkKKyAgICAgICAgbWVtbWFwX3R5 cGUgPSAiRUZJIjsKICAgICBlbHNlIGlmICggZTgyMF9yYXdfbnIgIT0gMCApCiAgICAgewogICAg ICAgICBtZW1tYXBfdHlwZSA9ICJYZW4tZTgyMCI7CkBAIC04MzgsNyArODQwLDcgQEAgdm9pZCBf X2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgKiB3 ZSBjYW4gcmVsb2NhdGUgdGhlIGRvbTAga2VybmVsIGFuZCBvdGhlciBtdWx0aWJvb3QgbW9kdWxl cy4gQWxzbywgb24KICAgICAgKiB4ODYvNjQsIHdlIHJlbG9jYXRlIFhlbiB0byBoaWdoZXIgbWVt b3J5LgogICAgICAqLwotICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJsZWQoRUZJX0JPT1QpICYm IGkgPCBtYmktPm1vZHNfY291bnQ7IGkrKyApCisgICAgZm9yICggaSA9IDA7ICFlZmlfZW5hYmxl ZChFRklfTE9BREVSKSAmJiBpIDwgbWJpLT5tb2RzX2NvdW50OyBpKysgKQogICAgIHsKICAgICAg ICAgaWYgKCBtb2RbaV0ubW9kX3N0YXJ0ICYgKFBBR0VfU0laRSAtIDEpICkKICAgICAgICAgICAg IHBhbmljKCJCb290bG9hZGVyIGRpZG4ndCBob25vciBtb2R1bGUgYWxpZ25tZW50IHJlcXVlc3Qu Iik7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4v YXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKaW5kZXggMGZjMWM2My4uOTY5NWVhNiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNo L3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAtMTc2LDYgKzE3Niw4IEBAIHZvaWQgX19kdW1t eV9fKHZvaWQpCiAgICAgT0ZGU0VUKE1CMl90YWdfdHlwZSwgbXVsdGlib290Ml90YWdfdCwgdHlw ZSk7CiAgICAgT0ZGU0VUKE1CMl90YWdfc2l6ZSwgbXVsdGlib290Ml90YWdfdCwgc2l6ZSk7CiAg ICAgT0ZGU0VUKE1CMl9tZW1fbG93ZXIsIG11bHRpYm9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdCwg bWVtX2xvd2VyKTsKKyAgICBPRkZTRVQoTUIyX2VmaTY0X3N0LCBtdWx0aWJvb3QyX3RhZ19lZmk2 NF90LCBwb2ludGVyKTsKKyAgICBPRkZTRVQoTUIyX2VmaTY0X2loLCBtdWx0aWJvb3QyX3RhZ19l Zmk2NF9paF90LCBwb2ludGVyKTsKICAgICBCTEFOSygpOwogCiAgICAgT0ZGU0VUKERPTUFJTl92 bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZtX2Fzc2lzdCk7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYveGVuLmxkcy5TIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwppbmRleCBiMWIxNWI3Li41 OTUxMzdmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveGVuLmxkcy5TCisrKyBiL3hlbi9hcmNo L3g4Ni94ZW4ubGRzLlMKQEAgLTMyNCw1ICszMjQsNSBAQCBBU1NFUlQoSVNfQUxJR05FRChfX2lu aXRfZW5kLCAgIFBBR0VfU0laRSksICJfX2luaXRfZW5kIG1pc2FsaWduZWQiKQogCiBBU1NFUlQo SVNfQUxJR05FRCh0cmFtcG9saW5lX3N0YXJ0LCA0KSwgInRyYW1wb2xpbmVfc3RhcnQgbWlzYWxp Z25lZCIpCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFtcG9saW5lX2VuZCwgICA0KSwgInRyYW1wb2xp bmVfZW5kIG1pc2FsaWduZWQiKQotQVNTRVJUKElTX0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAg NCksICJfX2Jzc19zdGFydCBtaXNhbGlnbmVkIikKLUFTU0VSVChJU19BTElHTkVEKF9fYnNzX2Vu ZCwgICAgICAgIDQpLCAiX19ic3NfZW5kIG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQo X19ic3Nfc3RhcnQsICAgICAgOCksICJfX2Jzc19zdGFydCBtaXNhbGlnbmVkIikKK0FTU0VSVChJ U19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDgpLCAiX19ic3NfZW5kIG1pc2FsaWduZWQiKQpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5j CmluZGV4IDg4NGQ4MTguLjdlMGY4YzEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZWZpL2Jvb3Qu YworKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKQEAgLTc5LDYgKzc5LDE3IEBAIHN0YXRpYyBz aXplX3Qgd3N0cmxlbihjb25zdCBDSEFSMTYgKiBzKTsKIHN0YXRpYyBpbnQgc2V0X2NvbG9yKHUz MiBtYXNrLCBpbnQgYnBwLCB1OCAqcG9zLCB1OCAqc3opOwogc3RhdGljIGJvb2xfdCBtYXRjaF9n dWlkKGNvbnN0IEVGSV9HVUlEICpndWlkMSwgY29uc3QgRUZJX0dVSUQgKmd1aWQyKTsKIAorc3Rh dGljIHZvaWQgZWZpX2luaXQoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJM RSAqU3lzdGVtVGFibGUpOworc3RhdGljIHZvaWQgZWZpX2NvbnNvbGVfc2V0X21vZGUodm9pZCk7 CitzdGF0aWMgRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZWZpX2dldF9nb3Aodm9pZCk7 CitzdGF0aWMgVUlOVE4gZWZpX2ZpbmRfZ29wX21vZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9U T0NPTCAqZ29wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJTlROIGNvbHMsIFVJ TlROIHJvd3MsIFVJTlROIGRlcHRoKTsKK3N0YXRpYyB2b2lkIGVmaV90YWJsZXModm9pZCk7Citz dGF0aWMgdm9pZCBzZXR1cF9lZmlfcGNpKHZvaWQpOworc3RhdGljIHZvaWQgZWZpX3ZhcmlhYmxl cyh2b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV9zZXRfZ29wX21vZGUoRUZJX0dSQVBISUNTX09VVFBV VF9QUk9UT0NPTCAqZ29wLCBVSU5UTiBnb3BfbW9kZSk7CitzdGF0aWMgdm9pZCBlZmlfZXhpdF9i b290KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxl KTsKKwogc3RhdGljIGNvbnN0IEVGSV9CT09UX1NFUlZJQ0VTICpfX2luaXRkYXRhIGVmaV9iczsK IHN0YXRpYyBVSU5UMzIgX19pbml0ZGF0YSBlZmlfYnNfcmV2aXNpb247CiBzdGF0aWMgRUZJX0hB TkRMRSBfX2luaXRkYXRhIGVmaV9paDsKQEAgLTkzNSw2ICs5NDYsNyBAQCBlZmlfc3RhcnQoRUZJ X0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCiAgICAg Ym9vbF90IHVzZV9jZmdfZmlsZTsKIAogICAgIF9fc2V0X2JpdChFRklfQk9PVCwgJmVmaS5mbGFn cyk7CisgICAgX19zZXRfYml0KEVGSV9MT0FERVIsICZlZmkuZmxhZ3MpOwogCiAjaWZuZGVmIENP TkZJR19BUk0gLyogRGlzYWJsZWQgdW50aWwgcnVudGltZSBzZXJ2aWNlcyBpbXBsZW1lbnRlZC4g Ki8KICAgICBfX3NldF9iaXQoRUZJX1JTLCAmZWZpLmZsYWdzKTsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi9lZmkuaCBiL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAppbmRleCA0NjdiZDdjLi4y OGIxNTIxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZWZpLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL2VmaS5oCkBAIC0xMiw2ICsxMiw3IEBACiBzdHJ1Y3QgZWZpIHsKICAgICB1bnNpZ25l ZCBsb25nIGZsYWdzOyAgICAgICAgLyogQml0IGZpZWxkcyByZXByZXNlbnRpbmcgYXZhaWxhYmxl IEVGSSBmZWF0dXJlcy9wcm9wZXJ0aWVzICovCiAjZGVmaW5lIEVGSV9CT09UCTAJLyogV2VyZSB3 ZSBib290ZWQgZnJvbSBFRkk/ICovCisjZGVmaW5lIEVGSV9MT0FERVIJMQkvKiBXZXJlIHdlIGJv b3RlZCBkaXJlY3RseSBmcm9tIEVGSSBsb2FkZXI/ICovCiAjZGVmaW5lIEVGSV9SUwkJMgkvKiBD YW4gd2UgdXNlIHJ1bnRpbWUgc2VydmljZXM/ICovCiAgICAgdW5zaWduZWQgbG9uZyBtcHM7ICAg ICAgICAgIC8qIE1QUyB0YWJsZSAqLwogICAgIHVuc2lnbmVkIGxvbmcgYWNwaTsgICAgICAgICAv KiBBQ1BJIHRhYmxlIChJQTY0IGV4dCAwLjcxKSAqLwotLSAKMS43LjEwLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK