From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/vmwgfx: Fix up the implicit display unit handling Date: Fri, 5 Oct 2018 13:04:59 +0300 Message-ID: <20181005100459.GV9144@intel.com> References: <20181004223753.22846-1-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 463566E002 for ; Fri, 5 Oct 2018 10:05:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181004223753.22846-1-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Hellstrom Cc: "daniel.vetter@ffwll.ch" , linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBPY3QgMDQsIDIwMTggYXQgMTA6Mzg6MTdQTSArMDAwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBNYWtlIHRoZSBjb25uZWN0b3IgaXNfaW1wbGljaXQgcHJvcGVydHkgaW1tdXRh YmxlLgo+IEFzIGZhciBhcyB3ZSBrbm93LCBubyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9uIGlzIHdy aXRpbmcgdG8gaXQuCj4gCj4gQWxzbyBtb3ZlIHRoZSB2ZXJpZmljYXRpb24gdGhhdCBhbGwgaW1w bGljaXQgZGlzcGxheSB1bml0cyBzY2FuIG91dAo+IGZyb20gdGhlIHNhbWUgZnJhbWVidWZmZXIg dG8gYXRvbWljX2NoZWNrKCkuCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8 dGhlbGxzdHJvbUB2bXdhcmUuY29tPgo+IFJldmlld2VkLWJ5OiBTaW5jbGFpciBZZWggPHN5ZWhA dm13YXJlLmNvbT4KPiBSZXZpZXdlZC1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13YXJlLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggIHwgICAyIC0K PiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgIHwgMjMwICsrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5oICB8ICAxNiArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMg IHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYyB8ICAzOCAr LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIHwgIDQzICstLS0t LS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgMjMzIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4gaW5kZXggNTlmNjE0MjI1YmNk Li5lYTJjMjJkOTIzNTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAo+IEBA IC00ODYsOCArNDg2LDYgQEAgc3RydWN0IHZtd19wcml2YXRlIHsKPiAgCXN0cnVjdCB2bXdfb3Zl cmxheSAqb3ZlcmxheV9wcml2Owo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqaG90cGx1Z19tb2Rl X3VwZGF0ZV9wcm9wZXJ0eTsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKmltcGxpY2l0X3BsYWNl bWVudF9wcm9wZXJ0eTsKPiAtCXVuc2lnbmVkIG51bV9pbXBsaWNpdDsKPiAtCXN0cnVjdCB2bXdf ZnJhbWVidWZmZXIgKmltcGxpY2l0X2ZiOwo+ICAJc3RydWN0IG11dGV4IGdsb2JhbF9rbXNfc3Rh dGVfbXV0ZXg7Cj4gIAlzcGlubG9ja190IGN1cnNvcl9sb2NrOwo+ICAJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN1c3BlbmRfc3RhdGU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMK PiBpbmRleCAwNWZiMTY3MzNjNWMuLmNjYWVjMmNiYWJkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5jCj4gQEAgLTQ1NiwyMSArNDU2LDggQEAgaW50IHZtd19kdV9wcmltYXJ5 X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0YzsKPiAgCQlzdHJ1Y3Qgdm13X2Nvbm5lY3Rvcl9z dGF0ZSAqdmNzOwo+ICAJCXN0cnVjdCB2bXdfZGlzcGxheV91bml0ICpkdSA9IHZtd19jcnRjX3Rv X2R1KGNydGMpOwo+IC0JCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihj cnRjLT5kZXYpOwo+IC0JCXN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYiA9IHZtd19mcmFtZWJ1 ZmZlcl90b192ZmIobmV3X2ZiKTsKPiAgCj4gIAkJdmNzID0gdm13X2Nvbm5lY3Rvcl9zdGF0ZV90 b192Y3MoZHUtPmNvbm5lY3Rvci5zdGF0ZSk7Cj4gLQo+IC0JCS8qIE9ubHkgb25lIGFjdGl2ZSBp bXBsaWNpdCBmcmFtZWJ1ZmZlciBhdCBhIHRpbWUuICovCj4gLQkJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmdsb2JhbF9rbXNfc3RhdGVfbXV0ZXgpOwo+IC0JCWlmICh2Y3MtPmlzX2ltcGxpY2l0ICYm IGRldl9wcml2LT5pbXBsaWNpdF9mYiAmJgo+IC0JCSAgICAhKGRldl9wcml2LT5udW1faW1wbGlj aXQgPT0gMSAmJiBkdS0+YWN0aXZlX2ltcGxpY2l0KQo+IC0JCSAgICAmJiBkZXZfcHJpdi0+aW1w bGljaXRfZmIgIT0gdmZiKSB7Cj4gLQkJCURSTV9FUlJPUigiTXVsdGlwbGUgaW1wbGljaXQgZnJh bWVidWZmZXJzICIKPiAtCQkJCSAgIm5vdCBzdXBwb3J0ZWQuXG4iKTsKPiAtCQkJcmV0ID0gLUVJ TlZBTDsKPiAtCQl9Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Z2xvYmFsX2ttc19zdGF0 ZV9tdXRleCk7Cj4gIAl9Cj4gIAo+ICAKPiBAQCAtMTU2Niw2ICsxNTUzLDg4IEBAIHN0YXRpYyBp bnQgdm13X2ttc19jaGVja19kaXNwbGF5X21lbW9yeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8qKgo+ICsgKiB2bXdfY3J0Y19zdGF0ZV9hbmRfbG9j ayAtIFJldHVybiBuZXcgb3IgY3VycmVudCBjcnRjIHN0YXRlIHdpdGggbG9ja2VkCj4gKyAqIGNy dGMgbXV0ZXgKPiArICogQHN0YXRlOiBUaGUgYXRvbWljIHN0YXRlIHBvaW50ZXIgY29udGFpbmlu ZyB0aGUgbmV3IGF0b21pYyBzdGF0ZQo+ICsgKiBAY3J0YzogVGhlIGNydGMKPiArICoKPiArICog VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBuZXcgY3J0YyBzdGF0ZSBpZiBpdCdzIHBhcnQgb2Yg dGhlIHN0YXRlIHVwZGF0ZS4KPiArICogT3RoZXJ3aXNlIHJldHVybnMgdGhlIGN1cnJlbnQgY3J0 YyBzdGF0ZS4gSXQgYWxzbyBtYWtlcyBzdXJlIHRoYXQgdGhlCj4gKyAqIGNydGMgbXV0ZXggaXMg bG9ja2VkLgo+ICsgKgo+ICsgKiBSZXR1cm5zOiBBIHZhbGlkIGNydGMgc3RhdGUgcG9pbnRlciBv ciBOVUxMLiBJdCBtYXkgYWxzbyByZXR1cm4gYQo+ICsgKiBwb2ludGVyIGVycm9yLCBpbiBwYXJ0 aWN1bGFyIC1FREVBRExLIGlmIGxvY2tpbmcgbmVlZHMgdG8gYmUgcmVydW4uCj4gKyAqLwo+ICtz dGF0aWMgc3RydWN0IGRybV9jcnRjX3N0YXRlICoKPiArdm13X2NydGNfc3RhdGVfYW5kX2xvY2so c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g K3sKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCj4gKwljcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJaWYg KGNydGNfc3RhdGUpIHsKPiArCQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjcnRjLT5tdXRleC5tdXRl eC5iYXNlKTsKPiArCX0gZWxzZSB7Cj4gKwkJaW50IHJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNy dGMtPm11dGV4LCBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICsKPiArCQlpZiAocmV0ICE9IDAgJiYg cmV0ICE9IC1FQUxSRUFEWSkKPiArCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiArCj4gKwkJY3J0 Y19zdGF0ZSA9IGNydGMtPnN0YXRlOwo+ICsJfQo+ICsKPiArCXJldHVybiBjcnRjX3N0YXRlOwo+ ICt9Cj4gKwo+ICsvKioKPiArICogdm13X2ttc19jaGVja19pbXBsaWNpdCAtIFZlcmlmeSB0aGF0 IGFsbCBpbXBsaWNpdCBkaXNwbGF5IHVuaXRzIHNjYW4gb3V0Cj4gKyAqIGZyb20gdGhlIHNhbWUg ZmIgYWZ0ZXIgdGhlIG5ldyBzdGF0ZSBpcyBjb21taXR0ZWQuCj4gKyAqIEBkZXY6IFRoZSBkcm1f ZGV2aWNlLgo+ICsgKiBAc3RhdGU6IFRoZSBuZXcgc3RhdGUgdG8gYmUgY2hlY2tlZC4KPiArICoK PiArICogUmV0dXJuczoKPiArICogICBaZXJvIG9uIHN1Y2Nlc3MsCj4gKyAqICAgLUVJTlZBTCBv biBpbnZhbGlkIHN0YXRlLAo+ICsgKiAgIC1FREVBRExLIGlmIG1vZGVzZXQgbG9ja2luZyBuZWVk cyB0byBiZSByZXJ1bi4KPiArICovCj4gK3N0YXRpYyBpbnQgdm13X2ttc19jaGVja19pbXBsaWNp dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmltcGxpY2l0X2ZiID0g TlVMTDsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ ICsKPiArCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGRldikgewo+ICsJCXN0cnVjdCB2bXdfZGlz cGxheV91bml0ICpkdSA9IHZtd19jcnRjX3RvX2R1KGNydGMpOwo+ICsKPiArCQlpZiAoIWR1LT5p c19pbXBsaWNpdCkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWNydGNfc3RhdGUgPSB2bXdfY3J0 Y19zdGF0ZV9hbmRfbG9jayhzdGF0ZSwgY3J0Yyk7Cj4gKwkJaWYgKElTX0VSUihjcnRjX3N0YXRl KSkKPiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJCWlmICghY3J0Y19z dGF0ZSB8fCAhY3J0Y19zdGF0ZS0+ZW5hYmxlKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJLyoK PiArCQkgKiBDYW4ndCBtb3ZlIHByaW1hcnkgcGxhbmVzIGFjcm9zcyBjcnRjcywgc28gdGhpcyBp cyBPSy4KPiArCQkgKiBJdCBhbHNvIG1lYW5zIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGUgcGxh bmUgbXV0ZXguCj4gKwkJICovCj4gKwkJcGxhbmVfc3RhdGUgPSBkdS0+cHJpbWFyeS5zdGF0ZTsK PiArCQlpZiAocGxhbmVfc3RhdGUtPmNydGMgIT0gY3J0YykKPiArCQkJY29udGludWU7Cj4gKwo+ ICsJCWlmICghaW1wbGljaXRfZmIpCj4gKwkJCWltcGxpY2l0X2ZiID0gcGxhbmVfc3RhdGUtPmZi Owo+ICsJCWVsc2UgaWYgKGltcGxpY2l0X2ZiICE9IHBsYW5lX3N0YXRlLT5mYikKPiArCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gIC8qKgo+ICAg KiB2bXdfa21zX2NoZWNrX3RvcG9sb2d5IC0gVmFsaWRhdGVzIHRvcG9sb2d5IGluIGRybV9hdG9t aWNfc3RhdGUKPiAgICogQGRldjogRFJNIGRldmljZQo+IEBAIC0xNjgzLDYgKzE3NTIsMTAgQEAg dm13X2ttc19hdG9taWNfY2hlY2tfbW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ aWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiArCXJldCA9IHZtd19rbXNfY2hlY2tfaW1w bGljaXQoZGV2LCBzdGF0ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAJ aWYgKCFzdGF0ZS0+YWxsb3dfbW9kZXNldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtMjI3 NywxMyArMjM1MCw3IEBAIGludCB2bXdfZHVfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkJICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpw cm9wZXJ0eSwKPiAgCQkJCSAgdWludDY0X3QgdmFsKQo+ICB7Cj4gLQlzdHJ1Y3Qgdm13X2Rpc3Bs YXlfdW5pdCAqZHUgPSB2bXdfY29ubmVjdG9yX3RvX2R1KGNvbm5lY3Rvcik7Cj4gLQlzdHJ1Y3Qg dm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoY29ubmVjdG9yLT5kZXYpOwo+IC0KPiAt CWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+aW1wbGljaXRfcGxhY2VtZW50X3Byb3BlcnR5KQo+ IC0JCWR1LT5pc19pbXBsaWNpdCA9IHZhbDsKPiAtCj4gLQlyZXR1cm4gMDsKPiArCXJldHVybiAt RUlOVkFMOwo+ICB9Cj4gIAo+ICAKPiBAQCAtMjMwMiwyNSArMjM2OSw3IEBAIHZtd19kdV9jb25u ZWN0b3JfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ICAJCQkJICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAgCQkJCSAgICAg dWludDY0X3QgdmFsKQo+ICB7Cj4gLQlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13 X3ByaXYoY29ubmVjdG9yLT5kZXYpOwo+IC0Jc3RydWN0IHZtd19jb25uZWN0b3Jfc3RhdGUgKnZj cyA9IHZtd19jb25uZWN0b3Jfc3RhdGVfdG9fdmNzKHN0YXRlKTsKPiAtCXN0cnVjdCB2bXdfZGlz cGxheV91bml0ICpkdSA9IHZtd19jb25uZWN0b3JfdG9fZHUoY29ubmVjdG9yKTsKPiAtCj4gLQo+ IC0JaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5pbXBsaWNpdF9wbGFjZW1lbnRfcHJvcGVydHkp IHsKPiAtCQl2Y3MtPmlzX2ltcGxpY2l0ID0gdmFsOwo+IC0KPiAtCQkvKgo+IC0JCSAqIFdlIHNo b3VsZCByZWFsbHkgYmUgZG9pbmcgYSBkcm1fYXRvbWljX2NvbW1pdCgpIHRvCj4gLQkJICogY29t bWl0IHRoZSBuZXcgc3RhdGUsIGJ1dCBzaW5jZSB0aGlzIGRvZXNuJ3QgY2F1c2UKPiAtCQkgKiBh biBpbW1lZGF0ZSBzdGF0ZSBjaGFuZ2UsIHRoaXMgaXMgcHJvYmFibHkgb2sKPiAtCQkgKi8KPiAt CQlkdS0+aXNfaW1wbGljaXQgPSB2Y3MtPmlzX2ltcGxpY2l0Owo+IC0JfSBlbHNlIHsKPiAtCQly ZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiArCXJldHVybiAtRUlOVkFM Owo+ICB9CgpObyBuZWVkIHRvIGtlZXAgdGhlIGVtcHR5IGZ1bmN0aW9ucy4KCj4gIAo+ICAKPiBA QCAtMjMzOSwxMCArMjM4OCw5IEBAIHZtd19kdV9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0 eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkJICAgICB1aW50NjRfdCAq dmFsKQo+ICB7Cj4gIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoY29u bmVjdG9yLT5kZXYpOwo+IC0Jc3RydWN0IHZtd19jb25uZWN0b3Jfc3RhdGUgKnZjcyA9IHZtd19j b25uZWN0b3Jfc3RhdGVfdG9fdmNzKHN0YXRlKTsKPiAgCj4gIAlpZiAocHJvcGVydHkgPT0gZGV2 X3ByaXYtPmltcGxpY2l0X3BsYWNlbWVudF9wcm9wZXJ0eSkKPiAtCQkqdmFsID0gdmNzLT5pc19p bXBsaWNpdDsKPiArCQkqdmFsID0gdm13X2Nvbm5lY3Rvcl90b19kdShjb25uZWN0b3IpLT5pc19p bXBsaWNpdDsKClRoaXMgY29kZXBhdGggd2lsbCBuZXZlciBiZSB0YWtlIHdpdGggaW1tdXRhYmxl IHByb3BzLiBTbyB5b3UgY2FuIG51a2UKdGhpcyBhbmQgeW91IG11c3QgZG8gdGhlIGFwcHJvcHJp YXRlIGRybV9wcm9wZXJ0eV9zZXRfdmFsdWUoKSBzb21ld2hlcmUKdG8gbWFrZSB0aGUgcHJvcCB2 YWx1ZSBtYXRjaCAuaXNfaW1wbGljaXQuCgo+ICAJZWxzZSB7Cj4gIAkJRFJNX0VSUk9SKCJJbnZh bGlkIFByb3BlcnR5ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7 CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=