From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 8/8] golang/xenlight: Add tests host related functinality functions Date: Wed, 18 Jan 2017 14:56:46 -0500 Message-ID: <1484769406-17416-8-git-send-email-ronladred@gmail.com> References: <1484769406-17416-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484769406-17416-1-git-send-email-ronladred@gmail.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, george.dunlap@citrix.com, ian.jackson@eu.citrix.com, wei.liu2@citrix.com Cc: Ronald Rojas List-Id: xen-devel@lists.xenproject.org Q3JlYXRlIHRlc3RzIGZvciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKLSBHZXRWZXJzaW9uSW5m bwotIEdldFBoeXNpbmZvCi0gR2V0RG9taW5mbwotIEdldE1heENwdXMKLSBHZXRPbmxpbmVDcHVz Ci0gR2V0TWF4Tm9kZXMKLSBHZXRGcmVlTWVtb3J5CgpTaWduZWQtb2ZmLWJ5OiBSb25hbGQgUm9q YXMgPHJvbmxhZHJlZEBnbWFpbC5jb20+CgotLS0KVG8gZG86Ci1TZXBlcmF0ZSBHZXRNYXhDcHVz LCBHZXRPbmxpbmVDcHVzLCBHZXRNYXhOb2RlcywgYW5kCkdldEZyZWVNZW1vcnkgaW50byBzZXBl cmF0ZSB0ZXN0cwotY3JlYXRlIHRlc3RzIGZvciBjcHVwb29sIGFuZCBiaXRtYXAgb3BlcmF0aW9u cwotLS0KIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2RvbWluZm8vTWFrZWZpbGUgICAgICAg IHwgMTkgKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2RvbWluZm8vZG9taW5m by5jICAgICAgIHwgMzAgKysrKysrKysrKysrCiB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9k b21pbmZvL2RvbWluZm8uZ28gICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIHRvb2xzL2dv bGFuZy94ZW5saWdodC90ZXN0L2Z1bmNzL01ha2VmaWxlICAgICAgICAgIHwgMjAgKysrKysrKysK IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2Z1bmNzL2Z1bmMuYyAgICAgICAgICAgIHwgMzQg KysrKysrKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2Z1bmNzL2Z1bmMuZ28g ICAgICAgICAgIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3Rlc3QvcGh5c2luZm8vTWFrZWZpbGUgICAgICAgfCAyMCArKysrKysrKwogdG9vbHMvZ29s YW5nL3hlbmxpZ2h0L3Rlc3QvcGh5c2luZm8vcGh5c2luZm8uYyAgICAgfCAzMSArKysrKysrKysr KysrCiB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9waHlzaW5mby9waHlzaW5mby5nbyAgICB8 IDM2ICsrKysrKysrKysrKysrKwogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvdmVyc2lvbmlu Zm8vTWFrZWZpbGUgICAgfCAyMCArKysrKysrKwogLi4uL2dvbGFuZy94ZW5saWdodC90ZXN0L3Zl cnNpb25pbmZvL3ZlcnNpb25pbmZvLmMgfCAxOCArKysrKysrKwogLi4uL3hlbmxpZ2h0L3Rlc3Qv dmVyc2lvbmluZm8vdmVyc2lvbmluZm8uZ28gICAgICAgfCAzMyArKysrKysrKysrKysrCiAxMiBm aWxlcyBjaGFuZ2VkLCAzNjMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xz L2dvbGFuZy94ZW5saWdodC90ZXN0L2RvbWluZm8vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9kb21pbmZvL2RvbWluZm8uYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2RvbWluZm8vZG9taW5mby5nbwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2Z1bmNzL01ha2Vm aWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZnVuY3Mv ZnVuYy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZnVu Y3MvZnVuYy5nbwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0 L3BoeXNpbmZvL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3Rlc3QvcGh5c2luZm8vcGh5c2luZm8uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dv bGFuZy94ZW5saWdodC90ZXN0L3BoeXNpbmZvL3BoeXNpbmZvLmdvCiBjcmVhdGUgbW9kZSAxMDA2 NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvdmVyc2lvbmluZm8vTWFrZWZpbGUKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC92ZXJzaW9uaW5mby92ZXJz aW9uaW5mby5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3Qv dmVyc2lvbmluZm8vdmVyc2lvbmluZm8uZ28KCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC9kb21pbmZvL01ha2VmaWxlIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3Qv ZG9taW5mby9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWNh MWIzCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZG9taW5m by9NYWtlZmlsZQpAQCAtMCwwICsxLDE5IEBACisKK3Rlc3Q6IGNsZWFuIGJ1aWxkCisJLi9kb21p bmZvLm91dCA+PiBjLm91dHB1dAorCWdvIHJ1biBkb21pbmZvLmdvID4+IGdvLm91dHB1dAorCWlm IGNtcCAtcyAiYy5vdXRwdXQiICJnby5vdXRwdXQiOyB0aGVuXAorCQllY2hvICJHZXREb21pbmZv IFBBU1NFRCI7XAorCWVsc2VcCisJCWVjaG8gIkdldERvbWluZm8gRkFJTEVEIjtcCisJZmlcCisK K2J1aWxkOgorCWdvIGJ1aWxkIC1vIGRvbWluZm8uYSBkb21pbmZvLmdvIAorCWdjYyBkb21pbmZv LmMgLWx4ZW5saWdodCAtbHlhamwgLW8gZG9taW5mby5vdXQKKworY2xlYW46CisJcm0gZG9taW5m by5hCisJcm0gZG9taW5mby5vdXQKKwlybSBjLm91dHB1dAorCXJtIGdvLm91dHB1dApkaWZmIC0t Z2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZG9taW5mby9kb21pbmZvLmMgYi90b29s cy9nb2xhbmcveGVubGlnaHQvdGVzdC9kb21pbmZvL2RvbWluZm8uYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5lZDBmZTc4Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29s YW5nL3hlbmxpZ2h0L3Rlc3QvZG9taW5mby9kb21pbmZvLmMKQEAgLTAsMCArMSwzMCBAQAorI2lu Y2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8bGlieGwuaD4K KworY2hhciAqIGJvb2xfdG9fc3RyaW5nKGJvb2wgYik7CitpbnQgbWFpbigpeworCisgICAgbGli eGxfY3R4ICpjb250ZXh0OworICAgIGxpYnhsX2N0eF9hbGxvYygmY29udGV4dCxMSUJYTF9WRVJT SU9OLCAwLCBOVUxMKTsKKyAgICBsaWJ4bF9kb21pbmZvIGluZm87CisgICAgaW50IGVyciA9IGxp YnhsX2RvbWFpbl9pbmZvKGNvbnRleHQsICZpbmZvLCAwKTsKKyAgICBpZihlcnIgIT0gMCl7Cisg ICAgICAgIHJldHVybiBlcnI7CisgICAgfQorICAgIAorICAgIAorCXByaW50ZigiJWRcbiVkXG4i LCBpbmZvLmRvbWlkLCBpbmZvLnNzaWRyZWYpOworCS8vcHJpbnRmKCIlc1xuIiwgaW5mby5zc2lk X2xhYmVsKTsKKwlwcmludGYoIiVzXG4lc1xuJXNcbiVzXG4lc1xuJXNcbiIsIGJvb2xfdG9fc3Ry aW5nKGluZm8ucnVubmluZyksIGJvb2xfdG9fc3RyaW5nKGluZm8uYmxvY2tlZCApLCBib29sX3Rv X3N0cmluZyhpbmZvLnBhdXNlZCApLGJvb2xfdG9fc3RyaW5nKGluZm8uc2h1dGRvd24gKSxib29s X3RvX3N0cmluZyhpbmZvLmR5aW5nKSwgYm9vbF90b19zdHJpbmcoaW5mby5uZXZlcl9zdG9wKSk7 CisJbG9uZyBjcHVfdGltZSA9IGluZm8uY3B1X3RpbWUvKChsb25nKTE8PDM1KTsKKwlwcmludGYo IiVkXG4lbHVcbiVsdVxuJWx1XG4lbHVcbiVsdVxuJWx1XG4lZFxuJWRcbiVkXG4iLCBpbmZvLnNo dXRkb3duX3JlYXNvbiwgaW5mby5vdXRzdGFuZGluZ19tZW1rYiwgaW5mby5jdXJyZW50X21lbWti LCBpbmZvLnNoYXJlZF9tZW1rYiwgaW5mby5wYWdlZF9tZW1rYiwgaW5mby5tYXhfbWVta2IsIGNw dV90aW1lLCBpbmZvLnZjcHVfbWF4X2lkLCBpbmZvLnZjcHVfb25saW5lLCBpbmZvLmNwdXBvb2wp OworCXByaW50ZigiJWRcbiIsIGluZm8uZG9tYWluX3R5cGUpOworCisKKyAgICBsaWJ4bF9jdHhf ZnJlZShjb250ZXh0KTsKKworfQorY2hhciAqIGJvb2xfdG9fc3RyaW5nKGJvb2wgYil7CisgICAg cmV0dXJuIGIgPyAidHJ1ZSI6ICJmYWxzZSI7Cit9CmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcv eGVubGlnaHQvdGVzdC9kb21pbmZvL2RvbWluZm8uZ28gYi90b29scy9nb2xhbmcveGVubGlnaHQv dGVzdC9kb21pbmZvL2RvbWluZm8uZ28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMjY4YjExOAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0 L2RvbWluZm8vZG9taW5mby5nbwpAQCAtMCwwICsxLDQ4IEBACisKK3BhY2thZ2UgbWFpbgorCisv KgorI2NnbyBMREZMQUdTOiAtbHhlbmxpZ2h0IC1seWFqbAorI2luY2x1ZGUgPHN0ZGxpYi5oPgor I2luY2x1ZGUgPGxpYnhsLmg+CisqLworaW1wb3J0ICJDIgoraW1wb3J0ICgKKwkiZm10IgorCSJ4 ZW5saWdodCIKKwkib3MiCispCisKK2Z1bmMgbWFpbigpIHsKKwljdHggOj0geGVubGlnaHQuQ3R4 CisJZXJyIDo9IGN0eC5PcGVuKCkKKwlpZiBlcnIgIT0gbmlseworCQlvcy5FeGl0KC0xKQorCX0K KwlkZWZlciBjdHguQ2xvc2UoKQorCWluZm8sIGVycjo9IGN0eC5Eb21haW5JbmZvKDApCisJaWYg ZXJyICE9IG5pbHsKKwkJb3MuRXhpdCgtMSkKKwl9CisKKwlmbXQuUHJpbnRmKCIlZFxuJWRcbiIs IGluZm8uRG9taWQsIGluZm8uU3NpZHJlZikKKwkvL2ZtdC5QcmludGYoIiVzXG4iLCBpbmZvLlNz aWRMYWJlbCkKKwlmbXQuUHJpbnRmKCIldFxuJXRcbiV0XG4ldFxuJXRcbiV0XG4iLCBpbmZvLlJ1 bm5pbmcsIGluZm8uQmxvY2tlZCwgaW5mby5QYXVzZWQsIGluZm8uU2h1dGRvd24sIGluZm8uRHlp bmcsIGluZm8uTmV2ZXJTdG9wKQorCWNwdVRpbWUgOj0gaW5mby5DcHVUaW1lLygxPDwzNSkKKwlm bXQuUHJpbnRmKCIlZFxuJWRcbiVkXG4lZFxuJWRcbiVkXG4lZFxuJWRcbiVkXG4lZFxuIiwgaW5m by5TaHV0ZG93blJlYXNvbiwgaW5mby5PdXRzdGFuZGluZ01lbWtiLCBpbmZvLkN1cnJlbnRNZW1r YiwgaW5mby5TaGFyZWRNZW1rYiwgaW5mby5QYWdlZE1lbWtiLCBpbmZvLk1heE1lbWtiLCBjcHVU aW1lLCBpbmZvLlZjcHVNYXhJZCwgaW5mby5WY3B1T25saW5lLCBpbmZvLkNwdXBvb2wpCisJZm10 LlByaW50ZigiJWRcbiIsIGluZm8uRG9tYWluVHlwZSkKKworfQorCitmdW5jIHJlcGxhY2VEb21h aW5UeXBlKG4gaW50MzIpKHJldCBzdHJpbmcpeworCXN3aXRjaCBueworCWNhc2UgLTE6CisJCXJl dCA9ICJpbnZhbGlkIgorCWNhc2UgMToKKwkJcmV0ID0gImh2bSIKKwljYXNlIDI6CisJCXJldCA9 ICJwdiIKKwl9CisJcmV0dXJuCisKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdo dC90ZXN0L2Z1bmNzL01ha2VmaWxlIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZnVuY3Mv TWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhjMjM0YwotLS0g L2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L2Z1bmNzL01ha2VmaWxl CkBAIC0wLDAgKzEsMjAgQEAKKwordGVzdDogY2xlYW4gYnVpbGQKKwkuL2Z1bmMub3V0ID4+IGMu b3V0cHV0CisJZ28gcnVuIGZ1bmMuZ28gPj4gZ28ub3V0cHV0CisJaWYgY21wIC1zICJjLm91dHB1 dCIgImdvLm91dHB1dCI7IHRoZW5cCisJCWVjaG8gInNhbWUiO1wKKwllbHNlXAorCQllY2hvICJk aWZmIjsgXAorCWZpXAorCitidWlsZDoKKwlnbyBidWlsZCAtbyBmdW5jLmEgZnVuYy5nbworCWdj YyBmdW5jLmMgLWx4ZW5saWdodCAtbHlhamwgLW8gZnVuYy5vdXQKKworY2xlYW46CisJcm0gZnVu Yy5hCisJcm0gZnVuYy5vdXQKKwlybSBjLm91dHB1dAorCXJtIGdvLm91dHB1dAorCmRpZmYgLS1n aXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9mdW5jcy9mdW5jLmMgYi90b29scy9nb2xh bmcveGVubGlnaHQvdGVzdC9mdW5jcy9mdW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uM2ZkYmYyMgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdo dC90ZXN0L2Z1bmNzL2Z1bmMuYwpAQCAtMCwwICsxLDM0IEBACisjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgorCitpbnQgbWFpbigpewor CisgICAgbGlieGxfY3R4ICpjb250ZXh0OworICAgIGxpYnhsX2N0eF9hbGxvYygmY29udGV4dCxM SUJYTF9WRVJTSU9OLCAwLCBOVUxMKTsKKyAgICBsaWJ4bF9waHlzaW5mbyBpbmZvIDsKKyAgICBp bnQgZXJyPSBsaWJ4bF9nZXRfcGh5c2luZm8oY29udGV4dCwmaW5mbyk7CisgICAgaWYoZXJyICE9 IDApeworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAgIGludCBtYXhfY3B1cyA9IGxp YnhsX2dldF9tYXhfY3B1cyhjb250ZXh0KTsKKyAgICBwcmludGYoIiVkXG4iLCBtYXhfY3B1cyk7 CisKKyAgICBpbnQgb25saW5lX2NwdXMgPSBsaWJ4bF9nZXRfb25saW5lX2NwdXMoY29udGV4dCk7 CisgICAgcHJpbnRmKCIlZFxuIiwgb25saW5lX2NwdXMpOworCisgICAgaW50IG1heF9ub2RlcyA9 IGxpYnhsX2dldF9tYXhfbm9kZXMoY29udGV4dCk7CisgICAgcHJpbnRmKCIlZFxuIiwgbWF4X25v ZGVzKTsKKworICAgIHVpbnQ2NF90IGZyZWVfbWVtb3J5OworICAgIGVyciA9IGxpYnhsX2dldF9m cmVlX21lbW9yeShjb250ZXh0LCAmZnJlZV9tZW1vcnkpOworICAgIGlmKGVyciA8IDApeworICAg ICAgICBwcmludGYoIiVkXG4iLCBlcnIpOworICAgIH1lbHNleworICAgICAgICBwcmludGYoIiVs dVxuIiwgZnJlZV9tZW1vcnkpOworICAgIH0KKyAgICBsaWJ4bF9jdHhfZnJlZShjb250ZXh0KTsK KworfQorCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9mdW5jcy9mdW5j LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZnVuY3MvZnVuYy5nbwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDgzMzU2Ci0tLSAvZGV2L251bGwKKysrIGIvdG9v bHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvZnVuY3MvZnVuYy5nbwpAQCAtMCwwICsxLDU0IEBACitw YWNrYWdlIG1haW4KKworLyoKKyNjZ28gTERGTEFHUzogLWx4ZW5saWdodCAtbHlhamwKKyNpbmNs dWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgorKi8KK2ltcG9ydCAiQyIKK2ltcG9y dCAoCisJImZtdCIKKwkib3MiCisJInhlbmxpZ2h0IgorKQorCitmdW5jIG1haW4oKSB7CisJY3R4 IDo9IHhlbmxpZ2h0LkN0eAorCWVyciA6PSBjdHguT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJ CW9zLkV4aXQoLTEpCisJfQorCWRlZmVyIGN0eC5DbG9zZSgpCisJaWYgZXJyICE9IG5pbCB7CisJ CW9zLkV4aXQoLTEpCisJfQorCisJbWF4X2NwdXMsIGVyciA6PSBjdHguR2V0TWF4Q3B1cygpCisJ aWYgZXJyICE9IG5pbCB7CisJCWZtdC5QcmludGYoIiVkXG4iLCBlcnIpCisJfSBlbHNlIHsKKwkJ Zm10LlByaW50ZigiJWRcbiIsIG1heF9jcHVzKQorCX0KKworCW9ubGluZV9jcHVzLCBlcnIgOj0g Y3R4LkdldE9ubGluZUNwdXMoKQorCWlmIGVyciAhPSBuaWwgeworCQlmbXQuUHJpbnRmKCIlZFxu IiwgZXJyKQorCX0gZWxzZSB7CisJCWZtdC5QcmludGYoIiVkXG4iLCBvbmxpbmVfY3B1cykKKwl9 CisKKwltYXhfbm9kZXMsIGVyciA6PSBjdHguR2V0TWF4Tm9kZXMoKQorCWlmIGVyciAhPSBuaWwg eworCQlmbXQuUHJpbnRmKCIlZFxuIiwgZXJyKQorCX0gZWxzZSB7CisJCWZtdC5QcmludGYoIiVk XG4iLCBtYXhfbm9kZXMpCisJfQorCisJZnJlZV9tZW1vcnksIGVyciA6PSBjdHguR2V0RnJlZU1l bW9yeSgpCisJaWYgZXJyICE9IG5pbCB7CisJCWZtdC5QcmludGYoIiVkXG4iLCBlcnIpCisJfSBl bHNlIHsKKwkJZm10LlByaW50ZigiJWRcbiIsIGZyZWVfbWVtb3J5KQorCX0KKworfQpkaWZmIC0t Z2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvcGh5c2luZm8vTWFrZWZpbGUgYi90b29s cy9nb2xhbmcveGVubGlnaHQvdGVzdC9waHlzaW5mby9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5jZWYyM2U3Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29s YW5nL3hlbmxpZ2h0L3Rlc3QvcGh5c2luZm8vTWFrZWZpbGUKQEAgLTAsMCArMSwyMCBAQAorCit0 ZXN0OiBjbGVhbiBidWlsZAorCS4vcGh5c2luZm8ub3V0ID4+IGMub3V0cHV0CisJZ28gcnVuIHBo eXNpbmZvLmdvID4+IGdvLm91dHB1dAorCWlmIGNtcCAtcyAiYy5vdXRwdXQiICJnby5vdXRwdXQi OyB0aGVuXAorCQllY2hvICJHZXRQaHlzaW5mbyBQQVNTRUQiO1wKKwllbHNlXAorCQllY2hvICJH ZXRQaHlzaW5mbyBGQUlMRUQiOyBcCisJZmlcCisKK2J1aWxkOgorCWdvIGJ1aWxkIC1vIHBoeXNp bmZvLmEgcGh5c2luZm8uZ28gCisJZ2NjIHBoeXNpbmZvLmMgLWx4ZW5saWdodCAtbHlhamwgLW8g cGh5c2luZm8ub3V0CisKK2NsZWFuOgorCXJtIHBoeXNpbmZvLmEKKwlybSBwaHlzaW5mby5vdXQK KwlybSBjLm91dHB1dAorCXJtIGdvLm91dHB1dAorCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcv eGVubGlnaHQvdGVzdC9waHlzaW5mby9waHlzaW5mby5jIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0 L3Rlc3QvcGh5c2luZm8vcGh5c2luZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45MmM4ZjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rl c3QvcGh5c2luZm8vcGh5c2luZm8uYwpAQCAtMCwwICsxLDMxIEBACisjaW5jbHVkZSA8c3RkaW8u aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgorCitjaGFyICpib29s X3RvX3N0cmluZyhib29sIGIpOworaW50IG1haW4oKXsKKworICAgIGxpYnhsX2N0eCAqY29udGV4 dDsKKyAgICBsaWJ4bF9jdHhfYWxsb2MoJmNvbnRleHQsTElCWExfVkVSU0lPTiwgMCwgTlVMTCk7 CisgICAgbGlieGxfcGh5c2luZm8gaW5mbyA7CisgICAgaW50IGVycj0gbGlieGxfZ2V0X3BoeXNp bmZvKGNvbnRleHQsJmluZm8pOworICAgIGlmKGVyciAhPSAwKXsKKyAgICAgICAgcmV0dXJuIGVy cjsKKyAgICB9CisKKyAgICBwcmludGYoIiVkXG4lZFxuJWRcbiVkXG4lZFxuIiwgaW5mby50aHJl YWRzX3Blcl9jb3JlLCBpbmZvLmNvcmVzX3Blcl9zb2NrZXQsIGluZm8ubWF4X2NwdV9pZCwgaW5m by5ucl9jcHVzLCBpbmZvLmNwdV9raHopOworICAgIHByaW50ZigiJWx1XG4lbHVcbiVsdVxuJWx1 XG4lbHVcbiVsdVxuIiwgaW5mby50b3RhbF9wYWdlcywgaW5mby5mcmVlX3BhZ2VzLCBpbmZvLnNj cnViX3BhZ2VzLCBpbmZvLm91dHN0YW5kaW5nX3BhZ2VzLCBpbmZvLnNoYXJpbmdfZnJlZWRfcGFn ZXMsIGluZm8uc2hhcmluZ191c2VkX2ZyYW1lcyk7CisgICAgcHJpbnRmKCIldVxuIixpbmZvLm5y X25vZGVzKTsKKyAgICBwcmludGYoIiVzXG4lc1xuIiwgYm9vbF90b19zdHJpbmcoaW5mby5jYXBf aHZtKSwgYm9vbF90b19zdHJpbmcoaW5mby5jYXBfaHZtX2RpcmVjdGlvKSk7CisKKyAgICBmb3Io aW50IGkgPSAwOyBpIDwgODsgaSsrKXsKKyAgICAgICAgcHJpbnRmKCIldVxuIiwgaW5mby5od19j YXBbaV0pOworICAgIH0KKworICAgIGxpYnhsX2N0eF9mcmVlKGNvbnRleHQpOworCit9CisKK2No YXIgKiBib29sX3RvX3N0cmluZyhib29sIGIpeworICAgIHJldHVybiBiID8gInRydWUiOiAiZmFs c2UiOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvcGh5c2luZm8v cGh5c2luZm8uZ28gYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC9waHlzaW5mby9waHlzaW5m by5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGI3YTc0Ci0tLSAvZGV2 L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvcGh5c2luZm8vcGh5c2luZm8u Z28KQEAgLTAsMCArMSwzNiBAQAorCitwYWNrYWdlIG1haW4KKworLyoKKyNjZ28gTERGTEFHUzog LWx4ZW5saWdodCAtbHlhamwKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5o PgorKi8KK2ltcG9ydCAiQyIKK2ltcG9ydCAoCisJImZtdCIKKwkieGVubGlnaHQiCisJIm9zIgor KQorCitmdW5jIG1haW4oKSB7CisJY3R4IDo9IHhlbmxpZ2h0LkN0eAorCWVyciA6PSBjdHguT3Bl bigpCisJaWYgZXJyICE9IG5pbHsKKwkJb3MuRXhpdCgtMSkKKwl9CisJZGVmZXIgY3R4LkNsb3Nl KCkKKwlpbmZvLCBlcnI6PSBjdHguR2V0UGh5c2luZm8oKQorCWlmIGVyciAhPSBuaWx7CisJCW9z LkV4aXQoLTEpCisJfQorCisJZm10LlByaW50ZigiJWRcbiVkXG4lZFxuJWRcbiVkXG4iLCBpbmZv LlRocmVhZHNQZXJDb3JlLCBpbmZvLkNvcmVzUGVyU29ja2V0LCBpbmZvLk1heENwdUlkLCBpbmZv Lk5yQ3B1cywgaW5mby5DcHVLaHopCisJZm10LlByaW50ZigiJWRcbiVkXG4lZFxuJWRcbiVkXG4l ZFxuIiwgaW5mby5Ub3RhbFBhZ2VzLCBpbmZvLkZyZWVQYWdlcywgaW5mby5TY3J1YlBhZ2VzLCBp bmZvLk91dHN0YW5kaW5nUGFnZXMsIGluZm8uU2hhcmluZ0ZyZWVkUGFnZXMsIGluZm8uU2hhcmlu Z1VzZWRGcmFtZXMpCisJZm10LlByaW50ZigiJWRcbiIsaW5mby5Ock5vZGVzKQorCWZtdC5Qcmlu dGYoIiV0XG4ldFxuIiwgaW5mby5DYXBIdm0sIGluZm8uQ2FwSHZtRGlyZWN0aW8pCisKKwlmb3Ig aSA6PSAwOyBpIDwgODsgaSsrIHsKKwlmbXQuUHJpbnRmKCIlZFxuIiwgaW5mby5Id0NhcFtpXSk7 CisJfQorfQpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvdmVyc2lvbmlu Zm8vTWFrZWZpbGUgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC92ZXJzaW9uaW5mby9NYWtl ZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjY5ZTJkCi0tLSAvZGV2 L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QvdmVyc2lvbmluZm8vTWFrZWZp bGUKQEAgLTAsMCArMSwyMCBAQAorCit0ZXN0OiBjbGVhbiBidWlsZAorCS4vdmVyc2lvbmluZm8u b3V0ID4+IGMub3V0cHV0CisJZ28gcnVuIHZlcnNpb25pbmZvLmdvID4+IGdvLm91dHB1dAorCWlm IGNtcCAtcyAiYy5vdXRwdXQiICJnby5vdXRwdXQiOyB0aGVuXAorCQllY2hvICJHZXRWZXJzaW9u SW5mbyBQQVNTRUQiO1wKKwllbHNlXAorCQllY2hvICJHZXRWZXJzaW9uSW5mbyBGQUlMRUQiOyBc CisJZmlcCisKK2J1aWxkOgorCWdvIGJ1aWxkIC1vIHZlcnNpb25pbmZvLmEgdmVyc2lvbmluZm8u Z28gCisJZ2NjIHZlcnNpb25pbmZvLmMgLWx4ZW5saWdodCAtbHlhamwgLW8gdmVyc2lvbmluZm8u b3V0CisKK2NsZWFuOgorCXJtIHZlcnNpb25pbmZvLmEKKwlybSB2ZXJzaW9uaW5mby5vdXQKKwly bSBjLm91dHB1dAorCXJtIGdvLm91dHB1dAorCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC92ZXJzaW9uaW5mby92ZXJzaW9uaW5mby5jIGIvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3Rlc3QvdmVyc2lvbmluZm8vdmVyc2lvbmluZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mNDA0OTVkCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hl bmxpZ2h0L3Rlc3QvdmVyc2lvbmluZm8vdmVyc2lvbmluZm8uYwpAQCAtMCwwICsxLDE4IEBACisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5o PgorCittYWluKCl7CisKKyAgICBsaWJ4bF9jdHggKmNvbnRleHQ7CisgICAgbGlieGxfY3R4X2Fs bG9jKCZjb250ZXh0LExJQlhMX1ZFUlNJT04sIDAsIE5VTEwpOworICAgIGxpYnhsX3ZlcnNpb25f aW5mbyogaW5mbyA9IGxpYnhsX2dldF92ZXJzaW9uX2luZm8oY29udGV4dCk7CisKKyAgICBwcmlu dGYoIiVkXG4lZFxuIiwgaW5mby0+eGVuX3ZlcnNpb25fbWFqb3IsIGluZm8tPnhlbl92ZXJzaW9u X21pbm9yKTsKKyAgICBwcmludGYoIiVzXG4lc1xuJXNcbiVzXG4lc1xuJXNcbiVzXG4iLCBpbmZv LT54ZW5fdmVyc2lvbl9leHRyYSwgaW5mby0+Y29tcGlsZXIsIGluZm8tPmNvbXBpbGVfYnksIGlu Zm8tPmNvbXBpbGVfZG9tYWluLCBpbmZvLT5jb21waWxlX2RhdGUsIGluZm8tPmNhcGFiaWxpdGll cywgaW5mby0+Y2hhbmdlc2V0KTsKKyAgICBwcmludGYoIiVsdVxuJWRcbiIsIGluZm8tPnZpcnRf c3RhcnQsIGluZm8tPnBhZ2VzaXplKTsKKyAgICBwcmludGYoIiVzXG4lc1xuIiwgaW5mby0+Y29t bWFuZGxpbmUsIGluZm8tPmJ1aWxkX2lkKTsKKworICAgIGxpYnhsX2N0eF9mcmVlKGNvbnRleHQp OworCit9CmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC92ZXJzaW9uaW5m by92ZXJzaW9uaW5mby5nbyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3ZlcnNpb25pbmZv L3ZlcnNpb25pbmZvLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NTVi NjYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC92ZXJzaW9u aW5mby92ZXJzaW9uaW5mby5nbwpAQCAtMCwwICsxLDMzIEBACisKK3BhY2thZ2UgbWFpbgorCisv KgorI2NnbyBMREZMQUdTOiAtbHhlbmxpZ2h0IC1seWFqbAorI2luY2x1ZGUgPHN0ZGxpYi5oPgor I2luY2x1ZGUgPGxpYnhsLmg+CisqLworaW1wb3J0ICJDIgoraW1wb3J0ICgKKwkiZm10IgorCSJ4 ZW5saWdodCIKKwkib3MiCispCisKK2Z1bmMgbWFpbigpIHsKKwljdHggOj0geGVubGlnaHQuQ3R4 CisJZXJyIDo9IGN0eC5PcGVuKCkKKwlpZiBlcnIgIT0gbmlseworCQlvcy5FeGl0KC0xKQorCX0K KwlkZWZlciBjdHguQ2xvc2UoKQorCWluZm8sIGVycjo9IGN0eC5HZXRWZXJzaW9uSW5mbygpCisJ aWYgZXJyICE9IG5pbHsKKwkJb3MuRXhpdCgtMSkKKwl9CisKKwlmbXQuUHJpbnRmKCIlZFxuJWRc biIsIGluZm8uWGVuVmVyc2lvbk1ham9yLCBpbmZvLlhlblZlcnNpb25NaW5vcik7CisJZm10LlBy aW50ZigiJXNcbiVzXG4lc1xuJXNcbiVzXG4lc1xuJXNcbiIsIGluZm8uWGVuVmVyc2lvbkV4dHJh LCBpbmZvLkNvbXBpbGVyLCBpbmZvLkNvbXBpbGVCeSwgaW5mby5Db21waWxlRG9tYWluLCBpbmZv LkNvbXBpbGVEYXRlLCBpbmZvLkNhcGFiaWxpdGllcywgaW5mby5DaGFuZ2VzZXQpOworCWZtdC5Q cmludGYoIiVkXG4lZFxuIiwgaW5mby5WaXJ0U3RhcnQsIGluZm8uUGFnZXNpemUpOworCWZtdC5Q cmludGYoIiVzXG4lc1xuIiwgaW5mby5Db21tYW5kbGluZSwgaW5mby5CdWlsZElkKTsKKworfQot LSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK