From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C90FAC32753 for ; Fri, 2 Aug 2019 15:36:33 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9A5502087C for ; Fri, 2 Aug 2019 15:36:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A5502087C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1htZbM-00034d-D6; Fri, 02 Aug 2019 15:36:16 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1htZbK-00033B-0X for xen-devel@lists.xenproject.org; Fri, 02 Aug 2019 15:36:14 +0000 X-Inumbo-ID: 412785bc-b53b-11e9-8980-bc764e045a96 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 412785bc-b53b-11e9-8980-bc764e045a96; Fri, 02 Aug 2019 15:36:11 +0000 (UTC) Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: Fsu0rvVh4CFK2k+AnTkl4T9Mh1d44h5ik1TS1VALKkri0sjn3OHPcIhbwKt1EqNHGIVKWioCzx maCt0gQue60moZdz7ULeOng4VTEjqMnvQ/Sex4leg7O860f3lnMgOO+WLo7uccB5xslLscq6+0 yF4skGTrY4L9su1ndfxxpb17xixEwalPlQbXn9FHu5Iify7nQ/9GFBd6GmAjDgBsSMo4b//T3b BhgbDgixU5RTkBUZgIvArUErFVgGERyvMNFhdg1+LT6a6YZdAZDr+DuOWnT4J68qFggpIINuvi gEg= X-SBRS: 2.7 X-MesageID: 3950108 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,338,1559534400"; d="scan'208";a="3950108" From: Anthony PERARD To: Date: Fri, 2 Aug 2019 16:35:39 +0100 Message-ID: <20190802153606.32061-9-anthony.perard@citrix.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190802153606.32061-1-anthony.perard@citrix.com> References: <20190802153606.32061-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 08/35] libxl: Replace libxl__qmp_initializations by ev_qmp calls X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Ian Jackson , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" U2V0dXAgYSB0aW1lb3V0IG9mIDEwcyBmb3IgYWxsIHRoZSBjb21tYW5kcy4gSXQgdXNlZCB0byBi ZSBhYm91dCA1cwpwZXIgY29tbWFuZHMuCgpUaGUgb3JkZXIgb2YgY29tbWFuZCBpcyBjaGFuZ2Vk LCB3ZSBjYWxsICdxdWVyeS12bmMnIGJlZm9yZQonY2hhbmdlLXZuYy1wYXNzd29yZCcsIGJ1dCB0 aGF0IHNob3VsZCBub3QgbWF0dGVyLiBUaGF0IG1ha2VzIGl0CmVhc2llciB0byBjYWxsICdjaGFu Z2Utdm5jLXBhc3N3b3JkJyBjb25kaXRpb25hbGx5LgoKQWxzbyAnY2hhbmdlJyBjb21tYW5kIGlz IHJlcGxhY2VkIGJ5ICdjaGFuZ2Utdm5jLXBhc3N3b3JkJwpiZWNhdXNlICdjaGFuZ2UnIGlzIGRl cHJlY2F0ZWQuIFRoZSBuZXcgY29tbWFuZCBpcyBhdmFpbGFibGUgaW4gYWxsClFFTVUgdmVyc2lv bnMgdGhhdCBhbHNvIGhhdmUgWGVuIHN1cHBvcnQuCgpTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBF UkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4bC9saWJ4bF9k bS5jICAgICAgIHwgMjExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB0b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIHwgICA4ICstCiB0b29scy9saWJ4bC9saWJ4bF9xbXAu YyAgICAgIHwgMTY5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgMjEyIGluc2VydGlvbnMoKyksIDE3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwppbmRleCA1YTJlMzQ5 Nzc2Li5iYjUzMzk3ODRlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kbS5jCisrKyBi L3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTIwNjMsMTEgKzIwNjMsMTMgQEAgc3RhdGljIGlu dCBsaWJ4bF9fd3JpdGVfc3R1Yl9kbWFyZ3MobGlieGxfX2djICpnYywKIHN0YXRpYyB2b2lkIGRt c3NfaW5pdChsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MpCiB7CiAgICAgbGlieGxfX2V2X3Ft cF9pbml0KCZkbXNzLT5xbXApOworICAgIGxpYnhsX19ldl90aW1lX2luaXQoJmRtc3MtPnRpbWVv dXQpOwogfQogCiBzdGF0aWMgdm9pZCBkbXNzX2Rpc3Bvc2UobGlieGxfX2djICpnYywgbGlieGxf X2RtX3NwYXduX3N0YXRlICpkbXNzKQogewogICAgIGxpYnhsX19ldl9xbXBfZGlzcG9zZShnYywg JmRtc3MtPnFtcCk7CisgICAgbGlieGxfX2V2X3RpbWVfZGVyZWdpc3RlcihnYywgJmRtc3MtPnRp bWVvdXQpOwogfQogCiBzdGF0aWMgdm9pZCBzcGF3bl9zdHViZG9tX3B2cWVtdV9jYihsaWJ4bF9f ZWdjICplZ2MsCkBAIC0yNDYyLDYgKzI0NjQsMTYgQEAgc3RhdGljIHZvaWQgZGV2aWNlX21vZGVs X3FtcF9jYihsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19ldl9xbXAgKmV2LAogc3RhdGljIHZvaWQg ZGV2aWNlX21vZGVsX3NwYXduX291dGNvbWUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RtX3NwYXduX3N0YXRlICpkbXNzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKK3N0YXRpYyB2 b2lkIGRldmljZV9tb2RlbF9wb3N0Y29uZmlnX2NoYXJkZXYobGlieGxfX2VnYyAqZWdjLAorICAg IGxpYnhsX19ldl9xbXAgKnFtcCwgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0ICpyZXNwb25zZSwg aW50IHJjKTsKK3N0YXRpYyB2b2lkIGRldmljZV9tb2RlbF9wb3N0Y29uZmlnX3ZuYyhsaWJ4bF9f ZWdjICplZ2MsCisgICAgbGlieGxfX2V2X3FtcCAqcW1wLCBjb25zdCBsaWJ4bF9fanNvbl9vYmpl Y3QgKnJlc3BvbnNlLCBpbnQgcmMpOworc3RhdGljIHZvaWQgZGV2aWNlX21vZGVsX3Bvc3Rjb25m aWdfdm5jX3Bhc3N3ZChsaWJ4bF9fZWdjICplZ2MsCisgICAgbGlieGxfX2V2X3FtcCAqcW1wLCBj b25zdCBsaWJ4bF9fanNvbl9vYmplY3QgKnJlc3BvbnNlLCBpbnQgcmMpOworc3RhdGljIHZvaWQg ZGV2aXNlX21vZGVsX3Bvc3Rjb25maWdfdGltZW91dChsaWJ4bF9fZWdjICplZ2MsCisgICAgbGli eGxfX2V2X3RpbWUgKmV2LCBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqcmVxdWVzdGVkX2FicywgaW50 IHJjKTsKK3N0YXRpYyB2b2lkIGRldmljZV9tb2RlbF9wb3N0Y29uZmlnX2RvbmUobGlieGxfX2Vn YyAqZWdjLAorICAgIGxpYnhsX19kbV9zcGF3bl9zdGF0ZSAqZG1zcywgaW50IHJjKTsKIAogdm9p ZCBsaWJ4bF9fc3Bhd25fbG9jYWxfZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG1fc3Bhd25f c3RhdGUgKmRtc3MpCiB7CkBAIC0yNzYzLDEyICsyNzc1LDIwOSBAQCBzdGF0aWMgdm9pZCBkZXZp Y2VfbW9kZWxfc3Bhd25fb3V0Y29tZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgIH0KICAgICB9 CiAKKyAgICAvKiBDaGVjayBpZiBzcGF3biBmYWlsZWQgKi8KKyAgICBpZiAocmMpIGdvdG8gb3V0 OworCiAgICAgaWYgKGRfY29uZmlnLT5iX2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb24KICAgICAg ICAgICAgID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7Ci0gICAgICAg IGxpYnhsX19xbXBfaW5pdGlhbGl6YXRpb25zKGdjLCBkbXNzLT5ndWVzdF9kb21pZCwgZF9jb25m aWcpOworICAgICAgICByYyA9IGxpYnhsX19ldl90aW1lX3JlZ2lzdGVyX3JlbChhbywgJmRtc3Mt PnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmlz ZV9tb2RlbF9wb3N0Y29uZmlnX3RpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExJQlhMX1FNUF9DTURfVElNRU9VVCAqIDEwMDApOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworICAgICAgICBkbXNzLT5xbXAuYW8gPSBhbzsKKyAgICAgICAgZG1zcy0+ cW1wLmRvbWlkID0gZG1zcy0+Z3Vlc3RfZG9taWQ7CisgICAgICAgIGRtc3MtPnFtcC5wYXlsb2Fk X2ZkID0gLTE7CisgICAgICAgIGRtc3MtPnFtcC5jYWxsYmFjayA9IGRldmljZV9tb2RlbF9wb3N0 Y29uZmlnX2NoYXJkZXY7CisgICAgICAgIHJjID0gbGlieGxfX2V2X3FtcF9zZW5kKGdjLCAmZG1z cy0+cW1wLCAicXVlcnktY2hhcmRldiIsIE5VTEwpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0 OworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgb3V0OgorICAgIGRldmljZV9tb2RlbF9wb3N0 Y29uZmlnX2RvbmUoZWdjLCBkbXNzLCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworfQorCitzdGF0 aWMgdm9pZCBkZXZpY2VfbW9kZWxfcG9zdGNvbmZpZ19jaGFyZGV2KGxpYnhsX19lZ2MgKmVnYywK KyAgICBsaWJ4bF9fZXZfcW1wICpxbXAsIGNvbnN0IGxpYnhsX19qc29uX29iamVjdCAqcmVzcG9u c2UsIGludCByYykKK3sKKyAgICBFR0NfR0M7CisgICAgbGlieGxfX2RtX3NwYXduX3N0YXRlICpk bXNzID0gQ09OVEFJTkVSX09GKHFtcCwgKmRtc3MsIHFtcCk7CisgICAgY29uc3QgbGlieGxfX2pz b25fb2JqZWN0ICppdGVtID0gTlVMTDsKKyAgICBjb25zdCBsaWJ4bF9fanNvbl9vYmplY3QgKm8g PSBOVUxMOworICAgIGludCBpID0gMDsKKyAgICBjb25zdCBjaGFyICpsYWJlbDsKKyAgICBjb25z dCBjaGFyICpmaWxlbmFtZTsKKyAgICBpbnQgcG9ydDsKKyAgICBjaGFyICplbmRwdHI7CisgICAg Y29uc3QgY2hhciAqZG9tcGF0aDsKKyAgICBjb25zdCBjaGFyIHNlcmlhbFtdID0gInNlcmlhbCI7 CisgICAgY29uc3Qgc2l6ZV90IHNlcmlhbGwgPSBzaXplb2Yoc2VyaWFsKSAtIDE7CisgICAgY29u c3QgY2hhciBwdHlbXSA9ICJwdHk6IjsKKyAgICBjb25zdCBzaXplX3QgcHR5bCA9IHNpemVvZihw dHkpIC0gMTsKKworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAvKgorICAgICAqIHF1ZXJ5 LWNoYXJkZXYgcmVzcG9uc2U6CisgICAgICogW3sgJ2xhYmVsJzogJ3N0cicsCisgICAgICogICAg J2ZpbGVuYW1lJzogJ3N0cicsCisgICAgICogICAgJ2Zyb250ZW5kLW9wZW4nOiAnYm9vbCcgfSwg Li4uXQorICAgICAqLworCisgICAgZm9yIChpID0gMDsgKGl0ZW0gPSBsaWJ4bF9fanNvbl9hcnJh eV9nZXQocmVzcG9uc2UsIGkpKTsgaSsrKSB7CisgICAgICAgIG8gPSBsaWJ4bF9fanNvbl9tYXBf Z2V0KCJsYWJlbCIsIGl0ZW0sIEpTT05fU1RSSU5HKTsKKyAgICAgICAgaWYgKCFvKSBnb3RvIHBy b3RvY29sX2Vycm9yOworICAgICAgICBsYWJlbCA9IGxpYnhsX19qc29uX29iamVjdF9nZXRfc3Ry aW5nKG8pOworCisgICAgICAgIC8qIENoZWNrIGlmIHRoZSAibGFiZWwiIHN0YXJ0IHdpdGggInNl cmlhbCIuICovCisgICAgICAgIGlmICghbGFiZWwgfHwgc3RybmNtcChsYWJlbCwgc2VyaWFsLCBz ZXJpYWxsKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBwb3J0ID0gc3RydG9sKGxh YmVsICsgc2VyaWFsbCwgJmVuZHB0ciwgMTApOworICAgICAgICBpZiAoKihsYWJlbCArIHNlcmlh bGwpID09ICdcMCcgfHwgKmVuZHB0ciAhPSAnXDAnKSB7CisgICAgICAgICAgICBMT0dEKEVSUk9S LCBxbXAtPmRvbWlkLAorICAgICAgICAgICAgICAgICAiSW52YWxpZCBzZXJpYWwgcG9ydCBudW1i ZXI6ICVzIiwgbGFiZWwpOworICAgICAgICAgICAgcmMgPSBFUlJPUl9RRU1VX0FQSTsKKyAgICAg ICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgbyA9IGxpYnhsX19qc29uX21h cF9nZXQoImZpbGVuYW1lIiwgaXRlbSwgSlNPTl9TVFJJTkcpOworICAgICAgICBpZiAoIW8pIGdv dG8gcHJvdG9jb2xfZXJyb3I7CisgICAgICAgIGZpbGVuYW1lID0gbGlieGxfX2pzb25fb2JqZWN0 X2dldF9zdHJpbmcobyk7CisKKyAgICAgICAgLyogQ2hlY2sgaWYgZmlsZW5hbWUgc3RhcnQgd2l0 aCAicHR5OiIgKi8KKyAgICAgICAgaWYgKCFmaWxlbmFtZSB8fCBzdHJuY21wKGZpbGVuYW1lLCBw dHksIHB0eWwpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZG9tcGF0aCA9IGxp YnhsX194c19nZXRfZG9tcGF0aChnYywgcW1wLT5kb21pZCk7CisgICAgICAgIGlmICghZG9tcGF0 aCkgeworICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICAgICAgZ290byBvdXQ7 CisgICAgICAgIH0KKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcHJpbnRmKGdjLCBYQlRfTlVMTCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvc2VyaWFsLyVkL3R0 eSIsIGRvbXBhdGgsIHBvcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIiwg ZmlsZW5hbWUgKyBwdHlsKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAg ICBxbXAtPmNhbGxiYWNrID0gZGV2aWNlX21vZGVsX3Bvc3Rjb25maWdfdm5jOworICAgIHJjID0g bGlieGxfX2V2X3FtcF9zZW5kKGdjLCBxbXAsICJxdWVyeS12bmMiLCBOVUxMKTsKKyAgICBpZiAo cmMpIGdvdG8gb3V0OworICAgIHJldHVybjsKKworcHJvdG9jb2xfZXJyb3I6CisgICAgcmMgPSBF UlJPUl9RRU1VX0FQSTsKKyAgICBMT0dEKEVSUk9SLCBxbXAtPmRvbWlkLAorICAgICAgICAgInVu ZXhwZWN0ZWQgcmVzcG9uc2UgdG8gUU1QIGNtZCAncXVlcnktY2hhcmRldicsIHJlY2VpdmVkOlxu JXMiLAorICAgICAgICAgSlNPTihyZXNwb25zZSkpOworb3V0OgorICAgIGRldmljZV9tb2RlbF9w b3N0Y29uZmlnX2RvbmUoZWdjLCBkbXNzLCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworfQorCitz dGF0aWMgdm9pZCBkZXZpY2VfbW9kZWxfcG9zdGNvbmZpZ192bmMobGlieGxfX2VnYyAqZWdjLAor ICAgIGxpYnhsX19ldl9xbXAgKnFtcCwgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0ICpyZXNwb25z ZSwgaW50IHJjKQoreworICAgIEVHQ19HQzsKKyAgICBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRt c3MgPSBDT05UQUlORVJfT0YocW1wLCAqZG1zcywgcW1wKTsKKyAgICBjb25zdCBsaWJ4bF92bmNf aW5mbyAqdm5jID0gbGlieGxfX2RtX3ZuYyhkbXNzLT5ndWVzdF9jb25maWcpOworICAgIGNvbnN0 IGxpYnhsX19qc29uX29iamVjdCAqbzsKKyAgICBsaWJ4bF9fanNvbl9vYmplY3QgKmFyZ3MgPSBO VUxMOworCisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIC8qCisgICAgICogcXVlcnktdm5j IHJlc3BvbnNlOgorICAgICAqIHsgJ2VuYWJsZWQnOiAnYm9vbCcsICcqaG9zdCc6ICdzdHInLCAn KnNlcnZpY2UnOiAnc3RyJyB9CisgICAgICovCisKKyAgICBvID0gbGlieGxfX2pzb25fbWFwX2dl dCgiZW5hYmxlZCIsIHJlc3BvbnNlLCBKU09OX0JPT0wpOworICAgIGlmICghbykgZ290byBwcm90 b2NvbF9lcnJvcjsKKyAgICBpZiAobGlieGxfX2pzb25fb2JqZWN0X2dldF9ib29sKG8pKSB7Cisg ICAgICAgIGNvbnN0IGNoYXIgKmFkZHIsICpwb3J0OworICAgICAgICBjb25zdCBjaGFyICpkb21w YXRoOworCisgICAgICAgIG8gPSBsaWJ4bF9fanNvbl9tYXBfZ2V0KCJob3N0IiwgcmVzcG9uc2Us IEpTT05fU1RSSU5HKTsKKyAgICAgICAgaWYgKCFvKSBnb3RvIHByb3RvY29sX2Vycm9yOworICAg ICAgICBhZGRyID0gbGlieGxfX2pzb25fb2JqZWN0X2dldF9zdHJpbmcobyk7CisgICAgICAgIG8g PSBsaWJ4bF9fanNvbl9tYXBfZ2V0KCJzZXJ2aWNlIiwgcmVzcG9uc2UsIEpTT05fU1RSSU5HKTsK KyAgICAgICAgaWYgKCFvKSBnb3RvIHByb3RvY29sX2Vycm9yOworICAgICAgICBwb3J0ID0gbGli eGxfX2pzb25fb2JqZWN0X2dldF9zdHJpbmcobyk7CisKKyAgICAgICAgZG9tcGF0aCA9IGxpYnhs X194c19nZXRfZG9tcGF0aChnYywgcW1wLT5kb21pZCk7CisgICAgICAgIGlmICghZG9tcGF0aCkg eworICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICAgICAgZ290byBvdXQ7Cisg ICAgICAgIH0KKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcHJpbnRmKGdjLCBYQlRfTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvY29uc29sZS92bmMtbGlz dGVuIiwgZG9tcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBhZGRy KTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcHJp bnRmKGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiJXMvY29uc29sZS92bmMtcG9ydCIsIGRvbXBhdGgpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiVzIiwgcG9ydCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgfQor CisgICAgaWYgKHZuYyAmJiB2bmMtPnBhc3N3ZCkgeworICAgICAgICBxbXAtPmNhbGxiYWNrID0g ZGV2aWNlX21vZGVsX3Bvc3Rjb25maWdfdm5jX3Bhc3N3ZDsKKyAgICAgICAgbGlieGxfX3FtcF9w YXJhbV9hZGRfc3RyaW5nKGdjLCAmYXJncywgInBhc3N3b3JkIiwgdm5jLT5wYXNzd2QpOworICAg ICAgICByYyA9IGxpYnhsX19ldl9xbXBfc2VuZChnYywgcW1wLCAiY2hhbmdlLXZuYy1wYXNzd29y ZCIsIGFyZ3MpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICByZXR1cm47Cisg ICAgfQorCisgICAgcmMgPSAwOworICAgIGdvdG8gb3V0OworCitwcm90b2NvbF9lcnJvcjoKKyAg ICByYyA9IEVSUk9SX1FFTVVfQVBJOworICAgIExPR0QoRVJST1IsIHFtcC0+ZG9taWQsCisgICAg ICAgICAidW5leHBlY3RlZCByZXNwb25zZSB0byBRTVAgY21kICdxdWVyeS12bmMnLCByZWNlaXZl ZDpcbiVzIiwKKyAgICAgICAgIEpTT04ocmVzcG9uc2UpKTsKK291dDoKKyAgICBkZXZpY2VfbW9k ZWxfcG9zdGNvbmZpZ19kb25lKGVnYywgZG1zcywgcmMpOyAvKiBtdXN0IGJlIGxhc3QgKi8KK30K Kworc3RhdGljIHZvaWQgZGV2aWNlX21vZGVsX3Bvc3Rjb25maWdfdm5jX3Bhc3N3ZChsaWJ4bF9f ZWdjICplZ2MsCisgICAgbGlieGxfX2V2X3FtcCAqcW1wLCBjb25zdCBsaWJ4bF9fanNvbl9vYmpl Y3QgKnJlc3BvbnNlLCBpbnQgcmMpCit7CisgICAgRUdDX0dDOworICAgIGxpYnhsX19kbV9zcGF3 bl9zdGF0ZSAqZG1zcyA9IENPTlRBSU5FUl9PRihxbXAsICpkbXNzLCBxbXApOworICAgIGNvbnN0 IGxpYnhsX3ZuY19pbmZvICp2bmMgPSBsaWJ4bF9fZG1fdm5jKGRtc3MtPmd1ZXN0X2NvbmZpZyk7 CisgICAgY29uc3QgY2hhciAqZG9tcGF0aDsKKworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAg ICBkb21wYXRoID0gbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBxbXAtPmRvbWlkKTsKKyAgICBp ZiAoIWRvbXBhdGgpIHsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3RvIG91 dDsKKyAgICB9CisgICAgcmMgPSBsaWJ4bF9feHNfcHJpbnRmKGdjLCBYQlRfTlVMTCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9jb25zb2xlL3ZuYy1wYXNzIiwgZG9t cGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsIHZuYy0+cGFzc3dkKTsKKwor b3V0OgorICAgIGRldmljZV9tb2RlbF9wb3N0Y29uZmlnX2RvbmUoZWdjLCBkbXNzLCByYyk7IC8q IG11c3QgYmUgbGFzdCAqLworfQorCit2b2lkIGRldmlzZV9tb2RlbF9wb3N0Y29uZmlnX3RpbWVv dXQobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfdGltZSAqZXYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnJlcXVlc3RlZF9hYnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKQoreworICAgIGxp YnhsX19kbV9zcGF3bl9zdGF0ZSAqZG1zcyA9IENPTlRBSU5FUl9PRihldiwgKmRtc3MsIHRpbWVv dXQpOworICAgIGRldmljZV9tb2RlbF9wb3N0Y29uZmlnX2RvbmUoZWdjLCBkbXNzLCByYyk7IC8q IG11c3QgYmUgbGFzdCAqLworfQorCisKK3N0YXRpYyB2b2lkIGRldmljZV9tb2RlbF9wb3N0Y29u ZmlnX2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYykKK3sKKyAgICBFR0NfR0M7CisKKyAgICBp ZiAocmMpCisgICAgICAgIExPR0QoRVJST1IsIGRtc3MtPmd1ZXN0X2RvbWlkLAorICAgICAgICAg ICAgICJQb3N0IERNIHN0YXJ0dXAgY29uZmlncyBmYWlsZWQsIHJjPSVkIiwgcmMpOwogICAgIGRt c3NfZGlzcG9zZShnYywgZG1zcyk7CiAgICAgZG1zcy0+Y2FsbGJhY2soZWdjLCBkbXNzLCByYyk7 CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGli eGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBlZmZjMWM1YmY5Li41ZTA5ZTYwMmVkIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2RlZmluZSBMSUJYTF9ERVZJQ0VfTU9E RUxfU1RBUlRfVElNRU9VVCA2MAogI2RlZmluZSBMSUJYTF9ERVZJQ0VfTU9ERUxfU0FWRV9GSUxF IFhFTl9MSUJfRElSICIvcWVtdS1zYXZlIiAvKiAuJGRvbWlkICovCiAjZGVmaW5lIExJQlhMX0RF VklDRV9NT0RFTF9SRVNUT1JFX0ZJTEUgWEVOX0xJQl9ESVIgIi9xZW11LXJlc3VtZSIgLyogLiRk b21pZCAqLworI2RlZmluZSBMSUJYTF9RTVBfQ01EX1RJTUVPVVQgMTAKICNkZWZpbmUgTElCWExf U1RVQkRPTV9TVEFSVF9USU1FT1VUIDMwCiAjZGVmaW5lIExJQlhMX1FFTVVfQk9ER0VfVElNRU9V VCAyCiAjZGVmaW5lIExJQlhMX1hFTkNPTlNPTEVfTElNSVQgMTA0ODU3NgpAQCAtMTk0Niw4ICsx OTQ3LDYgQEAgX2hpZGRlbiBsaWJ4bF9fcW1wX2hhbmRsZXIgKmxpYnhsX19xbXBfaW5pdGlhbGl6 ZShsaWJ4bF9fZ2MgKmdjLAogX2hpZGRlbiBpbnQgbGlieGxfX3FtcF9ydW5fY29tbWFuZF9mbGV4 YXJyYXkobGlieGxfX2djICpnYywgaW50IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY21kLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X3QgKmFycmF5KTsKLS8qIGFzayB0 byBRRU1VIHRoZSBzZXJpYWwgcG9ydCBpbmZvcm1hdGlvbiBhbmQgc3RvcmUgaXQgaW4geGVuc3Rv cmUuICovCi1faGlkZGVuIGludCBsaWJ4bF9fcW1wX3F1ZXJ5X3NlcmlhbChsaWJ4bF9fcW1wX2hh bmRsZXIgKnFtcCk7CiBfaGlkZGVuIGludCBsaWJ4bF9fcW1wX3BjaV9hZGQobGlieGxfX2djICpn YywgaW50IGQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldik7CiBfaGlkZGVuIGludCBsaWJ4bF9f cW1wX3BjaV9kZWwobGlieGxfX2djICpnYywgaW50IGRvbWlkLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldik7CkBAIC0xOTkzLDEwICsxOTky LDYgQEAgX2hpZGRlbiB2b2lkIGxpYnhsX19xbXBfY2xvc2UobGlieGxfX3FtcF9oYW5kbGVyICpx bXApOwogICogbm90aGluZyBoYXBwZW4gKi8KIF9oaWRkZW4gdm9pZCBsaWJ4bF9fcW1wX2NsZWFu dXAobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQpOwogCi0vKiB0aGlzIGhlbHBlciBjYWxs cyBxbXBfaW5pdGlhbGl6ZSwgcXVlcnlfc2VyaWFsIGFuZCBxbXBfY2xvc2UgKi8KLV9oaWRkZW4g aW50IGxpYnhsX19xbXBfaW5pdGlhbGl6YXRpb25zKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxf ZG9tYWluX2NvbmZpZyAqZ3Vlc3RfY29uZmlnKTsKLQogLyogYGRhdGEnIHNob3VsZCBjb250YWlu IGEgYnl0ZSB0byBzZW5kLgogICogV2hlbiBkZWFsaW5nIHdpdGggYSBub24tYmxvY2tpbmcgZmQs IGl0IHJldHVybnMKICAqICAgRVJST1JfTk9UX1JFQURZIG9uIEVXT1VMREJMT0NLCkBAIC0zOTUz LDYgKzM5NDgsNyBAQCBzdHJ1Y3QgbGlieGxfX2RtX3NwYXduX3N0YXRlIHsKICAgICAvKiBtaXhl ZCAtIHNwYXduLmFvIG11c3QgYmUgaW5pdGlhbGlzZWQgYnkgdXNlcjsgcmVzdCBpcyBwcml2YXRl OiAqLwogICAgIGxpYnhsX19zcGF3bl9zdGF0ZSBzcGF3bjsKICAgICBsaWJ4bF9fZXZfcW1wIHFt cDsKKyAgICBsaWJ4bF9fZXZfdGltZSB0aW1lb3V0OwogICAgIC8qIGZpbGxlZCBpbiBieSB1c2Vy LCBtdXN0IHJlbWFpbiB2YWxpZDogKi8KICAgICB1aW50MzJfdCBndWVzdF9kb21pZDsgLyogZG9t YWluIGJlaW5nIHNlcnZlZCAqLwogICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmd1ZXN0X2NvbmZp ZzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3FtcC5jIGIvdG9vbHMvbGlieGwvbGli eGxfcW1wLmMKaW5kZXggZjE1Mjk5MjVlZS4uMGQ2YWVkY2M3ZCAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfcW1wLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfcW1wLmMKQEAgLTE0Mywx MjEgKzE0Myw2IEBAIHN0YXRpYyBjb25zdCBpbnQgUU1QX1NPQ0tFVF9DT05ORUNUX1RJTUVPVVQg PSA1OwogICogUU1QIGNhbGxiYWNrcyBmdW5jdGlvbnMKICAqLwogCi1zdGF0aWMgaW50IHN0b3Jl X3NlcmlhbF9wb3J0X2luZm8obGlieGxfX3FtcF9oYW5kbGVyICpxbXAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2hhcmRldiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcG9ydCkKLXsKLSAgICBHQ19JTklUKHFtcC0+Y3R4KTsK LSAgICBjaGFyICpwYXRoID0gTlVMTDsKLSAgICBpbnQgcmV0ID0gMDsKLQotICAgIGlmICghKGNo YXJkZXYgJiYgc3RybmNtcCgicHR5OiIsIGNoYXJkZXYsIDQpID09IDApKSB7Ci0gICAgICAgIHJl dHVybiAwOwotICAgIH0KLQotICAgIHBhdGggPSBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIHFt cC0+ZG9taWQpOwotICAgIHBhdGggPSBHQ1NQUklOVEYoIiVzL3NlcmlhbC8lZC90dHkiLCBwYXRo LCBwb3J0KTsKLQotICAgIHJldCA9IGxpYnhsX194c19wcmludGYoZ2MsIFhCVF9OVUxMLCBwYXRo LCAiJXMiLCBjaGFyZGV2ICsgNCk7Ci0KLSAgICBHQ19GUkVFOwotICAgIHJldHVybiByZXQ7Ci19 Ci0KLXN0YXRpYyBpbnQgcmVnaXN0ZXJfc2VyaWFsc19jaGFyZGV2X2NhbGxiYWNrKGxpYnhsX19x bXBfaGFuZGxlciAqcW1wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0ICpvLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdW51c2VkKQotewotICAgIGNvbnN0IGxpYnhs X19qc29uX29iamVjdCAqb2JqID0gTlVMTDsKLSAgICBjb25zdCBsaWJ4bF9fanNvbl9vYmplY3Qg KmxhYmVsID0gTlVMTDsKLSAgICBjb25zdCBjaGFyICpzID0gTlVMTDsKLSAgICBpbnQgaSA9IDA7 Ci0gICAgY29uc3QgY2hhciAqY2hhcmRldiA9IE5VTEw7Ci0gICAgaW50IHJldCA9IDA7Ci0KLSAg ICBmb3IgKGkgPSAwOyAob2JqID0gbGlieGxfX2pzb25fYXJyYXlfZ2V0KG8sIGkpKTsgaSsrKSB7 Ci0gICAgICAgIGlmICghbGlieGxfX2pzb25fb2JqZWN0X2lzX21hcChvYmopKQotICAgICAgICAg ICAgY29udGludWU7Ci0gICAgICAgIGxhYmVsID0gbGlieGxfX2pzb25fbWFwX2dldCgibGFiZWwi LCBvYmosIEpTT05fU1RSSU5HKTsKLSAgICAgICAgcyA9IGxpYnhsX19qc29uX29iamVjdF9nZXRf c3RyaW5nKGxhYmVsKTsKLQotICAgICAgICBpZiAocyAmJiBzdHJuY21wKCJzZXJpYWwiLCBzLCBz dHJsZW4oInNlcmlhbCIpKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb25zdCBsaWJ4bF9fanNvbl9v YmplY3QgKmZpbGVuYW1lID0gTlVMTDsKLSAgICAgICAgICAgIGNoYXIgKmVuZHB0ciA9IE5VTEw7 Ci0gICAgICAgICAgICBpbnQgcG9ydF9udW1iZXI7Ci0KLSAgICAgICAgICAgIGZpbGVuYW1lID0g bGlieGxfX2pzb25fbWFwX2dldCgiZmlsZW5hbWUiLCBvYmosIEpTT05fU1RSSU5HKTsKLSAgICAg ICAgICAgIGNoYXJkZXYgPSBsaWJ4bF9fanNvbl9vYmplY3RfZ2V0X3N0cmluZyhmaWxlbmFtZSk7 Ci0KLSAgICAgICAgICAgIHMgKz0gc3RybGVuKCJzZXJpYWwiKTsKLSAgICAgICAgICAgIHBvcnRf bnVtYmVyID0gc3RydG9sKHMsICZlbmRwdHIsIDEwKTsKLSAgICAgICAgICAgIGlmICgqcyA9PSAw IHx8ICplbmRwdHIgIT0gMCkgewotICAgICAgICAgICAgICAgIExJQlhMX19MT0dEKHFtcC0+Y3R4 LCBMSUJYTF9fTE9HX0VSUk9SLCBxbXAtPmRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJJbnZhbGlkIHNlcmlhbCBwb3J0IG51bWJlcjogJXMiLCBzKTsKLSAgICAgICAgICAgICAg ICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXQgPSBzdG9yZV9zZXJp YWxfcG9ydF9pbmZvKHFtcCwgY2hhcmRldiwgcG9ydF9udW1iZXIpOwotICAgICAgICAgICAgaWYg KHJldCkgewotICAgICAgICAgICAgICAgIExJQlhMX19MT0dEX0VSUk5PKHFtcC0+Y3R4LCBMSUJY TF9fTE9HX0VSUk9SLCBxbXAtPmRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJGYWlsZWQgdG8gc3RvcmUgc2VyaWFsIHBvcnQgaW5mb3JtYXRpb24iCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiB4ZW5zdG9yZSIpOwotICAgICAgICAgICAgICAg IHJldHVybiByZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgcmV0 dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBxbXBfd3JpdGVfZG9tYWluX2NvbnNvbGVfaXRlbShs aWJ4bF9fZ2MgKmdjLCBpbnQgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKml0ZW0sIGNvbnN0IGNoYXIgKnZhbHVlKQotewotICAgIGNo YXIgKnBhdGg7Ci0KLSAgICBwYXRoID0gbGlieGxfX3hzX2dldF9kb21wYXRoKGdjLCBkb21pZCk7 Ci0gICAgcGF0aCA9IEdDU1BSSU5URigiJXMvY29uc29sZS8lcyIsIHBhdGgsIGl0ZW0pOwotCi0g ICAgcmV0dXJuIGxpYnhsX194c19wcmludGYoZ2MsIFhCVF9OVUxMLCBwYXRoLCAiJXMiLCB2YWx1 ZSk7Ci19Ci0KLXN0YXRpYyBpbnQgcW1wX3JlZ2lzdGVyX3ZuY19jYWxsYmFjayhsaWJ4bF9fcW1w X2hhbmRsZXIgKnFtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsaWJ4bF9fanNvbl9vYmplY3QgKm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqdW51c2VkKQotewotICAgIEdDX0lOSVQocW1wLT5jdHgpOwotICAgIGNvbnN0 IGxpYnhsX19qc29uX29iamVjdCAqb2JqOwotICAgIGNvbnN0IGNoYXIgKmFkZHIsICpwb3J0Owot ICAgIGludCByYyA9IC0xOwotCi0gICAgaWYgKCFsaWJ4bF9fanNvbl9vYmplY3RfaXNfbWFwKG8p KSB7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0KLQotICAgIG9iaiA9IGxpYnhsX19qc29uX21h cF9nZXQoImVuYWJsZWQiLCBvLCBKU09OX0JPT0wpOwotICAgIGlmICghb2JqIHx8ICFsaWJ4bF9f anNvbl9vYmplY3RfZ2V0X2Jvb2wob2JqKSkgewotICAgICAgICByYyA9IDA7Ci0gICAgICAgIGdv dG8gb3V0OwotICAgIH0KLQotICAgIG9iaiA9IGxpYnhsX19qc29uX21hcF9nZXQoImhvc3QiLCBv LCBKU09OX1NUUklORyk7Ci0gICAgYWRkciA9IGxpYnhsX19qc29uX29iamVjdF9nZXRfc3RyaW5n KG9iaik7Ci0gICAgb2JqID0gbGlieGxfX2pzb25fbWFwX2dldCgic2VydmljZSIsIG8sIEpTT05f U1RSSU5HKTsKLSAgICBwb3J0ID0gbGlieGxfX2pzb25fb2JqZWN0X2dldF9zdHJpbmcob2JqKTsK LQotICAgIGlmICghYWRkciB8fCAhcG9ydCkgewotICAgICAgICBMT0dEKEVSUk9SLCBxbXAtPmRv bWlkLCAiRmFpbGVkIHRvIHJldHJpZXZlIFZOQyBjb25uZWN0IGluZm9ybWF0aW9uLiIpOwotICAg ICAgICBnb3RvIG91dDsKLSAgICB9Ci0KLSAgICByYyA9IHFtcF93cml0ZV9kb21haW5fY29uc29s ZV9pdGVtKGdjLCBxbXAtPmRvbWlkLCAidm5jLWxpc3RlbiIsIGFkZHIpOwotICAgIGlmICghcmMp Ci0gICAgICAgIHJjID0gcW1wX3dyaXRlX2RvbWFpbl9jb25zb2xlX2l0ZW0oZ2MsIHFtcC0+ZG9t aWQsICJ2bmMtcG9ydCIsIHBvcnQpOwotCi1vdXQ6Ci0gICAgR0NfRlJFRTsKLSAgICByZXR1cm4g cmM7Ci19Ci0KIHN0YXRpYyBpbnQgcW1wX2NhcGFiaWxpdGllc19jYWxsYmFjayhsaWJ4bF9fcW1w X2hhbmRsZXIgKnFtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsaWJ4bF9fanNvbl9vYmplY3QgKm8sIHZvaWQgKnVudXNlZCkKIHsKQEAgLTg1MSwyMCArNzM2 LDYgQEAgdm9pZCBsaWJ4bF9fcW1wX2NsZWFudXAobGlieGxfX2djICpnYywgdWludDMyX3QgZG9t aWQpCiAgICAgfQogfQogCi1pbnQgbGlieGxfX3FtcF9xdWVyeV9zZXJpYWwobGlieGxfX3FtcF9o YW5kbGVyICpxbXApCi17Ci0gICAgcmV0dXJuIHFtcF9zeW5jaHJvbm91c19zZW5kKHFtcCwgInF1 ZXJ5LWNoYXJkZXYiLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdp c3Rlcl9zZXJpYWxzX2NoYXJkZXZfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIHFtcC0+dGltZW91dCk7Ci19Ci0KLXN0YXRpYyBpbnQgcW1wX3F1ZXJ5X3Zu YyhsaWJ4bF9fcW1wX2hhbmRsZXIgKnFtcCkKLXsKLSAgICByZXR1cm4gcW1wX3N5bmNocm9ub3Vz X3NlbmQocW1wLCAicXVlcnktdm5jIiwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcW1wX3JlZ2lzdGVyX3ZuY19jYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgcW1wLT50aW1lb3V0KTsKLX0KLQogc3RhdGljIGludCBwY2lfYWRkX2Nh bGxiYWNrKGxpYnhsX19xbXBfaGFuZGxlciAqcW1wLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxpYnhsX19qc29uX29iamVjdCAqcmVzcG9uc2UsIHZvaWQgKm9wYXF1ZSkKIHsK QEAgLTEwODUsMjQgKzk1Niw2IEBAIGludCBsaWJ4bF9fcW1wX3Jlc3RvcmUobGlieGxfX2djICpn YywgaW50IGRvbWlkLCBjb25zdCBjaGFyICpzdGF0ZV9maWxlKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgTlVMTCk7CiB9CiAKLXN0YXRpYyBpbnQgcW1wX2NoYW5nZShsaWJ4bF9f Z2MgKmdjLCBsaWJ4bF9fcW1wX2hhbmRsZXIgKnFtcCwKLSAgICAgICAgICAgICAgICAgICAgICBj aGFyICpkZXZpY2UsIGNoYXIgKnRhcmdldCwgY2hhciAqYXJnKQotewotICAgIGxpYnhsX19qc29u X29iamVjdCAqYXJncyA9IE5VTEw7Ci0gICAgaW50IHJjID0gMDsKLQotICAgIGxpYnhsX19xbXBf cGFyYW1fYWRkX3N0cmluZyhnYywgJmFyZ3MsICJkZXZpY2UiLCBkZXZpY2UpOwotICAgIGxpYnhs X19xbXBfcGFyYW1fYWRkX3N0cmluZyhnYywgJmFyZ3MsICJ0YXJnZXQiLCB0YXJnZXQpOwotICAg IGlmIChhcmcpIHsKLSAgICAgICAgbGlieGxfX3FtcF9wYXJhbV9hZGRfc3RyaW5nKGdjLCAmYXJn cywgImFyZyIsIGFyZyk7Ci0gICAgfQotCi0gICAgcmMgPSBxbXBfc3luY2hyb25vdXNfc2VuZChx bXAsICJjaGFuZ2UiLCBhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg TlVMTCwgcW1wLT50aW1lb3V0KTsKLQotICAgIHJldHVybiByYzsKLX0KLQogaW50IGxpYnhsX19x bXBfcmVzdW1lKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCkKIHsKICAgICByZXR1cm4gcW1wX3J1 bl9jb21tYW5kKGdjLCBkb21pZCwgImNvbnQiLCBOVUxMLCBOVUxMLCBOVUxMKTsKQEAgLTEyOTMs MjggKzExNDYsNiBAQCBpbnQgbGlieGxfcWVtdV9tb25pdG9yX2NvbW1hbmQobGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBBT19JTlBST0dSRVNTOwogfQogCi1pbnQg bGlieGxfX3FtcF9pbml0aWFsaXphdGlvbnMobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZG9tYWluX2NvbmZp ZyAqZ3Vlc3RfY29uZmlnKQotewotICAgIGNvbnN0IGxpYnhsX3ZuY19pbmZvICp2bmMgPSBsaWJ4 bF9fZG1fdm5jKGd1ZXN0X2NvbmZpZyk7Ci0gICAgbGlieGxfX3FtcF9oYW5kbGVyICpxbXAgPSBO VUxMOwotICAgIGludCByZXQgPSAwOwotCi0gICAgcW1wID0gbGlieGxfX3FtcF9pbml0aWFsaXpl KGdjLCBkb21pZCk7Ci0gICAgaWYgKCFxbXApCi0gICAgICAgIHJldHVybiAtMTsKLSAgICByZXQg PSBsaWJ4bF9fcW1wX3F1ZXJ5X3NlcmlhbChxbXApOwotICAgIGlmICghcmV0ICYmIHZuYyAmJiB2 bmMtPnBhc3N3ZCkgewotICAgICAgICByZXQgPSBxbXBfY2hhbmdlKGdjLCBxbXAsICJ2bmMiLCAi cGFzc3dvcmQiLCB2bmMtPnBhc3N3ZCk7Ci0gICAgICAgIHFtcF93cml0ZV9kb21haW5fY29uc29s ZV9pdGVtKGdjLCBkb21pZCwgInZuYy1wYXNzIiwgdm5jLT5wYXNzd2QpOwotICAgIH0KLSAgICBp ZiAoIXJldCkgewotICAgICAgICByZXQgPSBxbXBfcXVlcnlfdm5jKHFtcCk7Ci0gICAgfQotICAg IGxpYnhsX19xbXBfY2xvc2UocW1wKTsKLSAgICByZXR1cm4gcmV0OwotfQotCiAKIC8qCiAgKiBG dW5jdGlvbnMgdXNpbmcgbGlieGxfX2V2X3FtcAotLSAKQW50aG9ueSBQRVJBUkQKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs