From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH 08/12] drm/i915: Add CCS capability for sprites Date: Mon, 11 Dec 2017 13:11:10 +0200 Message-ID: <1512990670.6882.76.camel@intel.com> References: <20170824191100.10949-1-ville.syrjala@linux.intel.com> <20170824191100.10949-9-ville.syrjala@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC8FF89D7F for ; Mon, 11 Dec 2017 11:08:36 +0000 (UTC) In-Reply-To: <20170824191100.10949-9-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org Cc: Ben Widawsky , Daniel Stone List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTA4LTI0IGF0IDIyOjEwICswMzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+IAo+IEFsbG93IHNwcml0ZXMgdG8gc2NhbiBvdXQgY29tcHJlc3NlZCBm cmFtZWJ1ZmZlcnMuCj4gCj4gU2luY2UgZGlmZmVyZW50IHBsYXRmb3JtcyBoYXZlIGEgZGlmZmVy ZW50IHNldCBvZiBwbGFuZXMgdGhhdAo+IHN1cHBvcnQgQ0NTIGxldCdzIGFkZCBhIHNtYWxsIGhl bHBlciB0byBkZXRlcm1pbmUgd2hldGhlciBhCj4gc3BlY2lmaWMgcGxhbmUgc3VwcG9ydHMgQ0NT IG9yIG5vdC4gQ3VycmVudGx5IHRoYXQgaW5mb3JtYXRpb24KPiBpcyBzcHJlYWQgYXJvdW5kIGlu IG1hbnkgcGxhY2VzLCBhbmQgbm90IGFsbCB0aGUgcGllY2VzIG9mCj4gY29kZSBldmVuIGFncmVl IHdpdGggZWFjaCBvdGhlci4KPiAKPiBJbiBhZGRpdGlvbiB0byBhbGxvd2luZyBzcHJpdGVzIHRv IHNjYW4gb3V0IGNvbXByZXNzZWQgZmJzLAo+IHRoZSBvdGhlciBmaXggaGVyZSBpcyB0aGF0IHdl IHN0b3AgcmVqZWN0aW5nIHRoZW0gb24gcGlwZSBDCj4gb24gQ05MLgpVbmZvcnR1bmF0ZWx5LCB0 aGlzIHBhdGNoIGRpZG4ndCBhcHBseSBjbGVhbmx5IG9uIHRvcCBvZiB0aGUgbGF0ZXN0CmRybS10 aXAuIE92ZXJhbGwsIHRoZSBwYXRjaCBsb29rcyBnb29kIHRvIG1lLsKgCgo+IAo+IENjOiBCZW4g V2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4gQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBq bGVrc3RyYW5kLm5ldD4KPiBDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxzQGNvbGxhYm9yYS5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8 IDI0ICsrKystLS0tLS0tLS0tLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmjCoMKgwqDCoMKgfMKgwqAyICsrCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuY8KgwqB8IDQ5Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gwqAz IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGJhMzUxY2JlZjkzYi4uZDUy YTVlMDFhYWY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0z MTIwLDYgKzMxMjAsNyBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19udjEyX2F1eF9zdXJmYWNlKHN0 cnVjdAo+IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiDCoHN0YXRpYyBpbnQgc2ts X2NoZWNrX2Njc19hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUKPiAqcGxhbmVf c3RhdGUpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lX3N0YXRlLQo+ID5iYXNlLnBsYW5lKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtCj4gPmJhc2UuZGV2KTsKU2VlbXMgdGhhdCB0 aGlzIGFkZGl0aW9uIGlzIG5vdCByZWFsbHkgbmVlZGVkLgoKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmVfc3RhdGUtCj4gPmJhc2UuY3J0Yyk7Cj4gwqAJ Y29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsK PiDCoAlpbnQgc3JjX3ggPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueDEgPj4gMTY7Cj4gQEAgLTMx MzAsMTcgKzMxMzEsOCBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19jY3NfYXV4X3N1cmZhY2Uoc3Ry dWN0Cj4gaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+IMKgCWludCB5ID0gc3JjX3kg LyB2c3ViOwo+IMKgCXUzMiBvZmZzZXQ7Cj4gwqAKPiAtCXN3aXRjaCAocGxhbmUtPmlkKSB7Cj4g LQljYXNlIFBMQU5FX1BSSU1BUlk6Cj4gLQljYXNlIFBMQU5FX1NQUklURTA6Cj4gLQkJYnJlYWs7 Cj4gLQlkZWZhdWx0Ogo+IC0JCURSTV9ERUJVR19LTVMoIlJDIHN1cHBvcnQgb25seSBvbiBwbGFu ZSAxIGFuZCAyXG4iKTsKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpZiAoY3J0 Yy0+cGlwZSA9PSBQSVBFX0MpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJObyBSQyBzdXBwb3J0IG9u IHBpcGUgQ1xuIik7Cj4gKwlpZiAoIXNrbF9wbGFuZV9oYXNfY2NzKGRldl9wcml2LCBjcnRjLT5w aXBlLCBwbGFuZS0+aWQpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiTm8gUkMgc3VwcG9ydCBvbiAl c1xuIiwgcGxhbmUtCj4gPmJhc2UubmFtZSk7Cj4gwqAJCXJldHVybiAtRUlOVkFMOwo+IMKgCX0K PiDCoAo+IEBAIC0xMzI3OSwxNyArMTMyNzEsMTEgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVh dGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ IMKgCXByaW1hcnktPmZyb250YnVmZmVyX2JpdCA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlko cGlwZSk7Cj4gwqAJcHJpbWFyeS0+Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19wcmltYXJ5X3Bs YW5lOwo+IMKgCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklM QUtFKGRldl9wcml2KSkgewo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+IMKg CQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMgPSBza2xfcHJpbWFyeV9mb3JtYXRzOwo+IMKgCQludW1f Zm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3ByaW1hcnlfZm9ybWF0cyk7Cj4gLQkJbW9kaWZpZXJz ID0gc2tsX2Zvcm1hdF9tb2RpZmllcnNfY2NzOwo+IMKgCj4gLQkJcHJpbWFyeS0+dXBkYXRlX3Bs YW5lID0KPiBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+IC0JCXByaW1hcnktPmRpc2Fi bGVfcGxhbmUgPQo+IHNreWxha2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+IC0JfSBlbHNlIGlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiAtCQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMg PSBza2xfcHJpbWFyeV9mb3JtYXRzOwo+IC0JCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xf cHJpbWFyeV9mb3JtYXRzKTsKPiAtCQlpZiAocGlwZSA8IFBJUEVfQykKPiArCQlpZiAoc2tsX3Bs YW5lX2hhc19jY3MoZGV2X3ByaXYsIHBpcGUsCj4gUExBTkVfUFJJTUFSWSkpCj4gwqAJCQltb2Rp ZmllcnMgPSBza2xfZm9ybWF0X21vZGlmaWVyc19jY3M7Cj4gwqAJCWVsc2UKPiDCoAkJCW1vZGlm aWVycyA9IHNrbF9mb3JtYXRfbW9kaWZpZXJzX25vY2NzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBpbmRleCBmNjA5OTVmZTQ1NWMuLmIyYmVjMGIyZTU4MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gQEAgLTE4OTAsNiArMTg5MCw4IEBAIGludCBpbnRlbF9zcHJpdGVf c2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlCj4gKmRldiwgdm9pZCAqZGF0YSwKPiDCoAkJ CcKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiDCoHZvaWQgaW50ZWxf cGlwZV91cGRhdGVfc3RhcnQoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+IMKgdm9pZCBpbnRl bF9waXBlX3VwZGF0ZV9lbmQoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICtib29sIHNrbF9w bGFuZV9oYXNfY2NzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQnCoMKg wqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkKTsKPiDCoAo+ IMKgLyogaW50ZWxfdHYuYyAqLwo+IMKgdm9pZCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ IGluZGV4IDc2MTBmODRmMzUyNS4uMzQ1ODczYmUxNGMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiBAQCAtMTA3OSw3ICsxMDc5LDE3IEBAIHN0YXRpYyB1aW50MzJfdCBz a2xfcGxhbmVfZm9ybWF0c1tdID0gewo+IMKgCURSTV9GT1JNQVRfVllVWSwKPiDCoH07Cj4gwqAK PiAtc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNrbF9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzW10gPSB7 Cj4gK3N0YXRpYyBjb25zdCB1aW50NjRfdCBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19ub2Nj c1tdID0gewo+ICsJSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVELAo+ICsJSTkxNV9GT1JNQVRfTU9E X1lfVElMRUQsCj4gKwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiArCURSTV9GT1JNQVRfTU9E X0xJTkVBUiwKPiArCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKPiArfTsKPiArCj4gK3N0YXRpYyBj b25zdCB1aW50NjRfdCBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3NbXSA9IHsKPiArCUk5 MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1MsCj4gKwlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9D Q1MsCj4gwqAJSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVELAo+IMKgCUk5MTVfRk9STUFUX01PRF9Z X1RJTEVELAo+IMKgCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+IEBAIC0xMTUyLDYgKzExNjIs MTAgQEAgc3RhdGljIGJvb2wgc2tsX21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LAo+IHVp bnQ2NF90IG1vZGlmaWVyKQo+IMKgCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKPiDCoAljYXNl IERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gwqAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+ICsJ CWlmIChtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTIHx8Cj4gKwkJwqDC oMKgwqBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MpCj4gKwkJCXJldHVy biB0cnVlOwo+ICsJCS8qIGZhbGwgdGhyb3VnaCAqLwo+IMKgCWNhc2UgRFJNX0ZPUk1BVF9SR0I1 NjU6Cj4gwqAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgo+IMKgCWNhc2UgRFJNX0ZPUk1B VF9YQkdSMjEwMTAxMDoKPiBAQCAtMTIwNyw2ICsxMjIxLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2Z1bmNzCj4gaW50ZWxfc3ByaXRlX3BsYW5lX2Z1bmNzID0gewo+IMKgwqDC oMKgwqDCoMKgwqDCoC5mb3JtYXRfbW9kX3N1cHBvcnRlZCA9Cj4gaW50ZWxfc3ByaXRlX3BsYW5l X2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAo+IMKgfTsKPiDCoAo+ICtib29sIHNrbF9wbGFuZV9oYXNf Y2NzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQnCoMKgwqDCoMKgwqDC oGVudW0gcGlwZSBwaXBlLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkKQo+ICt7Cj4gKwlpZiAocGxh bmVfaWQgPT0gUExBTkVfQ1VSU09SKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMCkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZiAoSVNf R0VNSU5JTEFLRShkZXZfcHJpdikpCj4gKwkJcmV0dXJuIHBpcGUgIT0gUElQRV9DOwo+ICsKPiAr CXJldHVybiBwaXBlICE9IFBJUEVfQyAmJgo+ICsJCShwbGFuZV9pZCA9PSBQTEFORV9QUklNQVJZ IHx8Cj4gKwkJwqBwbGFuZV9pZCA9PSBQTEFORV9TUFJJVEUwKTsKPiArfQo+ICsKPiDCoHN0cnVj dCBpbnRlbF9wbGFuZSAqCj4gwqBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAkJCcKgwqBlbnVtIHBpcGUgcGlwZSwgaW50IHBs YW5lKQo+IEBAIC0xMjMzLDcgKzEyNjQsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0 cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCX0KPiDCoAlpbnRlbF9wbGFu ZS0+YmFzZS5zdGF0ZSA9ICZzdGF0ZS0+YmFzZTsKPiDCoAo+IC0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTApIHsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiDCoAkJ aW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IHRydWU7Cj4gwqAJCXN0YXRlLT5zY2FsZXJfaWQgPSAt MTsKPiDCoAo+IEBAIC0xMjQyLDE3ICsxMjczLDExIEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVh dGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAKPiDCoAkJcGxhbmVf Zm9ybWF0cyA9IHNrbF9wbGFuZV9mb3JtYXRzOwo+IMKgCQludW1fcGxhbmVfZm9ybWF0cyA9IEFS UkFZX1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOwo+IC0JCW1vZGlmaWVycyA9IHNrbF9wbGFuZV9m b3JtYXRfbW9kaWZpZXJzOwo+IC0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp IHsKPiAtCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiAtCQlzdGF0ZS0+c2NhbGVy X2lkID0gLTE7Cj4gLQo+IC0JCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBza2xfdXBkYXRl X3BsYW5lOwo+IC0JCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxh bmU7Cj4gwqAKPiAtCQlwbGFuZV9mb3JtYXRzID0gc2tsX3BsYW5lX2Zvcm1hdHM7Cj4gLQkJbnVt X3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNrbF9wbGFuZV9mb3JtYXRzKTsKPiAtCQltb2Rp ZmllcnMgPSBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyczsKPiArCQlpZiAoc2tsX3BsYW5lX2hh c19jY3MoZGV2X3ByaXYsIHBpcGUsIFBMQU5FX1NQUklURTAKPiArIHBsYW5lKSkKPiArCQkJbW9k aWZpZXJzID0gc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzOwo+ICsJCWVsc2UKPiArCQkJ bW9kaWZpZXJzID0KPiBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19ub2NjczsKPiDCoAl9IGVs c2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8Cj4gSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKPiDCoAkJaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IGZhbHNlOwo+IMKgCQlpbnRlbF9w bGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE7Ci0tIApNaWthIEthaG9sYSAtIEludGVsIE9UQwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==