From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 5/6] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Thu, 24 May 2018 17:55:22 -0700 Message-ID: <1527209723-23422-5-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , sstabellini@kernel.org, wei.liu2@citrix.com, blackskygg@gmail.com, ian.jackson@eu.citrix.com, julien.grall@arm.com List-Id: xen-devel@lists.xenproject.org RnJvbTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgoKQXV0aG9yOiBaaG9uZ3pl IExpdSA8YmxhY2tza3lnZ0BnbWFpbC5jb20+CgpBZGQgdGhlIHBhcnNpbmcgdXRpbHMgZm9yIHRo ZSBuZXdseSBpbnRyb2R1Y2VkIGxpYnhsX3N0YXRpY19zc2htIHN0cnVjdAp0byB0aGUgbGlieGwv bGlieGx1XyogZmFtaWx5LiBBbmQgYWRkIHJlYWxhdGVkIHBhcnNpbmcgY29kZSBpbiB4bCB0bwpw YXJzZSB0aGUgc3RydWN0IGZyb20geGwgY29uZmlnIGZpbGVzLiBUaGlzIGlzIGZvciB0aGUgcHJv cG9zYWwgIkFsbG93CnNldHRpbmcgdXAgc2hhcmVkIG1lbW9yeSBhcmVhcyBiZXR3ZWVuIFZNcyBm cm9tIHhsIGNvbmZpZyBmaWxlIiAoc2VlIFsxXSkuCgpbMV0gaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDgvbXNnMDMyNDIuaHRtbAoKU2lnbmVkLW9m Zi1ieTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+CgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXgu Y29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IHhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCi0tLQpDaGFuZ2VzIGluIHY1OgotIHJlbW92ZSBhbGlnbm1lbnQgY2hlY2tzLCB0aGV5 IHdlcmUgbW92ZWQgdG8gbGlieGwKLS0tCiB0b29scy9saWJ4bC9NYWtlZmlsZSAgICAgIHwgICAy ICstCiB0b29scy9saWJ4bC9saWJ4bHVfc3NobS5jIHwgMjA3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsdXRpbC5oICAgfCAg IDYgKysKIHRvb2xzL3hsL3hsX3BhcnNlLmMgICAgICAgfCAgMjUgKysrKystCiA0IGZpbGVzIGNo YW5nZWQsIDIzOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2xpYnhsL2xpYnhsdV9zc2htLmMKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9N YWtlZmlsZSBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCmluZGV4IDNiNzYyYzUuLjI5MjBmN2UgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYnhsL01ha2VmaWxl CkBAIC0xNzYsNyArMTc2LDcgQEAgQVVUT0lOQ1M9IGxpYnhsdV9jZmdfeS5oIGxpYnhsdV9jZmdf bC5oIF9saWJ4bF9saXN0LmggX3BhdGhzLmggXAogQVVUT1NSQ1M9IGxpYnhsdV9jZmdfeS5jIGxp YnhsdV9jZmdfbC5jCiBBVVRPU1JDUyArPSBfbGlieGxfc2F2ZV9tc2dzX2NhbGxvdXQuYyBfbGli eGxfc2F2ZV9tc2dzX2hlbHBlci5jCiBMSUJYTFVfT0JKUyA9IGxpYnhsdV9jZmdfeS5vIGxpYnhs dV9jZmdfbC5vIGxpYnhsdV9jZmcubyBcCi0JbGlieGx1X2Rpc2tfbC5vIGxpYnhsdV9kaXNrLm8g bGlieGx1X3ZpZi5vIGxpYnhsdV9wY2kubworCWxpYnhsdV9kaXNrX2wubyBsaWJ4bHVfZGlzay5v IGxpYnhsdV92aWYubyBsaWJ4bHVfcGNpLm8gbGlieGx1X3NzaG0ubwogJChMSUJYTFVfT0JKUyk6 IENGTEFHUyArPSAkKENGTEFHU19saWJ4ZW5jdHJsKSAjIEZvciB4ZW50b29sbG9nLmgKIAogJChU RVNUX1BST0dfT0JKUykgX2xpYnhsLmFwaS1mb3ItY2hlY2s6IENGTEFHUyArPSAkKENGTEFHU19s aWJ4ZW50b29sbG9nKSAkKENGTEFHU19saWJ4ZW50b29sY29yZSkKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsdV9zc2htLmMgYi90b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNzA5YTcKLS0tIC9kZXYvbnVsbAorKysgYi90 b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCkBAIC0wLDAgKzEsMjA3IEBACisjaW5jbHVkZSAibGli eGxfb3NkZXBzLmgiIC8qIG11c3QgY29tZSBiZWZvcmUgYW55IG90aGVyIGhlYWRlcnMgKi8KKyNp bmNsdWRlICJsaWJ4bHVfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ4ZW5jdHJsLmgiCisKKyNpbmNs dWRlIDxjdHlwZS5oPgorCisjZGVmaW5lIFBBUkFNX1JFKEVYUFIpICJeXFxzKiIgRVhQUiAiXFxz KigsfCQpIgorI2RlZmluZSBXT1JEX1JFICAgICAgICAgIihbX2EtekEtWjAtOV0rKSIKKyNkZWZp bmUgRVFVX1JFICAgICAgICAgUEFSQU1fUkUoV09SRF9SRSAiXFxzKj1cXHMqIiBXT1JEX1JFKQor CisjZGVmaW5lIFJFVF9JTlZBTChtc2csIGN1cnJfc3RyKSAgZG8geyAgICAgICAgICAgICAgXAor ICAgICAgICB4bHVfX3NzaG1fZXJyKGNmZywgbXNnLCBjdXJyX3N0cik7ICAgICAgICAgIFwKKyAg ICAgICAgcmMgPSBFSU5WQUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIGdvdG8gb3V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0g d2hpbGUoMCkKKworLyogc2V0IGEgbWVtYmVyIGluIGxpYnhsX3N0YXRpY19zaG0gYW5kIHJlcG9y dCBhbiBlcnJvciBpZiBpdCdzIHJlc3BlY2lmaWVkLAorICogQGN1cnJfc3RyIGluZGljYXRlcyB0 aGUgaGVhZCBvZiB0aGUgcmVtYWluaW5nIHN0cmluZy4gKi8KKyNkZWZpbmUgU0VUX1ZBTCh2YXIs IG5hbWUsIHR5cGUsIHZhbHVlLCBjdXJyX3N0cikgIGRvIHsgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgaWYgKCh2YXIpICE9IExJQlhMX1NTSE1fIyN0eXBlIyNfVU5LTk9XTiAmJiAodmFyKSAh PSB2YWx1ZSkgeyAgIFwKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiXCIiIG5hbWUgIlwiIHJlc3Bl Y2lmaWVkIiwgY3Vycl9zdHIpOyAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgKHZhcikgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICB9IHdoaWxlKDApCisKKworc3RhdGljIHZvaWQgeGx1X19zc2htX2Vy cihYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKm1zZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqY3Vycl9zdHIpIHsKKyAgICBmcHJpbnRmKGNmZy0+cmVwb3J0LAor ICAgICAgICAgICAgIiVzOiBjb25maWcgcGFyc2luZyBlcnJvciBpbiBzaGFyZWRfbWVtb3J5OiAl cyBhdCAnJXMnXG4iLAorICAgICAgICAgICAgY2ZnLT5jb25maWdfc291cmNlLCBtc2csIGN1cnJf c3RyKTsKK30KKworc3RhdGljIGludCBwYXJzZV9wcm90KFhMVV9Db25maWcgKmNmZywgY2hhciAq c3RyLCBsaWJ4bF9zc2htX3Byb3QgKnByb3QpCit7CisgICAgaW50IHJjOworICAgIGxpYnhsX3Nz aG1fcHJvdCBuZXdfcHJvdDsKKworICAgIGlmICghc3RyY21wKHN0ciwgInJ3IikpIHsKKyAgICAg ICAgbmV3X3Byb3QgPSBMSUJYTF9TU0hNX1BST1RfUlc7CisgICAgfSBlbHNlIHsKKyAgICAgICAg UkVUX0lOVkFMKCJpbnZhbGlkIHBlcm1pc3Npb24gZmxhZ3MiLCBzdHIpOworICAgIH0KKworICAg IFNFVF9WQUwoKnByb3QsICJwZXJtaXNzaW9uIGZsYWdzIiwgUFJPVCwgbmV3X3Byb3QsIHN0cik7 CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50 IHBhcnNlX2NhY2hlcG9saWN5KFhMVV9Db25maWcgKmNmZywgY2hhciAqc3RyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zc2htX2NhY2hlcG9saWN5ICpwb2xpY3kpCit7Cisg ICAgaW50IHJjOworICAgIGxpYnhsX3NzaG1fY2FjaGVwb2xpY3kgbmV3X3BvbGljeTsKKworICAg IGlmICghc3RyY21wKHN0ciwgIkFSTV9ub3JtYWwiKSkgeworICAgICAgICBuZXdfcG9saWN5ID0g TElCWExfU1NITV9DQUNIRVBPTElDWV9BUk1fTk9STUFMOworICAgIH0gZWxzZSBpZiAoIXN0cmNt cChzdHIsICJ4ODZfbm9ybWFsIikpIHsKKyAgICAgICAgbmV3X3BvbGljeSA9IExJQlhMX1NTSE1f Q0FDSEVQT0xJQ1lfWDg2X05PUk1BTDsKKyAgICB9IGVsc2UgeworICAgICAgICBSRVRfSU5WQUwo ImludmFsaWQgY2FjaGUgcG9saWN5Iiwgc3RyKTsKKyAgICB9CisKKyAgICBTRVRfVkFMKCpwb2xp Y3ksICJjYWNoZSBwb2xpY3kiLCBDQUNIRVBPTElDWSwgbmV3X3BvbGljeSwgc3RyKTsKKyAgICBy YyA9IDA7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCisvKiBoYW5kbGUga2V5ID0gdmFs dWUgcGFpcnMgKi8KK3N0YXRpYyBpbnQgaGFuZGxlX2VxdShYTFVfQ29uZmlnICpjZmcsIGNoYXIg KmtleSwgY2hhciAqdmFsLAorICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0g KnNzaG0pCit7CisgICAgaW50IHJjOworCisgICAgaWYgKCFzdHJjbXAoa2V5LCAiaWQiKSkgewor ICAgICAgICBpZiAoc3RybGVuKHZhbCkgPiBMSUJYTF9TU0hNX0lEX01BWExFTikgeyBSRVRfSU5W QUwoImlkIHRvbyBsb25nIiwgdmFsKTsgfQorICAgICAgICBpZiAoc3NobS0+aWQgJiYgIXN0cmNt cChzc2htLT5pZCwgdmFsKSkgeworICAgICAgICAgICAgUkVUX0lOVkFMKCJpZCByZXNwZWNpZmll ZCIsIHZhbCk7CisgICAgICAgIH0KKworICAgICAgICBzc2htLT5pZCA9IHN0cmR1cCh2YWwpOwor ICAgICAgICBpZiAoIXNzaG0tPmlkKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNz aG0gcGFyc2VyIG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgcmMgPSBFTk9NRU07Cisg ICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJyb2xlIikpIHsKKyAgICAgICAgbGlieGxfc3NobV9yb2xlIG5ld19yb2xlOworCisgICAg ICAgIGlmICghc3RyY21wKCJtYXN0ZXIiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9 IExJQlhMX1NTSE1fUk9MRV9NQVNURVI7CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCgic2xh dmUiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9IExJQlhMX1NTSE1fUk9MRV9TTEFW RTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCByb2xl IiwgdmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIFNFVF9WQUwoc3NobS0+cm9sZSwgInJvbGUi LCBST0xFLCBuZXdfcm9sZSwgdmFsKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiYmVn aW4iKSB8fAorICAgICAgICAgICAgICAgIXN0cmNtcChrZXksICJzaXplIikgfHwKKyAgICAgICAg ICAgICAgICFzdHJjbXAoa2V5LCAib2Zmc2V0IikpIHsKKyAgICAgICAgY2hhciAqZW5kcHRyOwor ICAgICAgICBpbnQgYmFzZSA9IDEwOworICAgICAgICB1aW50NjRfdCBuZXdfYWRkcjsKKworICAg ICAgICAvKiBDb3VsZCBiZSBpbiBoZXggZm9ybS4gTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8g Y2hlY2sgdGhlIGxlbmd0aCBoZXJlLAorICAgICAgICAgKiBmb3IgdmFsW10gaXMgTlVMTC10ZXJt aW5hdGVkICovCisgICAgICAgIGlmICh2YWxbMF0gPT0gJzAnICYmIHZhbFsxXSA9PSAneCcpIHsg YmFzZSA9IDE2OyB9CisgICAgICAgIG5ld19hZGRyID0gc3RydG91bGwodmFsLCAmZW5kcHRyLCBi YXNlKTsKKyAgICAgICAgaWYgKGVycm5vID09IEVSQU5HRSB8fCAqZW5kcHRyKQorICAgICAgICAg ICAgUkVUX0lOVkFMKCJpbnZhbGlkIGJlZ2luL3NpemUvb2Zmc2V0IiwgdmFsKTsKKworICAgICAg ICBpZiAoa2V5WzBdID09ICdiJykgeworICAgICAgICAgICAgU0VUX1ZBTChzc2htLT5iZWdpbiwg ImJlZ2lubmluZyBhZGRyZXNzIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVs c2UgaWYoa2V5WzBdID09ICdzJyl7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPnNpemUsICJz aXplIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgU0VUX1ZBTChzc2htLT5vZmZzZXQsICJvZmZzZXQiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7 CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAicHJvdCIpKSB7CisgICAg ICAgIHJjID0gcGFyc2VfcHJvdChjZmcsIHZhbCwgJnNzaG0tPnByb3QpOworICAgICAgICBpZiAo cmMpIHsgZ290byBvdXQ7IH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiY2FjaGVfcG9s aWN5IikpIHsKKyAgICAgICAgcmMgPSBwYXJzZV9jYWNoZXBvbGljeShjZmcsIHZhbCwgJnNzaG0t PmNhY2hlX3BvbGljeSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorICAgIH0gZWxz ZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBvcHRpb24iLCBrZXkpOworICAgIH0KKwor ICAgIHJjID0gMDsKKworIG91dDoKKyAgICByZXR1cm4gcmM7Cit9CisKK2ludCB4bHVfc3NobV9w YXJzZShYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnNwZWMsCisgICAgICAgICAgICAgICAg ICAgbGlieGxfc3RhdGljX3NobSAqc3NobSkKK3sKKyAgICBpbnQgcmM7CisgICAgcmVnZXhfdCBl cXVfcmVjOworICAgIGNoYXIgKmJ1ZjIgPSBOVUxMLCAqcHRyID0gTlVMTDsKKyAgICByZWdtYXRj aF90IHBtYXRjaFszXTsKKworICAgIHJjID0gcmVnY29tcCgmZXF1X3JlYywgRVFVX1JFLCBSRUdf RVhURU5ERUQpOworICAgIGlmIChyYykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNzaG0g cGFyc2VyIGZhaWxlZCB0byBpbml0aWFsaXplXG4iKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAg fQorCisgICAgYnVmMiA9IHB0ciA9IHN0cmR1cChzcGVjKTsKKyAgICBpZiAoIWJ1ZjIpIHsKKyAg ICAgICAgZnByaW50ZihzdGRlcnIsICJzc2htIHBhcnNlciBvdXQgb2YgbWVtb3J5XG4iKTsKKyAg ICAgICAgcmMgPSBFTk9NRU07CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIC8qIG1h aW4gcGFyc2luZyBsb29wICovCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCEqcHRy KSB7IGJyZWFrOyB9CisgICAgICAgIGlmIChyZWdleGVjKCZlcXVfcmVjLCBwdHIsIDMsIHBtYXRj aCwgMCkpCisgICAgICAgICAgICBSRVRfSU5WQUwoInVucmVjb2duaXplZCB0b2tlbiIsIHB0cik7 CisKKyAgICAgICAgcHRyW3BtYXRjaFsxXS5ybV9lb10gPSAnXDAnOworICAgICAgICBwdHJbcG1h dGNoWzJdLnJtX2VvXSA9ICdcMCc7CisgICAgICAgIHJjID0gaGFuZGxlX2VxdShjZmcsIHB0ciAr IHBtYXRjaFsxXS5ybV9zbywKKyAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArIHBtYXRjaFsy XS5ybV9zbywgc3NobSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorCisgICAgICAg IHB0ciArPSBwbWF0Y2hbMF0ucm1fZW87CisgICAgfQorCisgICAgaWYgKCpwdHIpIHsgUkVUX0lO VkFMKCJpbnZhbGlkIHN5bnRheCIsIHB0cik7IH0KKworICAgIC8qIGRvIHNvbWUgZWFybHkgY2hl Y2tzICovCisgICAgaWYgKCFzc2htLT5pZCkgeworICAgICAgICBSRVRfSU5WQUwoImlkIG5vdCBz cGVjaWZpZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID09IExJQlhMX1NT SE1fUkFOR0VfVU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImJlZ2luIGFkZHJlc3Mgbm90 IHNwZWNpZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+c2l6ZSA9PSBMSUJYTF9T U0hNX1JBTkdFX1VOS05PV04pIHsKKyAgICAgICAgUkVUX0lOVkFMKCJzaXplIG5vdCBzcGVjaWZp ZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPnByb3QgPT0gTElCWExfU1NITV9QUk9U X1VOS05PV04pIHsKKyAgICAgICAgc3NobS0+cHJvdCA9IExJQlhMX1NTSE1fUFJPVF9SVzsKKyAg ICB9CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgaWYgKGJ1ZjIpIHsgZnJlZShidWYyKTsg fQorICAgIHJlZ2ZyZWUoJmVxdV9yZWMpOworICAgIHJldHVybiByYzsKK30KKworLyoKKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGx1dGlsLmggYi90b29scy9saWJ4bC9saWJ4bHV0aWwuaAppbmRleCBlODFiNjQ0Li5lZTM5 Y2I1IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bHV0aWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bHV0aWwuaApAQCAtMTE4LDYgKzExOCwxMiBAQCBpbnQgeGx1X3JkbV9wYXJzZShYTFVf Q29uZmlnICpjZmcsIGxpYnhsX3JkbV9yZXNlcnZlICpyZG0sIGNvbnN0IGNoYXIgKnN0cik7CiBp bnQgeGx1X3ZpZl9wYXJzZV9yYXRlKFhMVV9Db25maWcgKmNmZywgY29uc3QgY2hhciAqcmF0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljKTsKIAorLyoKKyAq IHN0YXRpYyBzaGFyZWQgbWVtb3J5IHNwZWNpZmljYXRpb24gcGFyc2luZworICovCitpbnQgeGx1 X3NzaG1fcGFyc2UoWExVX0NvbmZpZyAqY2ZnLCBjb25zdCBjaGFyICpzcGVjLAorICAgICAgICAg ICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG0pOworCiAjZW5kaWYgLyogTElCWExVVElM X0ggKi8KIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMgYi90b29scy94bC94 bF9wYXJzZS5jCmluZGV4IGU2YzU0NDguLjNhNWM4NzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hs X3BhcnNlLmMKKysrIGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtODYwLDcgKzg2MCw4IEBAIHZv aWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAgICBsb25n IGwsIHZjcHVzID0gMDsKICAgICBYTFVfQ29uZmlnICpjb25maWc7CiAgICAgWExVX0NvbmZpZ0xp c3QgKmNwdXMsICp2YmRzLCAqbmljcywgKnBjaXMsICpjdmZicywgKmNwdWlkcywgKnZ0cG1zLAot ICAgICAgICAgICAgICAgICAgICp1c2JjdHJscywgKnVzYmRldnMsICpwOWRldnMsICp2ZGlzcGxz LCAqcHZjYWxsc2lmc19kZXZzOworICAgICAgICAgICAgICAgICAgICp1c2JjdHJscywgKnVzYmRl dnMsICpwOWRldnMsICp2ZGlzcGxzLCAqcHZjYWxsc2lmc19kZXZzLAorICAgICAgICAgICAgICAg ICAgICpzc2htczsKICAgICBYTFVfQ29uZmlnTGlzdCAqY2hhbm5lbHMsICppb3BvcnRzLCAqaXJx cywgKmlvbWVtLCAqdmlyaWRpYW4sICpkdGRldnMsCiAgICAgICAgICAgICAgICAgICAgKm1jYV9j YXBzOwogICAgIGludCBudW1faW9wb3J0cywgbnVtX2lycXMsIG51bV9pb21lbSwgbnVtX2NwdXMs IG51bV92aXJpZGlhbiwgbnVtX21jYV9jYXBzOwpAQCAtMTU2Niw2ICsxNTY3LDI4IEBAIHZvaWQg cGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAgICAgICAgfQog ICAgIH0KIAorICAgIGlmICgheGx1X2NmZ19nZXRfbGlzdCAoY29uZmlnLCAic3RhdGljX3NobSIs ICZzc2htcywgMCwgMCkpIHsKKyAgICAgICAgZF9jb25maWctPm51bV9zc2htcyA9IDA7CisgICAg ICAgIGRfY29uZmlnLT5zc2htcyA9IE5VTEw7CisgICAgICAgIHdoaWxlICgoYnVmID0geGx1X2Nm Z19nZXRfbGlzdGl0ZW0gKHNzaG1zLCBkX2NvbmZpZy0+bnVtX3NzaG1zKSkgIT0gTlVMTCkgewor ICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobTsKKyAgICAgICAgICAgIGNoYXIgKmJ1 ZjIgPSBzdHJkdXAoYnVmKTsKKyAgICAgICAgICAgIGludCByZXQ7CisKKyAgICAgICAgICAgIHNz aG0gPSBBUlJBWV9FWFRFTkRfSU5JVF9OT0RFVklEKGRfY29uZmlnLT5zc2htcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRfY29uZmlnLT5udW1fc3NobXMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0 aWNfc2htX2luaXQpOworICAgICAgICAgICAgcmV0ID0geGx1X3NzaG1fcGFyc2UoY29uZmlnLCBi dWYyLCBzc2htKTsKKyAgICAgICAgICAgIGlmIChyZXQpIHsKKyAgICAgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bDogSW52YWxpZCBhcmd1bWVu dCBmb3Igc3RhdGljX3NobTogJXMiLCBidWYyKTsKKyAgICAgICAgICAgICAgICBleGl0KEVYSVRf RkFJTFVSRSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWUoYnVmMik7CisgICAg ICAgIH0KKyAgICB9CisKICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QoY29uZmlnLCAicDkiLCAm cDlkZXZzLCAwLCAwKSkgewogICAgICAgICBsaWJ4bF9kZXZpY2VfcDkgKnA5OwogICAgICAgICBj aGFyICpzZWN1cml0eV9tb2RlbCA9IE5VTEw7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=