From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH] drm/bridge/synopsis: stop clobbering drvdata Date: Tue, 09 Jan 2018 15:37:29 +0200 Message-ID: <2473674.qmHiHju6p6@avalon> References: <20171128010538.119114-1-briannorris@chromium.org> <348421ad-a6f5-0943-f38d-d9a6de60e32e@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Philippe CORNU Cc: "hl@rock-chips.com" , "linux-rockchip@lists.infradead.org" , David Airlie , Brian Norris , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Yannick FERTRE , Nickey Yang , "mka@chromium.org" , Vincent ABRIOU List-Id: linux-rockchip.vger.kernel.org SGkgUGhpbGlwcGUsCgpPbiBUdWVzZGF5LCA5IEphbnVhcnkgMjAxOCAxNTowMTowMiBFRVQgUGhp bGlwcGUgQ09STlUgd3JvdGU6Cj4gSGkgQXJjaGl0LCBBbmRyemVqICYgTGF1cmVudCwKPiAKPiBS ZWdhcmRpbmcgdGhpcyBwYXRjaCBmcm9tIEJyaWFuLCBJIHRoaW5rIGl0IGNvdWxkIGJlIG5pY2Ug dG8gbWVyZ2UgaXQgCj4gKDF4QWNrZWQtYnksIDJ4UmV2aWV3ZWQtYnkpLgo+IAo+IENvdWxkIHlv dSBwbGVhc2UgaGF2ZSBhIGxvb2s/Cj4gCj4gT25seSB0aGUgc21hbGwgInR5cG8iIGluIHRoZSBo ZWFkbGluZSBuZWVkcyB0byBiZSBjaGFuZ2VkLgo+IAo+IE1hbnkgdGhhbmtzLAoKSSd2ZSBqdXN0 IHJlcGxpZWQgdG8gQnJpYW4gaW4gdGhpcyBtYWlsIHRocmVhZC4gU29ycnkgZm9yIHRoZSBkZWxh eSwgaXQgCnNsaXBwZWQgdGhyb3VnaCB0aGUgY3JhY2tzLiBUaGFuayB5b3UgZm9yIHBpbmdpbmcg bWUuCgo+IE9uIDExLzI4LzIwMTcgMTA6MzQgQU0sIFBoaWxpcHBlIENPUk5VIHdyb3RlOgo+IAo+ ID4gSGkgQnJpYW4sCj4gPiAKPiA+IE9uIDExLzI4LzIwMTcgMDI6MDUgQU0sIEJyaWFuIE5vcnJp cyB3cm90ZToKPiA+IAo+ID4+IEJyaWRnZSBkcml2ZXJzL2hlbHBlcnMgc2hvdWxkbid0IGJlIGNs b2JiZXJpbmcgdGhlIGRydmRhdGEsIHNpbmNlIGEKPiA+PiBwYXJlbnQgZHJpdmVyIG1pZ2h0IG5l ZWQgdG8gb3duIHRoaXMuIEluc3RlYWQsIGxldCdzIHJldHVybiBvdXIKPiA+PiAnZHdfbWlwaV9k c2knIG9iamVjdCBhbmQgaGF2ZSBjYWxsZXJzIHBhc3MgdGhhdCBiYWNrIHRvIHVzIGZvciByZW1v dmFsLgo+ID4gCj4gPiAKPiA+IEFuZCBtYW55IHRoYW5rcyBmb3IgdGhpcyBjbGVhbnVwLgo+ID4g KHBsZWFzZSB1cGRhdGUgdGhlIGhlYWRsaW5lIHdpdGggInN5bm9wc3lzIikKPiA+IAo+ID4gU3Vj Y2Vzc2Z1bGx5IHRlc3RlZCBvbiBzdG0uCj4gPiAKPiA+IEFja2VkLWJ5OiBQaGlsaXBwZSBDb3Ju dSA8cGhpbGlwcGUuY29ybnVAc3QuY29tPgo+ID4gCj4gPiBNYW55IHRoYW5rcywKPiA+IFBoaWxp cHBlIDotKQo+ID4gCj4gPj4KPiA+Pgo+ID4+IFNpZ25lZC1vZmYtYnk6IEJyaWFuIE5vcnJpcyA8 YnJpYW5ub3JyaXNAY2hyb21pdW0ub3JnPgo+ID4+IC0tLQo+ID4+ICAgZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jIHwgMzYgCj4gPj4gKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vc3RtL2R3X21pcGlfZHNpLXN0bS5j ICAgICAgICAgfCAxNCArKysrKysrLS0tLQo+ID4+ICAgaW5jbHVkZS9kcm0vYnJpZGdlL2R3X21p cGlfZHNpLmggICAgICAgICAgICAgIHwgMTcgKysrKysrKystLS0tLQo+ID4+ICAgMyBmaWxlcyBj aGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+Cj4gPj4K PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBp LWRzaS5jIAo+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRz aS5jCj4gPj4gaW5kZXggZDljY2E0ZmQ2NmVjLi5jMzljN2RjZTIwZWQgMTAwNjQ0Cj4gPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gPj4gQEAg LTkyMiw4ICs5MjIsNiBAQCBfX2R3X21pcGlfZHNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYsCj4gPj4gICAgICAgZHNpLT5icmlkZ2Uub2Zfbm9kZSA9IHBkZXYtPmRldi5vZl9u b2RlOwo+ID4+ICAgI2VuZGlmCj4gPj4gLSAgICBkZXZfc2V0X2RydmRhdGEoZGV2LCBkc2kpOwo+ ID4+IC0KPiA+PiAgICAgICByZXR1cm4gZHNpOwo+ID4+ICAgfQo+ID4+IEBAIC05MzUsMjMgKzkz MywxNiBAQCBzdGF0aWMgdm9pZCBfX2R3X21pcGlfZHNpX3JlbW92ZShzdHJ1Y3QgCj4gPj4gZHdf bWlwaV9kc2kgKmRzaSkKPiA+PiAgIC8qCj4gPj4gICAgKiBQcm9iZS9yZW1vdmUgQVBJLCB1c2Vk IGZyb20gcGxhdGZvcm1zIGJhc2VkIG9uIHRoZSBEUk0gYnJpZGdlIEFQSS4KPiA+PiAgICAqLwo+ ID4+IC1pbnQgZHdfbWlwaV9kc2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK PiA+PiAtICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpw bGF0X2RhdGEpCj4gPj4gK3N0cnVjdCBkd19taXBpX2RzaSAqCj4gPj4gK2R3X21pcGlfZHNpX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gPj4gKyAgICAgICAgICBjb25zdCBz dHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwbGF0X2RhdGEpCj4gPj4gICB7Cj4gPj4gLSAg ICBzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaTsKPiA+PiAtCj4gPj4gLSAgICBkc2kgPSBfX2R3X21p cGlfZHNpX3Byb2JlKHBkZXYsIHBsYXRfZGF0YSk7Cj4gPj4gLSAgICBpZiAoSVNfRVJSKGRzaSkp Cj4gPj4gLSAgICAgICAgcmV0dXJuIFBUUl9FUlIoZHNpKTsKPiA+PiAtCj4gPj4gLSAgICByZXR1 cm4gMDsKPiA+PiArICAgIHJldHVybiBfX2R3X21pcGlfZHNpX3Byb2JlKHBkZXYsIHBsYXRfZGF0 YSk7Cj4gPj4gICB9Cj4gPj4gICBFWFBPUlRfU1lNQk9MX0dQTChkd19taXBpX2RzaV9wcm9iZSk7 Cj4gPj4gLXZvaWQgZHdfbWlwaV9kc2lfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCj4gPj4gK3ZvaWQgZHdfbWlwaV9kc2lfcmVtb3ZlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNp KQo+ID4+ICAgewo+ID4+IC0gICAgc3RydWN0IGR3X21pcGlfZHNpICpkc2kgPSBwbGF0Zm9ybV9n ZXRfZHJ2ZGF0YShwZGV2KTsKPiA+PiAtCj4gPj4gICAgICAgbWlwaV9kc2lfaG9zdF91bnJlZ2lz dGVyKCZkc2ktPmRzaV9ob3N0KTsKPiA+PiAgICAgICBfX2R3X21pcGlfZHNpX3JlbW92ZShkc2kp Owo+ID4+IEBAIC05NjEsMzEgKzk1MiwzMCBAQCBFWFBPUlRfU1lNQk9MX0dQTChkd19taXBpX2Rz aV9yZW1vdmUpOwo+ID4+ICAgLyoKPiA+PiAgICAqIEJpbmQvdW5iaW5kIEFQSSwgdXNlZCBmcm9t IHBsYXRmb3JtcyBiYXNlZCBvbiB0aGUgY29tcG9uZW50IAo+ID4+IGZyYW1ld29yay4KPiA+PiAg ICAqLwo+ID4+IC1pbnQgZHdfbWlwaV9kc2lfYmluZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LCBzdHJ1Y3QgZHJtX2VuY29kZXIgCj4gPj4gKmVuY29kZXIsCj4gPj4gLSAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwbGF0X2RhdGEpCj4gPj4gK3N0 cnVjdCBkd19taXBpX2RzaSAqCj4gPj4gK2R3X21pcGlfZHNpX2JpbmQoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwgc3RydWN0IGRybV9lbmNvZGVyIAo+ID4+ICplbmNvZGVyLAo+ID4+ICsg ICAgICAgICBjb25zdCBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwbGF0X2RhdGEpCj4g Pj4gICB7Cj4gPj4gICAgICAgc3RydWN0IGR3X21pcGlfZHNpICpkc2k7Cj4gPj4gICAgICAgaW50 IHJldDsKPiA+PiAgICAgICBkc2kgPSBfX2R3X21pcGlfZHNpX3Byb2JlKHBkZXYsIHBsYXRfZGF0 YSk7Cj4gPj4gICAgICAgaWYgKElTX0VSUihkc2kpKQo+ID4+IC0gICAgICAgIHJldHVybiBQVFJf RVJSKGRzaSk7Cj4gPj4gKyAgICAgICAgcmV0dXJuIGRzaTsKPiA+PiAgICAgICByZXQgPSBkcm1f YnJpZGdlX2F0dGFjaChlbmNvZGVyLCAmZHNpLT5icmlkZ2UsIE5VTEwpOwo+ID4+ICAgICAgIGlm IChyZXQpIHsKPiA+PiAtICAgICAgICBkd19taXBpX2RzaV9yZW1vdmUocGRldik7Cj4gPj4gKyAg ICAgICAgZHdfbWlwaV9kc2lfcmVtb3ZlKGRzaSk7Cj4gPj4gICAgICAgICAgIERSTV9FUlJPUigi RmFpbGVkIHRvIGluaXRpYWxpemUgYnJpZGdlIHdpdGggZHJtXG4iKTsKPiA+PiAtICAgICAgICBy ZXR1cm4gcmV0Owo+ID4+ICsgICAgICAgIHJldHVybiBFUlJfUFRSKHJldCk7Cj4gPj4gICAgICAg fQo+ID4+IC0gICAgcmV0dXJuIDA7Cj4gPj4gKyAgICByZXR1cm4gZHNpOwo+ID4+ICAgfQo+ID4+ ICAgRVhQT1JUX1NZTUJPTF9HUEwoZHdfbWlwaV9kc2lfYmluZCk7Cj4gPj4gLXZvaWQgZHdfbWlw aV9kc2lfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+PiArdm9pZCBkd19taXBpX2RzaV91 bmJpbmQoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpCj4gPj4gICB7Cj4gPj4gLSAgICBzdHJ1Y3Qg ZHdfbWlwaV9kc2kgKmRzaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4+IC0KPiA+PiAgICAg ICBfX2R3X21pcGlfZHNpX3JlbW92ZShkc2kpOwo+ID4+ICAgfQo+ID4+ICAgRVhQT1JUX1NZTUJP TF9HUEwoZHdfbWlwaV9kc2lfdW5iaW5kKTsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3N0bS9kd19taXBpX2RzaS1zdG0uYyAKPiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9zdG0vZHdf bWlwaV9kc2ktc3RtLmMKPiA+PiBpbmRleCBlNWI2MzEwMjQwZmUuLjdlZDBlZjdmNmVjMiAxMDA2 NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2R3X21pcGlfZHNpLXN0bS5jCj4gPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3N0bS9kd19taXBpX2RzaS1zdG0uYwo+ID4+IEBAIC02Niw2 ICs2Niw3IEBAIGVudW0gZHNpX2NvbG9yIHsKPiA+PiAgIHN0cnVjdCBkd19taXBpX2RzaV9zdG0g ewo+ID4+ICAgICAgIHZvaWQgX19pb21lbSAqYmFzZTsKPiA+PiAgICAgICBzdHJ1Y3QgY2xrICpw bGxyZWZfY2xrOwo+ID4+ICsgICAgc3RydWN0IGR3X21pcGlfZHNpICpkc2k7Cj4gPj4gICB9Owo+ ID4+ICAgc3RhdGljIGlubGluZSB2b2lkIGRzaV93cml0ZShzdHJ1Y3QgZHdfbWlwaV9kc2lfc3Rt ICpkc2ksIHUzMiByZWcsIAo+ID4+IHUzMiB2YWwpCj4gPj4gQEAgLTMxOCwyMSArMzE5LDI0IEBA IHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfc3RtX3Byb2JlKHN0cnVjdCAKPiA+PiBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gPj4gICAgICAgZHdfbWlwaV9kc2lfc3RtX3BsYXRfZGF0YS5iYXNlID0g ZHNpLT5iYXNlOwo+ID4+ICAgICAgIGR3X21pcGlfZHNpX3N0bV9wbGF0X2RhdGEucHJpdl9kYXRh ID0gZHNpOwo+ID4+IC0gICAgcmV0ID0gZHdfbWlwaV9kc2lfcHJvYmUocGRldiwgJmR3X21pcGlf ZHNpX3N0bV9wbGF0X2RhdGEpOwo+ID4+IC0gICAgaWYgKHJldCkgewo+ID4+ICsgICAgcGxhdGZv cm1fc2V0X2RydmRhdGEocGRldiwgZHNpKTsKPiA+PiArCj4gPj4gKyAgICBkc2ktPmRzaSA9IGR3 X21pcGlfZHNpX3Byb2JlKHBkZXYsICZkd19taXBpX2RzaV9zdG1fcGxhdF9kYXRhKTsKPiA+PiAr ICAgIGlmIChJU19FUlIoZHNpLT5kc2kpKSB7Cj4gPj4gICAgICAgICAgIERSTV9FUlJPUigiRmFp bGVkIHRvIGluaXRpYWxpemUgbWlwaSBkc2kgaG9zdFxuIik7Cj4gPj4gICAgICAgICAgIGNsa19k aXNhYmxlX3VucHJlcGFyZShkc2ktPnBsbHJlZl9jbGspOwo+ID4+ICsgICAgICAgIHJldHVybiBQ VFJfRVJSKGRzaS0+ZHNpKTsKPiA+PiAgICAgICB9Cj4gPj4gLSAgICByZXR1cm4gcmV0Owo+ID4+ ICsgICAgcmV0dXJuIDA7Cj4gPj4gICB9Cj4gPj4gICBzdGF0aWMgaW50IGR3X21pcGlfZHNpX3N0 bV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+PiAgIHsKPiA+PiAtICAg IHN0cnVjdCBkd19taXBpX2RzaV9zdG0gKmRzaSA9IGR3X21pcGlfZHNpX3N0bV9wbGF0X2RhdGEu cHJpdl9kYXRhOwo+ID4+ICsgICAgc3RydWN0IGR3X21pcGlfZHNpX3N0bSAqZHNpID0gcGxhdGZv cm1fZ2V0X2RydmRhdGEocGRldik7Cj4gPj4gICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRz aS0+cGxscmVmX2Nsayk7Cj4gPj4gLSAgICBkd19taXBpX2RzaV9yZW1vdmUocGRldik7Cj4gPj4g KyAgICBkd19taXBpX2RzaV9yZW1vdmUoZHNpLT5kc2kpOwo+ID4+ICAgICAgIHJldHVybiAwOwo+ ID4+ICAgfQo+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9icmlkZ2UvZHdfbWlwaV9kc2ku aCAKPiA+PiBiL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19taXBpX2RzaS5oCj4gPj4gaW5kZXggOWIz MGZlYzMwMmM4Li5kOWM2ZDU0OWY5NzEgMTAwNjQ0Cj4gPj4gLS0tIGEvaW5jbHVkZS9kcm0vYnJp ZGdlL2R3X21pcGlfZHNpLmgKPiA+PiArKysgYi9pbmNsdWRlL2RybS9icmlkZ2UvZHdfbWlwaV9k c2kuaAo+ID4+IEBAIC0xMCw2ICsxMCw4IEBACj4gPj4gICAjaWZuZGVmIF9fRFdfTUlQSV9EU0lf Xwo+ID4+ICAgI2RlZmluZSBfX0RXX01JUElfRFNJX18KPiA+PiArc3RydWN0IGR3X21pcGlfZHNp Owo+ID4+ICsKPiA+PiAgIHN0cnVjdCBkd19taXBpX2RzaV9waHlfb3BzIHsKPiA+PiAgICAgICBp bnQgKCppbml0KSh2b2lkICpwcml2X2RhdGEpOwo+ID4+ICAgICAgIGludCAoKmdldF9sYW5lX21i cHMpKHZvaWQgKnByaXZfZGF0YSwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgCj4gPj4gKm1vZGUs Cj4gPj4gQEAgLTI5LDExICszMSwxNCBAQCBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhIHsK PiA+PiAgICAgICB2b2lkICpwcml2X2RhdGE7Cj4gPj4gICB9Owo+ID4+IC1pbnQgZHdfbWlwaV9k c2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiA+PiAtICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwbGF0X2RhdGEpOwo+ID4+IC12 b2lkIGR3X21pcGlfZHNpX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiA+ PiAtaW50IGR3X21pcGlfZHNpX2JpbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3Ry dWN0IGRybV9lbmNvZGVyIAo+ID4+ICplbmNvZGVyLAo+ID4+IC0gICAgICAgICAgICAgY29uc3Qg c3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0YSAqcGxhdF9kYXRhKTsKPiA+PiAtdm9pZCBkd19t aXBpX2RzaV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KTsKPiA+PiArc3RydWN0IGR3X21pcGlf ZHNpICpkd19taXBpX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4+ ICsgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0 YQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgKnBsYXRfZGF0YSk7Cj4gPj4gK3ZvaWQgZHdf bWlwaV9kc2lfcmVtb3ZlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKTsKPiA+PiArc3RydWN0IGR3 X21pcGlfZHNpICpkd19taXBpX2RzaV9iaW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK PiA+PiArICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRf ZGF0YQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAqcGxhdF9kYXRhKTsKPiA+PiArdm9pZCBk d19taXBpX2RzaV91bmJpbmQoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpOwo+ID4+ICAgI2VuZGlm IC8qIF9fRFdfTUlQSV9EU0lfXyAqLwoKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==