From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH 5/8] libxl: Share logic for finding path between qemuu and pygrub Date: Wed, 16 Mar 2016 16:09:14 +0000 Message-ID: <1458144557-29070-6-git-send-email-george.dunlap@citrix.com> References: <1458144557-29070-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458144557-29070-1-git-send-email-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Wei Liu , George Dunlap , Stefano Stabellini , Anthony Perard , Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKcWVtdSBj YW4gYWxzbyBhY2Nlc3MgZGlza3Mgd2hpY2ggd2lsbCBiZSBwcm92aWRlZCB3aXRoIGEgcWRpc2sg YmFja2VuZApkaXJlY3RseTsgYWRkIGEgZmxhZyB0byBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9s b2NhbF9wYXRoIHRvIGluZGljYXRlCndoZXRoZXIgdG8gY2hlY2sgZm9yIHFkaXNrIGRpcmVjdCBh Y2Nlc3MuCgpSZW9yZ2FuaXplIHRoZSBxZW11dSBkaXNrIGFyZ3VtZW50IGNvZGUgdG8gbWFrZSBh IGNsZWFuIHNlcGFyYXRpb24KYmV0d2VlbiBmaW5kaW5nIGEgZmlsZSB0byB1c2UgKGlmIGFueSks IGFuZCBjb25zdHJ1Y3RpbmcgdGhlCnBhcmFtZXRlcnMuCgpPbmx5IHVzZSBxZW11X2Rpc2tfZm9y bWF0X3N0cmluZygpIGluIGNpcmN1bXN0YW5jZXMgd2hlcmUgcWVtdSBtYXkgYmUKaW50ZXJwcmV0 aW5nIHRoZSBkaXNrIChpLmUuLCBiYWNrZW5kPT1RRElTSykuICBJbiBhbGwgb3RoZXIgY2FzZXMs IGl0CnNob3VsZCB1c2UgUkFXLgoKU2hhcmUgYXMgbXVjaCBhcyBwb3NzaWJsZSBiZXR3ZWVuIHRo ZSBpc19jZHJvbSBwYXRoIGFuZCB0aGUgbm9ybWFsIHBhdGguCgpDYWxsIGxpYnhsX19kZXZpY2Vf ZGlza19maW5kX2xvY2FsX3BhdGgoKSBmb3IgbW9zdCBwYXRocy4gIElmIHdlIGNhbid0IGZpbmQK YSBsb2NhbCBwYXRoLCBwcmludCBhbiBlcnJvciBhbmQgc2tpcCB0aGUgZGlzaywgcmF0aGVyIHRo YW4gdXNpbmcgYSBib2d1cyBwYXRoLgoKVGhpcyBzaG91bGQgZml4IHR3byBidWdzOgoKKiBJbiB0 aGUgY2FzZSBvZiBhIGJsb2NrIHNjcmlwdCwgb3IgYSBub24tZG9tMCBiYWNrZW5kLCBxZW11dSB3 aWxsIG5vdwpwcmludCBhIHdhcm5pbmcgYW5kIHNraXAgdGhlIGRpc2ssIHJhdGhlciB0aGFuIGFk ZGluZyBib2d1cwpwYXJhbWV0ZXJzIHRoYXQgd2lsbCBjYXVzZSBxZW11dSB0byBlcnJvciBvdXQu CgoqIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gdXNlIGFueSBiYWNrZW5kIGZvciBhIGNkcm9t IHRoYXQgeW91IGNhbgp1c2UgZm9yIGEgbm9ybWFsIGRpc2suICAoQmVmb3JlIGl0IHdhcyBsaW1p dGVkIHRvIFJBVyBmaWxlcyBvciB0aGluZ3MKdGhhdCBxZW11IGNvdWxkIGhhbmRsZSBkaXJlY3Rs eS4pCgpJIGxlZnQgdGhlIGxpYnhsX19ibGt0YXBfZGV2cGF0aCBpbiB0aGUgcWVtdXUtc3BlY2lm aWMgY29kZSByYXRoZXIgdGhhbiBzaGFyaW5nCml0IHdpdGggdGhlIHB5cmd1YiBjb2RlIGJlY2F1 c2U6CgoxKSBXaGVuIHRoZSBweWdydWIgcGF0aCBydW5zIHRoZSBndWVzdCBkaXNrcyBoYXZlIG5v dCB5ZXQgYmVlbiBzZXQgdXAKCjIpIGxpYnhsX19ibGt0YXBfZGV2cGF0aCgpIHdpbGwgZ2l2ZSB5 b3UgdGhlIGV4aXN0aW5nIGRldnBhdGggaWYgaXQKYWxyZWFkeSBleGlzdHMsIGJ1dCB3aWxsIHNl dCBvbmUgdXAgZm9yIHlvdSBpZiB5b3UgZG9uJ3QuICBTbyBvbiB0aGUgcHlncnViIHBhdGgsCnRo aXMgd291bGQgZW5kIHVwIHNldHRpbmcgdXAgYSBuZXcgdGFwIGRldmljZS4KCjMpIFRoZXJlIGlz IG5vIFRBUC1zcGVjaWZpYyB0ZWFyZG93biBjb2RlIG9uIHRoZSBweWdydWIgcGF0aCwgYW5kIEkK ZG9uJ3Qgd2FudCB0byBhZGQgYW55IChwYXJ0aWN1bGFybHkgc2luY2UgSSdtIGhvcGluZyB0byBy ZW1vdmUgdGFwZGlzawphbHRvZ2V0aGVyIHNvb24pLgoKU2lnbmVkLW9mZi1ieTogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgotLS0KQ0M6IElhbiBKYWNrc29uIDxp YW4uamFja3NvbkBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4K Q0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGNpdHJpeC5jb20+CkND OiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBh dSBNb25uZSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGwuYyAg ICAgICAgICB8IDE3ICsrKysrKysrKystLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAgICB8 IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB0b29scy9s aWJ4bC9saWJ4bF9pbnRlcm5hbC5oIHwgIDggKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDY2IGlu c2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IGE1NzU2OGYuLmQ2MzAyYTkgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuYwpAQCAt MzAwMSw4ICszMDAxLDkgQEAgc3RhdGljIGNoYXIgKiBsaWJ4bF9fYWxsb2NfdmRldihsaWJ4bF9f Z2MgKmdjLCB2b2lkICpnZXRfdmRldl91c2VyLAogCiAvKiBDYWxsYmFja3MgKi8KIAotc3RhdGlj IGNoYXIgKiBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGxpYnhsX19nYyAqZ2Ms IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxpYnhsX2RldmljZV9kaXNrICpkaXNrKSB7CitjaGFyICogbGlieGxfX2RldmljZV9kaXNrX2Zp bmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBxZGlza19kaXJlY3QpIHsKICAg ICBjaGFyICpwYXRoID0gTlVMTDsKIAogICAgIC8qIE5vIGxvY2FsIHBhdGhzIGZvciBkcml2ZXIg ZG9tYWlucyAqLwpAQCAtMzAyMyw2ICszMDI0LDE2IEBAIHN0YXRpYyBjaGFyICogbGlieGxfX2Rl dmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBnb3RvIG91 dDsKICAgICB9IAogCisgICAgLyoKKyAgICAgKiBJZiB3ZSdyZSBiZWluZyBjYWxsZWQgZm9yIGEg cWVtdSBwYXRoLCB3ZSBjYW4gcGFzcyB0aGUgdGFyZ2V0CisgICAgICogc3RyaW5nIGRpcmVjdGx5 IGFzIHdlbGwKKyAgICAgKi8KKyAgICBpZiAocWRpc2tfZGlyZWN0ICYmIGRpc2stPmJhY2tlbmQg PT0gTElCWExfRElTS19CQUNLRU5EX1FESVNLICkgeworICAgICAgICBwYXRoID0gbGlieGxfX3N0 cmR1cChnYywgZGlzay0+cGRldl9wYXRoKTsKKyAgICAgICAgTE9HKERFQlVHLCAiRGlyZWN0bHkg YWNjZXNzaW5nIGxvY2FsIFFESVNLIHRhcmdldCAlcyIsIHBhdGgpOworICAgICAgICBnb3RvIG91 dDsKKyAgICB9CisKICBvdXQ6CiAgICAgcmV0dXJuIHBhdGg7CiB9CkBAIC0zMDQ3LDcgKzMwNTgs NyBAQCB2b2lkIGxpYnhsX19kZXZpY2VfZGlza19sb2NhbF9pbml0aWF0ZV9hdHRhY2gobGlieGxf X2VnYyAqZWdjLAogCiAgICAgTE9HKERFQlVHLCAiVHJ5aW5nIHRvIGZpbmQgbG9jYWwgcGF0aCIp OwogCi0gICAgaWYgKChkbHMtPmRpc2twYXRoID0gbGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9j YWxfcGF0aChnYywgaW5fZGlzaykpKSB7CisgICAgaWYgKChkbHMtPmRpc2twYXRoID0gbGlieGxf X2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChnYywgaW5fZGlzaywgZmFsc2UpKSkgewogICAg ICAgICBMT0coREVCVUcsICJMb2NhbCBwYXRoIGZvdW5kLCBleGVjdXRpbmcgY2FsbGJhY2suIik7 CiAgICAgICAgIGRscy0+Y2FsbGJhY2soZWdjLCBkbHMsIDApOwogICAgIH0gZWxzZSB7CmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwpp bmRleCA0YWNhMzhlLi45MTdlYmJmIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kbS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTExNjEsOSArMTE2MSw5IEBAIHN0YXRp YyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAog ICAgICAgICAgICAgaW50IGRpc2ssIHBhcnQ7CiAgICAgICAgICAgICBpbnQgZGV2X251bWJlciA9 CiAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV9kaXNrX2Rldl9udW1iZXIoZGlza3NbaV0u dmRldiwgJmRpc2ssICZwYXJ0KTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCA9IHFl bXVfZGlza19mb3JtYXRfc3RyaW5nKGRpc2tzW2ldLmZvcm1hdCk7CisgICAgICAgICAgICBjb25z dCBjaGFyICpmb3JtYXQ7CiAgICAgICAgICAgICBjaGFyICpkcml2ZTsKLSAgICAgICAgICAgIGNv bnN0IGNoYXIgKnBkZXZfcGF0aDsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRhcmdldF9wYXRo OwogCiAgICAgICAgICAgICBpZiAoZGV2X251bWJlciA9PSAtMSkgewogICAgICAgICAgICAgICAg IExPRyhXQVJOLCAidW5hYmxlIHRvIGRldGVybWluZSIiIGRpc2sgbnVtYmVyIGZvciAlcyIsCkBA IC0xMTcxLDIyICsxMTcxLDIyIEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2Rl bF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoZGlza3NbaV0uaXNfY2Ryb20pIHsKLSAgICAg ICAgICAgICAgICBpZiAoZGlza3NbaV0uZm9ybWF0ID09IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZ KQotICAgICAgICAgICAgICAgICAgICBkcml2ZSA9IGxpYnhsX19zcHJpbnRmCi0gICAgICAgICAg ICAgICAgICAgICAgICAoZ2MsICJpZj1pZGUsaW5kZXg9JWQscmVhZG9ubHk9JXMsbWVkaWE9Y2Ry b20sY2FjaGU9d3JpdGViYWNrLGlkPWlkZS0laSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ZGlzaywgZGlza3NbaV0ucmVhZHdyaXRlID8gIm9mZiIgOiAib24iLCBkZXZfbnVtYmVyKTsKLSAg ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRyaXZlID0gbGlieGxfX3Nw cmludGYKLSAgICAgICAgICAgICAgICAgICAgICAgIChnYywgImZpbGU9JXMsaWY9aWRlLGluZGV4 PSVkLHJlYWRvbmx5PSVzLG1lZGlhPWNkcm9tLGZvcm1hdD0lcyxjYWNoZT13cml0ZWJhY2ssaWQ9 aWRlLSVpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS5wZGV2X3BhdGgsIGRp c2ssIGRpc2tzW2ldLnJlYWR3cml0ZSA/ICJvZmYiIDogIm9uIiwgZm9ybWF0LCBkZXZfbnVtYmVy KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmZv cm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBUWSkgeworICAgICAgICAgICAgLyogCisgICAg ICAgICAgICAgKiBJZiBxZW11IGlzbid0IGRvaW5nIHRoZSBpbnRlcnByZXRpbmcsIHRoZSBwYXJh bWV0ZXIgaXMKKyAgICAgICAgICAgICAqIGFsd2F5cyByYXcKKyAgICAgICAgICAgICAqLworICAg ICAgICAgICAgaWYgKGRpc2tzW2ldLmJhY2tlbmQgPT0gTElCWExfRElTS19CQUNLRU5EX1FESVNL KQorICAgICAgICAgICAgICAgIGZvcm1hdCA9IHFlbXVfZGlza19mb3JtYXRfc3RyaW5nKGRpc2tz W2ldLmZvcm1hdCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9ybWF0ID0g cWVtdV9kaXNrX2Zvcm1hdF9zdHJpbmcoTElCWExfRElTS19GT1JNQVRfUkFXKTsKKworICAgICAg ICAgICAgaWYgKGRpc2tzW2ldLmZvcm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBUWSkgewor ICAgICAgICAgICAgICAgIGlmICghZGlza3NbaV0uaXNfY2Ryb20pIHsKICAgICAgICAgICAgICAg ICAgICAgTE9HKFdBUk4sICJjYW5ub3Qgc3VwcG9ydCIiIGVtcHR5IGRpc2sgZm9ybWF0IGZvciAl cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICB9IGVs c2UgewogICAgICAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gTlVMTCkgewogICAgICAgICAgICAg ICAgICAgICBMT0coV0FSTiwKICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gZGV0 ZXJtaW5lIiIgZGlzayBpbWFnZSBmb3JtYXQgJXMiLApAQCAtMTE5NCwxNCArMTE5NCwzNiBAQCBz dGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpn YywKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0g ICAgICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmJhY2tlbmQgPT0gTElCWExfRElTS19CQUNLRU5E X1RBUCkgewotICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSBxZW11X2Rpc2tfZm9ybWF0X3N0 cmluZyhMSUJYTF9ESVNLX0ZPUk1BVF9SQVcpOwotICAgICAgICAgICAgICAgICAgICBwZGV2X3Bh dGggPSBsaWJ4bF9fYmxrdGFwX2RldnBhdGgoZ2MsIGRpc2tzW2ldLnBkZXZfcGF0aCwKKyAgICAg ICAgICAgICAgICAvKiAKKyAgICAgICAgICAgICAgICAgKiBXZSBjYW4ndCBjYWxsIGxpYnhsX19i bGt0YXBfZGV2cGF0aCBmcm9tCisgICAgICAgICAgICAgICAgICogbGlieGxfX2RldmljZV9kaXNr X2ZpbmRfbG9jYWxfcGF0aCBmb3Igbm93IGJlY2F1c2UKKyAgICAgICAgICAgICAgICAgKiB0aGUg Ym9vdGxvYWRlciBpcyBjYWxsZWQgYmVmb3JlIHRoZSBkaXNrcyBhcmUgc2V0CisgICAgICAgICAg ICAgICAgICogdXAsIHNvIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0IHVwIGEgYmxrdGFwIG5vZGUs CisgICAgICAgICAgICAgICAgICogYnV0IHRoZXJlJ3Mgbm8gVEFQIHRlYXItZG93biBvbiBlcnJv ciBjb25kaXRpb25zIGluCisgICAgICAgICAgICAgICAgICogdGhlIGJvb3Rsb2FkZXIgcGF0aC4K KyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoZGlza3NbaV0uYmFja2Vu ZCA9PSBMSUJYTF9ESVNLX0JBQ0tFTkRfVEFQKQorICAgICAgICAgICAgICAgICAgICB0YXJnZXRf cGF0aCA9IGxpYnhsX19ibGt0YXBfZGV2cGF0aChnYywgZGlza3NbaV0ucGRldl9wYXRoLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlza3Nb aV0uZm9ybWF0KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg ICBwZGV2X3BhdGggPSBkaXNrc1tpXS5wZGV2X3BhdGg7CisgICAgICAgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGF0aCA9IGxpYnhsX19kZXZpY2VfZGlza19maW5k X2xvY2FsX3BhdGgoZ2MsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmRpc2tzW2ldLCB0cnVlKTsKKworICAgICAgICAgICAg ICAgIGlmICghdGFyZ2V0X3BhdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgTE9HKFdBUk4sICJO byB3YXkgdG8gZ2V0IGxvY2FsIGFjY2VzcyBkaXNrIHRvIGltYWdlOiAlcyIsIGRpc2tzW2ldLnZk ZXYpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChkaXNrc1tpXS5pc19jZHJvbSkgeworICAg ICAgICAgICAgICAgIGRyaXZlID0gbGlieGxfX3NwcmludGYKKyAgICAgICAgICAgICAgICAgICAg KGdjLCAiaWY9aWRlLGluZGV4PSVkLHJlYWRvbmx5PSVzLG1lZGlhPWNkcm9tLGNhY2hlPXdyaXRl YmFjayxpZD1pZGUtJWkiLAorICAgICAgICAgICAgICAgICAgICAgZGlzaywgZGlza3NbaV0ucmVh ZHdyaXRlID8gIm9mZiIgOiAib24iLCBkZXZfbnVtYmVyKTsKIAorICAgICAgICAgICAgICAgIGlm ICh0YXJnZXRfcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgZHJpdmUgPSBsaWJ4bF9fc3ByaW50 ZihnYywgIiVzLGZpbGU9JXMsZm9ybWF0PSVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkcml2ZSwgdGFyZ2V0X3BhdGgsIGZvcm1hdCk7CisgICAgICAgICAg ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogRXhwbGlj aXQgc2QgZGlza3MgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLgogICAgICAgICAgICAgICAgICAq CkBAIC0xMjExLDcgKzEyMzMsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9k ZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICBpZiAoc3RybmNtcChk aXNrc1tpXS52ZGV2LCAic2QiLCAyKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIGRyaXZl ID0gbGlieGxfX3NwcmludGYKICAgICAgICAgICAgICAgICAgICAgICAgIChnYywgImZpbGU9JXMs aWY9c2NzaSxidXM9MCx1bml0PSVkLGZvcm1hdD0lcyxyZWFkb25seT0lcyxjYWNoZT13cml0ZWJh Y2siLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXZfcGF0aCwgZGlzaywgZm9ybWF0LCBk aXNrc1tpXS5yZWFkd3JpdGUgPyAib2ZmIiA6ICJvbiIpOworICAgICAgICAgICAgICAgICAgICAg ICAgIHRhcmdldF9wYXRoLCBkaXNrLCBmb3JtYXQsIGRpc2tzW2ldLnJlYWR3cml0ZSA/ICJvZmYi IDogIm9uIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJuY21wKGRpc2tzW2ldLnZk ZXYsICJ4dmQiLCAzKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAg ICAgICAgICAgICAqIERvIG5vdCBhZGQgYW55IGVtdWxhdGVkIGRpc2sgd2hlbiBQViBkaXNrIGFy ZQpAQCAtMTIyNSw3ICsxMjQ3LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21v ZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgZmxleGFycmF5X3ZhcHBlbmQoZG1fYXJncywgIi1kcml2ZSIsCiAgICAg ICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoImZpbGU9JXMsaWY9bm9uZSxpZD1haGNpZGlz ay0lZCxmb3JtYXQ9JXMsY2FjaGU9d3JpdGViYWNrIiwKLSAgICAgICAgICAgICAgICAgICAgICAg IHBkZXZfcGF0aCwgZGlzaywgZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl dF9wYXRoLCBkaXNrLCBmb3JtYXQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIi1kZXZpY2Ui LCBHQ1NQUklOVEYoImlkZS1oZCxidXM9YWhjaTAuJWQsdW5pdD0wLGRyaXZlPWFoY2lkaXNrLSVk IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2ssIGRpc2spLCBOVUxMKTsKICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7CkBAIC0xMjM2LDcgKzEyNTgsNyBAQCBzdGF0aWMgaW50IGxp YnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBkcml2ZSA9IGxpYnhsX19zcHJpbnRm CiAgICAgICAgICAgICAgICAgICAgICAgICAoZ2MsICJmaWxlPSVzLGlmPWlkZSxpbmRleD0lZCxt ZWRpYT1kaXNrLGZvcm1hdD0lcyxjYWNoZT13cml0ZWJhY2siLAotICAgICAgICAgICAgICAgICAg ICAgICAgIHBkZXZfcGF0aCwgZGlzaywgZm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfcGF0aCwgZGlzaywgZm9ybWF0KTsKICAgICAgICAgICAgICAgICB9IGVsc2Ugewog ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLyogRG8gbm90IGVtdWxhdGUgdGhpcyBkaXNr ICovCiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggMDA1ZmU1My4uYTUx MWM2ZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0yNjcwLDYgKzI2NzAsMTQgQEAgc3RhdGljIGlu bGluZSB2b2lkIGxpYnhsX19kZXZpY2VfZGlza19sb2NhbF9pbml0KGxpYnhsX19kaXNrX2xvY2Fs X3N0YXRlICpkbHMpCiAgICAgZGxzLT5yYyA9IDA7CiB9CiAKKy8qIAorICogU2VlIGlmIHdlIGNh biBmaW5kIGEgd2F5IHRvIGFjY2VzcyBhIGRpc2sgbG9jYWxseQorICovCitfaGlkZGVuIGNoYXIg KiBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGxpYnhsX19nYyAqZ2MsIAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4 bF9kZXZpY2VfZGlzayAqZGlzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBxZGlza19kaXJlY3QpOworCisKIC8qIE1ha2UgYSBkaXNrIGF2 YWlsYWJsZSBpbiB0aGlzICh0aGUgY29udHJvbCkgZG9tYWluLiBBbHdheXMgY2FsbHMKICAqIGRs cy0+Y2FsbGJhY2sgd2hlbiBmaW5pc2hlZC4KICAqIFN0YXRlIElkbGUgLT4gQXR0YWNoaW5nCi0t IAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==