From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rongrong Zou Subject: Re: [PATCH v6 7/9] drm/hisilicon/hibmc: Add connector for VDAC Date: Mon, 14 Nov 2016 22:07:30 +0800 Message-ID: <5829C522.1040908@huawei.com> References: <1477639682-22520-1-git-send-email-zourongrong@gmail.com> <1477639682-22520-8-git-send-email-zourongrong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Sean Paul , Rongrong Zou Cc: Mark Rutland , Archit , shenhui@huawei.com, Tomeu Vizoso , Jonathan Corbet , Dave Airlie , catalin.marinas@arm.com, Emil Velikov , linuxarm@huawei.com, dri-devel , Xinliang Liu , james.xiong@huawei.com, Daniel Stone , Daniel Vetter , Will Deacon , lijianhua@huawei.com, Linux ARM Kernel , Benjamin Gaignard List-Id: dri-devel@lists.freedesktop.org 5ZyoIDIwMTYvMTEvMTEgOTo0NSwgU2VhbiBQYXVsIOWGmemBkzoKPiBPbiBGcmksIE9jdCAyOCwg MjAxNiBhdCAzOjI4IEFNLCBSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4gd3Jv dGU6Cj4+IEFkZCBjb25uZWN0b3IgZnVuY3MgYW5kIGhlbHBlciBmdW5jcyBmb3IgVkRBQy4KPj4K Pj4gU2lnbmVkLW9mZi1ieTogUm9uZ3JvbmcgWm91IDx6b3Vyb25ncm9uZ0BnbWFpbC5jb20+Cj4+ IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5j ICB8ICA4ICsrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJt X2Rydi5oICB8ICAyICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1j X2RybV92ZGFjLmMgfCA3NiArKysrKysrKysrKysrKysrKysrKysrKysKPj4gICAzIGZpbGVzIGNo YW5nZWQsIDg2IGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2ls aWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKPj4gaW5kZXggYmExOTFlMS4uNDI1MzYwMyAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2 LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2 LmMKPj4gQEAgLTEzMSw2ICsxMzEsMTQgQEAgc3RhdGljIGludCBoaWJtY19rbXNfaW5pdChzdHJ1 Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAgIHJldCA9IGhpYm1jX2Nvbm5lY3Rvcl9pbml0 KGhpZGV2KTsKPj4gKyAgICAgICBpZiAocmV0KSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJS T1IoImZhaWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4+ICsgICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9h dHRhY2hfZW5jb2RlcigmaGlkZXYtPmNvbm5lY3RvciwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmhpZGV2LT5lbmNvZGVyKTsKPgo+IFRoZSBjb25uZWN0b3Ig c2hvdWxkIGJlIGluaXRpYWxpemVkIGluIHRoZSB2ZGFjIGRyaXZlciB3aXRoIHRoZQo+IGVuY29k ZXIsIG5vdCBpbiB0aGUgZHJ2IGZpbGUgKHNhbWUgYXMgcGxhbmUvY3J0YykKCmFwcGxpZWQsIHRo YW5rcy4KCj4KPj4gICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuaAo+PiBpbmRleCA0MDFjZWE0 Li40NTAyNDdkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L2hpYm1jX2RybV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L2hpYm1jX2RybV9kcnYuaAo+PiBAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgaGlibWNfZHJtX2Rl dmljZSB7Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1fcGxhbmUgcGxhbmU7Cj4+ICAgICAgICAgIHN0 cnVjdCBkcm1fY3J0YyBjcnRjOwo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2Rl cjsKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Cj4KPiBObyBuZWVk IHRvIGtlZXAgdHJhY2sgaGVyZQoKd2lsbCBhbGxvY2F0ZSB3aXRoIGRldm1fa3phbGxvYygpLCB0 aGFua3MuCgo+Cj4+ICAgICAgICAgIGJvb2wgbW9kZV9jb25maWdfaW5pdGlhbGl6ZWQ7Cj4+Cj4+ ICAgICAgICAgIC8qIHR0bSAqLwo+PiBAQCAtODksNiArOTAsNyBAQCBzdGF0aWMgaW5saW5lIHN0 cnVjdCBoaWJtY19ibyAqZ2VtX3RvX2hpYm1jX2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2Vt KQo+PiAgIGludCBoaWJtY19wbGFuZV9pbml0KHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRl dik7Cj4+ICAgaW50IGhpYm1jX2NydGNfaW5pdChzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlk ZXYpOwo+PiAgIGludCBoaWJtY19lbmNvZGVyX2luaXQoc3RydWN0IGhpYm1jX2RybV9kZXZpY2Ug KmhpZGV2KTsKPj4gK2ludCBoaWJtY19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgaGlibWNfZHJtX2Rl dmljZSAqaGlkZXYpOwo+PiAgIGludCBoaWJtY19mYmRldl9pbml0KHN0cnVjdCBoaWJtY19kcm1f ZGV2aWNlICpoaWRldik7Cj4+ICAgdm9pZCBoaWJtY19mYmRldl9maW5pKHN0cnVjdCBoaWJtY19k cm1fZGV2aWNlICpoaWRldik7Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlz aWxpY29uL2hpYm1jL2hpYm1jX2RybV92ZGFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2hpYm1jL2hpYm1jX2RybV92ZGFjLmMKPj4gaW5kZXggOTUzZjY1OS4uZWJlZmNkMSAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fdmRhYy5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3ZkYWMu Ywo+PiBAQCAtODcsMyArODcsNzkgQEAgaW50IGhpYm1jX2VuY29kZXJfaW5pdChzdHJ1Y3QgaGli bWNfZHJtX2RldmljZSAqaGlkZXYpCj4+ICAgICAgICAgIGRybV9lbmNvZGVyX2hlbHBlcl9hZGQo ZW5jb2RlciwgJmhpYm1jX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKPj4gICAgICAgICAgcmV0dXJu IDA7Cj4+ICAgfQo+PiArCj4+ICtzdGF0aWMgaW50IGhpYm1jX2Nvbm5lY3Rvcl9nZXRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKyAgICAgICBpbnQgY291 bnQ7Cj4+ICsKPj4gKyAgICAgICBjb3VudCA9IGRybV9hZGRfbW9kZXNfbm9lZGlkKGNvbm5lY3Rv ciwgODAwLCA2MDApOwo+PiArICAgICAgIGRybV9zZXRfcHJlZmVycmVkX21vZGUoY29ubmVjdG9y LCBkZWZ4LCBkZWZ5KTsKPgo+IFNvIHlvdSBoYXZlIGRlZngvZGVmeSBhcyBtb2R1bGUgcGFyYW1l dGVycywgYnV0IHRoZW4gaGFyZGNvZGUgdGhlCj4gODAweDYwMCBtb2RlLiBJZiBkZWZ4L2RlZnkg aXMgYW55dGhpbmcgb3RoZXIgdGhhbiA4MDAvNjAwLCB0aGlzIHdvbid0Cj4gd29yay4gSSB0aGlu ayB5b3Ugc2hvdWxkIGp1c3QgcmVtb3ZlIHRoZSBkZWZ4L2RlZnkgbW9kdWxlIHBhcmFtcyBhbmQK PiByZWx5IG9uIHVzZXJzcGFjZSBhZGRpbmcgbW9kZXMgYXMgYXBwcm9wcmlhdGUuCgp3aWxsIHJl bW92ZSB0aGVtLCB0aGFua3MuCgo+Cj4+ICsgICAgICAgcmV0dXJuIGNvdW50Owo+PiArfQo+PiAr Cj4+ICtzdGF0aWMgaW50IGhpYm1jX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0 IGhpYm1jX2RybV9kZXZpY2UgKmhpcHJpdmF0ZSA9Cj4+ICsgICAgICAgIGNvbnRhaW5lcl9vZihj b25uZWN0b3IsIHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlLCBjb25uZWN0b3IpOwo+PiArICAgICAg IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IG1vZGUtPmhkaXNwbGF5ICogbW9kZS0+dmRpc3BsYXkgKiA0 Owo+Cj4gV2h5ICogNCBoZXJlIGFuZCB3aHkgKiAyIGJlbG93PyBZb3Ugc3VwcG9ydCBmb3JtYXRz IGxlc3MgdGhhbiAzMiBicHAsCj4gc28gdGhlICogNCBpc24ndCBuZWNlc3NhcmlseSBjb3JyZWN0 IGZvciBhbGwgZm9ybWF0cy4gSXMgdGhlICogMiB0bwo+IGFjY291bnQgZm9yIGZyb250ICYgYmFj ayBidWZmZXI/Cj4KCml0IGlzIGZyb20gYm9jaHMsIHRoZSBvcmlnaW5hbCBjb21tZW50cyBiZWxv dzoKCS8qCgkgKiBNYWtlIHN1cmUgd2UgY2FuIGZpdCB0d28gZnJhbWVidWZmZXJzIGludG8gdmlk ZW8gbWVtb3J5LgoJICogVGhpcyBhbGxvd3MgdXAgdG8gMTYwMHgxMjAwIHdpdGggMTYgTUIgKGRl ZmF1bHQgc2l6ZSkuCgkgKiBJZiB5b3Ugd2FudCBtb3JlIHRyeSB0aGlzOgoJICogICAgICdxZW11 IC12Z2Egc3RkIC1nbG9iYWwgVkdBLnZnYW1lbV9tYj0zMiAkb3RoZXJhcmdzJwoJICovCmkgdGhp bmsgaXQgaXMgbm90IG5lY2Vzc2FyeSBmb3IgaGlibWMsIHNvIHdpbGwgcmVtb3ZlIGl0IGFuZCBy ZXR1cm4KTU9ERV9PSywgdGhhbmtzLgoKPgo+PiArCj4+ICsgICAgICAgaWYgKHNpemUgKiAyID4g aGlwcml2YXRlLT5mYl9zaXplKQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIE1PREVfQkFEOwo+ PiArCj4+ICsgICAgICAgcmV0dXJuIE1PREVfT0s7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1 Y3QgZHJtX2VuY29kZXIgKgo+PiAraGlibWNfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcihzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiArewo+PiArICAgICAgIGludCBlbmNfaWQgPSBj b25uZWN0b3ItPmVuY29kZXJfaWRzWzBdOwo+PiArCj4+ICsgICAgICAgLyogcGljayB0aGUgZW5j b2RlciBpZHMgKi8KPj4gKyAgICAgICBpZiAoZW5jX2lkKQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIGRybV9lbmNvZGVyX2ZpbmQoY29ubmVjdG9yLT5kZXYsIGVuY19pZCk7Cj4KPiBDYW4ndCB5 b3UganVzdCBkbyByZXR1cm4gZHJtX2VuY29kZXJfZmluZChjb25uZWN0b3ItPmRldiwKPiBjb25u ZWN0b3ItPmVuY29kZXJfaWRzWzBdKTsgPwo+Cj4gaWU6IHdvbid0IGRybV9lbmNvZGVyX2ZpbmQg ZG8gdGhlIHJpZ2h0IHRoaW5nIGlmIHlvdSBwYXNzIGluIGlkID09IDA/CgpoaWJtY19jb25uZWN0 b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCnsKCXJldHVy biBkcm1fZW5jb2Rlcl9maW5kKGNvbm5lY3Rvci0+ZGV2LCBjb25uZWN0b3ItPmVuY29kZXJfaWRz WzBdKTsKfQpsb29rcyBtb3JlIHNpbXBsZSwgaSBsaWtlIGl0LCB0aGFua3M6KQoKPgo+PiArCj4+ ICsgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBlbnVtIGRybV9jb25u ZWN0b3Jfc3RhdHVzIGhpYm1jX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb25u ZWN0b3IsIGJvb2wgZm9yY2UpCj4+ICt7Cj4+ICsgICAgICAgcmV0dXJuIGNvbm5lY3Rvcl9zdGF0 dXNfY29ubmVjdGVkOwo+Cj4gUGVyaGFwcyB0aGlzIHNob3VsZCBiZSBjb25uZWN0b3Jfc3RhdHVz X3Vua25vd24sIHNpbmNlIHlvdSBkb24ndAo+IG5lY2Vzc2FyaWx5IGtub3cgaXQncyBjb25uZWN0 ZWQuCgppdCBpcyBhbHdheXMgY29ubmVjdGVkIGluIGhpYm1jJ3Mgc2NlbmFyaW8sIHVzdWFsbHkg aXQgaXMgdXNlZCBhcyBhCm1hbmFnZW1lbnQgY2hpcCBvbiBzZXJ2ZXIsIHdlIHVzZSBLVk0oa2V5 Ym9hcmQsIG1vdXNlLCB2aWRlbykgcmF0aGVyIHRoYW4KYSBkaXJlY3RseSBjb25uZWN0ZWQgbW9u aXRvci4gSSB3aWxsIG1vZGlmeSBpZiBhIHBoaXNpY2FsIG1vbml0b3IKaXMgY29ubmVjdGVkIGxh dGVyLgoKPgo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzCj4+ICsgICAgICAgaGlibWNfY29ubmVjdG9yX2Nvbm5lY3Rvcl9oZWxwZXJf ZnVuY3MgPSB7Cj4+ICsgICAgICAgLmdldF9tb2RlcyA9IGhpYm1jX2Nvbm5lY3Rvcl9nZXRfbW9k ZXMsCj4+ICsgICAgICAgLm1vZGVfdmFsaWQgPSBoaWJtY19jb25uZWN0b3JfbW9kZV92YWxpZCwK Pj4gKyAgICAgICAuYmVzdF9lbmNvZGVyID0gaGlibWNfY29ubmVjdG9yX2Jlc3RfZW5jb2RlciwK Pj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBo aWJtY19jb25uZWN0b3JfY29ubmVjdG9yX2Z1bmNzID0gewo+PiArICAgICAgIC5kcG1zID0gZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCj4+ICsgICAgICAgLmRldGVjdCA9IGhpYm1j X2Nvbm5lY3Rvcl9kZXRlY3QsCj4+ICsgICAgICAgLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3By b2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4+ICsgICAgICAgLmRlc3Ryb3kgPSBkcm1fY29u bmVjdG9yX2NsZWFudXAsCj4+ICsgICAgICAgLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29u bmVjdG9yX3Jlc2V0LAo+PiArICAgICAgIC5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKPj4gKyAgICAgICAuYXRvbWlj X2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0 ZSwKPj4gK307Cj4+ICsKPj4gK2ludCBoaWJtY19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgaGlibWNf ZHJtX2RldmljZSAqaGlkZXYpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGhpZGV2LT5kZXY7Cj4+ICsgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9ICZoaWRldi0+Y29ubmVjdG9yOwo+PiArICAgICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICAg ICByZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZoaWJtY19jb25uZWN0b3JfY29ubmVjdG9yX2Z1bmNzLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfVkdB KTsKPj4gKyAgICAgICBpZiAocmV0KSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoImZh aWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+PiArICAgICAgIH0KPj4gKyAgICAgICBkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVj dG9yLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGlibWNfY29ubmVjdG9y X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9 Cj4+IC0tCj4+IDEuOS4xCj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4+IGxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGxpbnV4YXJtIG1haWxpbmcgbGlzdAo+ IGxpbnV4YXJtQGh1YXdlaS5jb20KPiBodHRwOi8vcm5kLW9wZW5ldWxlci5odWF3ZWkuY29tL21h aWxtYW4vbGlzdGluZm8vbGludXhhcm0KPgo+IC4KPgoKCi0tIApSZWdhcmRzLCBSb25ncm9uZwoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=