From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v4 17/19] x86/boot: implement early command line parser in C Date: Sat, 6 Aug 2016 01:04:40 +0200 Message-ID: <1470438282-4226-18-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 1bVoC0-0003kx-Pj for xen-devel@lists.xenproject.org; Fri, 05 Aug 2016 23:06:16 +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 Q3VycmVudCBlYXJseSBjb21tYW5kIGxpbmUgcGFyc2VyIGltcGxlbWVudGF0aW9uIGluIGFzc2Vt YmxlcgppcyB2ZXJ5IGRpZmZpY3VsdCB0byBjaGFuZ2UgdG8gcmVsb2NhdGFibGUgc3R1ZmYgdXNp bmcgc2VnbWVudApyZWdpc3RlcnMuIFRoaXMgcmVxdWlyZXMgYSBsb3Qgb2YgY2hhbmdlcyBpbiB2 ZXJ5IHdlaXJkIGFuZApmcmFnaWxlIGNvZGUuIFNvLCByZWltcGxlbWVudCB0aGlzIGZ1bmN0aW9u YWxpdHkgaW4gQy4gVGhpcwp3YXkgY29kZSB3aWxsIGJlIHJlbG9jYXRhYmxlIG91dCBvZiB0aGUg Ym94ICh3aXRob3V0IHBsYXlpbmcKd2l0aCBzZWdtZW50IHJlZ2lzdGVycykgYW5kIG11Y2ggZWFz aWVyIHRvIG1haW50YWluLgoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBl ckBvcmFjbGUuY29tPgotLS0KdjQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBtb3ZlIHRvIHN0 ZGNhbGwgY2FsbGluZyBjb252ZW50aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gZGVmaW5lIGJvb2xfdCBhbmQgdXNlIGl0IHByb3Blcmx5CiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gcHV0IGxpc3Qgb2YgZGVsaW1pdGVyIGNoYXJzIGludG8KICAg ICBzdGF0aWMgY29uc3QgY2hhcltdCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gdXNlIHN0cmxlbigpIGluc3RlYWQgb2Ygc3RybGVuX29wdCgpCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gY2hhbmdlIHN0cnRvaSgpIHRvIHN0cnRvdWkoKSBhbmQKICAg ICBvcHRpbWl6ZSBpdCBhIGJpdAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IGRlZmluZSBzdHJjaHIoKSBhbmQgdXNlIGl0IGluIHN0cnRvdWkoKQogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIG9wdGltaXplIHZnYV9wYXJzZSgpCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gbW92ZSAhY21kbGluZSBjaGVjayBmcm9tIGFzc2VtYmx5 IHRvIEMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZW1vdmUgbXkgbmFt ZSBmcm9tIGNvcHlyaWdodCAoT3JhY2xlIHJlcXVpcmVtZW50KQogICAgIChzdWdnZXN0ZWQgYnkg S29ucmFkIFJ6ZXN6dXRlayBXaWxrKS4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gb3B0 aW1pemUgc29tZSBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcHV0 IFZFU0EgZGF0YSBpbnRvIGVhcmx5X2Jvb3Rfb3B0c190IG1lbWJlcnMKICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZW5hbWUgc29tZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxl cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG1vdmUgYXJvdW5kIHZpZGVv LmggaW5jbHVkZSBpbiB4ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBmaXggY29kaW5nIHN0eWxlCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZml4IGJ1aWxkIHdpdGggb2xkZXIgR0NDCiAgICAgKHN1 Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIHJlbW92ZSByZWR1bmRhbnQg Y29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgc29tZSBj b21tZW50cwogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKS4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICst CiB4ZW4vYXJjaC94ODYvTWFrZWZpbGUgICAgICAgICAgfCAgICAyICstCiB4ZW4vYXJjaC94ODYv Ym9vdC9NYWtlZmlsZSAgICAgfCAgICA3ICstCiB4ZW4vYXJjaC94ODYvYm9vdC9idWlsZDMyLmxk cyAgfCAgICAxICsKIHhlbi9hcmNoL3g4Ni9ib290L2J1aWxkMzIubWsgICB8ICAgIDQgKy0KIHhl bi9hcmNoL3g4Ni9ib290L2NtZGxpbmUuUyAgICB8ICAzNjcgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9jbWRsaW5lLmMgICAgfCAgMzc2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9i b290L2VkZC5TICAgICAgICB8ICAgIDMgLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAg IHwgICAgOCArCiB4ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMgfCAgIDEyICsrCiB4ZW4v YXJjaC94ODYvYm9vdC92aWRlby5TICAgICAgfCAgICA2IC0KIDExIGZpbGVzIGNoYW5nZWQsIDQx MCBpbnNlcnRpb25zKCspLCAzODEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgeGVu L2FyY2gveDg2L2Jvb3QvY21kbGluZS5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gveDg2 L2Jvb3QvY21kbGluZS5jCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5k ZXggOWI4ZGVjZS4uYTgyZjYxNyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdu b3JlCkBAIC0yNDcsOSArMjQ3LDEwIEBAIHhlbi9hcmNoL2FybS94ZW4ubGRzCiB4ZW4vYXJjaC94 ODYvYXNtLW9mZnNldHMucwogeGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYzMgogeGVuL2FyY2gveDg2 L3hlbi5sZHMKK3hlbi9hcmNoL3g4Ni9ib290L2NtZGxpbmUuUwogeGVuL2FyY2gveDg2L2Jvb3Qv cmVsb2MuUwoteGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYmluCi14ZW4vYXJjaC94ODYvYm9vdC9y ZWxvYy5sbmsKK3hlbi9hcmNoL3g4Ni9ib290LyouYmluCit4ZW4vYXJjaC94ODYvYm9vdC8qLmxu awogeGVuL2FyY2gveDg2L2VmaS5sZHMKIHhlbi9hcmNoL3g4Ni9lZmkvY2hlY2suZWZpCiB4ZW4v YXJjaC94ODYvZWZpL2Rpc2FibGVkCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUg Yi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggNzFlYzM0ZS4uOTQ2NGI3YiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAt MjEyLDYgKzIxMiw2IEBAIGNsZWFuOjoKIAlybSAtZiBhc20tb2Zmc2V0cy5zICoubGRzIGJvb3Qv Ki5vIGJvb3QvKn4gYm9vdC9jb3JlIGJvb3QvbWtlbGYzMgogCXJtIC1mICQoQkFTRURJUikvLnhl bi1zeW1zLlswLTldKiBib290Ly4qLmQKIAlybSAtZiAkKEJBU0VESVIpLy54ZW4uZWZpLlswLTld KiBlZmkvKi5lZmkgZWZpL2Rpc2FibGVkIGVmaS9ta3JlbG9jCi0Jcm0gLWYgYm9vdC9yZWxvYy5T IGJvb3QvcmVsb2MubG5rIGJvb3QvcmVsb2MuYmluCisJcm0gLWYgYm9vdC9jbWRsaW5lLlMgYm9v dC9yZWxvYy5TIGJvb3QvKi5sbmsgYm9vdC8qLmJpbgogCXJtIC1mIG5vdGUubwogCSQoTUFLRSkg LWYgJChCQVNFRElSKS9SdWxlcy5tayAtQyB0ZXN0IGNsZWFuCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYm9vdC9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCmluZGV4IDA2 ODkzZDguLmQ3M2NjNzYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCkBAIC0xLDkgKzEsMTQgQEAKIG9iai1iaW4t eSArPSBoZWFkLm8KIAorQ01ETElORV9ERVBTID0gdmlkZW8uaAorCiBSRUxPQ19ERVBTID0gJChC QVNFRElSKS9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmggJChCQVNFRElSKS9pbmNsdWRlL3hlbi9t dWx0aWJvb3QuaCBcCiAJICAgICAkKEJBU0VESVIpL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaAog Ci1oZWFkLm86IHJlbG9jLlMKK2hlYWQubzogY21kbGluZS5TIHJlbG9jLlMKKworY21kbGluZS5T OiBjbWRsaW5lLmMgJChDTURMSU5FX0RFUFMpCisJJChNQUtFKSAtZiBidWlsZDMyLm1rICRAIENN RExJTkVfREVQUz0iJChDTURMSU5FX0RFUFMpIgogCiByZWxvYy5TOiByZWxvYy5jICQoUkVMT0Nf REVQUykKIAkkKE1BS0UpIC1mIGJ1aWxkMzIubWsgJEAgUkVMT0NfREVQUz0iJChSRUxPQ19ERVBT KSIKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L2J1aWxkMzIubGRzIGIveGVuL2FyY2gv eDg2L2Jvb3QvYnVpbGQzMi5sZHMKaW5kZXggYTY1OGNhOC4uYzNmODgyNSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2Jvb3QvYnVpbGQzMi5sZHMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvYnVp bGQzMi5sZHMKQEAgLTI0LDYgKzI0LDcgQEAgU0VDVElPTlMKICAgICAgICAgKigudGV4dCkKICAg ICAgICAgKigudGV4dC4qKQogICAgICAgICAqKC5yb2RhdGEpCisgICAgICAgICooLnJvZGF0YS4q KQogICAgICAgICAqKC5ic3MpCiAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3Qv YnVpbGQzMi5tayBiL3hlbi9hcmNoL3g4Ni9ib290L2J1aWxkMzIubWsKaW5kZXggZDU0ZDI1OS4u YTE5NjgwMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvYnVpbGQzMi5taworKysgYi94 ZW4vYXJjaC94ODYvYm9vdC9idWlsZDMyLm1rCkBAIC0yMyw3ICsyMyw3IEBAIENGTEFHUyA6PSAk KGZpbHRlci1vdXQgLWZsdG8sJChDRkxBR1MpKQogCSQoT0JKRFVNUCkgLWggJDwgfCBzZWQgLW4g Jy9bMC05XS97cywwMCosMCxnO3A7fScgfFwKIAkJd2hpbGUgcmVhZCBpZHggbmFtZSBzeiByZXN0 OyBkbyBcCiAJCQljYXNlICIkJG5hbWUiIGluIFwKLQkJCS5kYXRhfC5kYXRhLip8LnJvZGF0YS4q fC5ic3MuKikgXAorCQkJLmRhdGF8LmRhdGEuKnwuYnNzLiopIFwKIAkJCQl0ZXN0ICQkc3ogIT0g MCB8fCBjb250aW51ZTsgXAogCQkJCWVjaG8gIkVycm9yOiBub24tZW1wdHkgJCRuYW1lOiAweCQk c3oiID4mMjsgXAogCQkJCWV4aXQgJCQoZXhwciAkJGlkeCArIDEpOzsgXApAQCAtMzQsNiArMzQs OCBAQCBDRkxBR1MgOj0gJChmaWx0ZXItb3V0IC1mbHRvLCQoQ0ZMQUdTKSkKICUubzogJS5jCiAJ JChDQykgJChDRkxBR1MpIC1jIC1mcGljICQ8IC1vICRACiAKK2NtZGxpbmUubzogY21kbGluZS5j ICQoQ01ETElORV9ERVBTKQorCiByZWxvYy5vOiByZWxvYy5jICQoUkVMT0NfREVQUykKIAogLlBS RUNJT1VTOiAlLmJpbiAlLmxuawpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvY21kbGlu ZS5TIGIveGVuL2FyY2gveDg2L2Jvb3QvY21kbGluZS5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDY4N2ViLi4wMDAwMDAwCi0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2NtZGxpbmUu UworKysgL2Rldi9udWxsCkBAIC0xLDM2NyArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ci0gKiBjbWRsaW5lLlMKLSAqCi0gKiBFYXJseSBjb21tYW5kLWxpbmUgcGFyc2luZy4KLSAqLwot Ci0gICAgICAgIC5jb2RlMzIKLQotI2luY2x1ZGUgInZpZGVvLmgiCi0KLSMgTkIuIFN0cmluZyBw b2ludGVyIG9uIHN0YWNrIGlzIG1vZGlmaWVkIHRvIHBvaW50IHBhc3QgcGFyc2VkIGRpZ2l0cy4K LS5MYXRvaToKLSAgICAgICAgcHVzaCAgICAlZWJ4Ci0gICAgICAgIHB1c2ggICAgJWVjeAotICAg ICAgICBwdXNoICAgICVlZHgKLSAgICAgICAgcHVzaCAgICAlZXNpCi0gICAgICAgIHhvciAgICAg JWVieCwlZWJ4ICAgICAgIC8qICVlYnggPSBhY2N1bXVsYXRvciAqLwotICAgICAgICBtb3YgICAg ICQxMCwlZWN4ICAgICAgICAvKiAlZWN4ID0gYmFzZSAoZGVmYXVsdCBiYXNlIDEwKSAqLwotICAg ICAgICBtb3YgICAgIDE2KzQoJWVzcCksJWVzaSAvKiAlZXNpID0gcG9pbnRlciBpbnRvIGFzY2lp IHN0cmluZy4gKi8KLSAgICAgICAgbG9kc2IKLSAgICAgICAgY21wYiAgICAkJzAnLCVhbAotICAg ICAgICBqbmUgICAgIDJmCi0gICAgICAgIG1vdiAgICAgJDgsJWVjeCAgICAgICAgIC8qIFByZWZp eCAnMCcgPT4gb2N0YWwgKGJhc2UgOCkgKi8KLSAgICAgICAgbG9kc2IKLSAgICAgICAgY21wYiAg ICAkJ3gnLCVhbAotICAgICAgICBqbmUgICAgIDJmCi0gICAgICAgIG1vdiAgICAgJDE2LCVlY3gg ICAgICAgIC8qIFByZWZpeCAnMHgnID0+IGhleCAoYmFzZSAxNikgKi8KLTE6ICAgICAgbG9kc2IK LTI6ICAgICAgc3ViICAgICAkJzAnLCVhbAotICAgICAgICBqYiAgICAgIDRmCi0gICAgICAgIGNt cCAgICAgJDksJWFsCi0gICAgICAgIGpiZSAgICAgM2YKLSAgICAgICAgc3ViICAgICAkJ0EnLScw Jy0xMCwlYWwKLSAgICAgICAgamIgICAgICA0ZgotICAgICAgICBjbXAgICAgICQxNSwlYWwKLSAg ICAgICAgamJlICAgICAzZgotICAgICAgICBzdWIgICAgICQnYSctJ0EnLCVhbAotICAgICAgICBq YiAgICAgIDRmCi0zOiAgICAgIGNtcCAgICAgJWNsLCVhbAotICAgICAgICBqYWUgICAgIDRmCi0g ICAgICAgIG1vdnpibCAgJWFsLCVlYXgKLSAgICAgICAgeGNoZyAgICAlZWF4LCVlYngKLSAgICAg ICAgbXVsICAgICAlZWN4Ci0gICAgICAgIHhjaGcgICAgJWVheCwlZWJ4Ci0gICAgICAgIGFkZCAg ICAgJWVheCwlZWJ4Ci0gICAgICAgIGptcCAgICAgMWIKLTQ6ICAgICAgbW92ICAgICAlZWJ4LCVl YXgKLSAgICAgICAgZGVjICAgICAlZXNpCi0gICAgICAgIG1vdiAgICAgJWVzaSwxNis0KCVlc3Ap Ci0gICAgICAgIHBvcCAgICAgJWVzaQotICAgICAgICBwb3AgICAgICVlZHgKLSAgICAgICAgcG9w ICAgICAlZWN4Ci0gICAgICAgIHBvcCAgICAgJWVieAotICAgICAgICByZXQKLQotLkxzdHJzdHI6 Ci0gICAgICAgIHB1c2ggICAgJWVjeAotICAgICAgICBwdXNoICAgICVlZHgKLSAgICAgICAgcHVz aCAgICAlZXNpCi0gICAgICAgIHB1c2ggICAgJWVkaQotICAgICAgICB4b3IgICAgICVlYXgsJWVh eAotICAgICAgICB4b3IgICAgICVlY3gsJWVjeAotICAgICAgICBub3QgICAgICVlY3gKLSAgICAg ICAgbW92ICAgICAxNis0KCVlc3ApLCVlc2kKLSAgICAgICAgbW92ICAgICAxNis4KCVlc3ApLCVl ZGkKLSAgICAgICAgcmVwbmUgICBzY2FzYgotICAgICAgICBub3QgICAgICVlY3gKLSAgICAgICAg ZGVjICAgICAlZWN4Ci0gICAgICAgIG1vdiAgICAgJWVjeCwlZWR4Ci0xOiAgICAgIG1vdiAgICAg MTYrOCglZXNwKSwlZWRpCi0gICAgICAgIG1vdiAgICAgJWVzaSwlZWF4Ci0gICAgICAgIG1vdiAg ICAgJWVkeCwlZWN4Ci0gICAgICAgIHJlcGUgICAgY21wc2IKLSAgICAgICAgamUgICAgICAyZgot ICAgICAgICB4Y2hnICAgICVlYXgsJWVzaQotICAgICAgICBpbmMgICAgICVlc2kKLSAgICAgICAg Y21wYiAgICAkMCwtMSglZWF4KQotICAgICAgICBqbmUgICAgIDFiCi0gICAgICAgIHhvciAgICAg JWVheCwlZWF4Ci0yOiAgICAgIHBvcCAgICAgJWVkaQotICAgICAgICBwb3AgICAgICVlc2kKLSAg ICAgICAgcG9wICAgICAlZWR4Ci0gICAgICAgIHBvcCAgICAgJWVjeAotICAgICAgICByZXQKLQot LkxzdHJfcHJlZml4OgotICAgICAgICBwdXNoICAgICVlc2kKLSAgICAgICAgcHVzaCAgICAlZWRp Ci0gICAgICAgIG1vdiAgICAgOCs0KCVlc3ApLCVlc2kgLyogMXN0IGFyZyBpcyBwcmVmaXggc3Ry aW5nICovCi0gICAgICAgIG1vdiAgICAgOCs4KCVlc3ApLCVlZGkgLyogMm5kIGFyZyBpcyBtYWlu IHN0cmluZyAqLwotMTogICAgICBsb2RzYgotICAgICAgICB0ZXN0ICAgICVhbCwlYWwKLSAgICAg ICAganogICAgICAyZgotICAgICAgICBzY2FzYgotICAgICAgICBqZSAgICAgIDFiCi0gICAgICAg IHNiYiAgICAgJWVheCwlZWF4Ci0gICAgICAgIG9yICAgICAgJDEsJWFsCi0gICAgICAgIGptcCAg ICAgM2YKLTI6ICAgICAgeG9yICAgICAlZWF4LCVlYXgKLTM6ICAgICAgcG9wICAgICAlZWRpCi0g ICAgICAgIHBvcCAgICAgJWVzaQotICAgICAgICByZXQKLQotLkxzdHJsZW46Ci0gICAgICAgIHB1 c2ggICAgJWVjeAotICAgICAgICBwdXNoICAgICVlc2kKLSAgICAgICAgcHVzaCAgICAlZWRpCi0g ICAgICAgIHhvciAgICAgJWVheCwlZWF4Ci0gICAgICAgIHhvciAgICAgJWVjeCwlZWN4Ci0gICAg ICAgIG5vdCAgICAgJWVjeAotICAgICAgICBtb3YgICAgIDEyKzQoJWVzcCksJWVkaQotICAgICAg ICByZXBuZSAgIHNjYXNiCi0gICAgICAgIG5vdCAgICAgJWVjeAotICAgICAgICBkZWMgICAgICVl Y3gKLSAgICAgICAgbW92ICAgICAlZWN4LCVlYXgKLSAgICAgICAgcG9wICAgICAlZWRpCi0gICAg ICAgIHBvcCAgICAgJWVzaQotICAgICAgICBwb3AgICAgICVlY3gKLSAgICAgICAgcmV0Ci0KLS5M ZmluZF9vcHRpb246Ci0gICAgICAgIG1vdiAgICAgNCglZXNwKSwlZWF4Ci0gICAgICAgIGRlYyAg ICAgJWVheAotICAgICAgICBwdXNoICAgICVlYngKLTE6ICAgICAgcHVzaGwgICA0KzgoJWVzcCkK LSAgICAgICAgaW5jICAgICAlZWF4Ci0gICAgICAgIHB1c2ggICAgJWVheAotICAgICAgICBjYWxs ICAgIC5Mc3Ryc3RyCi0gICAgICAgIGFkZCAgICAgJDgsJWVzcAotICAgICAgICB0ZXN0ICAgICVl YXgsJWVheAotICAgICAgICBqeiAgICAgIDNmCi0gICAgICAgIGNtcCAgICAgJWVheCw0KzQoJWVz cCkKLSAgICAgICAgamUgICAgICAyZgotICAgICAgICBjbXBiICAgICQnICcsLTEoJWVheCkKLSAg ICAgICAgam5lICAgICAxYgotMjogICAgICBtb3YgICAgICVlYXgsJWVieAotICAgICAgICBwdXNo bCAgIDQrOCglZXNwKQotICAgICAgICBjYWxsICAgIC5Mc3RybGVuCi0gICAgICAgIGFkZCAgICAg JDQsJWVzcAotICAgICAgICB4YWRkICAgICVlYXgsJWVieAotICAgICAgICAvKiBOVUwgY2hlY2sg KGFzICQnXDAnID09IDB4MzAgaW4gR0FTKSAqLwotICAgICAgICBjbXBiICAgICQwLCglZWJ4KQot ICAgICAgICBqZSAgICAgIDNmCi0gICAgICAgIGNtcGIgICAgJCcgJywoJWVieCkKLSAgICAgICAg amUgICAgICAzZgotICAgICAgICBjbXBiICAgICQnPScsKCVlYngpCi0gICAgICAgIGpuZSAgICAg MWIKLTM6ICAgICAgcG9wICAgICAlZWJ4Ci0gICAgICAgIHJldAotCi1jbWRsaW5lX3BhcnNlX2Vh cmx5OgotICAgICAgICBwdXNoYQotCi0gICAgICAgIC8qIEJhaWwgaWYgdGhlcmUgaXMgbm8gY29t bWFuZCBsaW5lIHRvIHBhcnNlLiAqLwotICAgICAgICBtb3YgICAgIHN5bV9waHlzKG11bHRpYm9v dF9wdHIpLCVlYngKLSAgICAgICAgbW92ICAgICBNQl9mbGFncyglZWJ4KSwlZWF4Ci0gICAgICAg IHRlc3QgICAgJDQsJWFsCi0gICAgICAgIGp6ICAgICAgLkxjbWRsaW5lX2V4aXQKLSAgICAgICAg bW92ICAgICBNQl9jbWRsaW5lKCVlYngpLCVlYXgKLSAgICAgICAgdGVzdCAgICAlZWF4LCVlYXgK LSAgICAgICAganogICAgICAuTGNtZGxpbmVfZXhpdAotCi0gICAgICAgIC8qIENoZWNrIGZvciAn bm8tcmVhbC1tb2RlJyBjb21tYW5kLWxpbmUgb3B0aW9uLiAqLwotICAgICAgICBwdXNobCAgICRz eW1fcGh5cyguTG5vX3JtX29wdCkKLSAgICAgICAgcHVzaGwgICBNQl9jbWRsaW5lKCVlYngpCi0g ICAgICAgIGNhbGwgICAgLkxmaW5kX29wdGlvbgotICAgICAgICB0ZXN0ICAgICVlYXgsJWVheAot ICAgICAgICBzZXRueiAgICVhbAotICAgICAgICBvciAgICAgICVhbCxzeW1fcGh5cyhza2lwX3Jl YWxtb2RlKQotCi0gICAgICAgIC8qIENoZWNrIGZvciAndGJvb3Q9JyBjb21tYW5kLWxpbmUgb3B0 aW9uLiAqLwotICAgICAgICBtb3ZsICAgICRzeW1fcGh5cyguTHRib290X29wdCksNCglZXNwKQot ICAgICAgICBjYWxsICAgIC5MZmluZF9vcHRpb24KLSAgICAgICAgdGVzdCAgICAlZWF4LCVlYXgK LSAgICAgICAgc2V0bnogICAlYWwKLSAgICAgICAgb3IgICAgICAlYWwsc3ltX3BoeXMoc2tpcF9y ZWFsbW9kZSkgLyogdGJvb3Q9IGltcGxpZXMgbm8tcmVhbC1tb2RlICovCi0KLS5McGFyc2VfZWRk OgotICAgICAgICAvKiBDaGVjayBmb3IgJ2VkZD0nIGNvbW1hbmQtbGluZSBvcHRpb24uICovCi0g ICAgICAgIG1vdmwgICAgJHN5bV9waHlzKC5MZWRkX29wdCksNCglZXNwKQotICAgICAgICBjYWxs ICAgIC5MZmluZF9vcHRpb24KLSAgICAgICAgdGVzdCAgICAlZWF4LCVlYXgKLSAgICAgICAganog ICAgICAuTHBhcnNlX2VkaWQKLSAgICAgICAgY21wYiAgICAkJz0nLDMoJWVheCkKLSAgICAgICAg am5lICAgICAuTHBhcnNlX2VkaWQKLSAgICAgICAgYWRkICAgICAkNCwlZWF4Ci0gICAgICAgIG1v dmIgICAgJDIsc3ltX3BoeXMob3B0X2VkZCkgIC8qIG9wdF9lZGQ9MjogZWRkPW9mZiAqLwotICAg ICAgICBjbXB3ICAgICQweDY2NmYsKCVlYXgpICAgICAgICAgICAgLyogMHg2NjZmID09ICJvZiIg Ki8KLSAgICAgICAgamUgICAgICAuTHBhcnNlX2VkaWQKLSAgICAgICAgZGVjYiAgICBzeW1fcGh5 cyhvcHRfZWRkKSAgICAgLyogb3B0X2VkZD0xOiBlZGQ9c2tpcG1iciAqLwotICAgICAgICBjbXB3 ICAgICQweDZiNzMsKCVlYXgpICAgICAgICAgICAgLyogMHg2YjczID09ICJzayIgKi8KLSAgICAg ICAgamUgICAgICAuTHBhcnNlX2VkaWQKLSAgICAgICAgZGVjYiAgICBzeW1fcGh5cyhvcHRfZWRk KSAgICAgLyogb3B0X2VkZD0wOiBlZGQ9b24gKGRlZmF1bHQpICovCi0KLS5McGFyc2VfZWRpZDoK LSAgICAgICAgLyogQ2hlY2sgZm9yICdlZGlkPScgY29tbWFuZC1saW5lIG9wdGlvbi4gKi8KLSAg ICAgICAgbW92bCAgICAkc3ltX3BoeXMoLkxlZGlkX29wdCksNCglZXNwKQotICAgICAgICBjYWxs ICAgIC5MZmluZF9vcHRpb24KLSAgICAgICAgdGVzdCAgICAlZWF4LCVlYXgKLSAgICAgICAganog ICAgICAuTHBhcnNlX3ZnYQotICAgICAgICBjbXBiICAgICQnPScsNCglZWF4KQotICAgICAgICBq bmUgICAgIC5McGFyc2VfdmdhCi0gICAgICAgIGFkZCAgICAgJDUsJWVheAotICAgICAgICBtb3Yg ICAgICVlYXgsJWVieAotICAgICAgICBwdXNoICAgICVlYngKLSAgICAgICAgcHVzaGwgICAkc3lt X3BoeXMoLkxlZGlkX2ZvcmNlKQotICAgICAgICBjYWxsICAgIC5Mc3RyX3ByZWZpeAotICAgICAg ICBhZGQgICAgICQ4LCVlc3AKLSAgICAgICAgbW92YiAgICAkMixzeW1fcGh5cyhvcHRfZWRpZCkg Lyogb3B0X2VkaWQ9MjogZWRpZD1mb3JjZSAqLwotICAgICAgICB0ZXN0ICAgICVlYXgsJWVheAot ICAgICAgICBqeiAgICAgIC5McGFyc2VfdmdhCi0gICAgICAgIHB1c2ggICAgJWVieAotICAgICAg ICBwdXNobCAgICRzeW1fcGh5cyguTGVkaWRfbm8pCi0gICAgICAgIGNhbGwgICAgLkxzdHJfcHJl Zml4Ci0gICAgICAgIGFkZCAgICAgJDgsJWVzcAotICAgICAgICBkZWNiICAgIHN5bV9waHlzKG9w dF9lZGlkKSAgICAvKiBvcHRfZWRpZD0xOiBlZGlkPW5vICovCi0gICAgICAgIHRlc3QgICAgJWVh eCwlZWF4Ci0gICAgICAgIGp6ICAgICAgLkxwYXJzZV92Z2EKLSAgICAgICAgZGVjYiAgICBzeW1f cGh5cyhvcHRfZWRpZCkgICAgLyogb3B0X2VkaWQ9MDogZGVmYXVsdCAqLwotCi0uTHBhcnNlX3Zn YToKLSAgICAgICAgLyogQ2hlY2sgZm9yICd2Z2E9JyBjb21tYW5kLWxpbmUgb3B0aW9uLiAqLwot ICAgICAgICBtb3ZsICAgICRzeW1fcGh5cyguTHZnYV9vcHQpLDQoJWVzcCkKLSAgICAgICAgY2Fs bCAgICAuTGZpbmRfb3B0aW9uCi0gICAgICAgIGFkZCAgICAgJDgsJWVzcAotICAgICAgICB0ZXN0 ICAgICVlYXgsJWVheAotICAgICAgICBqeiAgICAgIC5MY21kbGluZV9leGl0Ci0gICAgICAgIGNt cGIgICAgJCc9JywzKCVlYXgpCi0gICAgICAgIGpuZSAgICAgLkxjbWRsaW5lX2V4aXQKLSAgICAg ICAgYWRkICAgICAkNCwlZWF4Ci0KLSAgICAgICAgLyogRm91bmQgdGhlICd2Z2E9JyBvcHRpb24u IERlZmF1bHQgb3B0aW9uIGlzIHRvIGRpc3BsYXkgdmdhIG1lbnUuICovCi0gICAgICAgIG1vdncg ICAgJEFTS19WR0Esc3ltX3BoeXMoYm9vdF92aWRfbW9kZSkKLQotICAgICAgICAvKiBDaGVjayBm b3IgJ3ZnYT10ZXh0LTgweDxyb3dzPi4gKi8KLSAgICAgICAgbW92ICAgICAlZWF4LCVlYngKLSAg ICAgICAgcHVzaCAgICAlZWJ4Ci0gICAgICAgIHB1c2hsICAgJHN5bV9waHlzKC5MdmdhX3RleHQ4 MCkKLSAgICAgICAgY2FsbCAgICAuTHN0cl9wcmVmaXgKLSAgICAgICAgYWRkICAgICAkOCwlZXNw Ci0gICAgICAgIHRlc3QgICAgJWVheCwlZWF4Ci0gICAgICAgIGpueiAgICAgLkxwYXJzZV92Z2Ff Z2Z4Ci0KLSAgICAgICAgLyogV2UgaGF2ZSAndmdhPXRleHQtODB4PHJvd3M+Jy4gKi8KLSAgICAg ICAgYWRkICAgICAkOCwlZWJ4Ci0gICAgICAgIHB1c2ggICAgJWVieAotICAgICAgICBjYWxsICAg IC5MYXRvaQotICAgICAgICBhZGQgICAgICQ0LCVlc3AKLSAgICAgICAgbW92ICAgICAlYXgsJWJ4 Ci0gICAgICAgIGxlYSAgICAgc3ltX3BoeXMoLkx2Z2FfdGV4dF9tb2RlcyksJWVzaQotMTogICAg ICBsb2RzdwotICAgICAgICB0ZXN0ICAgICVheCwlYXgKLSAgICAgICAganogICAgICAuTGNtZGxp bmVfZXhpdAotICAgICAgICBjbXAgICAgICVheCwlYngKLSAgICAgICAgbG9kc3cKLSAgICAgICAg am5lICAgICAxYgotICAgICAgICBtb3YgICAgICVheCxzeW1fcGh5cyhib290X3ZpZF9tb2RlKQot ICAgICAgICBqbXAgICAgIC5MY21kbGluZV9leGl0Ci0KLS5McGFyc2VfdmdhX2dmeDoKLSAgICAg ICAgLyogQ2hlY2sgZm9yICd2Z2E9Z2Z4LTx3aWR0aD54PGhlaWdodD54PGRlcHRoPicuICovCi0g ICAgICAgIHB1c2ggICAgJWVieAotICAgICAgICBwdXNobCAgICRzeW1fcGh5cyguTHZnYV9nZngp Ci0gICAgICAgIGNhbGwgICAgLkxzdHJfcHJlZml4Ci0gICAgICAgIGFkZCAgICAgJDgsJWVzcAot ICAgICAgICB0ZXN0ICAgICVlYXgsJWVheAotICAgICAgICBqbnogICAgIC5McGFyc2VfdmdhX21v ZGUKLQotICAgICAgICAvKiBXZSBoYXZlICd2Z2E9Z2Z4LTx3aWR0aD54PGhlaWdodD54PGRlcHRo PicuICovCi0gICAgICAgIC8qIHNraXAgJ2dmeC0nICovCi0gICAgICAgIGFkZCAgICAgJDQsJWVi eAotICAgICAgICAvKiBwYXJzZSA8d2lkdGg+ICovCi0gICAgICAgIHB1c2ggICAgJWVieAotICAg ICAgICBjYWxsICAgIC5MYXRvaQotICAgICAgICBwb3AgICAgICVlc2kKLSAgICAgICAgbW92ICAg ICAlYXgsc3ltX3BoeXModmVzYV9zaXplKSswCi0gICAgICAgIC8qIHNraXAgJ3gnICovCi0gICAg ICAgIGxvZHNiCi0gICAgICAgIGNtcGIgICAgJCd4JywlYWwKLSAgICAgICAgam5lICAgICAuTGNt ZGxpbmVfZXhpdAotICAgICAgICAvKiBwYXJzZSA8aGVpZ2h0PiAqLwotICAgICAgICBwdXNoICAg ICVlc2kKLSAgICAgICAgY2FsbCAgICAuTGF0b2kKLSAgICAgICAgcG9wICAgICAlZXNpCi0gICAg ICAgIG1vdiAgICAgJWF4LHN5bV9waHlzKHZlc2Ffc2l6ZSkrMgotICAgICAgICAvKiBza2lwICd4 JyAqLwotICAgICAgICBsb2RzYgotICAgICAgICBjbXBiICAgICQneCcsJWFsCi0gICAgICAgIGpu ZSAgICAgLkxjbWRsaW5lX2V4aXQKLSAgICAgICAgLyogcGFyc2UgPGRlcHRoPiAqLwotICAgICAg ICBwdXNoICAgICVlc2kKLSAgICAgICAgY2FsbCAgICAuTGF0b2kKLSAgICAgICAgcG9wICAgICAl ZXNpCi0gICAgICAgIG1vdiAgICAgJWF4LHN5bV9waHlzKHZlc2Ffc2l6ZSkrNAotICAgICAgICAv KiBjb21taXQgdG8gdmVzYSBtb2RlICovCi0gICAgICAgIG1vdncgICAgJFZJREVPX1ZFU0FfQllf U0laRSxzeW1fcGh5cyhib290X3ZpZF9tb2RlKQotICAgICAgICBqbXAgICAgIC5MY21kbGluZV9l eGl0Ci0KLS5McGFyc2VfdmdhX21vZGU6Ci0gICAgICAgIC8qIENoZWNrIGZvciAndmdhPW1vZGUt PG1vZGU+Jy4gKi8KLSAgICAgICAgcHVzaCAgICAlZWJ4Ci0gICAgICAgIHB1c2hsICAgJHN5bV9w aHlzKC5MdmdhX21vZGUpCi0gICAgICAgIGNhbGwgICAgLkxzdHJfcHJlZml4Ci0gICAgICAgIGFk ZCAgICAgJDgsJWVzcAotICAgICAgICB0ZXN0ICAgICVlYXgsJWVheAotICAgICAgICBqbnogICAg IC5McGFyc2VfdmdhX2N1cnJlbnQKLQotICAgICAgICAvKiBXZSBoYXZlICd2Z2E9bW9kZS08bW9k ZT4nLiAqLwotICAgICAgICBhZGQgICAgICQ1LCVlYngKLSAgICAgICAgcHVzaCAgICAlZWJ4Ci0g ICAgICAgIGNhbGwgICAgLkxhdG9pCi0gICAgICAgIGFkZCAgICAgJDQsJWVzcAotICAgICAgICBt b3YgICAgICVheCxzeW1fcGh5cyhib290X3ZpZF9tb2RlKQotICAgICAgICBqbXAgICAgIC5MY21k bGluZV9leGl0Ci0KLS5McGFyc2VfdmdhX2N1cnJlbnQ6Ci0gICAgICAgIC8qIENoZWNrIGZvciAn dmdhPWN1cnJlbnQnLiAqLwotICAgICAgICBwdXNoICAgICVlYngKLSAgICAgICAgcHVzaGwgICAk c3ltX3BoeXMoLkx2Z2FfY3VycmVudCkKLSAgICAgICAgY2FsbCAgICAuTHN0cl9wcmVmaXgKLSAg ICAgICAgYWRkICAgICAkOCwlZXNwCi0gICAgICAgIHRlc3QgICAgJWVheCwlZWF4Ci0gICAgICAg IGpueiAgICAgLkxjbWRsaW5lX2V4aXQKLQotICAgICAgICAvKiBXZSBoYXZlICd2Z2E9Y3VycmVu dCcuICovCi0gICAgICAgIG1vdncgICAgJFZJREVPX0NVUlJFTlRfTU9ERSxzeW1fcGh5cyhib290 X3ZpZF9tb2RlKQotCi0uTGNtZGxpbmVfZXhpdDoKLSAgICAgICAgcG9wYQotICAgICAgICByZXQK LQotICAgICAgICAucHVzaHNlY3Rpb24gLmluaXQucm9kYXRhLCAiYSIsIEBwcm9nYml0cwotCi0u THZnYV90ZXh0X21vZGVzOiAvKiByb3dzLCBtb2RlX251bWJlciAqLwotICAgICAgICAud29yZCAg IDI1LFZJREVPXzgweDI1Ci0gICAgICAgIC53b3JkICAgNTAsVklERU9fODB4NTAKLSAgICAgICAg LndvcmQgICA0MyxWSURFT184MHg0MwotICAgICAgICAud29yZCAgIDI4LFZJREVPXzgweDI4Ci0g ICAgICAgIC53b3JkICAgMzAsVklERU9fODB4MzAKLSAgICAgICAgLndvcmQgICAzNCxWSURFT184 MHgzNAotICAgICAgICAud29yZCAgIDYwLFZJREVPXzgweDYwCi0gICAgICAgIC53b3JkICAgMAot Ci0uTHZnYV9vcHQ6Ci0gICAgICAgIC5hc2NpeiAgInZnYSIKLS5MdmdhX3RleHQ4MDoKLSAgICAg ICAgLmFzY2l6ICAidGV4dC04MHgiCi0uTHZnYV9nZng6Ci0gICAgICAgIC5hc2NpeiAgImdmeC0i Ci0uTHZnYV9tb2RlOgotICAgICAgICAuYXNjaXogICJtb2RlLSIKLS5MdmdhX2N1cnJlbnQ6Ci0g ICAgICAgIC5hc2NpeiAgImN1cnJlbnQiCi0uTG5vX3JtX29wdDoKLSAgICAgICAgLmFzY2l6ICAi bm8tcmVhbC1tb2RlIgotLkx0Ym9vdF9vcHQ6Ci0gICAgICAgIC5hc2NpeiAgInRib290IgotLkxl ZGlkX29wdDoKLSAgICAgICAgLmFzY2l6ICAiZWRpZCIKLS5MZWRpZF9mb3JjZToKLSAgICAgICAg LmFzY2l6ICAiZm9yY2UiCi0uTGVkaWRfbm86Ci0gICAgICAgIC5hc2NpeiAgIm5vIgotLkxlZGRf b3B0OgotICAgICAgICAuYXNjaXogICJlZGQiCi0KLSAgICAgICAgLnBvcHNlY3Rpb24KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L2NtZGxpbmUuYyBiL3hlbi9hcmNoL3g4Ni9ib290L2Nt ZGxpbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGE4MDRjCi0tLSAv ZGV2L251bGwKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvY21kbGluZS5jCkBAIC0wLDAgKzEsMzc2 IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1LCAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisg KiB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKyAqCisgKiBzdHJsZW4oKSwgc3RybmNtcCgpLCBzdHJjaHIoKSwgc3Ryc3BuKCkg YW5kIHN0cmNzcG4oKSB3ZXJlIGNvcGllZCBmcm9tCisgKiBMaW51eCBrZXJuZWwgc291cmNlIChs aW51eC9saWIvc3RyaW5nLmMpLgorICoKKyAqIG1heCgpIHdhcyBjb3BpZWQgZnJvbSB4ZW4veGVu L2luY2x1ZGUveGVuL2tlcm5lbC5oLgorICovCisKKy8qCisgKiBUaGlzIGVudHJ5IHBvaW50IGlz IGVudGVyZWQgZnJvbSB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgd2l0aDoKKyAqICAgLSAweDQo JWVzcCkgPSAmY21kbGluZSwKKyAqICAgLSAweDgoJWVzcCkgPSAmZWFybHlfYm9vdF9vcHRzLgor ICovCithc20gKAorICAgICIgICAgLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisg ICAgIiAgICAuZ2xvYmwgX3N0YXJ0ICAgICAgICAgICAgICAgICBcbiIKKyAgICAiX3N0YXJ0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICBjbWRsaW5lX3BhcnNl X2Vhcmx5ICAgICAgXG4iCisgICAgKTsKKworI2luY2x1ZGUgInZpZGVvLmgiCisKKyNkZWZpbmUg TlVMTAkoKHZvaWQgKikwKQorCisjZGVmaW5lIF9fcGFja2VkCV9fYXR0cmlidXRlX18oKF9fcGFj a2VkX18pKQorI2RlZmluZSBfX3N0ZGNhbGwJX19hdHRyaWJ1dGVfXygoX19zdGRjYWxsX18pKQor CisjZGVmaW5lIG1heCh4LHkpICh7IFwKKyAgICAgICAgY29uc3QgdHlwZW9mKHgpIF94ID0gKHgp OyAgICAgICBcCisgICAgICAgIGNvbnN0IHR5cGVvZih5KSBfeSA9ICh5KTsgICAgICAgXAorICAg ICAgICAodm9pZCkgKCZfeCA9PSAmX3kpOyAgICAgICAgICAgIFwKKyAgICAgICAgX3ggPiBfeSA/ IF94IDogX3k7IH0pCisKKyNkZWZpbmUgdG9sb3dlcihjKSAoKGMpIHwgMHgyMCkKKwordHlwZWRl ZiB1bnNpZ25lZCBjaGFyIGJvb2xfdDsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB1ODsKK3R5cGVk ZWYgdW5zaWduZWQgc2hvcnQgdTE2OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworCisj ZGVmaW5lIEZBTFNFCQkwCisjZGVmaW5lIFRSVUUJCTEKKworI2RlZmluZSBVMTZfTUFYCQkoKHUx NikofjBVKSkKKyNkZWZpbmUgVUlOVF9NQVgJKH4wVSkKKworLyogS2VlcCBpbiBzeW5jIHdpdGgg dHJhbXBvbGluZS5TOmVhcmx5X2Jvb3Rfb3B0cyBsYWJlbCEgKi8KK3R5cGVkZWYgc3RydWN0IF9f cGFja2VkIHsKKyAgICBib29sX3Qgc2tpcF9yZWFsbW9kZTsKKyAgICB1OCBvcHRfZWRkOworICAg IHU4IG9wdF9lZGlkOworICAgIHUxNiBib290X3ZpZF9tb2RlOworICAgIHUxNiB2ZXNhX3dpZHRo OworICAgIHUxNiB2ZXNhX2hlaWdodDsKKyAgICB1MTYgdmVzYV9kZXB0aDsKK30gZWFybHlfYm9v dF9vcHRzX3Q7CisKKy8qCisgKiBTcGFjZSBhbmQgVEFCIGFyZSBvYnZpb3VzIGRlbGltaXRlcnMu IEhvd2V2ZXIsIEkgYW0KKyAqIGFkZGluZyAiXG4iIGFuZCAiXHIiIGhlcmUgdG9vLiBKdXN0IGlu IGNhc2Ugd2hlbgorICogY3JhenkgYm9vdGxvYWRlci91c2VyIHB1dHMgdGhlbSBzb21ld2hlcmUu CisgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGRlbGltX2NoYXJzX2NvbW1hW10gPSAiLCBcblxyXHQi Oworc3RhdGljIGNvbnN0IGNoYXIgZGVsaW1fY2hhcnNbXSA9ICIgXG5cclx0IjsKKworLyoKKyAq IHN0YXRpYyBjb25zdCBjaGFyICpkZWxpbV9jaGFycyA9ICZkZWxpbV9jaGFyc19jb21tYVsxXTsK KyAqCisgKiBPbGRlciBjb21waWxlcnMsIGUuZy4gZ2NjIHZlcnNpb24gNC4xLjIgMjAwNjExMTUg KHByZXJlbGVhc2UpIChEZWJpYW4gNC4xLjEtMjEpLAorICogcHV0ICZkZWxpbV9jaGFyc19jb21t YVsxXSBkaXJlY3RseSBpbnRvICpkZWxpbV9jaGFycy4gVGhpcyBtZWFucyB0aGF0IHRoZSBhZGRy ZXNzCisgKiBpbiAqZGVsaW1fY2hhcnMgaXMgbm90IHByb3Blcmx5IHVwZGF0ZWQgZHVyaW5nIHJ1 bnRpbWUuIE5ld2VyIGNvbXBpbGVycyBhcmUgbXVjaAorICogc21hcnRlciBhbmQgYnVpbGQgZnVs bHkgcmVsb2NhdGFibGUgY29kZSBldmVuIGlmIGFib3ZlIHNob3duIGNvbnN0cnVjdCBpcyB1c2Vk LgorICogSG93ZXZlciwgZGVmaW5lIGRlbGltX2NoYXJzW10gc2VwYXJhdGVseSB0byBwcm9wZXJs eSBidWlsZCBYZW4gY29kZSBvbgorICogb2xkZXIgc3lzdGVtcy4KKyAqLworCitzdGF0aWMgc2l6 ZV90IHN0cmxlbihjb25zdCBjaGFyICpzKQoreworICAgIGNvbnN0IGNoYXIgKnNjOworCisgICAg Zm9yICggc2MgPSBzOyAqc2MgIT0gJ1wwJzsgKytzYyApCisgICAgICAgIC8qIG5vdGhpbmcgKi87 CisgICAgcmV0dXJuIHNjIC0gczsKK30KKworc3RhdGljIGludCBzdHJuY21wKGNvbnN0IGNoYXIg KmNzLCBjb25zdCBjaGFyICpjdCwgc2l6ZV90IGNvdW50KQoreworICAgIHVuc2lnbmVkIGNoYXIg YzEsIGMyOworCisgICAgd2hpbGUgKCBjb3VudCApCisgICAgeworICAgICAgICBjMSA9ICpjcysr OworICAgICAgICBjMiA9ICpjdCsrOworICAgICAgICBpZiAoIGMxICE9IGMyICkKKyAgICAgICAg ICAgIHJldHVybiBjMSA8IGMyID8gLTEgOiAxOworICAgICAgICBpZiAoICFjMSApCisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgY291bnQtLTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBjaGFyICpzdHJjaHIoY29uc3QgY2hhciAqcywgaW50IGMpCit7CisgICAgZm9yICgg OyAqcyAhPSAoY2hhciljOyArK3MgKQorICAgICAgICBpZiAoICpzID09ICdcMCcgKQorICAgICAg ICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIChjaGFyICopczsKK30KKworc3RhdGljIHNp emVfdCBzdHJzcG4oY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqYWNjZXB0KQoreworICAgIGNv bnN0IGNoYXIgKnA7CisgICAgY29uc3QgY2hhciAqYTsKKyAgICBzaXplX3QgY291bnQgPSAwOwor CisgICAgZm9yICggcCA9IHM7ICpwICE9ICdcMCc7ICsrcCApCisgICAgeworICAgICAgICBmb3Ig KCBhID0gYWNjZXB0OyAqYSAhPSAnXDAnOyArK2EgKQorICAgICAgICB7CisgICAgICAgICAgICBp ZiAoICpwID09ICphICkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg ICBpZiAoICphID09ICdcMCcgKQorICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICAr K2NvdW50OworICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzaXplX3Qgc3Ry Y3Nwbihjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICpyZWplY3QpCit7CisgICAgY29uc3QgY2hh ciAqcDsKKyAgICBjb25zdCBjaGFyICpyOworICAgIHNpemVfdCBjb3VudCA9IDA7CisKKyAgICBm b3IgKCBwID0gczsgKnAgIT0gJ1wwJzsgKytwICkKKyAgICB7CisgICAgICAgIGZvciAoIHIgPSBy ZWplY3Q7ICpyICE9ICdcMCc7ICsrciApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggKnAg PT0gKnIgKQorICAgICAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgfQorICAgICAg ICArK2NvdW50OworICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyB1bnNpZ25l ZCBpbnQgc3RydG91aShjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICpzdG9wLCBjb25zdCBjaGFy ICoqbmV4dCkKK3sKKyAgICBjaGFyIGw7CisgICAgdW5zaWduZWQgaW50IGJhc2UgPSAxMCwgb3Jl cyA9IDAsIHJlcyA9IDA7CisKKyAgICBpZiAoICpzID09ICcwJyApCisgICAgICBiYXNlID0gKHRv bG93ZXIoKisrcykgPT0gJ3gnKSA/ICgrK3MsIDE2KSA6IDg7CisKKyAgICBmb3IgKCA7ICpzICE9 ICdcMCc7ICsrcyApCisgICAgeworICAgICAgICBpZiAoIHN0b3AgJiYgc3RyY2hyKHN0b3AsICpz KSApCisgICAgICAgICAgICBnb3RvIG91dDsKKworICAgICAgICBpZiAoICpzIDwgJzAnIHx8ICgq cyA+ICc3JyAmJiBiYXNlID09IDgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzID0gVUlO VF9NQVg7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGwgPSB0 b2xvd2VyKCpzKTsKKworICAgICAgICBpZiAoICpzID4gJzknICYmIChiYXNlICE9IDE2IHx8IGwg PCAnYScgfHwgbCA+ICdmJykgKQorICAgICAgICB7CisgICAgICAgICAgICByZXMgPSBVSU5UX01B WDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgcmVzICo9IGJh c2U7CisgICAgICAgIHJlcyArPSAobCA+PSAnYScpID8gKGwgLSAnYScgKyAxMCkgOiAoKnMgLSAn MCcpOworCisgICAgICAgIGlmICggb3JlcyA+IHJlcyApCisgICAgICAgIHsKKyAgICAgICAgICAg IHJlcyA9IFVJTlRfTUFYOworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAg ICAgICBvcmVzID0gcmVzOworICAgIH0KKworIG91dDoKKyAgICBpZiAoIG5leHQgKQorICAgICAg Km5leHQgPSBzOworCisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdGljIGludCBzdHJtYXhjbXAo Y29uc3QgY2hhciAqY3MsIGNvbnN0IGNoYXIgKmN0LCBjb25zdCBjaGFyICpkZWxpbV9jaGFycykK K3sKKyAgICByZXR1cm4gc3RybmNtcChjcywgY3QsIG1heChzdHJjc3BuKGNzLCBkZWxpbV9jaGFy cyksIHN0cmxlbihjdCkpKTsKK30KKworc3RhdGljIGludCBzdHJzdWJjbXAoY29uc3QgY2hhciAq Y3MsIGNvbnN0IGNoYXIgKmN0KQoreworICAgIHJldHVybiBzdHJuY21wKGNzLCBjdCwgc3RybGVu KGN0KSk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpmaW5kX29wdChjb25zdCBjaGFyICpjbWRs aW5lLCBjb25zdCBjaGFyICpvcHQsIGJvb2xfdCBhcmcpCit7CisgICAgc2l6ZV90IGxjLCBsbzsK KworICAgIGxvID0gc3RybGVuKG9wdCk7CisKKyAgICBmb3IgKCA7IDsgKQorICAgIHsKKyAgICAg ICAgY21kbGluZSArPSBzdHJzcG4oY21kbGluZSwgZGVsaW1fY2hhcnMpOworCisgICAgICAgIGlm ICggKmNtZGxpbmUgPT0gJ1wwJyApCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAg ICBpZiAoICFzdHJtYXhjbXAoY21kbGluZSwgIi0tIiwgZGVsaW1fY2hhcnMpICkKKyAgICAgICAg ICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGxjID0gc3RyY3NwbihjbWRsaW5lLCBkZWxpbV9j aGFycyk7CisKKyAgICAgICAgaWYgKCAhc3RybmNtcChjbWRsaW5lLCBvcHQsIGFyZyA/IGxvIDog bWF4KGxjLCBsbykpICkKKyAgICAgICAgICAgIHJldHVybiBjbWRsaW5lICsgbG87CisKKyAgICAg ICAgY21kbGluZSArPSBsYzsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sX3Qgc2tpcF9yZWFsbW9k ZShjb25zdCBjaGFyICpjbWRsaW5lKQoreworICAgIHJldHVybiBmaW5kX29wdChjbWRsaW5lLCAi bm8tcmVhbC1tb2RlIiwgRkFMU0UpIHx8IGZpbmRfb3B0KGNtZGxpbmUsICJ0Ym9vdD0iLCBUUlVF KTsKK30KKworc3RhdGljIHU4IGVkZF9wYXJzZShjb25zdCBjaGFyICpjbWRsaW5lKQoreworICAg IGNvbnN0IGNoYXIgKmM7CisKKyAgICBjID0gZmluZF9vcHQoY21kbGluZSwgImVkZD0iLCBUUlVF KTsKKworICAgIGlmICggIWMgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICggIXN0cm1h eGNtcChjLCAib2ZmIiwgZGVsaW1fY2hhcnMpICkKKyAgICAgICAgcmV0dXJuIDI7CisKKyAgICBy ZXR1cm4gIXN0cm1heGNtcChjLCAic2tpcG1iciIsIGRlbGltX2NoYXJzKTsKK30KKworc3RhdGlj IHU4IGVkaWRfcGFyc2UoY29uc3QgY2hhciAqY21kbGluZSkKK3sKKyAgICBjb25zdCBjaGFyICpj OworCisgICAgYyA9IGZpbmRfb3B0KGNtZGxpbmUsICJlZGlkPSIsIFRSVUUpOworCisgICAgaWYg KCAhYyApCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCAhc3RybWF4Y21wKGMsICJmb3Jj ZSIsIGRlbGltX2NoYXJzKSApCisgICAgICAgIHJldHVybiAyOworCisgICAgcmV0dXJuICFzdHJt YXhjbXAoYywgIm5vIiwgZGVsaW1fY2hhcnMpOworfQorCitzdGF0aWMgdTE2IHJvd3Mydm1vZGUo dW5zaWduZWQgaW50IHJvd3MpCit7CisgICAgc3dpdGNoICggcm93cyApCisgICAgeworICAgIGNh c2UgMjU6CisgICAgICAgIHJldHVybiBWSURFT184MHgyNTsKKworICAgIGNhc2UgMjg6CisgICAg ICAgIHJldHVybiBWSURFT184MHgyODsKKworICAgIGNhc2UgMzA6CisgICAgICAgIHJldHVybiBW SURFT184MHgzMDsKKworICAgIGNhc2UgMzQ6CisgICAgICAgIHJldHVybiBWSURFT184MHgzNDsK KworICAgIGNhc2UgNDM6CisgICAgICAgIHJldHVybiBWSURFT184MHg0MzsKKworICAgIGNhc2Ug NTA6CisgICAgICAgIHJldHVybiBWSURFT184MHg1MDsKKworICAgIGNhc2UgNjA6CisgICAgICAg IHJldHVybiBWSURFT184MHg2MDsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBBU0tf VkdBOworICAgIH0KK30KKworc3RhdGljIHZvaWQgdmdhX3BhcnNlKGNvbnN0IGNoYXIgKmNtZGxp bmUsIGVhcmx5X2Jvb3Rfb3B0c190ICplYm8pCit7CisgICAgY29uc3QgY2hhciAqYzsKKyAgICB1 bnNpZ25lZCBpbnQgdG1wLCB2ZXNhX2RlcHRoLCB2ZXNhX2hlaWdodCwgdmVzYV93aWR0aDsKKwor ICAgIGMgPSBmaW5kX29wdChjbWRsaW5lLCAidmdhPSIsIFRSVUUpOworCisgICAgaWYgKCAhYyAp CisgICAgICAgIHJldHVybjsKKworICAgIGViby0+Ym9vdF92aWRfbW9kZSA9IEFTS19WR0E7CisK KyAgICBpZiAoICFzdHJtYXhjbXAoYywgImN1cnJlbnQiLCBkZWxpbV9jaGFyc19jb21tYSkgKQor ICAgICAgICBlYm8tPmJvb3RfdmlkX21vZGUgPSBWSURFT19DVVJSRU5UX01PREU7CisgICAgZWxz ZSBpZiAoICFzdHJzdWJjbXAoYywgInRleHQtODB4IikgKQorICAgIHsKKyAgICAgICAgYyArPSBz dHJsZW4oInRleHQtODB4Iik7CisgICAgICAgIGViby0+Ym9vdF92aWRfbW9kZSA9IHJvd3Mydm1v ZGUoc3RydG91aShjLCBkZWxpbV9jaGFyc19jb21tYSwgTlVMTCkpOworICAgIH0KKyAgICBlbHNl IGlmICggIXN0cnN1YmNtcChjLCAiZ2Z4LSIpICkKKyAgICB7CisgICAgICAgIHZlc2Ffd2lkdGgg PSBzdHJ0b3VpKGMgKyBzdHJsZW4oImdmeC0iKSwgIngiLCAmYyk7CisKKyAgICAgICAgaWYgKCB2 ZXNhX3dpZHRoID4gVTE2X01BWCApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLyoK KyAgICAgICAgICogSW5jcmVtZW50IGMgb3V0c2lkZSBvZiBzdHJ0b3VpKCkgYmVjYXVzZSBvdGhl cndpc2Ugc29tZQorICAgICAgICAgKiBjb21waWxlciBtYXkgY29tcGxhaW4gd2l0aCBmb2xsb3dp bmcgbWVzc2FnZToKKyAgICAgICAgICogd2FybmluZzogb3BlcmF0aW9uIG9uICdjJyBtYXkgYmUg dW5kZWZpbmVkLgorICAgICAgICAgKi8KKyAgICAgICAgKytjOworICAgICAgICB2ZXNhX2hlaWdo dCA9IHN0cnRvdWkoYywgIngiLCAmYyk7CisKKyAgICAgICAgaWYgKCB2ZXNhX2hlaWdodCA+IFUx Nl9NQVggKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZlc2FfZGVwdGggPSBzdHJ0 b3VpKCsrYywgZGVsaW1fY2hhcnNfY29tbWEsIE5VTEwpOworCisgICAgICAgIGlmICggdmVzYV9k ZXB0aCA+IFUxNl9NQVggKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGViby0+dmVz YV93aWR0aCA9IHZlc2Ffd2lkdGg7CisgICAgICAgIGViby0+dmVzYV9oZWlnaHQgPSB2ZXNhX2hl aWdodDsKKyAgICAgICAgZWJvLT52ZXNhX2RlcHRoID0gdmVzYV9kZXB0aDsKKyAgICAgICAgZWJv LT5ib290X3ZpZF9tb2RlID0gVklERU9fVkVTQV9CWV9TSVpFOworICAgIH0KKyAgICBlbHNlIGlm ICggIXN0cnN1YmNtcChjLCAibW9kZS0iKSApCisgICAgeworICAgICAgICB0bXAgPSBzdHJ0b3Vp KGMgKyBzdHJsZW4oIm1vZGUtIiksIGRlbGltX2NoYXJzX2NvbW1hLCBOVUxMKTsKKworICAgICAg ICBpZiAoIHRtcCA+IFUxNl9NQVggKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGVi by0+Ym9vdF92aWRfbW9kZSA9IHRtcDsKKyAgICB9Cit9CisKK3ZvaWQgX19zdGRjYWxsIGNtZGxp bmVfcGFyc2VfZWFybHkoY29uc3QgY2hhciAqY21kbGluZSwgZWFybHlfYm9vdF9vcHRzX3QgKmVi bykKK3sKKyAgICBpZiAoICFjbWRsaW5lICkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWJvLT5z a2lwX3JlYWxtb2RlID0gc2tpcF9yZWFsbW9kZShjbWRsaW5lKTsKKyAgICBlYm8tPm9wdF9lZGQg PSBlZGRfcGFyc2UoY21kbGluZSk7CisgICAgZWJvLT5vcHRfZWRpZCA9IGVkaWRfcGFyc2UoY21k bGluZSk7CisgICAgdmdhX3BhcnNlKGNtZGxpbmUsIGVibyk7Cit9CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvYm9vdC9lZGQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L2VkZC5TCmluZGV4IDVjODBk YTYuLjczMzcxZjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2VkZC5TCisrKyBiL3hl bi9hcmNoL3g4Ni9ib290L2VkZC5TCkBAIC0xNDIsOSArMTQyLDYgQEAgZWRkX25leHQ6CiBlZGRf ZG9uZToKICAgICAgICAgcmV0CiAKLW9wdF9lZGQ6Ci0gICAgICAgIC5ieXRlICAgMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIGVkZD1vbi9vZmYvc2tpcG1icgotCiBHTE9CQUwoYm9v dF9lZGRfaW5mb19ucikKICAgICAgICAgLmJ5dGUgICAwCiBHTE9CQUwoYm9vdF9tYnJfc2lnbmF0 dXJlX25yKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gv eDg2L2Jvb3QvaGVhZC5TCmluZGV4IGFjYTUzNzAuLmI4MzJiMjEgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9ib290L2hlYWQuUworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTQ5 Niw2ICs0OTYsMTMgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgY21wYiAgICAkMCxzeW1f cGh5cyhza2lwX3JlYWxtb2RlKQogICAgICAgICBqbnogICAgIDFmCiAKKyAgICAgICAgLyogQmFp bCBpZiB0aGVyZSBpcyBubyBjb21tYW5kIGxpbmUgdG8gcGFyc2UuICovCisgICAgICAgIG1vdiAg ICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAorICAgICAgICB0ZXN0bCAgICRNQklfQ01E TElORSxNQl9mbGFncyglZWJ4KQorICAgICAgICBqeiAgICAgIDFmCisKKyAgICAgICAgcHVzaGwg ICAkc3ltX3BoeXMoZWFybHlfYm9vdF9vcHRzKQorICAgICAgICBwdXNobCAgIE1CX2NtZGxpbmUo JWVieCkKICAgICAgICAgY2FsbCAgICBjbWRsaW5lX3BhcnNlX2Vhcmx5CiAKIDE6CkBAIC01MTQs NiArNTIxLDcgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgLyogSnVtcCBpbnRvIHRoZSBy ZWxvY2F0ZWQgdHJhbXBvbGluZS4gKi8KICAgICAgICAgbHJldAogCitjbWRsaW5lX3BhcnNlX2Vh cmx5OgogI2luY2x1ZGUgImNtZGxpbmUuUyIKIAogcmVsb2M6CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYm9vdC90cmFtcG9saW5lLlMgYi94ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMK aW5kZXggYjAxMzYxNC4uOGEzMjcyOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvdHJh bXBvbGluZS5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUwpAQCAtMjIwLDgg KzIyMCwyMCBAQCB0cmFtcG9saW5lX2Jvb3RfY3B1X2VudHJ5OgogICAgICAgICAvKiBKdW1wIHRv IHRoZSBjb21tb24gYm9vdHN0cmFwIGVudHJ5IHBvaW50LiAqLwogICAgICAgICBqbXAgICAgIHRy YW1wb2xpbmVfcHJvdG1vZGVfZW50cnkKIAorI2luY2x1ZGUgInZpZGVvLmgiCisKKy8qIEtlZXAg aW4gc3luYyB3aXRoIGNtZGxpbmUuYzplYXJseV9ib290X29wdHNfdCB0eXBlISAqLworZWFybHlf Ym9vdF9vcHRzOgogc2tpcF9yZWFsbW9kZToKICAgICAgICAgLmJ5dGUgICAwCitvcHRfZWRkOgor ICAgICAgICAuYnl0ZSAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZWRkPW9u L29mZi9za2lwbWJyICovCitvcHRfZWRpZDoKKyAgICAgICAgLmJ5dGUgICAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIEVESUQgcGFyc2luZyBvcHRpb24gKGZvcmNlL25vL2RlZmF1 bHQpLiAqLworR0xPQkFMKGJvb3RfdmlkX21vZGUpCisgICAgICAgIC53b3JkICAgVklERU9fODB4 MjUgICAgICAgICAgICAgICAgICAgICAvKiBJZiB3ZSBkb24ndCBydW4gYXQgYWxsLCBhc3N1bWUg YmFzaWMgdmlkZW8gbW9kZSAzIGF0IDgweDI1LiAqLwordmVzYV9zaXplOgorICAgICAgICAud29y ZCAgIDAsMCwwICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2lkdGggeCBkZXB0aCB4IGhl aWdodCAqLwogCiBHTE9CQUwoa2JkX3NoaWZ0X2ZsYWdzKQogICAgICAgICAuYnl0ZSAgIDAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L3ZpZGVvLlMgYi94ZW4vYXJjaC94ODYvYm9vdC92 aWRlby5TCmluZGV4IGIyMzhiZjMuLjMzNWE1MWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9i b290L3ZpZGVvLlMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvdmlkZW8uUwpAQCAtOTQ1LDcgKzk0 NSw2IEBAIHN0b3JlX2VkaWQ6CiAjZW5kaWYKICAgICAgICAgcmV0CiAKLW9wdF9lZGlkOiAgICAg ICAuYnl0ZSAgIDAgICAgICAgIyBFRElEIHBhcnNpbmcgb3B0aW9uIChmb3JjZS9uby9kZWZhdWx0 KQogbXRfZW5kOiAgICAgICAgIC53b3JkICAgMCAgICAgICAjIEVuZCBvZiB2aWRlbyBtb2RlIHRh YmxlIGlmIGJ1aWx0CiBlZGl0X2J1ZjogICAgICAgLnNwYWNlICA2ICAgICAgICMgTGluZSBlZGl0 b3IgYnVmZmVyCiBjYXJkX25hbWU6ICAgICAgLndvcmQgICAwICAgICAgICMgUG9pbnRlciB0byBh ZGFwdGVyIG5hbWUKQEAgLTk5MSwxMSArOTkwLDYgQEAgbmFtZV9iYW5uOiAgICAgIC5hc2NpeiAg IlZpZGVvIGFkYXB0ZXI6ICIKIAogZm9yY2Vfc2l6ZTogICAgIC53b3JkICAgMCAgICAgICAjIFVz ZSB0aGlzIHNpemUgaW5zdGVhZCBvZiB0aGUgb25lIGluIEJJT1MgdmFycwogCi12ZXNhX3NpemU6 ICAgICAgLndvcmQgICAwLDAsMCAgICMgd2lkdGggeCBkZXB0aCB4IGhlaWdodAotCi0vKiBJZiB3 ZSBkb24ndCBydW4gYXQgYWxsLCBhc3N1bWUgYmFzaWMgdmlkZW8gbW9kZSAzIGF0IDgweDI1LiAq LwotR0xPQkFMKGJvb3RfdmlkX21vZGUpCi0gICAgICAgIC53b3JkICAgVklERU9fODB4MjUKIEdM T0JBTChib290X3ZpZF9pbmZvKQogICAgICAgICAuYnl0ZSAgIDAsIDAgICAgLyogb3JpZ194LCBv cmlnX3kgKi8KICAgICAgICAgLmJ5dGUgICAzICAgICAgIC8qIHRleHQgbW9kZSAzICAgICovCi0t IAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=