From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [RFC v2 02/12] Rename PSR sysctl/domctl interfaces and xsm policy to make them be general. Date: Thu, 20 Jul 2017 16:49:03 +0800 Message-ID: <1500540553-29199-3-git-send-email-yi.y.sun@linux.intel.com> References: <1500540553-29199-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dY7N9-0007HT-Nn for xen-devel@lists.xenproject.org; Thu, 20 Jul 2017 09:03:51 +0000 In-Reply-To: <1500540553-29199-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , julien.grall@arm.com, mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW5hbWVzIFBTUiBzeXNjdGwvZG9tY3RsIGludGVyZmFjZXMgYW5kIHJlbGF0 ZWQgeHNtIHBvbGljeSB0bwptYWtlIHRoZW0gYmUgZ2VuZXJhbCBmb3IgYWxsIHJlc291cmNlIGFs bG9jYXRpb24gZmVhdHVyZXMgYnV0IG5vdCBvbmx5CmZvciBDQVQuIFRoZW4sIHdlIGNhbiByZXN1 c2UgdGhlIGludGVyZmFjZXMgZm9yIGFsbCBhbGxvY2F0aW9uIGZlYXR1cmVzLgoKU2lnbmVkLW9m Zi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogdG9vbHMvZmxhc2sv cG9saWN5L21vZHVsZXMvZG9tMC50ZSAgfCAgNCArKy0tCiB0b29scy9saWJ4Yy94Y19wc3IuYyAg ICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIHhl bi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvc3lzY3RsLmMgICAgICAgICAgICAgICB8 IDI0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5o ICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAg ICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAg IHwgIDggKysrKy0tLS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgIDgg KysrKy0tLS0KIDggZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZSBiL3Rv b2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbTAudGUKaW5kZXggZDBhNGQ5MS4uMWEzNzZhYyAx MDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZQorKysgYi90b29s cy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlCkBAIC0xNCw3ICsxNCw3IEBAIGFsbG93IGRv bTBfdCB4ZW5fdDp4ZW4gewogCXRtZW1fY29udHJvbCBnZXRzY2hlZHVsZXIgc2V0c2NoZWR1bGVy CiB9OwogYWxsb3cgZG9tMF90IHhlbl90OnhlbjIgewotCXJlc291cmNlX29wIHBzcl9jbXRfb3Ag cHNyX2NhdF9vcCBwbXVfY3RybCBnZXRfc3ltYm9sCisJcmVzb3VyY2Vfb3AgcHNyX2NtdF9vcCBw c3JfYWxsb2Nfb3AgcG11X2N0cmwgZ2V0X3N5bWJvbAogCWdldF9jcHVfbGV2ZWxsaW5nX2NhcHMg Z2V0X2NwdV9mZWF0dXJlc2V0IGxpdmVwYXRjaF9vcAogCWdjb3Zfb3AKIH07CkBAIC0zOSw3ICsz OSw3IEBAIGFsbG93IGRvbTBfdCBkb20wX3Q6ZG9tYWluIHsKIH07CiBhbGxvdyBkb20wX3QgZG9t MF90OmRvbWFpbjIgewogCXNldF9jcHVpZCBnZXR0c2Mgc2V0dHNjIHNldHNjaGVkdWxlciBzZXRf bWF4X2V2dGNobiBzZXRfdm51bWFpbmZvCi0JZ2V0X3ZudW1haW5mbyBwc3JfY210X29wIHBzcl9j YXRfb3AKKwlnZXRfdm51bWFpbmZvIHBzcl9jbXRfb3AgcHNyX2FsbG9jX29wCiB9OwogYWxsb3cg ZG9tMF90IGRvbTBfdDpyZXNvdXJjZSB7IGFkZCByZW1vdmUgfTsKIApkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGMveGNfcHNyLmMgYi90b29scy9saWJ4Yy94Y19wc3IuYwppbmRleCAwMzliOTIwLi43 M2QwNWYyIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19wc3IuYworKysgYi90b29scy9saWJ4 Yy94Y19wc3IuYwpAQCAtMjc0LDExICsyNzQsMTEgQEAgaW50IHhjX3Bzcl9jYXRfc2V0X2RvbWFp bl9kYXRhKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KIAotICAgIGRvbWN0bC5jbWQgPSBYRU5fRE9NQ1RMX3Bzcl9jYXRfb3A7Cisg ICAgZG9tY3RsLmNtZCA9IFhFTl9ET01DVExfcHNyX2FsbG9jX29wOwogICAgIGRvbWN0bC5kb21h aW4gPSAoZG9taWRfdClkb21pZDsKLSAgICBkb21jdGwudS5wc3JfY2F0X29wLmNtZCA9IGNtZDsK LSAgICBkb21jdGwudS5wc3JfY2F0X29wLnRhcmdldCA9IHRhcmdldDsKLSAgICBkb21jdGwudS5w c3JfY2F0X29wLmRhdGEgPSBkYXRhOworICAgIGRvbWN0bC51LnBzcl9hbGxvY19vcC5jbWQgPSBj bWQ7CisgICAgZG9tY3RsLnUucHNyX2FsbG9jX29wLnRhcmdldCA9IHRhcmdldDsKKyAgICBkb21j dGwudS5wc3JfYWxsb2Nfb3AuZGF0YSA9IGRhdGE7CiAKICAgICByZXR1cm4gZG9fZG9tY3RsKHhj aCwgJmRvbWN0bCk7CiB9CkBAIC0zMTAsMTUgKzMxMCwxNSBAQCBpbnQgeGNfcHNyX2NhdF9nZXRf ZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICBy ZXR1cm4gLTE7CiAgICAgfQogCi0gICAgZG9tY3RsLmNtZCA9IFhFTl9ET01DVExfcHNyX2NhdF9v cDsKKyAgICBkb21jdGwuY21kID0gWEVOX0RPTUNUTF9wc3JfYWxsb2Nfb3A7CiAgICAgZG9tY3Rs LmRvbWFpbiA9IChkb21pZF90KWRvbWlkOwotICAgIGRvbWN0bC51LnBzcl9jYXRfb3AuY21kID0g Y21kOwotICAgIGRvbWN0bC51LnBzcl9jYXRfb3AudGFyZ2V0ID0gdGFyZ2V0OworICAgIGRvbWN0 bC51LnBzcl9hbGxvY19vcC5jbWQgPSBjbWQ7CisgICAgZG9tY3RsLnUucHNyX2FsbG9jX29wLnRh cmdldCA9IHRhcmdldDsKIAogICAgIHJjID0gZG9fZG9tY3RsKHhjaCwgJmRvbWN0bCk7CiAKICAg ICBpZiAoICFyYyApCi0gICAgICAgICpkYXRhID0gZG9tY3RsLnUucHNyX2NhdF9vcC5kYXRhOwor ICAgICAgICAqZGF0YSA9IGRvbWN0bC51LnBzcl9hbGxvY19vcC5kYXRhOwogCiAgICAgcmV0dXJu IHJjOwogfQpAQCAtMzI5LDI5ICszMjksMjkgQEAgaW50IHhjX3Bzcl9jYXRfZ2V0X2luZm8oeGNf aW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwgdW5zaWduZWQgaW50IGx2bCwKICAgICBp bnQgcmMgPSAtMTsKICAgICBERUNMQVJFX1NZU0NUTDsKIAotICAgIHN5c2N0bC5jbWQgPSBYRU5f U1lTQ1RMX3Bzcl9jYXRfb3A7Ci0gICAgc3lzY3RsLnUucHNyX2NhdF9vcC50YXJnZXQgPSBzb2Nr ZXQ7CisgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfcHNyX2FsbG9jX29wOworICAgIHN5c2N0 bC51LnBzcl9hbGxvY19vcC50YXJnZXQgPSBzb2NrZXQ7CiAKICAgICBzd2l0Y2ggKCBsdmwgKQog ICAgIHsKICAgICBjYXNlIDI6Ci0gICAgICAgIHN5c2N0bC51LnBzcl9jYXRfb3AuY21kID0gWEVO X1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9pbmZvOworICAgICAgICBzeXNjdGwudS5wc3JfYWxsb2Nf b3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9pbmZvOwogICAgICAgICByYyA9IHhj X3N5c2N0bCh4Y2gsICZzeXNjdGwpOwogICAgICAgICBpZiAoICFyYyApCiAgICAgICAgIHsKLSAg ICAgICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNvc19t YXg7Ci0gICAgICAgICAgICAqY2JtX2xlbiA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5jYXRfaW5m by5jYm1fbGVuOworICAgICAgICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfYWxsb2Nfb3Au dS5jYXRfaW5mby5jb3NfbWF4OworICAgICAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3Jf YWxsb2Nfb3AudS5jYXRfaW5mby5jYm1fbGVuOwogICAgICAgICAgICAgKmNkcF9lbmFibGVkID0g ZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAzOgotICAgICAgICBz eXNjdGwudS5wc3JfY2F0X29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDNfaW5mbzsK KyAgICAgICAgc3lzY3RsLnUucHNyX2FsbG9jX29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NBVF9n ZXRfbDNfaW5mbzsKICAgICAgICAgcmMgPSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKICAgICAg ICAgaWYgKCAhcmMgKQogICAgICAgICB7Ci0gICAgICAgICAgICAqY29zX21heCA9IHN5c2N0bC51 LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jb3NfbWF4OwotICAgICAgICAgICAgKmNibV9sZW4gPSBz eXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2JtX2xlbjsKLSAgICAgICAgICAgICpjZHBf ZW5hYmxlZCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5mbGFncyAmCisgICAgICAg ICAgICAqY29zX21heCA9IHN5c2N0bC51LnBzcl9hbGxvY19vcC51LmNhdF9pbmZvLmNvc19tYXg7 CisgICAgICAgICAgICAqY2JtX2xlbiA9IHN5c2N0bC51LnBzcl9hbGxvY19vcC51LmNhdF9pbmZv LmNibV9sZW47CisgICAgICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfYWxsb2Nf b3AudS5jYXRfaW5mby5mbGFncyAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fU1lT Q1RMX1BTUl9DQVRfTDNfQ0RQOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IDEy N2M4NGUuLjI0Yjk5OGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysgYi94 ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTE0MzksNjAgKzE0MzksNjAgQEAgbG9uZyBhcmNoX2Rv X2RvbWN0bCgKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgWEVOX0RPTUNU TF9wc3JfY2F0X29wOgotICAgICAgICBzd2l0Y2ggKCBkb21jdGwtPnUucHNyX2NhdF9vcC5jbWQg KQorICAgIGNhc2UgWEVOX0RPTUNUTF9wc3JfYWxsb2Nfb3A6CisgICAgICAgIHN3aXRjaCAoIGRv bWN0bC0+dS5wc3JfYWxsb2Nfb3AuY21kICkKICAgICAgICAgewogICAgICAgICAgICAgdWludDMy X3QgdmFsMzI7CiAKICAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wzX0NC TToKLSAgICAgICAgICAgIHJldCA9IHBzcl9zZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29w LnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0 X29wLmRhdGEsCisgICAgICAgICAgICByZXQgPSBwc3Jfc2V0X3ZhbChkLCBkb21jdGwtPnUucHNy X2FsbG9jX29wLnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+ dS5wc3JfYWxsb2Nfb3AuZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTUl9D Qk1fVFlQRV9MMyk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFhFTl9ET01D VExfUFNSX0NBVF9PUF9TRVRfTDNfQ09ERToKLSAgICAgICAgICAgIHJldCA9IHBzcl9zZXRfdmFs KGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCisgICAgICAgICAgICByZXQgPSBwc3Jf c2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2FsbG9jX29wLnRhcmdldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfYWxsb2Nfb3AuZGF0YSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MM19DT0RFKTsKICAgICAgICAgICAgIGJy ZWFrOwogCiAgICAgICAgIGNhc2UgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MM19EQVRBOgot ICAgICAgICAgICAgcmV0ID0gcHNyX3NldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFy Z2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnBzcl9jYXRfb3Au ZGF0YSwKKyAgICAgICAgICAgIHJldCA9IHBzcl9zZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfYWxs b2Nfb3AudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnBz cl9hbGxvY19vcC5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9U WVBFX0wzX0RBVEEpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYRU5fRE9N Q1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NCTToKLSAgICAgICAgICAgIHJldCA9IHBzcl9zZXRfdmFs KGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCisgICAgICAgICAgICByZXQgPSBwc3Jf c2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2FsbG9jX29wLnRhcmdldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfYWxsb2Nfb3AuZGF0YSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MMik7CiAgICAgICAgICAgICBicmVhazsK IAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDNfQ0JNOgotICAgICAg ICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAor ICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9hbGxvY19vcC50 YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFsMzIsIFBTUl9DQk1fVFlQ RV9MMyk7Ci0gICAgICAgICAgICBkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhID0gdmFsMzI7Cisg ICAgICAgICAgICBkb21jdGwtPnUucHNyX2FsbG9jX29wLmRhdGEgPSB2YWwzMjsKICAgICAgICAg ICAgIGNvcHliYWNrID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ug WEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DT0RFOgotICAgICAgICAgICAgcmV0ID0gcHNy X2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgcmV0 ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51LnBzcl9hbGxvY19vcC50YXJnZXQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmdmFsMzIsIFBTUl9DQk1fVFlQRV9MM19DT0RFKTsKLSAg ICAgICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEgPSB2YWwzMjsKKyAgICAgICAgICAg IGRvbWN0bC0+dS5wc3JfYWxsb2Nfb3AuZGF0YSA9IHZhbDMyOwogICAgICAgICAgICAgY29weWJh Y2sgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYRU5fRE9NQ1RM X1BTUl9DQVRfT1BfR0VUX0wzX0RBVEE6Ci0gICAgICAgICAgICByZXQgPSBwc3JfZ2V0X3ZhbChk LCBkb21jdGwtPnUucHNyX2NhdF9vcC50YXJnZXQsCisgICAgICAgICAgICByZXQgPSBwc3JfZ2V0 X3ZhbChkLCBkb21jdGwtPnUucHNyX2FsbG9jX29wLnRhcmdldCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZ2YWwzMiwgUFNSX0NCTV9UWVBFX0wzX0RBVEEpOwotICAgICAgICAgICAg ZG9tY3RsLT51LnBzcl9jYXRfb3AuZGF0YSA9IHZhbDMyOworICAgICAgICAgICAgZG9tY3RsLT51 LnBzcl9hbGxvY19vcC5kYXRhID0gdmFsMzI7CiAgICAgICAgICAgICBjb3B5YmFjayA9IHRydWU7 CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFhFTl9ET01DVExfUFNSX0NBVF9P UF9HRVRfTDJfQ0JNOgotICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9tY3RsLT51 LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgcmV0ID0gcHNyX2dldF92YWwoZCwgZG9t Y3RsLT51LnBzcl9hbGxvY19vcC50YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdmFsMzIsIFBTUl9DQk1fVFlQRV9MMik7Ci0gICAgICAgICAgICBkb21jdGwtPnUucHNyX2Nh dF9vcC5kYXRhID0gdmFsMzI7CisgICAgICAgICAgICBkb21jdGwtPnUucHNyX2FsbG9jX29wLmRh dGEgPSB2YWwzMjsKICAgICAgICAgICAgIGNvcHliYWNrID0gdHJ1ZTsKICAgICAgICAgICAgIGJy ZWFrOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc3lzY3RsLmMgYi94ZW4vYXJjaC94ODYv c3lzY3RsLmMKaW5kZXggMTRjMTJiNy4uMzA1MTg0MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3N5c2N0bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwpAQCAtMTcxLDQ1ICsxNzEsNDUg QEAgbG9uZyBhcmNoX2RvX3N5c2N0bCgKIAogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgWEVO X1NZU0NUTF9wc3JfY2F0X29wOgotICAgICAgICBzd2l0Y2ggKCBzeXNjdGwtPnUucHNyX2NhdF9v cC5jbWQgKQorICAgIGNhc2UgWEVOX1NZU0NUTF9wc3JfYWxsb2Nfb3A6CisgICAgICAgIHN3aXRj aCAoIHN5c2N0bC0+dS5wc3JfYWxsb2Nfb3AuY21kICkKICAgICAgICAgewogICAgICAgICAgICAg dWludDMyX3QgZGF0YVtQU1JfSU5GT19BUlJBWV9TSVpFXTsKIAogICAgICAgICBjYXNlIFhFTl9T WVNDVExfUFNSX0NBVF9nZXRfbDNfaW5mbzoKICAgICAgICAgewotICAgICAgICAgICAgcmV0ID0g cHNyX2dldF9pbmZvKHN5c2N0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKKyAgICAgICAgICAgIHJl dCA9IHBzcl9nZXRfaW5mbyhzeXNjdGwtPnUucHNyX2FsbG9jX29wLnRhcmdldCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDMsIGRhdGEsIEFSUkFZX1NJWkUo ZGF0YSkpOwogICAgICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgICAgIGJyZWFrOwog Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNvc19tYXggPQor ICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9hbGxvY19vcC51LmNhdF9pbmZvLmNvc19tYXggPQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9D T1NfTUFYXTsKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2Jt X2xlbiA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2FsbG9jX29wLnUuY2F0X2luZm8uY2Jt X2xlbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lO Rk9fSURYX0NBVF9DQk1fTEVOXTsKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUu Y2F0X2luZm8uZmxhZ3MgPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9hbGxvY19vcC51LmNh dF9pbmZvLmZsYWdzID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtQU1JfSU5GT19JRFhfQ0FUX0ZMQUddOwogCi0gICAgICAgICAgICBpZiAoICFyZXQgJiYgX19j b3B5X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBzeXNjdGwsIHUucHNyX2NhdF9vcCkgKQorICAg ICAgICAgICAgaWYgKCAhcmV0ICYmIF9fY29weV9maWVsZF90b19ndWVzdCh1X3N5c2N0bCwgc3lz Y3RsLCB1LnBzcl9hbGxvY19vcCkgKQogICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgWEVOX1NZU0NUTF9Q U1JfQ0FUX2dldF9sMl9pbmZvOgogICAgICAgICB7Ci0gICAgICAgICAgICByZXQgPSBwc3JfZ2V0 X2luZm8oc3lzY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAorICAgICAgICAgICAgcmV0ID0gcHNy X2dldF9pbmZvKHN5c2N0bC0+dS5wc3JfYWxsb2Nfb3AudGFyZ2V0LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MMiwgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7 CiAgICAgICAgICAgICBpZiAoIHJldCApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg ICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY29zX21heCA9CisgICAgICAg ICAgICBzeXNjdGwtPnUucHNyX2FsbG9jX29wLnUuY2F0X2luZm8uY29zX21heCA9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lORk9fSURYX0NPU19NQVhd OwotICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jYm1fbGVuID0K KyAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfYWxsb2Nfb3AudS5jYXRfaW5mby5jYm1fbGVuID0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhf Q0FUX0NCTV9MRU5dOwotICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5m by5mbGFncyA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2FsbG9jX29wLnUuY2F0X2luZm8u ZmxhZ3MgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9J TkZPX0lEWF9DQVRfRkxBR107CiAKLSAgICAgICAgICAgIGlmICggIXJldCAmJiBfX2NvcHlfZmll bGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5wc3JfY2F0X29wKSApCisgICAgICAgICAg ICBpZiAoICFyZXQgJiYgX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBzeXNjdGwsIHUu cHNyX2FsbG9jX29wKSApCiAgICAgICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9t Y3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5kZXggMDY2OWMzMS4uOTRkY2Q1 OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBiL3hlbi9pbmNs dWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMTEzNSw3ICsxMTM1LDcgQEAgc3RydWN0IHhlbl9kb21j dGxfbW9uaXRvcl9vcCB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX21vbml0b3Jfb3AgeGVu X2RvbWN0bF9tb25pdG9yX29wX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3Rs X21vbml0b3Jfb3BfdCk7CiAKLXN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3Ageworc3RydWN0 IHhlbl9kb21jdGxfcHNyX2FsbG9jX29wIHsKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09Q X1NFVF9MM19DQk0gICAgIDAKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19D Qk0gICAgIDEKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MM19DT0RFICAgIDIK QEAgLTExNDgsOCArMTE0OCw4IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9jYXRfb3AgewogICAg IHVpbnQzMl90IHRhcmdldDsgICAgLyogSU4gKi8KICAgICB1aW50NjRfdCBkYXRhOyAgICAgIC8q IElOL09VVCAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfcHNyX2NhdF9vcCB4ZW5f ZG9tY3RsX3Bzcl9jYXRfb3BfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxf cHNyX2NhdF9vcF90KTsKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfcHNyX2FsbG9jX29wIHhl bl9kb21jdGxfcHNyX2FsbG9jX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9t Y3RsX3Bzcl9hbGxvY19vcF90KTsKIAogc3RydWN0IHhlbl9kb21jdGwgewogICAgIHVpbnQzMl90 IGNtZDsKQEAgLTEyMjYsNyArMTIyNiw3IEBAIHN0cnVjdCB4ZW5fZG9tY3RsIHsKICNkZWZpbmUg WEVOX0RPTUNUTF9zZXR2bnVtYWluZm8gICAgICAgICAgICAgICAgICA3NAogI2RlZmluZSBYRU5f RE9NQ1RMX3Bzcl9jbXRfb3AgICAgICAgICAgICAgICAgICAgIDc1CiAjZGVmaW5lIFhFTl9ET01D VExfbW9uaXRvcl9vcCAgICAgICAgICAgICAgICAgICAgNzcKLSNkZWZpbmUgWEVOX0RPTUNUTF9w c3JfY2F0X29wICAgICAgICAgICAgICAgICAgICA3OAorI2RlZmluZSBYRU5fRE9NQ1RMX3Bzcl9h bGxvY19vcCAgICAgICAgICAgICAgICAgIDc4CiAjZGVmaW5lIFhFTl9ET01DVExfc29mdF9yZXNl dCAgICAgICAgICAgICAgICAgICAgNzkKICNkZWZpbmUgWEVOX0RPTUNUTF9nZGJzeF9ndWVzdG1l bWlvICAgICAgICAgICAgMTAwMAogI2RlZmluZSBYRU5fRE9NQ1RMX2dkYnN4X3BhdXNldmNwdSAg ICAgICAgICAgICAxMDAxCkBAIC0xMjg5LDcgKzEyODksNyBAQCBzdHJ1Y3QgeGVuX2RvbWN0bCB7 CiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3ZudW1hICAgICAgICAgICAgIHZudW1hOwogICAg ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY210X29wICAgICAgICBwc3JfY210X29wOwogICAg ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICAgICAgICBtb25pdG9yX29wOwotICAg ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfY2F0X29wICAgICAgICBwc3JfY2F0X29wOworICAg ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfYWxsb2Nfb3AgICAgICBwc3JfYWxsb2Nfb3A7CiAg ICAgICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFsxMjhdOwogICAg IH0gdTsKIH07CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggYi94ZW4v aW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgKaW5kZXggOWU1MWFmNi4uNDRkNjRmNSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9z eXNjdGwuaApAQCAtNzQ1LDcgKzc0NSw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9z eXNjdGxfcGNpdG9wb2luZm9fdCk7CiAKICNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9s M19pbmZvICAgICAgICAgICAgICAgMAogI2RlZmluZSBYRU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wy X2luZm8gICAgICAgICAgICAgICAxCi1zdHJ1Y3QgeGVuX3N5c2N0bF9wc3JfY2F0X29wIHsKK3N0 cnVjdCB4ZW5fc3lzY3RsX3Bzcl9hbGxvY19vcCB7CiAgICAgdWludDMyX3QgY21kOyAgICAgICAv KiBJTjogWEVOX1NZU0NUTF9QU1JfQ0FUXyogKi8KICAgICB1aW50MzJfdCB0YXJnZXQ7ICAgIC8q IElOICovCiAgICAgdW5pb24gewpAQCAtNzU3LDggKzc1Nyw4IEBAIHN0cnVjdCB4ZW5fc3lzY3Rs X3Bzcl9jYXRfb3AgewogICAgICAgICB9IGNhdF9pbmZvOwogICAgIH0gdTsKIH07Ci10eXBlZGVm IHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9jYXRfb3AgeGVuX3N5c2N0bF9wc3JfY2F0X29wX3Q7Ci1E RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3Bzcl9jYXRfb3BfdCk7Cit0eXBlZGVm IHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9hbGxvY19vcCB4ZW5fc3lzY3RsX3Bzcl9hbGxvY19vcF90 OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9wc3JfYWxsb2Nfb3BfdCk7CiAK ICNkZWZpbmUgWEVOX1NZU0NUTF9UTUVNX09QX0FMTF9DTElFTlRTIDB4RkZGRlUKIApAQCAtMTEx OSw3ICsxMTE5LDcgQEAgc3RydWN0IHhlbl9zeXNjdGwgewogI2RlZmluZSBYRU5fU1lTQ1RMX2dj b3Zfb3AgICAgICAgICAgICAgICAgICAgICAgIDIwCiAjZGVmaW5lIFhFTl9TWVNDVExfcHNyX2Nt dF9vcCAgICAgICAgICAgICAgICAgICAgMjEKICNkZWZpbmUgWEVOX1NZU0NUTF9wY2l0b3BvaW5m byAgICAgICAgICAgICAgICAgICAyMgotI2RlZmluZSBYRU5fU1lTQ1RMX3Bzcl9jYXRfb3AgICAg ICAgICAgICAgICAgICAgIDIzCisjZGVmaW5lIFhFTl9TWVNDVExfcHNyX2FsbG9jX29wICAgICAg ICAgICAgICAgICAgMjMKICNkZWZpbmUgWEVOX1NZU0NUTF90bWVtX29wICAgICAgICAgICAgICAg ICAgICAgICAyNAogI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMgICAg ICAgIDI1CiAjZGVmaW5lIFhFTl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJlc2V0ICAgICAgICAgICAg MjYKQEAgLTExNDcsNyArMTE0Nyw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAgICAgICAgc3Ry dWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wICAgICAgc2NoZWR1bGVyX29wOwogICAgICAgICBz dHJ1Y3QgeGVuX3N5c2N0bF9nY292X29wICAgICAgICAgICBnY292X29wOwogICAgICAgICBzdHJ1 Y3QgeGVuX3N5c2N0bF9wc3JfY210X29wICAgICAgICBwc3JfY210X29wOwotICAgICAgICBzdHJ1 Y3QgeGVuX3N5c2N0bF9wc3JfY2F0X29wICAgICAgICBwc3JfY2F0X29wOworICAgICAgICBzdHJ1 Y3QgeGVuX3N5c2N0bF9wc3JfYWxsb2Nfb3AgICAgICBwc3JfYWxsb2Nfb3A7CiAgICAgICAgIHN0 cnVjdCB4ZW5fc3lzY3RsX3RtZW1fb3AgICAgICAgICAgIHRtZW1fb3A7CiAgICAgICAgIHN0cnVj dCB4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyBjcHVfbGV2ZWxsaW5nX2NhcHM7CiAgICAg ICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9mZWF0dXJlc2V0ICAgIGNwdV9mZWF0dXJlc2V0Owpk aWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5j CmluZGV4IGZkODRhYzAuLjk1YWZmMjEgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3Mu YworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTc0Miw4ICs3NDIsOCBAQCBzdGF0aWMg aW50IGZsYXNrX2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKQogICAgIGNhc2UgWEVO X0RPTUNUTF9wc3JfY210X29wOgogICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBT RUNDTEFTU19ET01BSU4yLCBET01BSU4yX19QU1JfQ01UX09QKTsKIAotICAgIGNhc2UgWEVOX0RP TUNUTF9wc3JfY2F0X29wOgotICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUND TEFTU19ET01BSU4yLCBET01BSU4yX19QU1JfQ0FUX09QKTsKKyAgICBjYXNlIFhFTl9ET01DVExf cHNyX2FsbG9jX29wOgorICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFT U19ET01BSU4yLCBET01BSU4yX19QU1JfQUxMT0NfT1ApOwogCiAgICAgY2FzZSBYRU5fRE9NQ1RM X3NvZnRfcmVzZXQ6CiAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNT X0RPTUFJTjIsIERPTUFJTjJfX1NPRlRfUkVTRVQpOwpAQCAtODA2LDkgKzgwNiw5IEBAIHN0YXRp YyBpbnQgZmxhc2tfc3lzY3RsKGludCBjbWQpCiAgICAgY2FzZSBYRU5fU1lTQ1RMX3Bzcl9jbXRf b3A6CiAgICAgICAgIHJldHVybiBhdmNfY3VycmVudF9oYXNfcGVybShTRUNJTklUU0lEX1hFTiwg U0VDQ0xBU1NfWEVOMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTjJf X1BTUl9DTVRfT1AsIE5VTEwpOwotICAgIGNhc2UgWEVOX1NZU0NUTF9wc3JfY2F0X29wOgorICAg IGNhc2UgWEVOX1NZU0NUTF9wc3JfYWxsb2Nfb3A6CiAgICAgICAgIHJldHVybiBhdmNfY3VycmVu dF9oYXNfcGVybShTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfWEVOMiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFhFTjJfX1BTUl9DQVRfT1AsIE5VTEwpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOMl9fUFNSX0FMTE9DX09QLCBOVUxMKTsKIAog ICAgIGNhc2UgWEVOX1NZU0NUTF90bWVtX29wOgogICAgICAgICByZXR1cm4gZG9tYWluX2hhc194 ZW4oY3VycmVudC0+ZG9tYWluLCBYRU5fX1RNRU1fQ09OVFJPTCk7CmRpZmYgLS1naXQgYS94ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCmluZGV4IDFmN2ViMzUuLjlkODFlNDEgMTAwNjQ0Ci0tLSBhL3hlbi94c20v Zmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCkBAIC04NSw4ICs4NSw4IEBAIGNsYXNzIHhlbjIKICAgICByZXNvdXJjZV9v cAogIyBYRU5fU1lTQ1RMX3Bzcl9jbXRfb3AKICAgICBwc3JfY210X29wCi0jIFhFTl9TWVNDVExf cHNyX2NhdF9vcAotICAgIHBzcl9jYXRfb3AKKyMgWEVOX1NZU0NUTF9wc3JfYWxsb2Nfb3AKKyAg ICBwc3JfYWxsb2Nfb3AKICMgWEVOUEZfZ2V0X3N5bWJvbAogICAgIGdldF9zeW1ib2wKICMgUE1V IGNvbnRyb2wKQEAgLTI0NCw4ICsyNDQsOCBAQCBjbGFzcyBkb21haW4yCiAgICAgbWVtX3BhZ2lu ZwogIyBYRU5NRU1fc2hhcmluZ19vcAogICAgIG1lbV9zaGFyaW5nCi0jIFhFTl9ET01DVExfcHNy X2NhdF9vcAotICAgIHBzcl9jYXRfb3AKKyMgWEVOX0RPTUNUTF9wc3JfYWxsb2Nfb3AKKyAgICBw c3JfYWxsb2Nfb3AKIH0KIAogIyBTaW1pbGFyIHRvIGNsYXNzIGRvbWFpbiwgYnV0IHByaW1hcmls eSBjb250YWlucyBkb21jdGxzIHJlbGF0ZWQgdG8gSFZNIGRvbWFpbnMKLS0gCjEuOS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==