From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chengming Gui Subject: [PATCH 2/2] drm/amd/powerplay: Enable "disable dpm" feature for vega20 power functions. Date: Fri, 10 May 2019 16:48:37 +0800 Message-ID: <1557478117-17823-2-git-send-email-Jack.Gui@amd.com> References: <1557478117-17823-1-git-send-email-Jack.Gui@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1557478117-17823-1-git-send-email-Jack.Gui-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chengming Gui dXNlIHBtX2VuYWJsZWQgdG8gY29udHJvbCBhbGwgcG93ZXIgcmVsYXRlZCBmdW5jdGlvbnMgYWJv dXQgdmVnYTIwLgoKU2lnbmVkLW9mZi1ieTogQ2hlbmdtaW5nIEd1aSA8SmFjay5HdWlAYW1kLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92ZWdhMjBfcHB0LmMgfCA0OCAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS92ZWdhMjBfcHB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS92 ZWdhMjBfcHB0LmMKaW5kZXggOGZhZmNiZC4uN2ZhYTZhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvdmVnYTIwX3BwdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L3ZlZ2EyMF9wcHQuYwpAQCAtNDExLDcgKzQxMSw4IEBAIGFtZF9wbV9zdGF0 ZV90eXBlIHZlZ2EyMF9nZXRfY3VycmVudF9wb3dlcl9zdGF0ZShzdHJ1Y3Qgc211X2NvbnRleHQg KnNtdSkKIAllbnVtIGFtZF9wbV9zdGF0ZV90eXBlIHBtX3R5cGU7CiAJc3RydWN0IHNtdV9kcG1f Y29udGV4dCAqc211X2RwbV9jdHggPSAmKHNtdS0+c211X2RwbSk7CiAKLQlpZiAoIXNtdV9kcG1f Y3R4LT5kcG1fY29udGV4dCB8fAorCWlmICghc211LT5wbV9lbmFibGVkIHx8CisJICAgICFzbXVf ZHBtX2N0eC0+ZHBtX2NvbnRleHQgfHwKIAkgICAgIXNtdV9kcG1fY3R4LT5kcG1fY3VycmVudF9w b3dlcl9zdGF0ZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTQ5MSwxMiArNDkyLDE0IEBAIHN0 YXRpYyB2b2lkIHZlZ2EyMF9pbml0X3NpbmdsZV9kcG1fc3RhdGUoc3RydWN0IHZlZ2EyMF9kcG1f c3RhdGUgKmRwbV9zdGF0ZSkKIAogc3RhdGljIGludCB2ZWdhMjBfc2V0X2RlZmF1bHRfZHBtX3Rh YmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogewotCWludCByZXQ7CisJaW50IHJldCA9IDA7 CiAKIAlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtID0gJnNtdS0+c211X2RwbTsKIAlz dHJ1Y3QgdmVnYTIwX2RwbV90YWJsZSAqZHBtX3RhYmxlID0gTlVMTDsKIAlzdHJ1Y3QgdmVnYTIw X3NpbmdsZV9kcG1fdGFibGUgKnNpbmdsZV9kcG1fdGFibGU7CiAKKwlpZiAoc211LT5wbV9lbmFi bGVkKQorCQlyZXR1cm4gcmV0OwogCWRwbV90YWJsZSA9IHNtdV9kcG0tPmRwbV9jb250ZXh0Owog CiAJLyogc29jY2xrICovCkBAIC03MzgsNiArNzQxLDggQEAgc3RhdGljIGludCB2ZWdhMjBfcHJp bnRfY2xrX2xldmVscyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAogCWRwbV90YWJsZSA9IHNt dV9kcG0tPmRwbV9jb250ZXh0OwogCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiAt RUlOVkFMOwogCXN3aXRjaCAodHlwZSkgewogCWNhc2UgUFBfU0NMSzoKIAkJcmV0ID0gc211X2dl dF9jdXJyZW50X2Nsa19mcmVxKHNtdSwgUFBDTEtfR0ZYQ0xLLCAmbm93KTsKQEAgLTk2OSw2ICs5 NzQsOCBAQCBzdGF0aWMgaW50IHZlZ2EyMF91cGxvYWRfZHBtX2xldmVsKHN0cnVjdCBzbXVfY29u dGV4dCAqc211LCBib29sIG1heCwKIAl1aW50MzJfdCBmcmVxOwogCWludCByZXQgPSAwOwogCisJ aWYgKCFzbXUtPnBtX2VuYWJsZWQpCisJCXJldHVybiAtRUlOVkFMOwogCWRwbV90YWJsZSA9IHNt dS0+c211X2RwbS5kcG1fY29udGV4dDsKIAogCWlmIChzbXVfZmVhdHVyZV9pc19lbmFibGVkKHNt dSwgRkVBVFVSRV9EUE1fR0ZYQ0xLX0JJVCkgJiYKQEAgLTEwNTgsNiArMTA2NSw4IEBAIHN0YXRp YyBpbnQgdmVnYTIwX2ZvcmNlX2Nsa19sZXZlbHMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCiAJ c3RydWN0IHNtdV9kcG1fY29udGV4dCAqc211X2RwbSA9ICZzbXUtPnNtdV9kcG07CiAJaW50IHJl dCA9IDA7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJaWYg KHNtdV9kcG0tPmRwbV9sZXZlbCAhPSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9NQU5VQUwpIHsKIAkJ cHJfaW5mbygiZm9yY2UgY2xvY2sgbGV2ZWwgaXMgZm9yIGRwbSBtYW51YWwgbW9kZSBvbmx5Llxu Iik7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTIzMiw4ICsxMjQxLDkgQEAgc3RhdGljIGludCB2 ZWdhMjBfZ2V0X2Nsb2NrX2J5X3R5cGVfd2l0aF9sYXRlbmN5KHN0cnVjdCBzbXVfY29udGV4dCAq c211LAogCiAJZHBtX3RhYmxlID0gc211X2RwbS0+ZHBtX2NvbnRleHQ7CiAKKwlpZiAoIXNtdS0+ cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7 Ci0KIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIGFtZF9wcF9zeXNfY2xvY2s6CiAJCXNpbmdsZV9k cG1fdGFibGUgPSAmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKTsKQEAgLTEyNjUsNiArMTI3NSw4IEBA IHN0YXRpYyBpbnQgdmVnYTIwX292ZXJkcml2ZV9nZXRfZ2Z4X2Nsa19iYXNlX3ZvbHRhZ2Uoc3Ry dWN0IHNtdV9jb250ZXh0ICpzbXUsCiB7CiAJaW50IHJldDsKIAorCWlmICghc211LT5wbV9lbmFi bGVkKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlyZXQgPSBzbXVfc2VuZF9zbWNfbXNnX3dpdGhfcGFy YW0oc211LAogCQkJU01VX01TR19HZXRBVkZTVm9sdGFnZUJ5RHBtLAogCQkJKChBVkZTX0NVUlZF IDw8IDI0KSB8IChPRDhfSE9UQ1VSVkVfVEVNUEVSQVRVUkUgPDwgMTYpIHwgZnJlcSkpOwpAQCAt MTI4Nyw3ICsxMjk5LDcgQEAgc3RhdGljIGludCB2ZWdhMjBfc2V0X2RlZmF1bHRfb2Q4X3NldHR0 aW5ncyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIAlQUFRhYmxlX3QgKnNtY19wcHRhYmxlID0g dGFibGVfY29udGV4dC0+ZHJpdmVyX3BwdGFibGU7CiAJaW50IGksIHJldDsKIAotCWlmICh0YWJs ZV9jb250ZXh0LT5vZDhfc2V0dGluZ3MpCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQgfHwgdGFibGVf Y29udGV4dC0+b2Q4X3NldHRpbmdzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXRhYmxlX2NvbnRl eHQtPm9kOF9zZXR0aW5ncyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB2ZWdhMjBfb2Q4X3NldHRp bmdzKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNDc0LDYgKzE0ODYsOCBAQCBzdGF0aWMgaW50IHZlZ2Ey MF9nZXRfb2RfcGVyY2VudGFnZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlkcG1fdGFibGUg PSBzbXVfZHBtLT5kcG1fY29udGV4dDsKIAlnb2xkZW5fdGFibGUgPSBzbXVfZHBtLT5nb2xkZW5f ZHBtX2NvbnRleHQ7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7 CiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBPRF9TQ0xLOgogCQlzaW5nbGVfZHBtX3RhYmxlID0g JihkcG1fdGFibGUtPmdmeF90YWJsZSk7CkBAIC0xNTA5LDcgKzE1MjMsNyBAQCB2ZWdhMjBfZ2V0 X3Byb2ZpbGluZ19jbGtfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlzdHJ1Y3QgdmVn YTIwX3NpbmdsZV9kcG1fdGFibGUgKm1lbV9kcG1fdGFibGU7CiAJc3RydWN0IHZlZ2EyMF9zaW5n bGVfZHBtX3RhYmxlICpzb2NfZHBtX3RhYmxlOwogCi0JaWYgKCFzbXUtPnNtdV9kcG0uZHBtX2Nv bnRleHQpCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQgfHwgIXNtdS0+c211X2RwbS5kcG1fY29udGV4 dCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlnZnhfZHBtX3RhYmxlID0gJmRwbV90YWJsZS0+Z2Z4 X3RhYmxlOwpAQCAtMTU3OSw3ICsxNTkzLDcgQEAgc3RhdGljIGludCB2ZWdhMjBfcHJlX2Rpc3Bs YXlfY29uZmlnX2NoYW5nZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJaW50IHJldCA9IDA7 CiAJc3RydWN0IHZlZ2EyMF9kcG1fdGFibGUgKmRwbV90YWJsZSA9IHNtdS0+c211X2RwbS5kcG1f Y29udGV4dDsKIAotCWlmICghc211LT5zbXVfZHBtLmRwbV9jb250ZXh0KQorCWlmICghc211LT5w bV9lbmFibGVkIHx8ICFzbXUtPnNtdV9kcG0uZHBtX2NvbnRleHQpCiAJCXJldHVybiAtRUlOVkFM OwogCiAJc211X3NlbmRfc21jX21zZ193aXRoX3BhcmFtKHNtdSwgU01VX01TR19OdW1PZkRpc3Bs YXlzLCAwKTsKQEAgLTE1OTQsNyArMTYwOCw3IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2Rpc3BsYXlf Y29uZmlnX2NoYW5nZWQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiB7CiAJaW50IHJldCA9IDA7 CiAKLQlpZiAoIXNtdS0+ZnVuY3MpCisJaWYgKCFzbXUtPnBtX2VuYWJsZWQgfHwgIXNtdS0+ZnVu Y3MpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKCFzbXUtPnNtdV9kcG0uZHBtX2NvbnRleHQg fHwKQEAgLTE2MzIsNiArMTY0Niw4IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2FwcGx5X2Nsb2Nrc19h ZGp1c3RfcnVsZXMoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJYm9vbCBkaXNhYmxlX21jbGtf c3dpdGNoaW5nOwogCXVpbnQzMl90IGksIGxhdGVuY3k7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxl ZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJZGlzYWJsZV9tY2xrX3N3aXRjaGluZyA9ICgoMSA8IHNt dS0+ZGlzcGxheV9jb25maWctPm51bV9kaXNwbGF5KSAmJgogCQkJCSAgIXNtdS0+ZGlzcGxheV9j b25maWctPm11bHRpX21vbml0b3JfaW5fc3luYykgfHwgdmJsYW5rX3Rvb19zaG9ydDsKIAlsYXRl bmN5ID0gc211LT5kaXNwbGF5X2NvbmZpZy0+ZGNlX3RvbGVyYWJsZV9tY2xrX2luX2FjdGl2ZV9s YXRlbmN5OwpAQCAtMTc3OSw2ICsxNzk1LDggQEAgdmVnYTIwX25vdGlmeV9zbWNfZGlzcGFseV9j b25maWcoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCiAJc3RydWN0IHBwX2Rpc3BsYXlfY2xvY2tf cmVxdWVzdCBjbG9ja19yZXE7CiAJaW50IHJldCA9IDA7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxl ZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJbWluX2Nsb2Nrcy5kY2VmX2Nsb2NrID0gc211LT5kaXNw bGF5X2NvbmZpZy0+bWluX2RjZWZfc2V0X2NsazsKIAltaW5fY2xvY2tzLmRjZWZfY2xvY2tfaW5f c3IgPSBzbXUtPmRpc3BsYXlfY29uZmlnLT5taW5fZGNlZl9kZWVwX3NsZWVwX3NldF9jbGs7CiAJ bWluX2Nsb2Nrcy5tZW1vcnlfY2xvY2sgPSBzbXUtPmRpc3BsYXlfY29uZmlnLT5taW5fbWVtX3Nl dF9jbG9jazsKQEAgLTE4NjcsNiArMTg4NSw4IEBAIHN0YXRpYyBpbnQgdmVnYTIwX2ZvcmNlX2Rw bV9saW1pdF92YWx1ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwgYm9vbCBoaWdoZXN0KQogCXN0 cnVjdCB2ZWdhMjBfZHBtX3RhYmxlICpkcG1fdGFibGUgPQogCQkoc3RydWN0IHZlZ2EyMF9kcG1f dGFibGUgKilzbXUtPnNtdV9kcG0uZHBtX2NvbnRleHQ7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxl ZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKGhpZ2hlc3QpCiAJCXNvZnRfbGV2ZWwgPSB2ZWdh MjBfZmluZF9oaWdoZXN0X2RwbV9sZXZlbCgmKGRwbV90YWJsZS0+Z2Z4X3RhYmxlKSk7CiAJZWxz ZQpAQCAtMTkxOCw2ICsxOTM4LDggQEAgc3RhdGljIGludCB2ZWdhMjBfdW5mb3JjZV9kcG1fbGV2 ZWxzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCXN0cnVjdCB2ZWdhMjBfZHBtX3RhYmxlICpk cG1fdGFibGUgPQogCQkoc3RydWN0IHZlZ2EyMF9kcG1fdGFibGUgKilzbXUtPnNtdV9kcG0uZHBt X2NvbnRleHQ7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJ c29mdF9taW5fbGV2ZWwgPSB2ZWdhMjBfZmluZF9sb3dlc3RfZHBtX2xldmVsKCYoZHBtX3RhYmxl LT5nZnhfdGFibGUpKTsKIAlzb2Z0X21heF9sZXZlbCA9IHZlZ2EyMF9maW5kX2hpZ2hlc3RfZHBt X2xldmVsKCYoZHBtX3RhYmxlLT5nZnhfdGFibGUpKTsKIAlkcG1fdGFibGUtPmdmeF90YWJsZS5k cG1fc3RhdGUuc29mdF9taW5fbGV2ZWwgPQpAQCAtMTk1Nyw5ICsxOTc5LDkgQEAgc3RhdGljIGlu dCB2ZWdhMjBfdW5mb3JjZV9kcG1fbGV2ZWxzKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogc3Rh dGljIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgdmVnYTIwX2dldF9wZXJmb3JtYW5jZV9sZXZl bChzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkKIHsKIAlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpz bXVfZHBtX2N0eCA9ICYoc211LT5zbXVfZHBtKTsKLQlpZiAoIXNtdV9kcG1fY3R4LT5kcG1fY29u dGV4dCkKLQkJcmV0dXJuIC1FSU5WQUw7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCB8fCAhc211 X2RwbV9jdHgtPmRwbV9jb250ZXh0KQorCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoc211X2RwbV9j dHgtPmRwbV9sZXZlbCAhPSBzbXVfZHBtX2N0eC0+c2F2ZWRfZHBtX2xldmVsKSB7CiAJCW11dGV4 X2xvY2soJihzbXUtPm11dGV4KSk7CiAJCXNtdV9kcG1fY3R4LT5zYXZlZF9kcG1fbGV2ZWwgPSBz bXVfZHBtX2N0eC0+ZHBtX2xldmVsOwpAQCAtMTk3NSw3ICsxOTk3LDcgQEAgdmVnYTIwX2ZvcmNl X3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBzbXVfY29udGV4dCAqc211LCBlbnVtIGFtZF9kcG1f Zm9yY2VkX2xldmUKIAlpbnQgaTsKIAlzdHJ1Y3Qgc211X2RwbV9jb250ZXh0ICpzbXVfZHBtX2N0 eCA9ICYoc211LT5zbXVfZHBtKTsKIAotCWlmICghc211X2RwbV9jdHgtPmRwbV9jb250ZXh0KQor CWlmICghc211LT5wbV9lbmFibGVkIHx8ICFzbXVfZHBtX2N0eC0+ZHBtX2NvbnRleHQpCiAJCXJl dHVybiAtRUlOVkFMOwogCiAJZm9yIChpID0gMDsgaSA8IHNtdS0+YWRldi0+bnVtX2lwX2Jsb2Nr czsgaSsrKSB7CkBAIC0yMDA0LDYgKzIwMjYsOCBAQCBzdGF0aWMgaW50IHZlZ2EyMF91cGRhdGVf c3BlY2lmaWVkX29kOF92YWx1ZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwKIAlzdHJ1Y3QgdmVn YTIwX29kOF9zZXR0aW5ncyAqb2Q4X3NldHRpbmdzID0KIAkJKHN0cnVjdCB2ZWdhMjBfb2Q4X3Nl dHRpbmdzICopdGFibGVfY29udGV4dC0+b2Q4X3NldHRpbmdzOwogCisJaWYgKCFzbXUtPnBtX2Vu YWJsZWQpCisJCXJldHVybiAtRUlOVkFMOwogCXN3aXRjaCAoaW5kZXgpIHsKIAljYXNlIE9EOF9T RVRUSU5HX0dGWENMS19GTUlOOgogCQlvZF90YWJsZS0+R2Z4Y2xrRm1pbiA9ICh1aW50MTZfdCl2 YWx1ZTsKQEAgLTIwODUsNiArMjEwOSw4IEBAIHN0YXRpYyBpbnQgdmVnYTIwX3NldF9vZF9wZXJj ZW50YWdlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCWludCBmZWF0dXJlX2VuYWJsZWQ7CiAJ UFBDTEtfZSBjbGtfaWQ7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5W QUw7CiAJbXV0ZXhfbG9jaygmKHNtdS0+bXV0ZXgpKTsKIAogCWRwbV90YWJsZSA9IHNtdV9kcG0t PmRwbV9jb250ZXh0OwpAQCAtMjE2Myw2ICsyMTg5LDggQEAgc3RhdGljIGludCB2ZWdhMjBfb2Ru X2VkaXRfZHBtX3RhYmxlKHN0cnVjdCBzbXVfY29udGV4dCAqc211LAogCiAJZHBtX3RhYmxlID0g c211X2RwbS0+ZHBtX2NvbnRleHQ7CiAKKwlpZiAoIXNtdS0+cG1fZW5hYmxlZCkKKwkJcmV0dXJu IC1FSU5WQUw7CiAJaWYgKCFpbnB1dCkgewogCQlwcl93YXJuKCJOVUxMIHVzZXIgaW5wdXQgZm9y IGNsb2NrIGFuZCB2b2x0YWdlXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7Ci0tIAoyLjcuNAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4