From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH v3 2/2] drm/msm/dsi: Use one connector for dual DSI mode Date: Thu, 19 Apr 2018 12:03:00 -0400 Message-ID: <20180419160300.GF73214@art_vandelay> References: <1524080715-23228-1-git-send-email-chandanu@codeaurora.org> <1524080715-23228-3-git-send-email-chandanu@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1524080715-23228-3-git-send-email-chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Chandan Uddaraju Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBBcHIgMTgsIDIwMTggYXQgMTI6NDU6MTVQTSAtMDcwMCwgQ2hhbmRhbiBVZGRhcmFq dSB3cm90ZToKPiBDdXJyZW50IERTSSBkcml2ZXIgdXNlcyB0d28gY29ubmVjdG9ycyBmb3IgZHVh bCBEU0kgY2FzZSBldmVuCj4gdGhvdWdoIHdlIG9ubHkgaGF2ZSBvbmUgcGFuZWwuIEZpeCB0aGlz IGJ5IGltcGxlbWVudGluZyBvbmUKPiBjb25uZWN0b3IvYnJpZGdlIGZvciBkdWFsIERTSSB1c2Ug Y2FzZS4gVXNlIG1hc3RlciBEU0kKPiBjb250cm9sbGVycyB0byByZWdpc3RlciBvbmUgY29ubmVj dG9yL2JyaWRnZS4KPiAKPiBDaGFuZ2VzIGluIFYyOgo+ICAgICAtUmVtb3ZlZCBDaGFuZ2UtSWQg ZnJvbSB0aGUgY29tbWl0IHRleHQgdGFncy4KPiAgICAgLVJlbW92ZSBleHRyYSBwYXJlbnRoZXNl cwo+IAo+IENoYW5nZXMgaW4gVjM6Cj4gICAgIC1Ob25lCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hh bmRhbiBVZGRhcmFqdSA8Y2hhbmRhbnVAY29kZWF1cm9yYS5vcmc+CgpSZXZpZXdlZC1ieTogU2Vh biBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v bXNtL2RzaS9kc2kuYyAgICAgICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kc2kv ZHNpLmggICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5h Z2VyLmMgfCAxMTAgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVz IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZHNpL2RzaS5jCj4gaW5kZXggYjc0NGJjYy4uZmY4MTY0YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2RzaS9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2Rz aS5jCj4gQEAgLTIwOCw2ICsyMDgsOSBAQCBpbnQgbXNtX2RzaV9tb2Rlc2V0X2luaXQoc3RydWN0 IG1zbV9kc2kgKm1zbV9kc2ksIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJZ290byBmYWls Owo+ICAJfQo+ICAKPiArCWlmICghbXNtX2RzaV9tYW5hZ2VyX3ZhbGlkYXRlX2N1cnJlbnRfY29u ZmlnKG1zbV9kc2ktPmlkKSkKPiArCQlnb3RvIGZhaWw7Cj4gKwo+ICAJbXNtX2RzaS0+ZW5jb2Rl ciA9IGVuY29kZXI7Cj4gIAo+ICAJbXNtX2RzaS0+YnJpZGdlID0gbXNtX2RzaV9tYW5hZ2VyX2Jy aWRnZV9pbml0KG1zbV9kc2ktPmlkKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvZHNpLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2kuaAo+IGluZGV4IDAxYzM4 ZjYuLmM4NThlOGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2kuaAo+IEBAIC0xMDAsNiArMTAwLDcg QEAgc3RydWN0IG1zbV9kc2kgewo+ICB2b2lkIG1zbV9kc2lfbWFuYWdlcl9hdHRhY2hfZHNpX2Rl dmljZShpbnQgaWQsIHUzMiBkZXZpY2VfZmxhZ3MpOwo+ICBpbnQgbXNtX2RzaV9tYW5hZ2VyX3Jl Z2lzdGVyKHN0cnVjdCBtc21fZHNpICptc21fZHNpKTsKPiAgdm9pZCBtc21fZHNpX21hbmFnZXJf dW5yZWdpc3RlcihzdHJ1Y3QgbXNtX2RzaSAqbXNtX2RzaSk7Cj4gK2Jvb2wgbXNtX2RzaV9tYW5h Z2VyX3ZhbGlkYXRlX2N1cnJlbnRfY29uZmlnKHU4IGlkKTsKPiAgCj4gIC8qIG1zbSBkc2kgKi8K PiAgc3RhdGljIGlubGluZSBib29sIG1zbV9kc2lfZGV2aWNlX2Nvbm5lY3RlZChzdHJ1Y3QgbXNt X2RzaSAqbXNtX2RzaSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNp X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMKPiBpbmRl eCAzYmI1MDZiLi4yYTExZjgyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNp L2RzaV9tYW5hZ2VyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdl ci5jCj4gQEAgLTMwNiw2NyArMzA2LDYgQEAgc3RhdGljIHZvaWQgZHNpX21ncl9jb25uZWN0b3Jf ZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJa2ZyZWUoZHNpX2Nv bm5lY3Rvcik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9kdWFsX2Nvbm5lY3Rvcl9maXhf bW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0Jc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsICptOwo+IC0KPiAtCS8qIE9ubHkgc3VwcG9ydCBsZWZ0LXJp Z2h0IG1vZGUgKi8KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtb2RlLCBtLCAmY29ubmVj dG9yLT5wcm9iZWRfbW9kZXMsIGhlYWQpIHsKPiAtCQltb2RlLT5jbG9jayA+Pj0gMTsKPiAtCQlt b2RlLT5oZGlzcGxheSA+Pj0gMTsKPiAtCQltb2RlLT5oc3luY19zdGFydCA+Pj0gMTsKPiAtCQlt b2RlLT5oc3luY19lbmQgPj49IDE7Cj4gLQkJbW9kZS0+aHRvdGFsID4+PSAxOwo+IC0JCWRybV9t b2RlX3NldF9uYW1lKG1vZGUpOwo+IC0JfQo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGRzaV9kdWFs X2Nvbm5lY3Rvcl90aWxlX2luaXQoCj4gLQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsIGludCBpZCkKPiAtewo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gLQkv KiBGYWtlIHRvcG9sb2d5IGlkICovCj4gLQljaGFyIHRvcG9faWRbOF0gPSB7J00nLCAnUycsICdN JywgJ0QnLCAnVScsICdEJywgJ1MnLCAnSSd9Owo+IC0KPiAtCWlmIChjb25uZWN0b3ItPnRpbGVf Z3JvdXApIHsKPiAtCQlEQkcoIlRpbGUgcHJvcGVydHkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQiKTsK PiAtCQlyZXR1cm4gMDsKPiAtCX0KPiAtCj4gLQkvKiBVc2UgdGhlIGZpcnN0IG1vZGUgb25seSBm b3Igbm93ICovCj4gLQltb2RlID0gbGlzdF9maXJzdF9lbnRyeSgmY29ubmVjdG9yLT5wcm9iZWRf bW9kZXMsCj4gLQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSwKPiAtCQkJCWhlYWQpOwo+IC0J aWYgKCFtb2RlKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCWNvbm5lY3Rvci0+dGlsZV9n cm91cCA9IGRybV9tb2RlX2dldF90aWxlX2dyb3VwKAo+IC0JCQkJCWNvbm5lY3Rvci0+ZGV2LCB0 b3BvX2lkKTsKPiAtCWlmICghY29ubmVjdG9yLT50aWxlX2dyb3VwKQo+IC0JCWNvbm5lY3Rvci0+ dGlsZV9ncm91cCA9IGRybV9tb2RlX2NyZWF0ZV90aWxlX2dyb3VwKAo+IC0JCQkJCWNvbm5lY3Rv ci0+ZGV2LCB0b3BvX2lkKTsKPiAtCWlmICghY29ubmVjdG9yLT50aWxlX2dyb3VwKSB7Cj4gLQkJ cHJfZXJyKCIlczogZmFpbGVkIHRvIGNyZWF0ZSB0aWxlIGdyb3VwXG4iLCBfX2Z1bmNfXyk7Cj4g LQkJcmV0dXJuIC1FTk9NRU07Cj4gLQl9Cj4gLQo+IC0JY29ubmVjdG9yLT5oYXNfdGlsZSA9IHRy dWU7Cj4gLQljb25uZWN0b3ItPnRpbGVfaXNfc2luZ2xlX21vbml0b3IgPSB0cnVlOwo+IC0KPiAt CS8qIG1vZGUgaGFzIGJlZW4gZml4ZWQgKi8KPiAtCWNvbm5lY3Rvci0+dGlsZV9oX3NpemUgPSBt b2RlLT5oZGlzcGxheTsKPiAtCWNvbm5lY3Rvci0+dGlsZV92X3NpemUgPSBtb2RlLT52ZGlzcGxh eTsKPiAtCj4gLQkvKiBPbmx5IHN1cHBvcnQgbGVmdC1yaWdodCBtb2RlICovCj4gLQljb25uZWN0 b3ItPm51bV9oX3RpbGUgPSAyOwo+IC0JY29ubmVjdG9yLT5udW1fdl90aWxlID0gMTsKPiAtCj4g LQljb25uZWN0b3ItPnRpbGVfdl9sb2MgPSAwOwo+IC0JY29ubmVjdG9yLT50aWxlX2hfbG9jID0g KGlkID09IERTSV9SSUdIVCkgPyAxIDogMDsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAg c3RhdGljIGludCBkc2lfbWdyX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJaW50IGlkID0gZHNpX21ncl9jb25uZWN0b3JfZ2V0X2lk KGNvbm5lY3Rvcik7Cj4gQEAgLTM3NywzMSArMzE2LDE1IEBAIHN0YXRpYyBpbnQgZHNpX21ncl9j b25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlp ZiAoIXBhbmVsKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCS8qIFNpbmNlIHdlIGhhdmUgMiBjb25u ZWN0b3JzLCBidXQgb25seSAxIGRybV9wYW5lbCBpbiBkdWFsIERTSSBtb2RlLAo+IC0JICogcGFu ZWwgc2hvdWxkIG5vdCBhdHRhY2ggdG8gYW55IGNvbm5lY3Rvci4KPiAtCSAqIE9ubHkgdGVtcG9y YXJpbHkgYXR0YWNoIHBhbmVsIHRvIHRoZSBjdXJyZW50IGNvbm5lY3RvciBoZXJlLAo+IC0JICog dG8gbGV0IHBhbmVsIHNldCBtb2RlIHRvIHRoaXMgY29ubmVjdG9yLgo+ICsJLyoKPiArCSAqIElu IGR1YWwgRFNJIG1vZGUsIHdlIGhhdmUgb25lIGNvbm5lY3RvciB0aGF0IGNhbiBiZQo+ICsJICog YXR0YWNoZWQgdG8gdGhlIGRybV9wYW5lbC4KPiAgCSAqLwo+ICAJZHJtX3BhbmVsX2F0dGFjaChw YW5lbCwgY29ubmVjdG9yKTsKPiAgCW51bSA9IGRybV9wYW5lbF9nZXRfbW9kZXMocGFuZWwpOwo+ IC0JZHJtX3BhbmVsX2RldGFjaChwYW5lbCk7Cj4gIAlpZiAoIW51bSkKPiAgCQlyZXR1cm4gMDsK PiAgCj4gLQlpZiAoSVNfRFVBTF9EU0koKSkgewo+IC0JCS8qIHJlcG9ydCBoYWxmIHJlc29sdXRp b24gdG8gdXNlciAqLwo+IC0JCWRzaV9kdWFsX2Nvbm5lY3Rvcl9maXhfbW9kZXMoY29ubmVjdG9y KTsKPiAtCQlyZXQgPSBkc2lfZHVhbF9jb25uZWN0b3JfdGlsZV9pbml0KGNvbm5lY3RvciwgaWQp Owo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQkJcmV0ID0gZHJtX21vZGVfY29u bmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KGNvbm5lY3Rvcik7Cj4gLQkJaWYgKHJldCkgewo+IC0J CQlwcl9lcnIoIiVzOiBzZXQgdGlsZSBwcm9wZXJ0eSBmYWlsZWQsICVkXG4iLAo+IC0JCQkJCV9f ZnVuY19fLCByZXQpOwo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JCX0KPiAtCX0KPiAtCj4gIAlyZXR1 cm4gbnVtOwo+ICB9Cj4gIAo+IEBAIC00NTUsOCArMzc4LDggQEAgc3RhdGljIHZvaWQgZHNpX21n cl9icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICAJaWYgKHJl dCkKPiAgCQlnb3RvIHBoeV9lbl9mYWlsOwo+ICAKPiAtCS8qIERvIG5vdGhpbmcgd2l0aCB0aGUg aG9zdCBpZiBpdCBpcyBEU0kgMSBpbiBjYXNlIG9mIGR1YWwgRFNJICovCj4gLQlpZiAoaXNfZHVh bF9kc2kgJiYgKERTSV8xID09IGlkKSkKPiArCS8qIERvIG5vdGhpbmcgd2l0aCB0aGUgaG9zdCBp ZiBpdCBpcyBzbGF2ZS1EU0kgaW4gY2FzZSBvZiBkdWFsIERTSSAqLwo+ICsJaWYgKGlzX2R1YWxf ZHNpICYmICFJU19NQVNURVJfRFNJX0xJTksoaWQpKQo+ICAJCXJldHVybjsKPiAgCj4gIAlyZXQg PSBtc21fZHNpX2hvc3RfcG93ZXJfb24oaG9zdCwgJnBoeV9zaGFyZWRfdGltaW5nc1tpZF0sIGlz X2R1YWxfZHNpKTsKPiBAQCAtNTU3LDExICs0ODAsMTEgQEAgc3RhdGljIHZvaWQgZHNpX21ncl9i cmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAkJcmV0dXJu Owo+ICAKPiAgCS8qCj4gLQkgKiBEbyBub3RoaW5nIHdpdGggdGhlIGhvc3QgaWYgaXQgaXMgRFNJ IDEgaW4gY2FzZSBvZiBkdWFsIERTSS4KPiArCSAqIERvIG5vdGhpbmcgd2l0aCB0aGUgaG9zdCBp ZiBpdCBpcyBzbGF2ZS1EU0kgaW4gY2FzZSBvZiBkdWFsIERTSS4KPiAgCSAqIEl0IGlzIHNhZmUg dG8gY2FsbCBkc2lfbWdyX3BoeV9kaXNhYmxlKCkgaGVyZSBiZWNhdXNlIGEgc2luZ2xlIFBIWQo+ ICAJICogd29uJ3QgYmUgZGlhYmxlZCB1bnRpbCBib3RoIFBIWXMgcmVxdWVzdCBkaXNhYmxlLgo+ ICAJICovCj4gLQlpZiAoaXNfZHVhbF9kc2kgJiYgKERTSV8xID09IGlkKSkKPiArCWlmIChpc19k dWFsX2RzaSAmJiAhSVNfTUFTVEVSX0RTSV9MSU5LKGlkKSkKPiAgCQlnb3RvIGRpc2FibGVfcGh5 Owo+ICAKPiAgCWlmIChwYW5lbCkgewo+IEBAIC02MjIsNyArNTQ1LDcgQEAgc3RhdGljIHZvaWQg ZHNpX21ncl9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCQkJ bW9kZS0+dnN5bmNfZW5kLCBtb2RlLT52dG90YWwsCj4gIAkJCW1vZGUtPnR5cGUsIG1vZGUtPmZs YWdzKTsKPiAgCj4gLQlpZiAoaXNfZHVhbF9kc2kgJiYgKERTSV8xID09IGlkKSkKPiArCWlmIChp c19kdWFsX2RzaSAmJiAhSVNfTUFTVEVSX0RTSV9MSU5LKGlkKSkKPiAgCQlyZXR1cm47Cj4gIAo+ ICAJbXNtX2RzaV9ob3N0X3NldF9kaXNwbGF5X21vZGUoaG9zdCwgYWRqdXN0ZWRfbW9kZSk7Cj4g QEAgLTY5MCw2ICs2MTMsMjMgQEAgc3RydWN0IGRybV9jb25uZWN0b3IgKm1zbV9kc2lfbWFuYWdl cl9jb25uZWN0b3JfaW5pdCh1OCBpZCkKPiAgCXJldHVybiBjb25uZWN0b3I7Cj4gIH0KPiAgCj4g K2Jvb2wgbXNtX2RzaV9tYW5hZ2VyX3ZhbGlkYXRlX2N1cnJlbnRfY29uZmlnKHU4IGlkKQo+ICt7 Cj4gKwlib29sIGlzX2R1YWxfZHNpID0gSVNfRFVBTF9EU0koKTsKPiArCj4gKwkvKgo+ICsJICog Rm9yIGR1YWwgRFNJLCB3ZSBvbmx5IGhhdmUgb25lIGRybSBwYW5lbC4gRm9yIHRoaXMKPiArCSAq IHVzZSBjYXNlLCB3ZSByZWdpc3RlciBvbmx5IG9uZSBicmlkZ2UvY29ubmVjdG9yLgo+ICsJICog U2tpcCBicmlkZ2UvY29ubmVjdG9yIGluaXRpYWxpc2F0aW9uIGlmIGl0IGlzCj4gKwkgKiBzbGF2 ZS1EU0kgZm9yIGR1YWwgRFNJIGNvbmZpZ3VyYXRpb24uCj4gKwkgKi8KPiArCWlmIChpc19kdWFs X2RzaSAmJiAhSVNfTUFTVEVSX0RTSV9MSU5LKGlkKSkgewo+ICsJCURCRygiU2tpcCBicmlkZ2Ug cmVnaXN0cmF0aW9uIGZvciBzbGF2ZSBEU0ktPmlkOiAlZFxuIiwgaWQpOwo+ICsJCXJldHVybiBm YWxzZTsKPiArCX0KPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICAvKiBpbml0aWFsaXplIGJy aWRnZSAqLwo+ICBzdHJ1Y3QgZHJtX2JyaWRnZSAqbXNtX2RzaV9tYW5hZ2VyX2JyaWRnZV9pbml0 KHU4IGlkKQo+ICB7Cj4gLS0gCj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMu IGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKPiBhIExpbnV4IEZvdW5kYXRp b24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdp bmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZnJlZWRyZW5vCg==