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=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,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 5E518C3A5A3 for ; Tue, 27 Aug 2019 08:47:25 +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 2703E206BB for ; Tue, 27 Aug 2019 08:47:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.de header.i=@amazon.de header.b="iOvlBsHH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2703E206BB Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.de 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 1i2X8D-0002TT-7J; Tue, 27 Aug 2019 08:47:13 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8B-0002RC-HY for xen-devel@lists.xen.org; Tue, 27 Aug 2019 08:47:11 +0000 X-Inumbo-ID: 3fedd4e8-c8a7-11e9-951b-bc764e2007e4 Received: from smtp-fw-6001.amazon.com (unknown [52.95.48.154]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 3fedd4e8-c8a7-11e9-951b-bc764e2007e4; Tue, 27 Aug 2019 08:47:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1566895626; x=1598431626; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=o4RVrsJpzsxS9udgc7gJDMW+F4xQtwpODwjiWn0n55o=; b=iOvlBsHHt02BunJpiPBCVCpVVPAHg+9rgFSPE/v5L5ST/IE+/Mti5V/+ W9ci+ABI1lIgTJdDjale+btM62mIgMLu2tZ8Dkc1flrfTDYE3vI2cjerb 0+63ZlaBDEKuHO90XtxM7p9AIFiZ84WjL3oQ6porDEw8Pf+Af3AQaridR c=; X-IronPort-AV: E=Sophos;i="5.64,436,1559520000"; d="scan'208";a="412028802" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1d-38ae4ad2.us-east-1.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-6001.iad6.amazon.com with ESMTP; 27 Aug 2019 08:47:05 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1d-38ae4ad2.us-east-1.amazon.com (Postfix) with ESMTPS id 828C6A2733; Tue, 27 Aug 2019 08:47:05 +0000 (UTC) Received: from EX13D03EUA001.ant.amazon.com (10.43.165.33) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:49 +0000 Received: from EX13MTAUEE001.ant.amazon.com (10.43.62.200) by EX13D03EUA001.ant.amazon.com (10.43.165.33) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:47 +0000 Received: from dev-dsk-wipawel-1a-0c4e6d58.eu-west-1.amazon.com (10.4.134.33) by mail-relay.amazon.com (10.43.62.226) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 27 Aug 2019 08:46:46 +0000 From: Pawel Wieczorkiewicz To: , Date: Tue, 27 Aug 2019 08:46:18 +0000 Message-ID: <20190827084624.116917-7-wipawel@amazon.de> X-Mailer: git-send-email 2.16.5 In-Reply-To: <20190827084624.116917-1-wipawel@amazon.de> References: <20190821081931.90887-1-wipawel@amazon.de> <20190827084624.116917-1-wipawel@amazon.de> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2 06/12] livepatch: Do not enforce ELF_LIVEPATCH_FUNC section presence X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Pawel Wieczorkiewicz , wipawel@amazon.com, Ross Lagerwall , mpohlack@amazon.com, Konrad Rzeszutek Wilk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" V2l0aCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHRoZSBFTEZfTElWRVBBVENIX0ZVTkMgc2VjdGlv biBjb250YWluaW5nCmFsbCBmdW5jdGlvbnMgdG8gYmUgcmVwbGFjZWQgb3IgYWRkZWQgbXVzdCBi ZSBwYXJ0IG9mIHRoZSBob3RwYXRjaApwYXlsb2FkLCBvdGhlcndpc2UgdGhlIHBheWxvYWQgaXMg cmVqZWN0ZWQgKHdpdGggLUVJTlZBTCkuCgpIb3dldmVyLCB3aXRoIHRoZSBleHRlbmRlZCBob29r cyBpbXBsZW1lbnRhdGlvbiwgYSBob3RwYXRjaCBtYXkgYmUKY29uc3RydWN0ZWQgb2Ygb25seSBo b29rcyB0byBwZXJmb3JtIGNlcnRhaW4gYWN0aW9ucyB3aXRob3V0IGFueSBjb2RlCnRvIGJlIGFk ZGVkIG9yIHJlcGxhY2VkLgpUaGVyZWZvcmUsIGRvIG5vdCBhbHdheXMgZXhwZWN0IHRoZSBmdW5j dGlvbnMgc2VjdGlvbiBhbmQgYWxsb3cgaXQgdG8KYmUgbWlzc2luZywgcHJvdmlkZWQgdGhlcmUg aXMgYXQgbGVhc3Qgb25lIHNlY3Rpb24gY29udGFpbmluZyBob29rcwpwcmVzZW50LiBUaGUgZnVu Y3Rpb25zIHNlY3Rpb24sIHdoZW4gcHJlc2VudCBpbiBhIHBheWxvYWQsIG11c3QgYmUgYQpzaW5n bGUsIG5vbi1lbXB0eSBzZWN0aW9uLgoKQ2hlY2sgYWxzbyBhbGwgZXh0ZW5kZWQgaG9va3Mgc2Vj dGlvbnMgaWYgdGhleSBhcmUgYSBzaW5nbGUsIG5vbi1lbXB0eQpzZWN0aW9ucyBlYWNoLgoKQXQg bGVhc3Qgb25lIG9mIHRoZSBmdW5jdGlvbnMgb3IgaG9va3Mgc2VjdGlvbiBtdXN0IGJlIHByZXNl bnQgaW4gYQp2YWxpZCBwYXlsb2FkLgoKU2lnbmVkLW9mZi1ieTogUGF3ZWwgV2llY3pvcmtpZXdp Y3ogPHdpcGF3ZWxAYW1hem9uLmRlPgpSZXZpZXdlZC1ieTogQW5kcmEtSXJpbmEgUGFyYXNjaGl2 IDxhbmRyYXByc0BhbWF6b24uY29tPgpSZXZpZXdlZC1ieTogQmpvZXJuIERvZWJlbCA8ZG9lYmVs QGFtYXpvbi5kZT4KUmV2aWV3ZWQtYnk6IE1hcnRpbiBQb2hsYWNrIDxtcG9obGFja0BhbWF6b24u ZGU+Ci0tLQpDaGFuZ2VkIHNpbmNlIHYxOgogICogYWx3YXlzIHByaW50IFhFTkxPR19FUlIgbWVz c2FnZXMKICAqIHJlbW92ZSBBU1NFUlQgZnJvbSBidWlsZF9zeW1ib2xfdGFibGUoKQogICogYWRk ZWQgY29ycmVzcG9uZGluZyBkb2N1bWVudGF0aW9uCiAgKiBhZGRlZCB0ZXN0cwoKIHhlbi9jb21t b24vbGl2ZXBhdGNoLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTQ3ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLQogeGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oICAgICAgICAgICAgICAg ICAgfCAgIDggKysKIHhlbi90ZXN0L2xpdmVwYXRjaC9NYWtlZmlsZSAgICAgICAgICAgICAgICAg IHwgICA5ICstCiB4ZW4vdGVzdC9saXZlcGF0Y2gveGVuX2FjdGlvbl9ob29rc19ub2Z1bmMuYyB8 ICA4NiArKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCsp LCA0NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vdGVzdC9saXZlcGF0Y2gv eGVuX2FjdGlvbl9ob29rc19ub2Z1bmMuYwoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbGl2ZXBh dGNoLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCmluZGV4IDU3N2I5MjZiYTQuLjcwNWI1Yjgx NTEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKKysrIGIveGVuL2NvbW1vbi9s aXZlcGF0Y2guYwpAQCAtNDY3LDggKzQ2Nyw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfeGVuX2J1aWxk X2lkKGNvbnN0IHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkKQogc3RhdGljIGludCBjaGVja19zcGVj aWFsX3NlY3Rpb25zKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7CiAgICAgdW5z aWduZWQgaW50IGk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7IEVM Rl9MSVZFUEFUQ0hfRlVOQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRUxGX0xJVkVQQVRDSF9ERVBFTkRTLAorICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBu YW1lc1tdID0geyBFTEZfTElWRVBBVENIX0RFUEVORFMsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVMRl9MSVZFUEFUQ0hfWEVOX0RFUEVORFMsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRl9CVUlMRF9JRF9OT1RFfTsKICAgICBE RUNMQVJFX0JJVE1BUChmb3VuZCwgQVJSQVlfU0laRShuYW1lcykpID0geyAwIH07CkBAIC01MDMs NiArNTAyLDY0IEBAIHN0YXRpYyBpbnQgY2hlY2tfc3BlY2lhbF9zZWN0aW9ucyhjb25zdCBzdHJ1 Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGNo ZWNrX3BhdGNoaW5nX3NlY3Rpb25zKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCit7 CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVz W10gPSB7IEVMRl9MSVZFUEFUQ0hfRlVOQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRUxGX0xJVkVQQVRDSF9MT0FEX0hPT0tTLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFTEZfTElWRVBBVENIX1VOTE9BRF9IT09LUywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxGX0xJVkVQQVRDSF9QUkVBUFBM WV9IT09LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTEZfTElW RVBBVENIX0FQUExZX0hPT0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVMRl9MSVZFUEFUQ0hfUE9TVEFQUExZX0hPT0ssCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVMRl9MSVZFUEFUQ0hfUFJFUkVWRVJUX0hPT0ssCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRl9MSVZFUEFUQ0hfUkVWRVJUX0hP T0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRl9MSVZFUEFU Q0hfUE9TVFJFVkVSVF9IT09LfTsKKyAgICBERUNMQVJFX0JJVE1BUChmb3VuZCwgQVJSQVlfU0la RShuYW1lcykpID0geyAwIH07CisKKyAgICAvKgorICAgICAqIFRoZSBwYXRjaGluZyBzZWN0aW9u cyBhcmUgb3B0aW9uYWwsIGJ1dCBhdCBsZWFzdCBvbmUKKyAgICAgKiBtdXN0IGJlIHByZXNlbnQu IE90aGVyd2lzZSwgdGhlcmUgaXMgbm90aGluZyB0byBkby4KKyAgICAgKiBBbGwgdGhlIGV4aXN0 aW5nIHNlY3Rpb25zIG11c3Qgbm90IGJlIGVtcHR5IGFuZCBtdXN0CisgICAgICogYmUgcHJlc2Vu dCBhdCBtb3N0IG9uY2UuCisgICAgICovCisgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF KG5hbWVzKTsgaSsrICkKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxm X3NlYyAqc2VjOworCisgICAgICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxm LCBuYW1lc1tpXSk7CisgICAgICAgIGlmICggIXNlYyApCisgICAgICAgIHsKKyAgICAgICAgICAg IGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiAlcyBpcyBtaXNzaW5nXG4iLAor ICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIG5hbWVzW2ldKTsKKyAgICAgICAgICAgIGNv bnRpbnVlOyAvKiBUaGlzIHNlY3Rpb24gaXMgb3B0aW9uYWwgKi8KKyAgICAgICAgfQorCisgICAg ICAgIGlmICggIXNlYy0+c2VjLT5zaF9zaXplICkKKyAgICAgICAgeworICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgTElWRVBBVENIICIlczogJXMgaXMgZW1wdHlcbiIsCisgICAgICAgICAg ICAgICAgICAgZWxmLT5uYW1lLCBuYW1lc1tpXSk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggdGVzdF9hbmRfc2V0X2JpdChpLCBmb3VuZCkg KQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVz OiAlcyB3YXMgc2VlbiBtb3JlIHRoYW4gb25jZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxm LT5uYW1lLCBuYW1lc1tpXSk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAg fQorICAgIH0KKworICAgIC8qIENoZWNraW5nIGlmIGF0IGxlYXN0IG9uZSBzZWN0aW9uIGlzIHBy ZXNlbnQuICovCisgICAgaWYgKCBiaXRtYXBfZW1wdHkoZm91bmQsIEFSUkFZX1NJWkUobmFtZXMp KSApCisgICAgeworICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiBOb3Ro aW5nIHRvIHBhdGNoLiBBYm9ydGluZy4uLlxuIiwKKyAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7 CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiAv KgogICogTG9va3VwIHNwZWNpZmllZCBzZWN0aW9uIGFuZCB3aGVuIGV4aXN0cyBhc3NpZ24gaXRz IGFkZHJlc3MgdG8gYSBzcGVjaWZpZWQgaG9vay4KICAqIFBlcmZvcm0gc2VjdGlvbiBwb2ludGVy IGFuZCBzaXplIHZhbGlkYXRpb246IHNpbmdsZSBob29rIHNlY3Rpb25zIG11c3QgY29udGFpbiBh CkBAIC01NDIsNTcgKzU5OSw1OSBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3Qg cGF5bG9hZCAqcGF5bG9hZCwKICAgICBjb25zdCBFbGZfTm90ZSAqbjsKIAogICAgIHNlYyA9IGxp dmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZfTElWRVBBVENIX0ZVTkMpOwotICAgIEFT U0VSVChzZWMpOwotICAgIGlmICggIXNlY3Rpb25fb2soZWxmLCBzZWMsIHNpemVvZigqcGF5bG9h ZC0+ZnVuY3MpKSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0gICAgcGF5bG9hZC0+ZnVu Y3MgPSBzZWMtPmxvYWRfYWRkcjsKLSAgICBwYXlsb2FkLT5uZnVuY3MgPSBzZWMtPnNlYy0+c2hf c2l6ZSAvIHNpemVvZigqcGF5bG9hZC0+ZnVuY3MpOwotCi0gICAgZm9yICggaSA9IDA7IGkgPCBw YXlsb2FkLT5uZnVuY3M7IGkrKyApCisgICAgaWYgKCBzZWMgKQogICAgIHsKLSAgICAgICAgaW50 IHJjOworICAgICAgICBpZiAoICFzZWN0aW9uX29rKGVsZiwgc2VjLCBzaXplb2YoKnBheWxvYWQt PmZ1bmNzKSkgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgZiA9ICYo cGF5bG9hZC0+ZnVuY3NbaV0pOworICAgICAgICBwYXlsb2FkLT5mdW5jcyA9IHNlYy0+bG9hZF9h ZGRyOworICAgICAgICBwYXlsb2FkLT5uZnVuY3MgPSBzZWMtPnNlYy0+c2hfc2l6ZSAvIHNpemVv ZigqcGF5bG9hZC0+ZnVuY3MpOwogCi0gICAgICAgIGlmICggZi0+dmVyc2lvbiAhPSBMSVZFUEFU Q0hfUEFZTE9BRF9WRVJTSU9OICkKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBwYXlsb2FkLT5u ZnVuY3M7IGkrKyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJ VkVQQVRDSCAiJXM6IFdyb25nIHZlcnNpb24gKCV1KS4gRXhwZWN0ZWQgJWRcbiIsCi0gICAgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBmLT52ZXJzaW9uLCBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJT SU9OKTsKLSAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKLSAgICAgICAgfQorICAgICAg ICAgICAgaW50IHJjOwogCi0gICAgICAgIC8qICdvbGRfYWRkcicsICduZXdfYWRkcicsICduZXdf c2l6ZScgY2FuIGFsbCBiZSB6ZXJvLiAqLwotICAgICAgICBpZiAoICFmLT5vbGRfc2l6ZSApCi0g ICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJVkVQQVRDSCAiJXM6IEFk ZHJlc3Mgb3Igc2l6ZSBmaWVsZHMgYXJlIHplcm9cbiIsCi0gICAgICAgICAgICAgICAgICAgZWxm LT5uYW1lKTsKLSAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwotICAgICAgICB9CisgICAgICAg ICAgICBmID0gJihwYXlsb2FkLT5mdW5jc1tpXSk7CiAKLSAgICAgICAgcmMgPSBhcmNoX2xpdmVw YXRjaF92ZXJpZnlfZnVuYyhmKTsKLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICByZXR1 cm4gcmM7CisgICAgICAgICAgICBpZiAoIGYtPnZlcnNpb24gIT0gTElWRVBBVENIX1BBWUxPQURf VkVSU0lPTiApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIgTElWRVBBVENIICIlczogV3JvbmcgdmVyc2lvbiAoJXUpLiBFeHBlY3RlZCAlZFxuIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBmLT52ZXJzaW9uLCBMSVZFUEFUQ0hfUEFZ TE9BRF9WRVJTSU9OKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CisgICAg ICAgICAgICB9CiAKLSAgICAgICAgcmMgPSByZXNvbHZlX29sZF9hZGRyZXNzKGYsIGVsZik7Ci0g ICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgLyog J29sZF9hZGRyJywgJ25ld19hZGRyJywgJ25ld19zaXplJyBjYW4gYWxsIGJlIHplcm8uICovCisg ICAgICAgICAgICBpZiAoICFmLT5vbGRfc2l6ZSApCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIgTElWRVBBVENIICIlczogQWRkcmVzcyBvciBzaXplIGZp ZWxkcyBhcmUgemVyb1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKKyAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBy YyA9IGxpdmVwYXRjaF92ZXJpZnlfZGlzdGFuY2UoZik7Ci0gICAgICAgIGlmICggcmMgKQotICAg ICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF92ZXJp ZnlfZnVuYyhmKTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIHJldHVy biByYzsKKworICAgICAgICAgICAgcmMgPSByZXNvbHZlX29sZF9hZGRyZXNzKGYsIGVsZik7Cisg ICAgICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmM7CisKKyAgICAg ICAgICAgIHJjID0gbGl2ZXBhdGNoX3ZlcmlmeV9kaXN0YW5jZShmKTsKKyAgICAgICAgICAgIGlm ICggcmMgKQorICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQogICAgIH0KIAot ICAgIExJVkVQQVRDSF9BU1NJR05fTVVMVElfSE9PSyhlbGYsIHBheWxvYWQtPmxvYWRfZnVuY3Ms IHBheWxvYWQtPm5fbG9hZF9mdW5jcywgIi5saXZlcGF0Y2guaG9va3MubG9hZCIpOwotICAgIExJ VkVQQVRDSF9BU1NJR05fTVVMVElfSE9PSyhlbGYsIHBheWxvYWQtPnVubG9hZF9mdW5jcywgcGF5 bG9hZC0+bl91bmxvYWRfZnVuY3MsICIubGl2ZXBhdGNoLmhvb2tzLnVubG9hZCIpOworICAgIExJ VkVQQVRDSF9BU1NJR05fTVVMVElfSE9PSyhlbGYsIHBheWxvYWQtPmxvYWRfZnVuY3MsIHBheWxv YWQtPm5fbG9hZF9mdW5jcywgRUxGX0xJVkVQQVRDSF9MT0FEX0hPT0tTKTsKKyAgICBMSVZFUEFU Q0hfQVNTSUdOX01VTFRJX0hPT0soZWxmLCBwYXlsb2FkLT51bmxvYWRfZnVuY3MsIHBheWxvYWQt Pm5fdW5sb2FkX2Z1bmNzLCBFTEZfTElWRVBBVENIX1VOTE9BRF9IT09LUyk7CiAKLSAgICBMSVZF UEFUQ0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9hZC0+aG9va3MuYXBwbHkucHJlLCAi LmxpdmVwYXRjaC5ob29rcy5wcmVhcHBseSIpOwotICAgIExJVkVQQVRDSF9BU1NJR05fU0lOR0xF X0hPT0soZWxmLCBwYXlsb2FkLT5ob29rcy5hcHBseS5hY3Rpb24sICIubGl2ZXBhdGNoLmhvb2tz LmFwcGx5Iik7Ci0gICAgTElWRVBBVENIX0FTU0lHTl9TSU5HTEVfSE9PSyhlbGYsIHBheWxvYWQt Pmhvb2tzLmFwcGx5LnBvc3QsICIubGl2ZXBhdGNoLmhvb2tzLnBvc3RhcHBseSIpOworICAgIExJ VkVQQVRDSF9BU1NJR05fU0lOR0xFX0hPT0soZWxmLCBwYXlsb2FkLT5ob29rcy5hcHBseS5wcmUs IEVMRl9MSVZFUEFUQ0hfUFJFQVBQTFlfSE9PSyk7CisgICAgTElWRVBBVENIX0FTU0lHTl9TSU5H TEVfSE9PSyhlbGYsIHBheWxvYWQtPmhvb2tzLmFwcGx5LmFjdGlvbiwgRUxGX0xJVkVQQVRDSF9B UFBMWV9IT09LKTsKKyAgICBMSVZFUEFUQ0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9h ZC0+aG9va3MuYXBwbHkucG9zdCwgRUxGX0xJVkVQQVRDSF9QT1NUQVBQTFlfSE9PSyk7CiAKLSAg ICBMSVZFUEFUQ0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9hZC0+aG9va3MucmV2ZXJ0 LnByZSwgIi5saXZlcGF0Y2guaG9va3MucHJlcmV2ZXJ0Iik7Ci0gICAgTElWRVBBVENIX0FTU0lH Tl9TSU5HTEVfSE9PSyhlbGYsIHBheWxvYWQtPmhvb2tzLnJldmVydC5hY3Rpb24sICIubGl2ZXBh dGNoLmhvb2tzLnJldmVydCIpOwotICAgIExJVkVQQVRDSF9BU1NJR05fU0lOR0xFX0hPT0soZWxm LCBwYXlsb2FkLT5ob29rcy5yZXZlcnQucG9zdCwgIi5saXZlcGF0Y2guaG9va3MucG9zdHJldmVy dCIpOworICAgIExJVkVQQVRDSF9BU1NJR05fU0lOR0xFX0hPT0soZWxmLCBwYXlsb2FkLT5ob29r cy5yZXZlcnQucHJlLCBFTEZfTElWRVBBVENIX1BSRVJFVkVSVF9IT09LKTsKKyAgICBMSVZFUEFU Q0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9hZC0+aG9va3MucmV2ZXJ0LmFjdGlvbiwg RUxGX0xJVkVQQVRDSF9SRVZFUlRfSE9PSyk7CisgICAgTElWRVBBVENIX0FTU0lHTl9TSU5HTEVf SE9PSyhlbGYsIHBheWxvYWQtPmhvb2tzLnJldmVydC5wb3N0LCBFTEZfTElWRVBBVENIX1BPU1RS RVZFUlRfSE9PSyk7CiAKICAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwg RUxGX0JVSUxEX0lEX05PVEUpOwogICAgIGlmICggc2VjICkKQEAgLTc4Niw4ICs4NDUsNiBAQCBz dGF0aWMgaW50IGJ1aWxkX3N5bWJvbF90YWJsZShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAg ICBzdHJ1Y3QgbGl2ZXBhdGNoX3N5bWJvbCAqc3ltdGFiOwogICAgIGNoYXIgKnN0cnRhYjsKIAot ICAgIEFTU0VSVChwYXlsb2FkLT5uZnVuY3MpOwotCiAgICAgLyogUmVjYWxsIHRoYXQgc2VjdGlv biBAMCBpcyBhbHdheXMgTlVMTC4gKi8KICAgICBmb3IgKCBpID0gMTsgaSA8IGVsZi0+bnN5bTsg aSsrICkKICAgICB7CkBAIC05MDQsNiArOTYxLDEwIEBAIHN0YXRpYyBpbnQgbG9hZF9wYXlsb2Fk X2RhdGEoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHZvaWQgKnJhdywgc2l6ZV90IGxlbikKICAg ICBpZiAoIHJjICkKICAgICAgICAgZ290byBvdXQ7CiAKKyAgICByYyA9IGNoZWNrX3BhdGNoaW5n X3NlY3Rpb25zKCZlbGYpOworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKwogICAg IHJjID0gcHJlcGFyZV9wYXlsb2FkKHBheWxvYWQsICZlbGYpOwogICAgIGlmICggcmMgKQogICAg ICAgICBnb3RvIG91dDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCBi L3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaAppbmRleCBlZDk5N2FhNGNjLi4yYWVjNTMyZWUy IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL2xpdmVwYXRjaC5oCkBAIC0zMyw2ICszMywxNCBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9s aXZlcGF0Y2hfb3A7CiAjZGVmaW5lIEVMRl9MSVZFUEFUQ0hfREVQRU5EUyAgICAgIi5saXZlcGF0 Y2guZGVwZW5kcyIKICNkZWZpbmUgRUxGX0xJVkVQQVRDSF9YRU5fREVQRU5EUyAiLmxpdmVwYXRj aC54ZW5fZGVwZW5kcyIKICNkZWZpbmUgRUxGX0JVSUxEX0lEX05PVEUgICAgICAgICAiLm5vdGUu Z251LmJ1aWxkLWlkIgorI2RlZmluZSBFTEZfTElWRVBBVENIX0xPQURfSE9PS1MgICAgICAiLmxp dmVwYXRjaC5ob29rcy5sb2FkIgorI2RlZmluZSBFTEZfTElWRVBBVENIX1VOTE9BRF9IT09LUyAg ICAiLmxpdmVwYXRjaC5ob29rcy51bmxvYWQiCisjZGVmaW5lIEVMRl9MSVZFUEFUQ0hfUFJFQVBQ TFlfSE9PSyAgICIubGl2ZXBhdGNoLmhvb2tzLnByZWFwcGx5IgorI2RlZmluZSBFTEZfTElWRVBB VENIX0FQUExZX0hPT0sgICAgICAiLmxpdmVwYXRjaC5ob29rcy5hcHBseSIKKyNkZWZpbmUgRUxG X0xJVkVQQVRDSF9QT1NUQVBQTFlfSE9PSyAgIi5saXZlcGF0Y2guaG9va3MucG9zdGFwcGx5Igor I2RlZmluZSBFTEZfTElWRVBBVENIX1BSRVJFVkVSVF9IT09LICAiLmxpdmVwYXRjaC5ob29rcy5w cmVyZXZlcnQiCisjZGVmaW5lIEVMRl9MSVZFUEFUQ0hfUkVWRVJUX0hPT0sgICAgICIubGl2ZXBh dGNoLmhvb2tzLnJldmVydCIKKyNkZWZpbmUgRUxGX0xJVkVQQVRDSF9QT1NUUkVWRVJUX0hPT0sg Ii5saXZlcGF0Y2guaG9va3MucG9zdHJldmVydCIKIC8qIEFyYml0cmFyeSBsaW1pdCBmb3IgcGF5 bG9hZCBzaXplIGFuZCAuYnNzIHNlY3Rpb24gc2l6ZS4gKi8KICNkZWZpbmUgTElWRVBBVENIX01B WF9TSVpFICAgICBNQigyKQogCmRpZmYgLS1naXQgYS94ZW4vdGVzdC9saXZlcGF0Y2gvTWFrZWZp bGUgYi94ZW4vdGVzdC9saXZlcGF0Y2gvTWFrZWZpbGUKaW5kZXggMTE2ZTUyZTc3NC4uYmJjNmJk YWY2NCAxMDA2NDQKLS0tIGEveGVuL3Rlc3QvbGl2ZXBhdGNoL01ha2VmaWxlCisrKyBiL3hlbi90 ZXN0L2xpdmVwYXRjaC9NYWtlZmlsZQpAQCAtMjMsNiArMjMsNyBAQCBMSVZFUEFUQ0hfTk9fWEVO X0JVSUxESUQgOj0geGVuX25vX3hlbl9idWlsZGlkLmxpdmVwYXRjaAogTElWRVBBVENIX1BSRVBP U1RfSE9PS1MgOj0geGVuX3ByZXBvc3RfaG9va3MubGl2ZXBhdGNoCiBMSVZFUEFUQ0hfUFJFUE9T VF9IT09LU19GQUlMIDo9IHhlbl9wcmVwb3N0X2hvb2tzX2ZhaWwubGl2ZXBhdGNoCiBMSVZFUEFU Q0hfQUNUSU9OX0hPT0tTIDo9IHhlbl9hY3Rpb25faG9va3MubGl2ZXBhdGNoCitMSVZFUEFUQ0hf QUNUSU9OX0hPT0tTX05PRlVOQyA6PSB4ZW5fYWN0aW9uX2hvb2tzX25vZnVuYy5saXZlcGF0Y2gK IAogTElWRVBBVENIRVMgKz0gJChMSVZFUEFUQ0gpCiBMSVZFUEFUQ0hFUyArPSAkKExJVkVQQVRD SF9CWUUpCkBAIC0zMiw2ICszMyw3IEBAIExJVkVQQVRDSEVTICs9ICQoTElWRVBBVENIX05PX1hF Tl9CVUlMRElEKQogTElWRVBBVENIRVMgKz0gJChMSVZFUEFUQ0hfUFJFUE9TVF9IT09LUykKIExJ VkVQQVRDSEVTICs9ICQoTElWRVBBVENIX1BSRVBPU1RfSE9PS1NfRkFJTCkKIExJVkVQQVRDSEVT ICs9ICQoTElWRVBBVENIX0FDVElPTl9IT09LUykKK0xJVkVQQVRDSEVTICs9ICQoTElWRVBBVENI X0FDVElPTl9IT09LU19OT0ZVTkMpCiAKIExJVkVQQVRDSF9ERUJVR19ESVIgPz0gJChERUJVR19E SVIpL3hlbi1saXZlcGF0Y2gKIApAQCAtMTUyLDYgKzE1NCwxMSBAQCB4ZW5fYWN0aW9uc19ob29r cy5vOiBjb25maWcuaAogJChMSVZFUEFUQ0hfQUNUSU9OX0hPT0tTKTogeGVuX2FjdGlvbl9ob29r cy5vIHhlbl9oZWxsb193b3JsZF9mdW5jLm8gbm90ZS5vIHhlbl9ub3RlLm8KIAkkKExEKSAkKExE RkxBR1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKExJVkVQQVRDSF9BQ1RJT05fSE9PS1Mp ICReCiAKKy5QSE9OWTogJChMSVZFUEFUQ0hfQUNUSU9OX0hPT0tTX05PRlVOQykKKyQoTElWRVBB VENIX0FDVElPTl9IT09LU19OT0ZVTkMpOiB4ZW5fYWN0aW9uX2hvb2tzX25vZnVuYy5vIG5vdGUu byB4ZW5fbm90ZS5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIgLW8g JChMSVZFUEFUQ0hfQUNUSU9OX0hPT0tTX05PRlVOQykgJF4KKwogLlBIT05ZOiBsaXZlcGF0Y2gK IGxpdmVwYXRjaDogJChMSVZFUEFUQ0gpICQoTElWRVBBVENIX0JZRSkgJChMSVZFUEFUQ0hfUkVQ TEFDRSkgJChMSVZFUEFUQ0hfTk9QKSAkKExJVkVQQVRDSF9OT19YRU5fQlVJTERJRCkgXAotICAg ICAgICAgICAkKExJVkVQQVRDSF9QUkVQT1NUX0hPT0tTKSAkKExJVkVQQVRDSF9QUkVQT1NUX0hP T0tTX0ZBSUwpICQoTElWRVBBVENIX0FDVElPTl9IT09LUykKKyAgICAgICAgICAgJChMSVZFUEFU Q0hfUFJFUE9TVF9IT09LUykgJChMSVZFUEFUQ0hfUFJFUE9TVF9IT09LU19GQUlMKSAkKExJVkVQ QVRDSF9BQ1RJT05fSE9PS1MpIFwKKyAgICAgICAgICAgJChMSVZFUEFUQ0hfQUNUSU9OX0hPT0tT X05PRlVOQykKZGlmZiAtLWdpdCBhL3hlbi90ZXN0L2xpdmVwYXRjaC94ZW5fYWN0aW9uX2hvb2tz X25vZnVuYy5jIGIveGVuL3Rlc3QvbGl2ZXBhdGNoL3hlbl9hY3Rpb25faG9va3Nfbm9mdW5jLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMmI0ZTkwNDM2ZgotLS0gL2Rl di9udWxsCisrKyBiL3hlbi90ZXN0L2xpdmVwYXRjaC94ZW5fYWN0aW9uX2hvb2tzX25vZnVuYy5j CkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgQW1hem9uLmNvbSwg SW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKwor I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4v dHlwZXMuaD4KKyNpbmNsdWRlIDx4ZW4vdmVyc2lvbi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0 Y2guaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoX3BheWxvYWQuaD4KKworI2luY2x1ZGUgPHB1 YmxpYy9zeXNjdGwuaD4KKworc3RhdGljIHVuc2lnbmVkIGludCBhcHBseV9jbnQ7CitzdGF0aWMg dW5zaWduZWQgaW50IHJldmVydF9jbnQ7CisKK3N0YXRpYyBpbnQgYXBwbHlfaG9vayhsaXZlcGF0 Y2hfcGF5bG9hZF90ICpwYXlsb2FkKQoreworICAgIGludCBpOworCisgICAgcHJpbnRrKEtFUk5f REVCVUcgIiVzOiBIb29rIHN0YXJ0aW5nLlxuIiwgX19mdW5jX18pOworCisgICAgZm9yIChpID0g MDsgaSA8IHBheWxvYWQtPm5mdW5jczsgaSsrKQorICAgIHsKKyAgICAgICAgc3RydWN0IGxpdmVw YXRjaF9mdW5jICpmdW5jID0gJnBheWxvYWQtPmZ1bmNzW2ldOworCisgICAgICAgIGFwcGx5X2Nu dCsrOworICAgICAgICBwcmludGsoS0VSTl9ERUJVRyAiJXM6IGFwcGx5aW5nOiAlc1xuIiwgX19m dW5jX18sIGZ1bmMtPm5hbWUpOworICAgIH0KKworICAgIHByaW50ayhLRVJOX0RFQlVHICIlczog SG9vayBkb25lLlxuIiwgX19mdW5jX18pOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgcmV2ZXJ0X2hvb2sobGl2ZXBhdGNoX3BheWxvYWRfdCAqcGF5bG9hZCkKK3sKKyAgICBpbnQg aTsKKworICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogSG9vayBzdGFydGluZy5cbiIsIF9fZnVu Y19fKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBwYXlsb2FkLT5uZnVuY3M7IGkrKykKKyAgICB7 CisgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYyA9ICZwYXlsb2FkLT5mdW5jc1tp XTsKKworICAgICAgICByZXZlcnRfY250Kys7CisgICAgICAgIHByaW50ayhLRVJOX0RFQlVHICIl czogcmV2ZXJ0aW5nOiAlc1xuIiwgX19mdW5jX18sIGZ1bmMtPm5hbWUpOworICAgIH0KKworICAg IHByaW50ayhLRVJOX0RFQlVHICIlczogSG9vayBkb25lLlxuIiwgX19mdW5jX18pOworCisgICAg cmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHBvc3RfcmV2ZXJ0X2hvb2sobGl2ZXBhdGNoX3Bh eWxvYWRfdCAqcGF5bG9hZCkKK3sKKyAgICBpbnQgaTsKKworICAgIHByaW50ayhLRVJOX0RFQlVH ICIlczogSG9vayBzdGFydGluZy5cbiIsIF9fZnVuY19fKTsKKworICAgIGZvciAoaSA9IDA7IGkg PCBwYXlsb2FkLT5uZnVuY3M7IGkrKykKKyAgICB7CisgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hf ZnVuYyAqZnVuYyA9ICZwYXlsb2FkLT5mdW5jc1tpXTsKKworICAgICAgICBwcmludGsoS0VSTl9E RUJVRyAiJXM6IHJldmVydGVkOiAlc1xuIiwgX19mdW5jX18sIGZ1bmMtPm5hbWUpOworICAgIH0K KworICAgIEJVR19PTihhcHBseV9jbnQgPiAwIHx8IHJldmVydF9jbnQgPiAwKTsKKyAgICBwcmlu dGsoS0VSTl9ERUJVRyAiJXM6IEhvb2sgZG9uZS5cbiIsIF9fZnVuY19fKTsKK30KKworTElWRVBB VENIX0FQUExZX0hPT0soYXBwbHlfaG9vayk7CitMSVZFUEFUQ0hfUkVWRVJUX0hPT0socmV2ZXJ0 X2hvb2spOworCitMSVZFUEFUQ0hfUE9TVFJFVkVSVF9IT09LKHBvc3RfcmV2ZXJ0X2hvb2spOwor CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KLS0gCjIuMTYuNQoKCgoKQW1hem9uIERldmVsb3Bt ZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNlbnN0ci4gMzgKMTAxMTcgQmVybGluCkdlc2No YWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxhZWdlciwgUmFsZiBIZXJicmljaApFaW5nZXRy YWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVuYnVyZyB1bnRlciBIUkIgMTQ5MTczIEIKU2l0 ejogQmVybGluClVzdC1JRDogREUgMjg5IDIzNyA4NzkKCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=