From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 27/27 v9] xen/arm: vpl011: Correct the logic for asserting/de-asserting SBSA UART TX interrupt Date: Mon, 18 Sep 2017 16:02:11 +0530 Message-ID: <1505730731-10947-28-git-send-email-bhupinder.thakur@linaro.org> References: <1505730731-10947-1-git-send-email-bhupinder.thakur@linaro.org> 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 1dttN1-000350-JE for xen-devel@lists.xenproject.org; Mon, 18 Sep 2017 10:33:43 +0000 Received: by mail-pg0-f47.google.com with SMTP id v66so32724pgb.5 for ; Mon, 18 Sep 2017 03:33:40 -0700 (PDT) In-Reply-To: <1505730731-10947-1-git-send-email-bhupinder.thakur@linaro.org> 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: Andre Przywara , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgb2JzZXJ2ZWQgd2hlbiBwbDAxMSBwYXRjaGVzIHdl cmUgdGVzdGVkIG9uCnRoZSBqdW5vcyBoYXJkd2FyZSBieSBBbmRyZS9KdWxpZW4uIEl0IHdhcyBv YnNlcnZlZCB0aGF0IHdoZW4gbGFyZ2Ugb3V0cHV0IGlzCmdlbmVyYXRlZCBzdWNoIGFzIG9uIGV4 ZWN1dGluZyAnZmluZCAvJywgb3V0cHV0IHdhcyBnZXR0aW5nIHRydW5jYXRlZCBpbnRlcm1pdHRl bnRseQpkdWUgdG8gT1VUIHJpbmcgYnVmZmVyIGdldHRpbmcgZnVsbC4KClRoaXMgaXNzdWUgd2Fz IGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZSBTQlNBIFVBUlQgZHJpdmVyIGV4cGVjdHMgdGhhdCB3 aGVuCmEgVFggaW50ZXJydXB0IGlzIGFzc2VydGVkIHRoZW4gdGhlIEZJRk8gcXVldWUgc2hvdWxk IGJlIGF0bGVhc3QgaGFsZiBlbXB0eSBhbmQKdGhhdCBpdCBjYW4gd3JpdGUgTiBieXRlcyBpbiB0 aGUgRklGTywgd2hlcmUgTiBpcyBoYWxmIHRoZSBGSUZPIHF1ZXVlIHNpemUsIHdpdGhvdXQKdGhl IGJ5dGVzIGdldHRpbmcgZHJvcHBlZCBkdWUgdG8gRklGTyBnZXR0aW5nIGZ1bGwuCgpUaGUgU0JT QSBVQVJUIGVtdWxhdGlvbiBsb2dpYyB3YXMgYXNzZXJ0aW5nIHRoZSBUWCBpbnRlcnJ1cHQgYXMg c29vbiBhcwphbnkgc3BhY2UgYmVjYW1lIGF2YWlsYWJsZSBpbiB0aGUgRklGTyBhbmQgdGhlIFNC U0EgVUFSVCBkcml2ZXIgdHJpZWQgdG8gd3JpdGUKbW9yZSBkYXRhICh1cHRvIDE2IGJ5dGVzKSBp biB0aGUgRklGTyBleHBlY3RpbmcgdGhhdCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UKYXZhaWxhYmxl IGxlYWRpbmcgdG8gZHJvcHBlZCBieXRlcy4KClRoZSBTQlNBIHNwZWMgWzFdIGRvZXMgbm90IHNw ZWNpZnkgYW55IHJlZ2lzdGVyIHdoZXJlIHRoZSBUWCBpbnRlcnJ1cHQgdGhyZXNvbGQgY2FuCmJl IHNldC4gRHVlIHRvIGxhY2sgb2YgY2xhcml0eSBvbiB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IsIGl0 IGlzCmFzc3VtZWQgZm9yIG5vdyB0aGF0IFRYIGludGVycnVwdCBzaG91bGQgYmUgYXNzZXJ0ZWQg b25seSB3aGVuIHRoZSBGSUZPIGdvZXMKaGFsZiBlbXB0eSAoYXMgZXhwZWN0ZWQgYnkgdGhlIFNC U0EgVUFSVCBkcml2ZXIpLgoKVEJEOiBPbmNlIHRoZSBTQlNBIHNwZWMgaXMgdXBkYXRlZCB3aXRo IHRoZSBleHBlY3RlZCBiZWhhdmlvciwgdGhlIGltcGxlbWVudGF0aW9uCndpbGwgYmUgbW9kaWZp ZWQgdG8gYWxpZ24gd2l0aCB0aGUgc3BlYyByZXF1aXJlbWVudC4KClsxXSBodHRwOi8vaW5mb2Nl bnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZGRpMDE4M2YvRERJMDE4My5wZGYK ClNpZ25lZC1vZmYtYnk6IEJodXBpbmRlciBUaGFrdXIgPGJodXBpbmRlci50aGFrdXJAbGluYXJv Lm9yZz4KLS0tCkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDQzogQW5k cmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxp bmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CgpDaGFuZ2VzIHNpbmNlIHY4OgotIFVzZWQgdmFy aWFibGVzIGZpZm9fbGV2ZWwvZmlmb190aHJlc2hvbGQgZm9yIG1vcmUgY2xhcml0eQotIEFkZGVk IGEgbmV3IG1hY3JvIFNCU0FfVUFSVF9GSUZPX1NJWkUgaW5zdGVhZCBvZiB1c2luZyBhIG1hZ2lj IG51bWJlcgotIFJlbmFtZWQgcmluZ19xc2l6ZSB2YXJpYWJsZXMgdG8gZmlmb19sZXZlbCBmb3Ig Y29uc2lzdGVuY3kgCgogeGVuL2FyY2gvYXJtL3ZwbDAxMS5jICAgICAgICB8IDg3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJt L3ZwbDAxMS5oIHwgIDIgKwogMiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAyOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdnBsMDExLmMgYi94ZW4vYXJj aC9hcm0vdnBsMDExLmMKaW5kZXggMzY3OTRkOC4uMWY5NzI2MSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gvYXJtL3ZwbDAxMS5jCisrKyBiL3hlbi9hcmNoL2FybS92cGwwMTEuYwpAQCAtOTEsMjAgKzkx LDI0IEBAIHN0YXRpYyB1aW50OF90IHZwbDAxMV9yZWFkX2RhdGEoc3RydWN0IGRvbWFpbiAqZCkK ICAgICAgKi8KICAgICBpZiAoIHhlbmNvbnNfcXVldWVkKGluX3Byb2QsIGluX2NvbnMsIHNpemVv ZihpbnRmLT5pbikpID4gMCApCiAgICAgeworICAgICAgICB1bnNpZ25lZCBpbnQgZmlmb19sZXZl bDsKKwogICAgICAgICBkYXRhID0gaW50Zi0+aW5beGVuY29uc19tYXNrKGluX2NvbnMsIHNpemVv ZihpbnRmLT5pbikpXTsKICAgICAgICAgaW5fY29ucyArPSAxOwogICAgICAgICBzbXBfbWIoKTsK ICAgICAgICAgaW50Zi0+aW5fY29ucyA9IGluX2NvbnM7CisKKyAgICAgICAgZmlmb19sZXZlbCA9 IHhlbmNvbnNfcXVldWVkKGluX3Byb2QsIGluX2NvbnMsIHNpemVvZihpbnRmLT5pbikpOworCisg ICAgICAgIGlmICggZmlmb19sZXZlbCA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgdnBs MDExLT51YXJ0ZnIgfD0gUlhGRTsKKyAgICAgICAgICAgIHZwbDAxMS0+dWFydHJpcyAmPSB+UlhJ OworICAgICAgICB9CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgZ3ByaW50ayhYRU5MT0dfRVJS LCAidnBsMDExOiBVbmV4cGVjdGVkIElOIHJpbmcgYnVmZmVyIGVtcHR5XG4iKTsKIAotICAgIGlm ICggeGVuY29uc19xdWV1ZWQoaW5fcHJvZCwgaW5fY29ucywgc2l6ZW9mKGludGYtPmluKSkgPT0g MCApCi0gICAgewotICAgICAgICB2cGwwMTEtPnVhcnRmciB8PSBSWEZFOwotICAgICAgICB2cGww MTEtPnVhcnRyaXMgJj0gflJYSTsKLSAgICB9Ci0KICAgICB2cGwwMTEtPnVhcnRmciAmPSB+UlhG RjsKIAogICAgIHZwbDAxMV91cGRhdGVfaW50ZXJydXB0X3N0YXR1cyhkKTsKQEAgLTE0NCwyOCAr MTQ4LDQxIEBAIHN0YXRpYyB2b2lkIHZwbDAxMV93cml0ZV9kYXRhKHN0cnVjdCBkb21haW4gKmQs IHVpbnQ4X3QgZGF0YSkKICAgICBpZiAoIHhlbmNvbnNfcXVldWVkKG91dF9wcm9kLCBvdXRfY29u cywgc2l6ZW9mKGludGYtPm91dCkpICE9CiAgICAgICAgICBzaXplb2YgKGludGYtPm91dCkgKQog ICAgIHsKKyAgICAgICAgdW5zaWduZWQgaW50IGZpZm9fbGV2ZWwsIGZpZm9fdGhyZXNob2xkOwor CiAgICAgICAgIGludGYtPm91dFt4ZW5jb25zX21hc2sob3V0X3Byb2QsIHNpemVvZihpbnRmLT5v dXQpKV0gPSBkYXRhOwogICAgICAgICBvdXRfcHJvZCArPSAxOwogICAgICAgICBzbXBfd21iKCk7 CiAgICAgICAgIGludGYtPm91dF9wcm9kID0gb3V0X3Byb2Q7Ci0gICAgfQotICAgIGVsc2UKLSAg ICAgICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAidnBsMDExOiBVbmV4cGVjdGVkIE9VVCByaW5nIGJ1 ZmZlciBmdWxsXG4iKTsKIAotICAgIGlmICggeGVuY29uc19xdWV1ZWQob3V0X3Byb2QsIG91dF9j b25zLCBzaXplb2YoaW50Zi0+b3V0KSkgPT0KLSAgICAgICAgIHNpemVvZiAoaW50Zi0+b3V0KSAp Ci0gICAgewotICAgICAgICB2cGwwMTEtPnVhcnRmciB8PSBUWEZGOwotICAgICAgICB2cGwwMTEt PnVhcnRyaXMgJj0gflRYSTsKKyAgICAgICAgZmlmb19sZXZlbCA9IHhlbmNvbnNfcXVldWVkKG91 dF9wcm9kLCBvdXRfY29ucywgc2l6ZW9mKGludGYtPm91dCkpOworCisgICAgICAgIGlmICggZmlm b19sZXZlbCA9PSBzaXplb2YgKGludGYtPm91dCkgKQorICAgICAgICB7CisgICAgICAgICAgICB2 cGwwMTEtPnVhcnRmciB8PSBUWEZGOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICog VGhpcyBiaXQgaXMgc2V0IG9ubHkgd2hlbiBGSUZPIGJlY29tZXMgZnVsbC4gVGhpcyBlbnN1cmVz IHRoYXQKKyAgICAgICAgICAgICAqIHRoZSBTQlNBIFVBUlQgZHJpdmVyIGNhbiB3cml0ZSB0aGUg ZWFybHkgY29uc29sZSBkYXRhIGFzIGZhc3QgYXMKKyAgICAgICAgICAgICAqIHBvc3NpYmxlLCB3 aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBCVVNZIGJpdCB0byBnZXQgY2xlYXJlZCBiZWZvcmUKKyAg ICAgICAgICAgICAqIHdyaXRpbmcgZWFjaCBieXRlLgorICAgICAgICAgICAgICovCisgICAgICAg ICAgICB2cGwwMTEtPnVhcnRmciB8PSBCVVNZOworICAgICAgICB9CiAKICAgICAgICAgLyoKLSAg ICAgICAgICogVGhpcyBiaXQgaXMgc2V0IG9ubHkgd2hlbiBGSUZPIGJlY29tZXMgZnVsbC4gVGhp cyBlbnN1cmVzIHRoYXQKLSAgICAgICAgICogdGhlIFNCU0EgVUFSVCBkcml2ZXIgY2FuIHdyaXRl IHRoZSBlYXJseSBjb25zb2xlIGRhdGEgYXMgZmFzdCBhcwotICAgICAgICAgKiBwb3NzaWJsZSwg d2l0aG91dCB3YWl0aW5nIGZvciB0aGUgQlVTWSBiaXQgdG8gZ2V0IGNsZWFyZWQgYmVmb3JlCi0g ICAgICAgICAqIHdyaXRpbmcgZWFjaCBieXRlLgorICAgICAgICAgKiBDbGVhciB0aGUgVFhJIGJp dCBpZiB0aGUgZmlmbyBsZXZlbCBleGNlZWRzIGZpZm9fc2l6ZS8yIG1hcmsgd2hpY2gKKyAgICAg ICAgICogaXMgdGhlIHRyaWdnZXIgbGV2ZWwgZm9yIGFzc2VydGluZy9kZS1hc3N0ZXJ0aW5nIHRo ZSBUWCBpbnRlcnJ1cHQuCiAgICAgICAgICAqLwotICAgICAgICB2cGwwMTEtPnVhcnRmciB8PSBC VVNZOworICAgICAgICBmaWZvX3RocmVzaG9sZCA9IHNpemVvZiAoaW50Zi0+b3V0KSAtIFNCU0Ff VUFSVF9GSUZPX1NJWkUvMjsKKworICAgICAgICBpZiAoIGZpZm9fbGV2ZWwgPD0gZmlmb190aHJl c2hvbGQgKQorICAgICAgICAgICAgdnBsMDExLT51YXJ0cmlzIHw9IFRYSTsKKyAgICAgICAgZWxz ZQorICAgICAgICAgICAgdnBsMDExLT51YXJ0cmlzICY9IH5UWEk7CiAgICAgfQorICAgIGVsc2UK KyAgICAgICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAidnBsMDExOiBVbmV4cGVjdGVkIE9VVCByaW5n IGJ1ZmZlciBmdWxsXG4iKTsKIAogICAgIHZwbDAxMS0+dWFydGZyICY9IH5UWEZFOwogCkBAIC0z NDIsNyArMzU5LDcgQEAgc3RhdGljIHZvaWQgdnBsMDExX2RhdGFfYXZhaWwoc3RydWN0IGRvbWFp biAqZCkKICAgICBzdHJ1Y3QgdnBsMDExICp2cGwwMTEgPSAmZC0+YXJjaC52cGwwMTE7CiAgICAg c3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICppbnRmID0gdnBsMDExLT5yaW5nX2J1ZjsKICAgICBY RU5DT05TX1JJTkdfSURYIGluX2NvbnMsIGluX3Byb2QsIG91dF9jb25zLCBvdXRfcHJvZDsKLSAg ICBYRU5DT05TX1JJTkdfSURYIGluX3JpbmdfcXNpemUsIG91dF9yaW5nX3FzaXplOworICAgIFhF TkNPTlNfUklOR19JRFggaW5fZmlmb19sZXZlbCwgb3V0X2ZpZm9fbGV2ZWw7CiAKICAgICBWUEww MTFfTE9DSyhkLCBmbGFncyk7CiAKQEAgLTM1MywzNyArMzcwLDUxIEBAIHN0YXRpYyB2b2lkIHZw bDAxMV9kYXRhX2F2YWlsKHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBzbXBfcm1iKCk7CiAKLSAg ICBpbl9yaW5nX3FzaXplID0geGVuY29uc19xdWV1ZWQoaW5fcHJvZCwKKyAgICBpbl9maWZvX2xl dmVsID0geGVuY29uc19xdWV1ZWQoaW5fcHJvZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5fY29ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKGludGYtPmluKSk7CiAKLSAgICBvdXRfcmluZ19xc2l6ZSA9IHhlbmNvbnNfcXVldWVkKG91 dF9wcm9kLAorICAgIG91dF9maWZvX2xldmVsID0geGVuY29uc19xdWV1ZWQob3V0X3Byb2QsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfY29ucywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihpbnRmLT5vdXQpKTsKIAogICAgIC8qIFVw ZGF0ZSB0aGUgdWFydCByeCBzdGF0ZSBpZiB0aGUgYnVmZmVyIGlzIG5vdCBlbXB0eS4gKi8KLSAg ICBpZiAoIGluX3JpbmdfcXNpemUgIT0gMCApCisgICAgaWYgKCBpbl9maWZvX2xldmVsICE9IDAg KQogICAgIHsKICAgICAgICAgdnBsMDExLT51YXJ0ZnIgJj0gflJYRkU7Ci0gICAgICAgIGlmICgg aW5fcmluZ19xc2l6ZSA9PSBzaXplb2YoaW50Zi0+aW4pICkKKworICAgICAgICBpZiAoIGluX2Zp Zm9fbGV2ZWwgPT0gc2l6ZW9mKGludGYtPmluKSApCiAgICAgICAgICAgICB2cGwwMTEtPnVhcnRm ciB8PSBSWEZGOworCiAgICAgICAgIHZwbDAxMS0+dWFydHJpcyB8PSBSWEk7CiAgICAgfQogCiAg ICAgLyogVXBkYXRlIHRoZSB1YXJ0IHR4IHN0YXRlIGlmIHRoZSBidWZmZXIgaXMgbm90IGZ1bGwu ICovCi0gICAgaWYgKCBvdXRfcmluZ19xc2l6ZSAhPSBzaXplb2YoaW50Zi0+b3V0KSApCisgICAg aWYgKCBvdXRfZmlmb19sZXZlbCAhPSBzaXplb2YoaW50Zi0+b3V0KSApCiAgICAgeworICAgICAg ICB1bnNpZ25lZCBpbnQgb3V0X2ZpZm9fdGhyZXNob2xkOworCiAgICAgICAgIHZwbDAxMS0+dWFy dGZyICY9IH5UWEZGOwotICAgICAgICB2cGwwMTEtPnVhcnRyaXMgfD0gVFhJOwogCiAgICAgICAg IC8qCi0gICAgICAgICAqIENsZWFyIHRoZSBCVVNZIGJpdCBhcyBzb29uIGFzIHNwYWNlIGJlY29t ZXMgYXZhaWxhYmxlCisgICAgICAgICAqIENsZWFyIHRoZSBCVVNZIGJpdCBhcyBzb29uIGFzIHNw YWNlIGJlY29tZXMgYXZhbGlhYmxlCiAgICAgICAgICAqIHNvIHRoYXQgdGhlIFNCU0EgVUFSVCBk cml2ZXIgY2FuIHN0YXJ0IHdyaXRpbmcgbW9yZSBkYXRhCiAgICAgICAgICAqIHdpdGhvdXQgYW55 IGZ1cnRoZXIgZGVsYXkuCiAgICAgICAgICAqLwogICAgICAgICB2cGwwMTEtPnVhcnRmciAmPSB+ QlVTWTsKIAotICAgICAgICBpZiAoIG91dF9yaW5nX3FzaXplID09IDAgKQorICAgICAgICAvKgor ICAgICAgICAgKiBTZXQgdGhlIFRYSSBiaXQgb25seSB3aGVuIHRoZXJlIGlzIHNwYWNlIGZvciBm aWZvX3NpemUvMiBieXRlcyB3aGljaAorICAgICAgICAgKiBpcyB0aGUgdHJpZ2dlciBsZXZlbCBm b3IgYXNzZXJ0aW5nL2RlLWFzc3RlcnRpbmcgdGhlIFRYIGludGVycnVwdC4KKyAgICAgICAgICov CisgICAgICAgIG91dF9maWZvX3RocmVzaG9sZCA9IHNpemVvZihpbnRmLT5vdXQpIC0gU0JTQV9V QVJUX0ZJRk9fU0laRS8yOworCisgICAgICAgIGlmICggb3V0X2ZpZm9fbGV2ZWwgPD0gb3V0X2Zp Zm9fdGhyZXNob2xkICkKKyAgICAgICAgICAgIHZwbDAxMS0+dWFydHJpcyB8PSBUWEk7CisgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIHZwbDAxMS0+dWFydHJpcyAmPSB+VFhJOworCisgICAgICAg IGlmICggb3V0X2ZpZm9fbGV2ZWwgPT0gMCApCiAgICAgICAgICAgICB2cGwwMTEtPnVhcnRmciB8 PSBUWEZFOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS92cGwwMTEu aCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdnBsMDExLmgKaW5kZXggMWI1ODNkYS4uZGI5NWZmOCAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS92cGwwMTEuaAorKysgYi94ZW4vaW5jbHVk ZS9hc20tYXJtL3ZwbDAxMS5oCkBAIC0yOCw2ICsyOCw4IEBACiAjZGVmaW5lIFZQTDAxMV9MT0NL KGQsZmxhZ3MpIHNwaW5fbG9ja19pcnFzYXZlKCYoZCktPmFyY2gudnBsMDExLmxvY2ssIGZsYWdz KQogI2RlZmluZSBWUEwwMTFfVU5MT0NLKGQsZmxhZ3MpIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JihkKS0+YXJjaC52cGwwMTEubG9jaywgZmxhZ3MpCiAKKyNkZWZpbmUgU0JTQV9VQVJUX0ZJRk9f U0laRSAzMgorCiBzdHJ1Y3QgdnBsMDExIHsKICAgICB2b2lkICpyaW5nX2J1ZjsKICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpyaW5nX3BhZ2U7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=