From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v5 09/13] xen: move do_nmi_op and make it x86 only Date: Mon, 26 Jun 2017 17:28:38 +0100 Message-ID: <20170626162842.482-10-wei.liu2@citrix.com> References: <20170626162842.482-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPWt1-00059E-R8 for xen-devel@lists.xenproject.org; Mon, 26 Jun 2017 16:29:15 +0000 In-Reply-To: <20170626162842.482-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org U2luY2UgQVJNIGRvZXNuJ3QgbmVlZCBkb19ubWlfb3AsIG1vdmUgdGhlIGh5cGVyY2FsbCBoYW5k bGVyIGZyb20KY29tbW9uL2tlcm5lbC5jIHRvIHB2L2NhbGxiYWNrLmMuIERyb3AgdGhlIHN0dWJz IGluIEFSTS4gRGVsZXRlIHRoZQpjb21tb24gYW5kIEFSTSBubWkuaCBhbmQgYWRqdXN0IGhlYWRl ciBpbmNsdXNpb25zIGluIHZhcmlvdXMgZmlsZXMuCgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBTdGVm YW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwg PGp1bGllbi5ncmFsbEBhcm0uY29tPgoKQVJNIGJ1aWxkIHRlc3QgcGFzc2VkLgotLS0KIHhlbi9h cmNoL3g4Ni9ubWkuYyAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L29wcm9maWxl L25taV9pbnQuYyB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYyAgICAgIHwgNDkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90 cmFwcy5jICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jICAg ICB8ICAyICstCiB4ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYyAgICAgIHwgIDUgLS0tLS0KIHhl bi9jb21tb24va2VybmVsLmMgICAgICAgICAgICAgfCAyNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiB4ZW4vaW5jbHVkZS9hc20tYXJtL25taS5oICAgICAgIHwgMTUgLS0tLS0tLS0tLS0tLQogeGVu L2luY2x1ZGUveGVuL25taS5oICAgICAgICAgICB8IDE0IC0tLS0tLS0tLS0tLQogOSBmaWxlcyBj aGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw MDY0NCB4ZW4vaW5jbHVkZS9hc20tYXJtL25taS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgeGVuL2lu Y2x1ZGUveGVuL25taS5oCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L25taS5jIGIveGVuL2Fy Y2gveDg2L25taS5jCmluZGV4IDQxMGNmYTFmOTQuLmNlZDYxZmQxN2UgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9ubWkuYworKysgYi94ZW4vYXJjaC94ODYvbm1pLmMKQEAgLTE3LDcgKzE3LDYg QEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8 eGVuL2lycS5oPgotI2luY2x1ZGUgPHhlbi9ubWkuaD4KICNpbmNsdWRlIDx4ZW4vZGVsYXkuaD4K ICNpbmNsdWRlIDx4ZW4vdGltZS5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgpAQCAtMjksNiAr MjgsNyBAQAogI2luY2x1ZGUgPGFzbS9tYzE0NjgxOHJ0Yy5oPgogI2luY2x1ZGUgPGFzbS9tc3Iu aD4KICNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL25taS5oPgogI2luY2x1 ZGUgPGFzbS9kZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgogI2luY2x1ZGUgPGFz bS9hcGljLmg+CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jIGIv eGVuL2FyY2gveDg2L29wcm9maWxlL25taV9pbnQuYwppbmRleCAxMzUzNGQ0OTE0Li4xMjZmN2E4 ZDlmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMKQEAgLTE1LDcgKzE1LDYgQEAKICNpbmNsdWRl IDx4ZW4vdHlwZXMuaD4KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRlIDx4ZW4vaW5p dC5oPgotI2luY2x1ZGUgPHhlbi9ubWkuaD4KICNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+CiAjaW5j bHVkZSA8eGVuL2RlbGF5Lmg+CiAjaW5jbHVkZSA8eGVuL3hlbm9wcm9mLmg+CkBAIC0yNCw2ICsy Myw3IEBACiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNpbmNsdWRlIDxhc20vcmVncy5oPgogI2lu Y2x1ZGUgPGFzbS9jdXJyZW50Lmg+CisjaW5jbHVkZSA8YXNtL25taS5oPgogCiAjaW5jbHVkZSAi b3BfY291bnRlci5oIgogI2luY2x1ZGUgIm9wX3g4Nl9tb2RlbC5oIgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3B2L2NhbGxiYWNrLmMgYi94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYwppbmRl eCBiOWRkMzliZjBlLi41MzE3YWU4ZjA1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvY2Fs bGJhY2suYworKysgYi94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYwpAQCAtMjIsNiArMjIsNyBA QAogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KICNpbmNsdWRl IDxjb21wYXQvY2FsbGJhY2suaD4KKyNpbmNsdWRlIDxjb21wYXQvbm1pLmg+CiAKICNpbmNsdWRl IDxhc20vY3VycmVudC5oPgogI2luY2x1ZGUgPGFzbS9ubWkuaD4KQEAgLTQxMSw2ICs0MTIsNTQg QEAgaW50IGNvbXBhdF9zZXRfdHJhcF90YWJsZShYRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb19j b21wYXRfdCkgdHJhcHMpCiAgICAgcmV0dXJuIHJjOwogfQogCitsb25nIGRvX25taV9vcCh1bnNp Z25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKK3sKKyAgICBz dHJ1Y3QgeGVubm1pX2NhbGxiYWNrIGNiOworICAgIGxvbmcgcmMgPSAwOworCisgICAgc3dpdGNo ICggY21kICkKKyAgICB7CisgICAgY2FzZSBYRU5OTUlfcmVnaXN0ZXJfY2FsbGJhY2s6CisgICAg ICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmNiLCBhcmcs IDEpICkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICByYyA9IHJlZ2lzdGVyX2d1ZXN0X25t aV9jYWxsYmFjayhjYi5oYW5kbGVyX2FkZHJlc3MpOworICAgICAgICBicmVhazsKKyAgICBjYXNl IFhFTk5NSV91bnJlZ2lzdGVyX2NhbGxiYWNrOgorICAgICAgICByYyA9IHVucmVnaXN0ZXJfZ3Vl c3Rfbm1pX2NhbGxiYWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg IHJjID0gLUVOT1NZUzsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJjOwor fQorCitpbnQgY29tcGF0X25taV9vcCh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHZvaWQpIGFyZykKK3sKKyAgICBzdHJ1Y3QgY29tcGF0X25taV9jYWxsYmFjayBjYjsK KyAgICBpbnQgcmMgPSAwOworCisgICAgc3dpdGNoICggY21kICkKKyAgICB7CisgICAgY2FzZSBY RU5OTUlfcmVnaXN0ZXJfY2FsbGJhY2s6CisgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAg aWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmNiLCBhcmcsIDEpICkKKyAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICByYyA9IHJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjayhjYi5oYW5kbGVyX2FkZHJl c3MpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTk5NSV91bnJlZ2lzdGVyX2NhbGxiYWNr OgorICAgICAgICByYyA9IHVucmVnaXN0ZXJfZ3Vlc3Rfbm1pX2NhbGxiYWNrKCk7CisgICAgICAg IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJjID0gLUVOT1NZUzsKKyAgICAgICAgYnJl YWs7CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVz OgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJj aC94ODYvdHJhcHMuYwppbmRleCBkODk0MDlmZjA1Li41OGY1MjkyNmQ5IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtNDMsNyAr NDMsNiBAQAogI2luY2x1ZGUgPHhlbi9kb21haW5fcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9zeW1i b2xzLmg+CiAjaW5jbHVkZSA8eGVuL2lvY2FwLmg+Ci0jaW5jbHVkZSA8eGVuL25taS5oPgogI2lu Y2x1ZGUgPHhlbi92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8eGVuL2tleGVjLmg+CiAjaW5jbHVkZSA8 eGVuL3RyYWNlLmg+CkBAIC02NCw2ICs2Myw3IEBACiAjaW5jbHVkZSA8YXNtL3hzdGF0ZS5oPgog I2luY2x1ZGUgPGFzbS9kZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KKyNpbmNsdWRl IDxhc20vbm1pLmg+CiAjaW5jbHVkZSA8YXNtL3NoYXJlZC5oPgogI2luY2x1ZGUgPGFzbS94ODZf ZW11bGF0ZS5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC90cmFwcy5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCmluZGV4IGEx NTIzMWNhMGMuLjQxZWM3OGY4ZmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJh cHMuYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKQEAgLTEwLDcgKzEwLDYgQEAK ICNpbmNsdWRlIDx4ZW4vY29uc29sZS5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1 ZGUgPHhlbi9zaHV0ZG93bi5oPgotI2luY2x1ZGUgPHhlbi9ubWkuaD4KICNpbmNsdWRlIDx4ZW4v Z3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL3dhdGNoZG9nLmg+CiAjaW5jbHVkZSA8eGVu L2h5cGVyY2FsbC5oPgpAQCAtMTgsNiArMTcsNyBAQAogI2luY2x1ZGUgPGFzbS9mbHVzaHRsYi5o PgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1ZGUgPGFzbS9ldmVudC5oPgorI2luY2x1 ZGUgPGFzbS9ubWkuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2Uu aD4KICNpbmNsdWRlIDxhc20vc2hhcmVkLmg+CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2NvbXBh dC9rZXJuZWwuYyBiL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCmluZGV4IGRmOTNmZGQ4OWMu LjY0MjMyNjY5ZDIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCisrKyBi L3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCkBAIC05LDExICs5LDkgQEAgYXNtKCIuZmlsZSBc IiIgX19GSUxFX18gIlwiIik7CiAjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVu L3ZlcnNpb24uaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNpbmNsdWRlIDx4ZW4vbm1pLmg+ CiAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+ CiAjaW5jbHVkZSA8Y29tcGF0L3hlbi5oPgotI2luY2x1ZGUgPGNvbXBhdC9ubWkuaD4KICNpbmNs dWRlIDxjb21wYXQvdmVyc2lvbi5oPgogCiBleHRlcm4geGVuX2NvbW1hbmRsaW5lX3Qgc2F2ZWRf Y21kbGluZTsKQEAgLTM5LDkgKzM3LDYgQEAgQ0hFQ0tfVFlQRShjYXBhYmlsaXRpZXNfaW5mbyk7 CiAKIENIRUNLX1RZUEUoZG9tYWluX2hhbmRsZSk7CiAKLSNkZWZpbmUgeGVubm1pX2NhbGxiYWNr IGNvbXBhdF9ubWlfY2FsbGJhY2sKLSNkZWZpbmUgeGVubm1pX2NhbGxiYWNrX3QgY29tcGF0X25t aV9jYWxsYmFja190Ci0KICNpZmRlZiBDT01QQVRfVk1fQVNTSVNUX1ZBTElECiAjdW5kZWYgVk1f QVNTSVNUX1ZBTElECiAjZGVmaW5lIFZNX0FTU0lTVF9WQUxJRCBDT01QQVRfVk1fQVNTSVNUX1ZB TElECmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tlcm5lbC5jIGIveGVuL2NvbW1vbi9rZXJuZWwu YwppbmRleCBlMWViYjBiNDEyLi5jZTdjYjhhZGI1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2tl cm5lbC5jCisrKyBiL3hlbi9jb21tb24va2VybmVsLmMKQEAgLTEwLDEyICsxMCwxMCBAQAogI2lu Y2x1ZGUgPHhlbi92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAjaW5jbHVkZSA8 eGVuL3BhZ2luZy5oPgotI2luY2x1ZGUgPHhlbi9ubWkuaD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3Rf YWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhzbS94c20u aD4KICNpbmNsdWRlIDxhc20vY3VycmVudC5oPgotI2luY2x1ZGUgPHB1YmxpYy9ubWkuaD4KICNp bmNsdWRlIDxwdWJsaWMvdmVyc2lvbi5oPgogCiAjaWZuZGVmIENPTVBBVApAQCAtNDMxLDMwICs0 MjksNiBAQCBETyh4ZW5fdmVyc2lvbikoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpCiAgICAgcmV0dXJuIC1FTk9TWVM7CiB9CiAKLURPKG5taV9vcCkodW5zaWduZWQg aW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCi17Ci0gICAgc3RydWN0 IHhlbm5taV9jYWxsYmFjayBjYjsKLSAgICBsb25nIHJjID0gMDsKLQotICAgIHN3aXRjaCAoIGNt ZCApCi0gICAgewotICAgIGNhc2UgWEVOTk1JX3JlZ2lzdGVyX2NhbGxiYWNrOgotICAgICAgICBy YyA9IC1FRkFVTFQ7Ci0gICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZjYiwgYXJnLCAxKSAp Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgcmMgPSByZWdpc3Rlcl9ndWVzdF9ubWlfY2Fs bGJhY2soY2IuaGFuZGxlcl9hZGRyZXNzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBYRU5O TUlfdW5yZWdpc3Rlcl9jYWxsYmFjazoKLSAgICAgICAgcmMgPSB1bnJlZ2lzdGVyX2d1ZXN0X25t aV9jYWxsYmFjaygpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICByYyA9 IC1FTk9TWVM7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiByYzsKLX0KLQog I2lmZGVmIFZNX0FTU0lTVF9WQUxJRAogRE8odm1fYXNzaXN0KSh1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBpbnQgdHlwZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbm1p LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL25taS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBhNjA1ODdlN2QxLi4wMDAwMDAwMDAwCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbm1p LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0jaWZuZGVmIEFTTV9OTUlfSAotI2Rl ZmluZSBBU01fTk1JX0gKLQotI2RlZmluZSByZWdpc3Rlcl9ndWVzdF9ubWlfY2FsbGJhY2soYSkg ICgtRU5PU1lTKQotI2RlZmluZSB1bnJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjaygpICgtRU5P U1lTKQotCi0jZW5kaWYgLyogQVNNX05NSV9IICovCi0vKgotICogTG9jYWwgdmFyaWFibGVzOgot ICogbW9kZTogQwotICogYy1maWxlLXN0eWxlOiAiQlNEIgotICogYy1iYXNpYy1vZmZzZXQ6IDQK LSAqIGluZGVudC10YWJzLW1vZGU6IG5pbAotICogRW5kOgotICovCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vbm1pLmggYi94ZW4vaW5jbHVkZS94ZW4vbm1pLmgKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGU1MjZiNmFiNmYuLjAwMDAwMDAwMDAKLS0tIGEveGVuL2luY2x1ZGUv eGVuL25taS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgotICogbm1pLmgKLSAqCi0gKiBSZWdpc3RlciBhbmQgdW5yZWdpc3RlciBOTUkgY2Fs bGJhY2tzLgotICoKLSAqIENvcHlyaWdodCAoYykgMjAwNiwgSWFuIENhbXBiZWxsIDxpYW4uY2Ft cGJlbGxAeGVuc291cmNlLmNvbT4KLSAqLwotCi0jaWZuZGVmIF9fWEVOX05NSV9IX18KLSNkZWZp bmUgX19YRU5fTk1JX0hfXwotCi0jaW5jbHVkZSA8YXNtL25taS5oPgotCi0jZW5kaWYgLyogX19Y RU5fTk1JX0hfXyAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==