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.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,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 EDC39C3F68F for ; Thu, 5 Dec 2019 22:30:49 +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 BE0292466E for ; Thu, 5 Dec 2019 22:30:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="hP8emzrN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BE0292466E Authentication-Results: mail.kernel.org; dmarc=fail (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 1iczdm-0002nW-CQ; Thu, 05 Dec 2019 22:30:30 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iczdl-0002n9-Gs for xen-devel@lists.xenproject.org; Thu, 05 Dec 2019 22:30:29 +0000 X-Inumbo-ID: cf95cea6-17ae-11ea-a4aa-bc764e2007e4 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id cf95cea6-17ae-11ea-a4aa-bc764e2007e4; Thu, 05 Dec 2019 22:30:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1575585017; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=j7CtE/1wz8vFBRtLTHys7KdJMTnNCqEsnZtAVxueDqw=; b=hP8emzrNzWjlui5w6gqCNAatBGuPjTZi93vYDccS4z1Ek6Q7qOUC29Yr CrbsgtOIoCk2m5F7sR2Y1LyZ3ZdfvU1jupy9523BpP+mQ+azPjh1EDOVK P0jNYmVXJnm8YHHRsS+Ac0nfQILpU0QB39Ki2O49epjUTLIEdUDCuhFCz M=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@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 ip4:168.245.78.127 ~all" Received-SPF: None (esa2.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=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: UlepQX+pA9mrdTxuSXfxF9/c1TMfbFPv4GOwZvnKby4x12IWihCH1lmhBMG+0DH8gTydj0Ac/M X9lFKCQighUIpTZ+f9bTrxS0zBE9730y90qEnRSSWRGeW/eI8OAkSh/OnjQvzXdt3IZOKNlB+v 17youBcdMK6QFcjNUGUIWI4m/F1CUkitUOIciNMSKR7tr7DWHIz/xLDw90uocQTbsRTY4lucoY uxJrwIqiXAImv6hDyQGLE3nFu/pMgobAjNvH6zvPVRFTD86EgIfQrzgAeQlASEPCJmaJHSlhft vvY= X-SBRS: 2.7 X-MesageID: 9283666 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,282,1571716800"; d="scan'208";a="9283666" From: Andrew Cooper To: Xen-devel Date: Thu, 5 Dec 2019 22:30:06 +0000 Message-ID: <20191205223008.8623-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20191205223008.8623-1-andrew.cooper3@citrix.com> References: <20191205223008.8623-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 4/6] xen/hypercall: Cope with -ERESTART on more hypercall paths 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: Stefano Stabellini , Julien Grall , Wei Liu , Andrew Cooper , Jan Beulich , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlc2UgaHlwZXJjYWxscyBlYWNoIHVzZSBjb250aW51ZV9oeXBlcmNhbGxfb25fY3B1KCksIHdo b3NlIEFQSSBpcyBhYm91dCB0bwpzd2l0Y2ggdG8gdXNlIC1FUkVTVEFSVC4gIFVwZGF0ZSB0aGUg c29vbi10by1iZSBhZmZlY3RlZCBwYXRocyB0byBjb3BlLApmb2xkaW5nIGV4aXN0aW5nIGNvbnRp bmF0aW9uIGxvZ2ljIHdoZXJlIGFwcGxpY2FibGUuCgpJbiBhZGRpdGlvbjoKICogRm9yIHBsYXRm b3JtIG9wIGFuZCBzeXNjdGwsIGluc2VydCBhIGNwdV9yZWxheCgpIGludG8gd2hhdCBpcyBvdGhl cndpc2UgYQogICB0aWdodCBzcGlubG9jayBsb29wLCBhbmQgbWFrZSB0aGUgY29udGludWF0aW9u IGxvZ2ljIGNvbW1vbiBhdCB0aGUKICAgZXBpbG9ndWUuCiAqIENvbnRyYXJ5IHRvIHRoZSBjb21t ZW50IGluIHRoZSBjb2RlLCBrZXhlY19leGVjKCkgZG9lcyByZXR1cm4gaW4gdGhlCiAgIEtFWEVD X1JFQk9PVCBjYXNlLCBuZWVkcyB0byBwYXNzIHJldCBiYWNrIHRvIHRoZSBjYWxsZXIuCgpTaWdu ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0K Q0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdsQHhlbi5v cmc+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8 anVsaWVuQHhlbi5vcmc+CkNDOiBWb2xvZHlteXIgQmFiY2h1ayA8Vm9sb2R5bXlyX0JhYmNodWtA ZXBhbS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jIHwgMTQgKysr KysrKysrKysrLS0KIHhlbi9jb21tb24vY29tcGF0L2RvbWFpbi5jICAgICAgICB8ICA5ICsrKyst LS0tLQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhl bi9jb21tb24va2V4ZWMuYyAgICAgICAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKystLS0t CiB4ZW4vY29tbW9uL3N5c2N0bC5jICAgICAgICAgICAgICAgfCAxMyArKysrKysrKysrKy0tCiA1 IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9w bGF0Zm9ybV9oeXBlcmNhbGwuYwppbmRleCBiMTlmNmVjNGVkLi5jMGMyMDliYWFjIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2 L3BsYXRmb3JtX2h5cGVyY2FsbC5jCkBAIC0yMDEsOSArMjAxLDEyIEBAIHJldF90IGRvX3BsYXRm b3JtX29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3BsYXRmb3JtX29wX3QpIHVfeGVucGZf b3ApCiAgICAgICogd2l0aCB0aGlzIHZjcHUuCiAgICAgICovCiAgICAgd2hpbGUgKCAhc3Bpbl90 cnlsb2NrKCZ4ZW5wZl9sb2NrKSApCisgICAgeworICAgICAgICBjcHVfcmVsYXgoKTsKKwogICAg ICAgICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQotICAgICAgICAgICAgcmV0dXJu IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKAotICAgICAgICAgICAgICAgIF9fSFlQRVJW SVNPUl9wbGF0Zm9ybV9vcCwgImgiLCB1X3hlbnBmX29wKTsKKyAgICAgICAgICAgIGdvdG8gY3Jl YXRlX2NvbnRpbnVhdGlvbjsKKyAgICB9CiAKICAgICBzd2l0Y2ggKCBvcC0+Y21kICkKICAgICB7 CkBAIC04MTYsNiArODE5LDEzIEBAIHJldF90IGRvX3BsYXRmb3JtX29wKFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeGVuX3BsYXRmb3JtX29wX3QpIHVfeGVucGZfb3ApCiAgb3V0OgogICAgIHNwaW5f dW5sb2NrKCZ4ZW5wZl9sb2NrKTsKIAorICAgIGlmICggcmV0ID09IC1FUkVTVEFSVCApCisgICAg eworICAgIGNyZWF0ZV9jb250aW51YXRpb246CisgICAgICAgIHJldCA9IGh5cGVyY2FsbF9jcmVh dGVfY29udGludWF0aW9uKF9fSFlQRVJWSVNPUl9wbGF0Zm9ybV9vcCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgiLCB1X3hlbnBmX29wKTsKKyAgICB9CisK ICAgICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2NvbXBhdC9kb21h aW4uYyBiL3hlbi9jb21tb24vY29tcGF0L2RvbWFpbi5jCmluZGV4IDExYzZhZmM0NjMuLjFhMTQ0 MDM2NzIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L2RvbWFpbi5jCisrKyBiL3hlbi9j b21tb24vY29tcGF0L2RvbWFpbi5jCkBAIC03OSwxMSArNzksNiBAQCBpbnQgY29tcGF0X3ZjcHVf b3AoaW50IGNtZCwgdW5zaWduZWQgaW50IHZjcHVpZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcgogCiAgICAgICAgICAgICB4ZnJlZShjdHh0KTsKICAgICAgICAgfQotCi0gICAgICAg IGlmICggcmMgPT0gLUVSRVNUQVJUICkKLSAgICAgICAgICAgIHJjID0gaHlwZXJjYWxsX2NyZWF0 ZV9jb250aW51YXRpb24oX19IWVBFUlZJU09SX3ZjcHVfb3AsICJpaWgiLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQsIHZjcHVpZCwgYXJnKTsKLQog ICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEzMCw2ICsxMjUsMTAgQEAgaW50IGNvbXBhdF92 Y3B1X29wKGludCBjbWQsIHVuc2lnbmVkIGludCB2Y3B1aWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgYXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgaWYgKCByYyA9PSAtRVJF U1RBUlQgKQorICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9fSFlQ RVJWSVNPUl92Y3B1X29wLCAiaWloIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbWQsIHZjcHVpZCwgYXJnKTsKKwogICAgIHJldHVybiByYzsKIH0KIApkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMKaW5kZXgg ODY1YTFjYjlkNy4uYWI3ZTRkMDljMCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kb21haW4uYwor KysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCkBAIC0xNDIyLDEwICsxNDIyLDYgQEAgbG9uZyBkb192 Y3B1X29wKGludCBjbWQsIHVuc2lnbmVkIGludCB2Y3B1aWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgYXJnKQogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICAgICAgcmMg PSBhcmNoX2luaXRpYWxpc2VfdmNwdSh2LCBhcmcpOwotICAgICAgICBpZiAoIHJjID09IC1FUkVT VEFSVCApCi0gICAgICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9f SFlQRVJWSVNPUl92Y3B1X29wLCAiaWloIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY21kLCB2Y3B1aWQsIGFyZyk7Ci0KICAgICAgICAgYnJlYWs7CiAK ICAgICBjYXNlIFZDUFVPUF91cDoKQEAgLTE1OTgsNiArMTU5NCwxMCBAQCBsb25nIGRvX3ZjcHVf b3AoaW50IGNtZCwgdW5zaWduZWQgaW50IHZjcHVpZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGlmICggcmMgPT0gLUVSRVNU QVJUICkKKyAgICAgICAgcmMgPSBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVS VklTT1JfdmNwdV9vcCwgImlpaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY21kLCB2Y3B1aWQsIGFyZyk7CisKICAgICByZXR1cm4gcmM7CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24va2V4ZWMuYyBiL3hlbi9jb21tb24va2V4ZWMuYwppbmRleCBhMjYy Y2M1YTE4Li4yZmNhNzVjZWMwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2tleGVjLmMKKysrIGIv eGVuL2NvbW1vbi9rZXhlYy5jCkBAIC04NDIsNyArODQyLDcgQEAgc3RhdGljIGludCBrZXhlY19l eGVjKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFyZykKICAgICAgICAgYnJlYWs7CiAg ICAgfQogCi0gICAgcmV0dXJuIC1FSU5WQUw7IC8qIG5ldmVyIHJlYWNoZWQgKi8KKyAgICByZXR1 cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGtleGVjX3N3YXBfaW1hZ2VzKGludCB0eXBlLCBzdHJ1 Y3Qga2V4ZWNfaW1hZ2UgKm5ldywKQEAgLTEyMjAsNyArMTIyMCw3IEBAIHN0YXRpYyBpbnQgZG9f a2V4ZWNfb3BfaW50ZXJuYWwodW5zaWduZWQgbG9uZyBvcCwKICAgICAgICAgcmV0dXJuIHJldDsK IAogICAgIGlmICggdGVzdF9hbmRfc2V0X2JpdChLRVhFQ19GTEFHX0lOX0hZUEVSQ0FMTCwgJmtl eGVjX2ZsYWdzKSApCi0gICAgICAgIHJldHVybiBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlv bihfX0hZUEVSVklTT1Jfa2V4ZWNfb3AsICJsaCIsIG9wLCB1YXJnKTsKKyAgICAgICAgcmV0dXJu IC1FUkVTVEFSVDsKIAogICAgIHN3aXRjaCAoIG9wICkKICAgICB7CkBAIC0xMjYzLDEzICsxMjYz LDI1IEBAIHN0YXRpYyBpbnQgZG9fa2V4ZWNfb3BfaW50ZXJuYWwodW5zaWduZWQgbG9uZyBvcCwK IAogbG9uZyBkb19rZXhlY19vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BB UkFNKHZvaWQpIHVhcmcpCiB7Ci0gICAgcmV0dXJuIGRvX2tleGVjX29wX2ludGVybmFsKG9wLCB1 YXJnLCAwKTsKKyAgICBpbnQgcmV0ID0gZG9fa2V4ZWNfb3BfaW50ZXJuYWwob3AsIHVhcmcsIDAp OworCisgICAgaWYgKCByZXQgPT0gLUVSRVNUQVJUICkKKyAgICAgICAgcmV0ID0gaHlwZXJjYWxs X2NyZWF0ZV9jb250aW51YXRpb24oX19IWVBFUlZJU09SX2tleGVjX29wLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGgiLCBvcCwgdWFyZyk7CisKKyAgICBy ZXR1cm4gcmV0OwogfQogCiAjaWZkZWYgQ09ORklHX0NPTVBBVAogaW50IGNvbXBhdF9rZXhlY19v cCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhcmcpCiB7 Ci0gICAgcmV0dXJuIGRvX2tleGVjX29wX2ludGVybmFsKG9wLCB1YXJnLCAxKTsKKyAgICBpbnQg cmV0ID0gZG9fa2V4ZWNfb3BfaW50ZXJuYWwob3AsIHVhcmcsIDEpOworCisgICAgaWYgKCByZXQg PT0gLUVSRVNUQVJUICkKKyAgICAgICAgcmV0ID0gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRp b24oX19IWVBFUlZJU09SX2tleGVjX29wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAibGgiLCBvcCwgdWFyZyk7CisKKyAgICByZXR1cm4gcmV0OwogfQogI2Vu ZGlmCiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc3lzY3RsLmMgYi94ZW4vY29tbW9uL3N5c2N0 bC5jCmluZGV4IGY4OGEyODVlN2YuLjdiNTUwNDdiYjkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v c3lzY3RsLmMKKysrIGIveGVuL2NvbW1vbi9zeXNjdGwuYwpAQCAtNTEsOSArNTEsMTIgQEAgbG9u ZyBkb19zeXNjdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fc3lzY3RsX3QpIHVfc3lzY3Rs KQogICAgICAqIHdpdGggdGhpcyB2Y3B1LgogICAgICAqLwogICAgIHdoaWxlICggIXNwaW5fdHJ5 bG9jaygmc3lzY3RsX2xvY2spICkKKyAgICB7CisgICAgICAgIGNwdV9yZWxheCgpOworCiAgICAg ICAgIGlmICggaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSApCi0gICAgICAgICAgICByZXR1cm4g aHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24oCi0gICAgICAgICAgICAgICAgX19IWVBFUlZJ U09SX3N5c2N0bCwgImgiLCB1X3N5c2N0bCk7CisgICAgICAgICAgICBnb3RvIGNyZWF0ZV9jb250 aW51YXRpb247CisgICAgfQogCiAgICAgc3dpdGNoICggb3AtPmNtZCApCiAgICAgewpAQCAtNTE2 LDYgKzUxOSwxMiBAQCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9z eXNjdGxfdCkgdV9zeXNjdGwpCiAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3QodV9zeXNjdGwsIG9w LCAxKSApCiAgICAgICAgIHJldCA9IC1FRkFVTFQ7CiAKKyAgICBpZiAoIHJldCA9PSAtRVJFU1RB UlQgKQorICAgIHsKKyAgICBjcmVhdGVfY29udGludWF0aW9uOgorICAgICAgICByZXQgPSBoeXBl cmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1Jfc3lzY3RsLCAiaCIsIHVfc3lz Y3RsKTsKKyAgICB9CisKICAgICByZXR1cm4gcmV0OwogfQogCi0tIAoyLjExLjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs