From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Francis Subject: [PATCH v5 5/5] drm/dp_mst: Add helper for finding right aux to enable/query DSC Date: Fri, 23 Aug 2019 16:28:09 -0400 Message-ID: <20190823202809.15934-6-David.Francis@amd.com> References: <20190823202809.15934-1-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-eopbgr760052.outbound.protection.outlook.com [40.107.76.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id C116A6ED37 for ; Fri, 23 Aug 2019 20:28:19 +0000 (UTC) In-Reply-To: <20190823202809.15934-1-David.Francis@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Wenjing Liu , David Francis , Nikola Cornij List-Id: dri-devel@lists.freedesktop.org QWRkIGRybV9kcF9tc3RfZHNjX2F1eF9mb3JfcG9ydC4gVG8gZW5hYmxlIERTQywgdGhlIERTQ19F TkFCTEVECnJlZ2lzdGVyIG1pZ2h0IGhhdmUgdG8gYmUgd3JpdHRlbiBvbiB0aGUgbGVhZiBwb3J0 J3MgRFBDRCwKaXRzIHBhcmVudCdzIERQQ0QsIG9yIHRoZSBNU1QgbWFuYWdlcidzIERQQ0QuIFRo aXMgZnVuY3Rpb24KZmluZHMgdGhlIGNvcnJlY3QgYXV4IGZvciB0aGUgam9iLgoKQXMgcGFydCBv ZiB0aGlzLCBhZGQgZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QuIFZpcnR1YWwgRFBDRAppcyBh IERQIGZlYXR1cmUgbmV3IGluIERQIHYxLjQsIHdoaWNoIGV4cG9zZXMgY2VydGFpbiBEUENECnJl Z2lzdGVycyBvbiB2aXJ0dWFsIHBvcnRzLgoKQUxzbyBhZGQgYSBuZXcgcXVpcmsgZm9yIFN5bmF0 aWNzIE1TVCBodWJzIHRoYXQgc3VwcG9ydCBEU0MKZGVzcGl0ZSBub3Qgc3VwcG9ydGluZyB2aXJ0 dWFsIERQQ0QuCgpDYzogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KQ2M6IFdlbmppbmcg TGl1IDxXZW5qaW5nLkxpdUBhbWQuY29tPgpDYzogTmlrb2xhIENvcm5paiA8Tmlrb2xhLkNvcm5p akBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBGcmFuY2lzIDxEYXZpZC5GcmFuY2lzQGFt ZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyAgICAgICB8ICAgMiAr CiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwgMTQ3ICsrKysrKysrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmggICAgICAgICAgIHwg ICA3ICsrCiBpbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oICAgICAgIHwgICAyICsKIDQg ZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2RwX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwpp bmRleCAyY2MyMWVmZjRjZjMuLmZjMzkzMjNlN2Q1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5j CkBAIC0xMjcwLDYgKzEyNzAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwY2RfcXVpcmsgZHBj ZF9xdWlya19saXN0W10gPSB7CiAJeyBPVUkoMHgwMCwgMHgxMCwgMHhmYSksIERFVklDRV9JRF9B TlksIGZhbHNlLCBCSVQoRFBfRFBDRF9RVUlSS19OT19QU1IpIH0sCiAJLyogQ0g3NTExIHNlZW1z IHRvIGxlYXZlIFNJTktfQ09VTlQgemVyb2VkICovCiAJeyBPVUkoMHgwMCwgMHgwMCwgMHgwMCks IERFVklDRV9JRCgnQycsICdIJywgJzcnLCAnNScsICcxJywgJzEnKSwgZmFsc2UsIEJJVChEUF9E UENEX1FVSVJLX05PX1NJTktfQ09VTlQpIH0sCisJLyogU3luYXB0aWNzIERQMS40IE1TVCBodWJz IGNhbiBzdXBwb3J0IERTQyB3aXRob3V0IHZpcnR1YWwgRFBDRCAqLworCXsgT1VJKDB4OTAsIDB4 Q0MsIDB4MjQpLCBERVZJQ0VfSURfQU5ZLCB0cnVlLCBCSVQoRFBfRFBDRF9RVUlSS19EU0NfV0lU SE9VVF9WSVJUVUFMX0RQQ0QpIH0sCiB9OwogCiAjdW5kZWYgT1VJCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9tc3RfdG9wb2xvZ3kuYwppbmRleCBhMzllNDJjN2Q4NjguLjU1OWJjMDliNmI5NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCkBAIC00MTUwLDMgKzQxNTAsMTUwIEBAIHN0 YXRpYyB2b2lkIGRybV9kcF9tc3RfdW5yZWdpc3Rlcl9pMmNfYnVzKHN0cnVjdCBkcm1fZHBfYXV4 ICphdXgpCiB7CiAJaTJjX2RlbF9hZGFwdGVyKCZhdXgtPmRkYyk7CiB9CisKKy8qKgorICogZHJt X2RwX21zdF9pc192aXJ0dWFsX2RwY2QoKSAtIElzIHRoZSBnaXZlbiBwb3J0IGEgdmlydHVhbCBE UCBQZWVyIERldmljZQorICogQHBvcnQ6IFRoZSBwb3J0IHRvIGNoZWNrCisgKgorICogQSBzaW5n bGUgcGh5c2ljYWwgTVNUIGh1YiBvYmplY3QgY2FuIGJlIHJlcHJlc2VudGVkIGluIHRoZSB0b3Bv bG9neQorICogYnkgbXVsdGlwbGUgYnJhbmNoZXMsIHdpdGggdmlydHVhbCBwb3J0cyBiZXR3ZWVu IHRob3NlIGJyYW5jaGVzLgorICoKKyAqIEFzIG9mIERQMS40LCBBbiBNU1QgaHViIHdpdGggaW50 ZXJuYWwgKHZpcnR1YWwpIHBvcnRzIG11c3QgZXhwb3NlCisgKiBjZXJ0YWluIERQQ0QgcmVnaXN0 ZXJzIG92ZXIgdGhvc2UgcG9ydHMuIFNlZSBzZWN0aW9ucyAyLjYuMS4xLjEKKyAqIGFuZCAyLjYu MS4xLjIgb2YgRGlzcGxheSBQb3J0IHNwZWNpZmljYXRpb24gdjEuNCBmb3IgZGV0YWlscy4KKyAq CisgKiBNYXkgYWNxdWlyZSBtZ3ItPmxvY2sKKyAqCisgKiBSZXR1cm5zOgorICogdHJ1ZSBpZiB0 aGUgcG9ydCBpcyBhIHZpcnR1YWwgRFAgcGVlciBkZXZpY2UsIGZhbHNlIG90aGVyd2lzZQorICov CitzdGF0aWMgYm9vbCBkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChzdHJ1Y3QgZHJtX2RwX21z dF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKmRvd25zdHJlYW1fcG9y dDsKKworCWlmICghcG9ydCkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogVmlydHVhbCBEUCBTaW5r IChJbnRlcm5hbCBEaXNwbGF5IFBhbmVsKSAqLworCWlmIChwb3J0LT5wb3J0X251bSA+PSA4ICYm IHBvcnQtPmRwY2RfcmV2ID49IERQX0RQQ0RfUkVWXzE0KQorCQlyZXR1cm4gdHJ1ZTsKKworCS8q IERQLXRvLUhETUkgUHJvdG9jb2wgQ29udmVydGVyICovCisJaWYgKHBvcnQtPnBkdCA9PSBEUF9Q RUVSX0RFVklDRV9EUF9MRUdBQ1lfQ09OViAmJgorCQkJIXBvcnQtPm1jcyAmJgorCQkJcG9ydC0+ bGRwcyAmJgorCQkJcG9ydC0+ZHBjZF9yZXYgPj0gRFBfRFBDRF9SRVZfMTQpCisJCXJldHVybiB0 cnVlOworCisJLyogRFAtdG8tRFAgKi8KKwltdXRleF9sb2NrKCZwb3J0LT5tZ3ItPmxvY2spOwor CWlmIChwb3J0LT5wZHQgPT0gRFBfUEVFUl9ERVZJQ0VfTVNUX0JSQU5DSElORyAmJgorCQkJcG9y dC0+bXN0YiAmJgorCQkJcG9ydC0+ZHBjZF9yZXYgPj0gRFBfRFBDRF9SRVZfMTQgJiYKKwkJCXBv cnQtPm1zdGItPm51bV9wb3J0cyA9PSAyKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkoZG93bnN0 cmVhbV9wb3J0LCAmcG9ydC0+bXN0Yi0+cG9ydHMsIG5leHQpIHsKKwkJCWlmICghZG93bnN0cmVh bV9wb3J0LT5pbnB1dCAmJgorCQkJCWRvd25zdHJlYW1fcG9ydC0+cGR0ID09IERQX1BFRVJfREVW SUNFX1NTVF9TSU5LKQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQorCW11dGV4X3VubG9jaygm cG9ydC0+bWdyLT5sb2NrKTsKKworCXJldHVybiBmYWxzZTsKK30KKworLyoqCisgKiBkcm1fZHBf bXN0X2RzY19hdXhfZm9yX3BvcnQoKSAtIEZpbmQgdGhlIGNvcnJlY3QgYXV4IGZvciBEU0MKKyAq IEBwb3J0OiBUaGUgcG9ydCB0byBjaGVjay4gQSBsZWFmIG9mIHRoZSBNU1QgdHJlZSB3aXRoIGFu IGF0dGFjaGVkIGRpc3BsYXkuCisgKgorICogRGVwZW5kaW5nIG9uIHRoZSBzaXR1YXRpb24sIERT QyBtYXkgYmUgZW5hYmxlZCB2aWEgdGhlIGVuZHBvaW50IGF1eCwKKyAqIHRoZSBpbW1lZGlhdGVs eSB1cHN0cmVhbSBhdXgsIG9yIHRoZSBjb25uZWN0b3IncyBwaHlzaWNhbCBhdXguCisgKgorICog VGhpcyBpcyBib3RoIHRoZSBjb3JyZWN0IGF1eCB0byByZWFkIERTQ19DQVBBQklMSVRZIGFuZCB0 aGUKKyAqIGNvcnJlY3QgYXV4IHRvIHdyaXRlIERTQ19FTkFCTEVELgorICoKKyAqIFRoaXMgb3Bl cmF0aW9uIGNhbiBiZSBleHBlbnNpdmUgKHVwIHRvIGZvdXIgYXV4IHJlYWRzKSwgc28KKyAqIHRo ZSBjYWxsZXIgc2hvdWxkIGNhY2hlIHRoZSByZXR1cm4uCisgKgorICogUmV0dXJuczoKKyAqIE5V TEwgaWYgRFNDIGNhbm5vdCBiZSBlbmFibGVkIG9uIHRoaXMgcG9ydCwgb3RoZXJ3aXNlIHRoZSBh dXggZGV2aWNlCisgKi8KK3N0cnVjdCBkcm1fZHBfYXV4ICpkcm1fZHBfbXN0X2RzY19hdXhfZm9y X3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgZHJtX2RwX21z dF9wb3J0ICppbW1lZGlhdGVfdXBzdHJlYW1fcG9ydDsKKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0 ICpmZWNfcG9ydDsKKwlzdHJ1Y3QgZHJtX2RwX2Rlc2MgKmRlc2M7CisKKwlpZiAocG9ydCAmJiBw b3J0LT5wYXJlbnQpCisJCWltbWVkaWF0ZV91cHN0cmVhbV9wb3J0ID0gcG9ydC0+cGFyZW50LT5w b3J0X3BhcmVudDsKKwllbHNlCisJCWltbWVkaWF0ZV91cHN0cmVhbV9wb3J0ID0gTlVMTDsKKwor CWZlY19wb3J0ID0gaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQ7CisJd2hpbGUgKGZlY19wb3J0KSB7 CisJCS8qCisJCSAqIEVhY2ggcGh5c2ljYWwgbGluayAoaS5lLiBub3QgYSB2aXJ0dWFsIHBvcnQp IGJldHdlZW4gdGhlCisJCSAqIG91dHB1dCBhbmQgdGhlIHByaW1hcnkgZGV2aWNlIG11c3Qgc3Vw cG9ydCBGRUMKKwkJICovCisJCWlmICghZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QoZmVjX3Bv cnQpICYmCisJCQkJIWZlY19wb3J0LT5mZWNfY2FwYWJsZSkKKwkJCXJldHVybiBOVUxMOworCisJ CWZlY19wb3J0ID0gZmVjX3BvcnQtPnBhcmVudC0+cG9ydF9wYXJlbnQ7CisJfQorCisJLyogRW5w b2ludCBkZWNvbXByZXNzaW9uIHdpdGggRFAtdG8tRFAgcGVlciBkZXZpY2UgKi8KKwlpZiAoZHJt X2RwX21zdF9pc192aXJ0dWFsX2RwY2QoaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQpKSB7CisJCXU4 IHVwc3RyZWFtX2RzYzsKKwkJdTggZW5kcG9pbnRfZHNjOworCQl1OCBlbmRwb2ludF9mZWM7CisK KwkJaWYgKGRybV9kcF9kcGNkX3JlYWQoJnBvcnQtPmF1eCwKKwkJCQkgICAgIERQX0RTQ19TVVBQ T1JULCAmZW5kcG9pbnRfZHNjLCAxKSA8IDApCisJCQlyZXR1cm4gTlVMTDsKKwkJaWYgKGRybV9k cF9kcGNkX3JlYWQoJnBvcnQtPmF1eCwKKwkJCQkgICAgIERQX0ZFQ19DQVBBQklMSVRZLCAmZW5k cG9pbnRfZmVjLCAxKSA8IDApCisJCQlyZXR1cm4gTlVMTDsKKwkJaWYgKGRybV9kcF9kcGNkX3Jl YWQoJmltbWVkaWF0ZV91cHN0cmVhbV9wb3J0LT5hdXgsCisJCQkJICAgICBEUF9EU0NfU1VQUE9S VCwgJnVwc3RyZWFtX2RzYywgMSkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisKKwkJaWYgKChlbmRw b2ludF9kc2MgJiBEUF9EU0NfREVDT01QUkVTU0lPTl9JU19TVVBQT1JURUQpCisJCQkJJiYgKGVu ZHBvaW50X2ZlYyAmIERQX0ZFQ19DQVBBQkxFKQorCQkJCSYmICh1cHN0cmVhbV9kc2MgJiAweDIp IC8qIERTQyBwYXNzdGhyb3VnaCAqLykKKwkJCXJldHVybiAmcG9ydC0+YXV4OworCisJCS8qIFZp cnR1YWwgRFBDRCBkZWNvbXByZXNzaW9uIHdpdGggRFAtdG8tRFAgcGVlciBkZXZpY2UgKi8KKwkJ cmV0dXJuICZpbW1lZGlhdGVfdXBzdHJlYW1fcG9ydC0+YXV4OworCX0KKworCS8qIFZpcnR1YWwg RFBDRCBkZWNvbXByZXNzaW9uIHdpdGggRFAtdG8tSERNSSBvciBWaXJ0dWFsIERQIFNpbmsgKi8K KwlpZiAoZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QocG9ydCkpCisJCXJldHVybiAmcG9ydC0+ YXV4OworCisJLyoKKwkgKiBTeW5hcHRpY3MgcXVpcmsKKwkgKiBBcHBsaWVzIHRvIHBvcnRzIGZv ciB3aGljaDoKKwkgKiAtIFBoeXNpY2FsIGF1eCBoYXMgU3luYXB0aWNzIE9VSQorCSAqIC0gRFB2 MS40IG9yIGhpZ2hlcgorCSAqIC0gUG9ydCBpcyBvbiBwcmltYXJ5IGJyYW5jaCBkZXZpY2UKKwkg KiAtIE5vdCBhIFZHQSBhZGFwdGVyIChEUF9EV05fU1RSTV9QT1JUX1RZUEVfQU5BTE9HKQorCSAq LworCWRybV9kcF9yZWFkX2Rlc2MocG9ydC0+bWdyLT5hdXgsIGRlc2MsIHRydWUpOworCWlmIChk cm1fZHBfaGFzX3F1aXJrKGRlc2MsIERQX0RQQ0RfUVVJUktfRFNDX1dJVEhPVVRfVklSVFVBTF9E UENEICYmCisJCQlwb3J0LT5tZ3ItPmRwY2RbRFBfRFBDRF9SRVZdID49IERQX0RQQ0RfUkVWXzE0 KSAmJgorCQkJcG9ydC0+cGFyZW50ID09IHBvcnQtPm1nci0+bXN0X3ByaW1hcnkpIHsKKwkJdTgg ZG93bnN0cmVhbXBvcnQ7CisKKwkJZHJtX2RwX2RwY2RfcmVhZCgmcG9ydC0+YXV4LCBEUF9ET1dO U1RSRUFNUE9SVF9QUkVTRU5ULAorCQkJCSAmZG93bnN0cmVhbXBvcnQsIDEpOworCisJCWlmICgo ZG93bnN0cmVhbXBvcnQgJiBEUF9EV05fU1RSTV9QT1JUX1BSRVNFTlQpICYmCisJCQkJKGRvd25z dHJlYW1wb3J0ICYgRFBfRFdOX1NUUk1fUE9SVF9UWVBFX01BU0sKKwkJCQkhPSBEUF9EV05fU1RS TV9QT1JUX1RZUEVfQU5BTE9HKSkKKwkJCXJldHVybiBwb3J0LT5tZ3ItPmF1eDsKKwl9CisKKwly ZXR1cm4gTlVMTDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0 KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJt L2RybV9kcF9oZWxwZXIuaAppbmRleCA4MzY0NTAyZjkyY2YuLmExMzMxYjA4NzA1ZiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9k cF9oZWxwZXIuaApAQCAtMTQzNCw2ICsxNDM0LDEzIEBAIGVudW0gZHJtX2RwX3F1aXJrIHsKIAkg KiBUaGUgZHJpdmVyIHNob3VsZCBpZ25vcmUgU0lOS19DT1VOVCBkdXJpbmcgZGV0ZWN0aW9uLgog CSAqLwogCURQX0RQQ0RfUVVJUktfTk9fU0lOS19DT1VOVCwKKwkvKioKKwkgKiBARFBfRFBDRF9R VUlSS19EU0NfV0lUSE9VVF9WSVJUVUFMX0RQQ0Q6CisJICoKKwkgKiBUaGUgZGV2aWNlIHN1cHBv cnRzIE1TVCBEU0MgZGVzcGl0ZSBub3Qgc3VwcG9ydGluZyBWaXJ0dWFsIERQQ0QuCisJICogVGhl IERTQyBjYXBzIGNhbiBiZSByZWFkIGZyb20gdGhlIHBoeXNpY2FsIGF1eCBpbnN0ZWFkLgorCSAq LworCURQX0RQQ0RfUVVJUktfRFNDX1dJVEhPVVRfVklSVFVBTF9EUENELAogfTsKIAogLyoqCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oIGIvaW5jbHVkZS9kcm0v ZHJtX2RwX21zdF9oZWxwZXIuaAppbmRleCBmMTEzYWUwNGZhODguLjRjZjczODU0NWRmYiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2Ry bS9kcm1fZHBfbXN0X2hlbHBlci5oCkBAIC02NzMsNiArNjczLDggQEAgaW50IF9fbXVzdF9jaGVj ayBkcm1fZHBfbXN0X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Owogdm9pZCBkcm1fZHBfbXN0X2dldF9wb3J0X21hbGxvYyhzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0 ICpwb3J0KTsKIHZvaWQgZHJtX2RwX21zdF9wdXRfcG9ydF9tYWxsb2Moc3RydWN0IGRybV9kcF9t c3RfcG9ydCAqcG9ydCk7CiAKK3N0cnVjdCBkcm1fZHBfYXV4ICpkcm1fZHBfbXN0X2RzY19hdXhf Zm9yX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCk7CisKIGV4dGVybiBjb25zdCBz dHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZV9m dW5jczsKIAogLyoqCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA==