From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH MM-PART3 v2 12/12] xen/arm: mm: Remove set_pte_flags_on_range() Date: Tue, 14 May 2019 13:31:25 +0100 Message-ID: <20190514123125.29086-13-julien.grall@arm.com> References: <20190514123125.29086-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWb0-0005WX-OY for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:31:50 +0000 In-Reply-To: <20190514123125.29086-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii Anisov List-Id: xen-devel@lists.xenproject.org c2V0X3B0ZV9mbGFnc19vbl9yYW5nZSgpIGlzIHlldCBhbm90aGVyIGZ1bmN0aW9uIHRoYXQgd2ls bCBvcGVuLWNvZGUKdXBkYXRlIHRvIGEgc3BlY2lmaWMgcmFuZ2UgaW4gdGhlIFhlbiBwYWdlLXRh Ymxlcy4gSXQgY2FuIGJlIGNvbXBsZXRlbHkKZHJvcHBlZCBieSB1c2luZyBlaXRoZXIgbW9kaWZ5 X3hlbl9tYXBwaW5ncygpIG9yIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCkuCgpTaWduZWQtb2ZmLWJ5 OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpSZXZpZXdlZC1ieTogQW5kcmlp IEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KCi0tLQogICAgQ2hhbmdlcyBpbiB2MjoK ICAgICAgICAtIEFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gcGFuaWMKICAgICAgICAtIEFkZCBBbmRy aWkncyByZXZpZXdlZC1ieQotLS0KIHhlbi9hcmNoL2FybS9tbS5jIHwgNTggKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEwIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9tbS5jIGIveGVuL2FyY2gvYXJtL21tLmMKaW5kZXggMjNjYTYxZThmMC4uZDc0MTAx YmNkMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL21tLmMKKysrIGIveGVuL2FyY2gvYXJtL21t LmMKQEAgLTEyNzcsNTIgKzEyNzcsNiBAQCBpbnQgbW9kaWZ5X3hlbl9tYXBwaW5ncyh1bnNpZ25l ZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQgaW50IGZsYWdzKQogICAgIHJldHVy biB4ZW5fcHRfdXBkYXRlKHMsIElOVkFMSURfTUZOLCAoZSAtIHMpID4+IFBBR0VfU0hJRlQsIGZs YWdzKTsKIH0KIAotZW51bSBtZyB7IG1nX2NsZWFyLCBtZ19ybywgbWdfcncsIG1nX3J4IH07Ci1z dGF0aWMgdm9pZCBzZXRfcHRlX2ZsYWdzX29uX3JhbmdlKGNvbnN0IGNoYXIgKnAsIHVuc2lnbmVk IGxvbmcgbCwgZW51bSBtZyBtZykKLXsKLSAgICBscGFlX3QgcHRlOwotICAgIGludCBpOwotCi0g ICAgQVNTRVJUKGlzX2tlcm5lbChwKSAmJiBpc19rZXJuZWwocCArIGwpKTsKLQotICAgIC8qIENh biBvbmx5IGd1YXJkIGluIHBhZ2UgZ3JhbnVsYXJpdHkgKi8KLSAgICBBU1NFUlQoISgodW5zaWdu ZWQgbG9uZykgcCAmIH5QQUdFX01BU0spKTsKLSAgICBBU1NFUlQoIShsICYgflBBR0VfTUFTSykp OwotCi0gICAgZm9yICggaSA9IChwIC0gX3N0YXJ0KSAvIFBBR0VfU0laRTsgCi0gICAgICAgICAg aSA8IChwICsgbCAtIF9zdGFydCkgLyBQQUdFX1NJWkU7IAotICAgICAgICAgIGkrKyApCi0gICAg ewotICAgICAgICBwdGUgPSB4ZW5feGVubWFwW2ldOwotICAgICAgICBzd2l0Y2ggKCBtZyApCi0g ICAgICAgIHsKLSAgICAgICAgY2FzZSBtZ19jbGVhcjoKLSAgICAgICAgICAgIHB0ZS5wdC52YWxp ZCA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBtZ19ybzoKLSAgICAgICAg ICAgIHB0ZS5wdC52YWxpZCA9IDE7Ci0gICAgICAgICAgICBwdGUucHQucHhuID0gMTsKLSAgICAg ICAgICAgIHB0ZS5wdC54biA9IDE7Ci0gICAgICAgICAgICBwdGUucHQucm8gPSAxOwotICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgbWdfcnc6Ci0gICAgICAgICAgICBwdGUucHQudmFs aWQgPSAxOwotICAgICAgICAgICAgcHRlLnB0LnB4biA9IDE7Ci0gICAgICAgICAgICBwdGUucHQu eG4gPSAxOwotICAgICAgICAgICAgcHRlLnB0LnJvID0gMDsKLSAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICBjYXNlIG1nX3J4OgotICAgICAgICAgICAgcHRlLnB0LnZhbGlkID0gMTsKLSAgICAg ICAgICAgIHB0ZS5wdC5weG4gPSAwOwotICAgICAgICAgICAgcHRlLnB0LnhuID0gMDsKLSAgICAg ICAgICAgIHB0ZS5wdC5ybyA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg ICAgICB3cml0ZV9wdGUoeGVuX3hlbm1hcCArIGksIHB0ZSk7Ci0gICAgfQotICAgIGZsdXNoX3hl bl90bGJfbG9jYWwoKTsKLX0KLQogLyogUmVsZWFzZSBhbGwgX19pbml0IGFuZCBfX2luaXRkYXRh IHJhbmdlcyB0byBiZSByZXVzZWQgKi8KIHZvaWQgZnJlZV9pbml0X21lbW9yeSh2b2lkKQogewpA QCAtMTMzMSw4ICsxMjg1LDEyIEBAIHZvaWQgZnJlZV9pbml0X21lbW9yeSh2b2lkKQogICAgIHVp bnQzMl90IGluc247CiAgICAgdW5zaWduZWQgaW50IGksIG5yID0gbGVuIC8gc2l6ZW9mKGluc24p OwogICAgIHVpbnQzMl90ICpwOworICAgIGludCByYzsKIAotICAgIHNldF9wdGVfZmxhZ3Nfb25f cmFuZ2UoX19pbml0X2JlZ2luLCBsZW4sIG1nX3J3KTsKKyAgICByYyA9IG1vZGlmeV94ZW5fbWFw cGluZ3MoKHVuc2lnbmVkIGxvbmcpX19pbml0X2JlZ2luLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodW5zaWduZWQgbG9uZylfX2luaXRfZW5kLCBQQUdFX0hZUEVSVklTT1JfUlcpOwor ICAgIGlmICggcmMgKQorICAgICAgICBwYW5pYygiVW5hYmxlIHRvIG1hcCBSVyB0aGUgaW5pdCBz ZWN0aW9uIChyYyA9ICVkKVxuIiwgcmMpOwogCiAgICAgLyoKICAgICAgKiBGcm9tIG5vdyBvbiwg aW5pdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBleGVjdXRpb24gYW55bW9yZSwKQEAgLTEzNTAsNyAr MTMwOCwxMSBAQCB2b2lkIGZyZWVfaW5pdF9tZW1vcnkodm9pZCkKICAgICBmb3IgKCBpID0gMDsg aSA8IG5yOyBpKysgKQogICAgICAgICAqKHAgKyBpKSA9IGluc247CiAKLSAgICBzZXRfcHRlX2Zs YWdzX29uX3JhbmdlKF9faW5pdF9iZWdpbiwgbGVuLCBtZ19jbGVhcik7CisgICAgcmMgPSBkZXN0 cm95X3hlbl9tYXBwaW5ncygodW5zaWduZWQgbG9uZylfX2luaXRfYmVnaW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylfX2luaXRfZW5kKTsKKyAgICBpZiAo IHJjICkKKyAgICAgICAgcGFuaWMoIlVuYWJsZSB0byByZW1vdmUgdGhlIGluaXQgc2VjdGlvbiAo cmMgPSAlZClcbiIsIHJjKTsKKwogICAgIGluaXRfZG9taGVhcF9wYWdlcyhwYSwgcGEgKyBsZW4p OwogICAgIHByaW50aygiRnJlZWQgJWxka0IgaW5pdCBtZW1vcnkuXG4iLCAobG9uZykoX19pbml0 X2VuZC1fX2luaXRfYmVnaW4pPj4xMCk7CiB9Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs 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.0 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 BB88EC04AB4 for ; Tue, 14 May 2019 12:32:06 +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 9818D20850 for ; Tue, 14 May 2019 12:32:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9818D20850 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.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 1hQWb2-0005YQ-H5; Tue, 14 May 2019 12:31:52 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWb0-0005WX-OY for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:31:50 +0000 X-Inumbo-ID: 3e86e24d-7644-11e9-8980-bc764e045a96 Received: from foss.arm.com (unknown [217.140.101.70]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTP id 3e86e24d-7644-11e9-8980-bc764e045a96; Tue, 14 May 2019 12:31:49 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CF7E115AD; Tue, 14 May 2019 05:31:48 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9BE8A3F71E; Tue, 14 May 2019 05:31:47 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Tue, 14 May 2019 13:31:25 +0100 Message-Id: <20190514123125.29086-13-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190514123125.29086-1-julien.grall@arm.com> References: <20190514123125.29086-1-julien.grall@arm.com> Subject: [Xen-devel] [PATCH MM-PART3 v2 12/12] xen/arm: mm: Remove set_pte_flags_on_range() 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: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii Anisov MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190514123125._breAZfArgS-i4EYQyBCfjQbSBv11iZ_cAsRvYYeRIY@z> c2V0X3B0ZV9mbGFnc19vbl9yYW5nZSgpIGlzIHlldCBhbm90aGVyIGZ1bmN0aW9uIHRoYXQgd2ls bCBvcGVuLWNvZGUKdXBkYXRlIHRvIGEgc3BlY2lmaWMgcmFuZ2UgaW4gdGhlIFhlbiBwYWdlLXRh Ymxlcy4gSXQgY2FuIGJlIGNvbXBsZXRlbHkKZHJvcHBlZCBieSB1c2luZyBlaXRoZXIgbW9kaWZ5 X3hlbl9tYXBwaW5ncygpIG9yIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCkuCgpTaWduZWQtb2ZmLWJ5 OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpSZXZpZXdlZC1ieTogQW5kcmlp IEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KCi0tLQogICAgQ2hhbmdlcyBpbiB2MjoK ICAgICAgICAtIEFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gcGFuaWMKICAgICAgICAtIEFkZCBBbmRy aWkncyByZXZpZXdlZC1ieQotLS0KIHhlbi9hcmNoL2FybS9tbS5jIHwgNTggKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEwIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9tbS5jIGIveGVuL2FyY2gvYXJtL21tLmMKaW5kZXggMjNjYTYxZThmMC4uZDc0MTAx YmNkMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL21tLmMKKysrIGIveGVuL2FyY2gvYXJtL21t LmMKQEAgLTEyNzcsNTIgKzEyNzcsNiBAQCBpbnQgbW9kaWZ5X3hlbl9tYXBwaW5ncyh1bnNpZ25l ZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQgaW50IGZsYWdzKQogICAgIHJldHVy biB4ZW5fcHRfdXBkYXRlKHMsIElOVkFMSURfTUZOLCAoZSAtIHMpID4+IFBBR0VfU0hJRlQsIGZs YWdzKTsKIH0KIAotZW51bSBtZyB7IG1nX2NsZWFyLCBtZ19ybywgbWdfcncsIG1nX3J4IH07Ci1z dGF0aWMgdm9pZCBzZXRfcHRlX2ZsYWdzX29uX3JhbmdlKGNvbnN0IGNoYXIgKnAsIHVuc2lnbmVk IGxvbmcgbCwgZW51bSBtZyBtZykKLXsKLSAgICBscGFlX3QgcHRlOwotICAgIGludCBpOwotCi0g ICAgQVNTRVJUKGlzX2tlcm5lbChwKSAmJiBpc19rZXJuZWwocCArIGwpKTsKLQotICAgIC8qIENh biBvbmx5IGd1YXJkIGluIHBhZ2UgZ3JhbnVsYXJpdHkgKi8KLSAgICBBU1NFUlQoISgodW5zaWdu ZWQgbG9uZykgcCAmIH5QQUdFX01BU0spKTsKLSAgICBBU1NFUlQoIShsICYgflBBR0VfTUFTSykp OwotCi0gICAgZm9yICggaSA9IChwIC0gX3N0YXJ0KSAvIFBBR0VfU0laRTsgCi0gICAgICAgICAg aSA8IChwICsgbCAtIF9zdGFydCkgLyBQQUdFX1NJWkU7IAotICAgICAgICAgIGkrKyApCi0gICAg ewotICAgICAgICBwdGUgPSB4ZW5feGVubWFwW2ldOwotICAgICAgICBzd2l0Y2ggKCBtZyApCi0g ICAgICAgIHsKLSAgICAgICAgY2FzZSBtZ19jbGVhcjoKLSAgICAgICAgICAgIHB0ZS5wdC52YWxp ZCA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBtZ19ybzoKLSAgICAgICAg ICAgIHB0ZS5wdC52YWxpZCA9IDE7Ci0gICAgICAgICAgICBwdGUucHQucHhuID0gMTsKLSAgICAg ICAgICAgIHB0ZS5wdC54biA9IDE7Ci0gICAgICAgICAgICBwdGUucHQucm8gPSAxOwotICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgbWdfcnc6Ci0gICAgICAgICAgICBwdGUucHQudmFs aWQgPSAxOwotICAgICAgICAgICAgcHRlLnB0LnB4biA9IDE7Ci0gICAgICAgICAgICBwdGUucHQu eG4gPSAxOwotICAgICAgICAgICAgcHRlLnB0LnJvID0gMDsKLSAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICBjYXNlIG1nX3J4OgotICAgICAgICAgICAgcHRlLnB0LnZhbGlkID0gMTsKLSAgICAg ICAgICAgIHB0ZS5wdC5weG4gPSAwOwotICAgICAgICAgICAgcHRlLnB0LnhuID0gMDsKLSAgICAg ICAgICAgIHB0ZS5wdC5ybyA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg ICAgICB3cml0ZV9wdGUoeGVuX3hlbm1hcCArIGksIHB0ZSk7Ci0gICAgfQotICAgIGZsdXNoX3hl bl90bGJfbG9jYWwoKTsKLX0KLQogLyogUmVsZWFzZSBhbGwgX19pbml0IGFuZCBfX2luaXRkYXRh IHJhbmdlcyB0byBiZSByZXVzZWQgKi8KIHZvaWQgZnJlZV9pbml0X21lbW9yeSh2b2lkKQogewpA QCAtMTMzMSw4ICsxMjg1LDEyIEBAIHZvaWQgZnJlZV9pbml0X21lbW9yeSh2b2lkKQogICAgIHVp bnQzMl90IGluc247CiAgICAgdW5zaWduZWQgaW50IGksIG5yID0gbGVuIC8gc2l6ZW9mKGluc24p OwogICAgIHVpbnQzMl90ICpwOworICAgIGludCByYzsKIAotICAgIHNldF9wdGVfZmxhZ3Nfb25f cmFuZ2UoX19pbml0X2JlZ2luLCBsZW4sIG1nX3J3KTsKKyAgICByYyA9IG1vZGlmeV94ZW5fbWFw cGluZ3MoKHVuc2lnbmVkIGxvbmcpX19pbml0X2JlZ2luLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodW5zaWduZWQgbG9uZylfX2luaXRfZW5kLCBQQUdFX0hZUEVSVklTT1JfUlcpOwor ICAgIGlmICggcmMgKQorICAgICAgICBwYW5pYygiVW5hYmxlIHRvIG1hcCBSVyB0aGUgaW5pdCBz ZWN0aW9uIChyYyA9ICVkKVxuIiwgcmMpOwogCiAgICAgLyoKICAgICAgKiBGcm9tIG5vdyBvbiwg aW5pdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBleGVjdXRpb24gYW55bW9yZSwKQEAgLTEzNTAsNyAr MTMwOCwxMSBAQCB2b2lkIGZyZWVfaW5pdF9tZW1vcnkodm9pZCkKICAgICBmb3IgKCBpID0gMDsg aSA8IG5yOyBpKysgKQogICAgICAgICAqKHAgKyBpKSA9IGluc247CiAKLSAgICBzZXRfcHRlX2Zs YWdzX29uX3JhbmdlKF9faW5pdF9iZWdpbiwgbGVuLCBtZ19jbGVhcik7CisgICAgcmMgPSBkZXN0 cm95X3hlbl9tYXBwaW5ncygodW5zaWduZWQgbG9uZylfX2luaXRfYmVnaW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylfX2luaXRfZW5kKTsKKyAgICBpZiAo IHJjICkKKyAgICAgICAgcGFuaWMoIlVuYWJsZSB0byByZW1vdmUgdGhlIGluaXQgc2VjdGlvbiAo cmMgPSAlZClcbiIsIHJjKTsKKwogICAgIGluaXRfZG9taGVhcF9wYWdlcyhwYSwgcGEgKyBsZW4p OwogICAgIHByaW50aygiRnJlZWQgJWxka0IgaW5pdCBtZW1vcnkuXG4iLCAobG9uZykoX19pbml0 X2VuZC1fX2luaXRfYmVnaW4pPj4xMCk7CiB9Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs