From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 1/3] drm/i915/frontbuffer: Pull frontbuffer_flush out of gem_obj_pin_to_display Date: Wed, 7 Mar 2018 15:20:02 -0800 Message-ID: <20180307232002.GO4440@intel.com> References: <20180307033420.3086-1-dhinakaran.pandiyan@intel.com> <20180307224628.GL4440@intel.com> <1520464696.20396.55.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9D5786E757 for ; Wed, 7 Mar 2018 23:20:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1520464696.20396.55.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMDcsIDIwMTggYXQgMTA6NTQ6MjhQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gCj4gCj4gCj4gT24gV2VkLCAyMDE4LTAzLTA3IGF0IDE0OjQ2IC0wODAw LCBSb2RyaWdvIFZpdmkgd3JvdGU6Cj4gPiBPbiBUdWUsIE1hciAwNiwgMjAxOCBhdCAwNzozNDox OFBNIC0wODAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdyb3RlOgo+ID4gPiBGcm9tOiAiUGFuZGl5 YW4sIERoaW5ha2FyYW4iIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gCj4g PiA+IGk5MTVfZ2VtX29ial9waW5fdG9fZGlzcGxheSgpIGNhbGxzIGZyb250YnVmZmVyX2ZsdXNo IHdpdGggb3JpZ2luIHNldCB0bwo+ID4gPiBESVJUWUZCLiBUaGUgY2FsbGVycyBob3dldmVyIGFy ZSBhdCBhIHZhbnRhZ2UgcG9pbnQgdG8gZGVjaWRlIGlmIGhhcmR3YXJlCj4gPiA+IGZyb250YnVm ZmVyIHRyYWNraW5nIGNhbiBkbyB0aGUgZmx1c2ggZm9yIHVzLiBGb3IgZXhhbXBsZSwgbGVnYWN5 IGN1cnNvcgo+ID4gPiB1cGRhdGVzLCBsaWtlIGZsaXBzLCB3cml0ZSB0byBNTUlPIHJlZ2lzdGVy cywgd2hpY2ggdGhlbiB0cmlnZ2VycyBQU1IgZmx1c2gKPiA+ID4gYnkgdGhlIGhhcmR3YXJlLiBN b3ZpbmcgZnJvbnRidWZmZXJfZmx1c2ggb3V0IHdpbGwgZW5hYmxlIHVzIHRvIHNraXAgYQo+ID4g PiBzb2Z0d2FyZSBpbml0aWF0ZWQgZmx1c2ggYnkgc2V0dGluZyBvcmlnaW4gdG8gRkxJUC4gVGhh bmtzIHRvIENocmlzIGZvciB0aGUKPiA+ID4gaWRlYS4KPiA+ID4gCj4gPiA+IHYyOgo+ID4gPiBS ZWJhc2VkIGR1ZSB0byBWaWxsZSBhZGRpbmcgaW50ZWxfcGxhbmVfcGluX2ZiKCkuCj4gPiA+IE1p bm9yIGNvZGUgcmVvcmRlcmluZyBhcyBmYl9vYmpfZmx1c2ggZG9lc24ndCBuZWVkIHN0cnVjdF9t dXRleCAoQ2hyaXMpCj4gPiA+IAo+ID4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+ID4gPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRl bC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2Fy YW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICB8IDkgKysrKy0tLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA5ICsrKysrKystLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJkZXYuYyAgIHwgNSArKystLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfb3ZlcmxheS5jIHwgMSArCj4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE1IGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiA+ID4gaW5kZXggYTViZDA3MzM4YjQ2Li5lNGM1YTFhMjJkOGIgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4gPiBAQCAtNDA3MSw5ICs0MDcxLDEwIEBAIGludCBp OTE1X2dlbV9zZXRfY2FjaGluZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICAvKgo+ID4gPiAtICogUHJlcGFyZSBidWZmZXIg Zm9yIGRpc3BsYXkgcGxhbmUgKHNjYW5vdXQsIGN1cnNvcnMsIGV0YykuCj4gPiA+IC0gKiBDYW4g YmUgY2FsbGVkIGZyb20gYW4gdW5pbnRlcnJ1cHRpYmxlIHBoYXNlIChtb2Rlc2V0dGluZykgYW5k IGFsbG93cwo+ID4gPiAtICogYW55IGZsdXNoZXMgdG8gYmUgcGlwZWxpbmVkIChmb3IgcGFnZWZs aXBzKS4KPiA+ID4gKyAqIFByZXBhcmUgYnVmZmVyIGZvciBkaXNwbGF5IHBsYW5lIChzY2Fub3V0 LCBjdXJzb3JzLCBldGMpLiBDYW4gYmUgY2FsbGVkIGZyb20KPiA+ID4gKyAqIGFuIHVuaW50ZXJy dXB0aWJsZSBwaGFzZSAobW9kZXNldHRpbmcpIGFuZCBhbGxvd3MgYW55IGZsdXNoZXMgdG8gYmUg cGlwZWxpbmVkCj4gPiA+ICsgKiAoZm9yIHBhZ2VmbGlwcykuIFdlIG9ubHkgZmx1c2ggdGhlIGNh Y2hlcyB3aGlsZSBwcmVwYXJpbmcgdGhlIGJ1ZmZlciBmb3IKPiA+ID4gKyAqIGRpc3BsYXksIHRo ZSBjYWxsZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgZnJvbnRidWZmZXIgZmx1c2guCj4gPiA+ICAg Ki8KPiA+ID4gIHN0cnVjdCBpOTE1X3ZtYSAqCj4gPiA+ICBpOTE1X2dlbV9vYmplY3RfcGluX3Rv X2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ID4gQEAg LTQxMjksOSArNDEzMCw3IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gPiAgCj4gPiA+ICAJdm1hLT5kaXNw bGF5X2FsaWdubWVudCA9IG1heF90KHU2NCwgdm1hLT5kaXNwbGF5X2FsaWdubWVudCwgYWxpZ25t ZW50KTsKPiA+ID4gIAo+ID4gPiAtCS8qIFRyZWF0IHRoaXMgYXMgYW4gZW5kLW9mLWZyYW1lLCBs aWtlIGludGVsX3VzZXJfZnJhbWVidWZmZXJfZGlydHkoKSAqLwo+ID4gCj4gPiBBbHRob3VnaCBm bHVzaCBieSBzb21lIGRlZmluaXRpb24gaGVyZSBpcyBpbnZhbGlkYXRlICsgZmx1c2gKPiA+IEkg c2VlIGZsdXNoIG9wZXJhdGlvbnMgYXMgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQgYXQg dGhlICJlbmQtb2YtZnJhbWUiLgo+ID4gQWZ0ZXIgdGhlIG9wZXJhdGlvbiB3YXMgZG9uZSBhbmQg d2hhdGV2ZXIgaGFkIHRvIGJlIG1vZGlmaWVkIHdhcyBtb2RpZmllZC4KPiA+IAo+ID4gSSBzZWUg eW91IHBhdGNoIGNoYW5naW5nIHRoZSBmbHVzaCB0byB0aGUgY3JlYXRpb24gYW5kIGJlZ2luIG9m IHRoZSBmYiBoYW5kbGluZwo+ID4gbGlrZSBvbiBjcmVhdGluZyBhbmQgaW5pdCBmYiBmdW5jdGlv bnMuIEkgYmVsaWV2ZSBieSB0aGF0IHRpbWUgd2UgYXJlIG5vdCByZWFkeQo+ID4gdG8gZXhpdCBQ U1IgeWV0Lgo+ID4gCj4gPiBXaGF0IGFtIEkgbWlzc2luZz8KPiAKPiAKPiBUaGUgZnVuY3Rpb25z IHRoYXQgeW91IGFyZSByZWZlcnJpbmcgdG8gY2FsbAo+IGk5MTVfZ2VtX29iamVjdF9waW5fdG9f ZGlzcGxheV9wbGFuZSgpIHdoaWNoIGluIHR1cm4gY2FsbHMgZnJvbnRidWZmZXIKPiBmbHVzaC4g VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IsIGRvZXNuJ3QgY2hhbmdlIHdoZXRoZXIgZmx1 c2goKSBpcwo+IGNhbGxlZC4gSSBhbSB0cnlpbmcgdG8gbW92ZSBpdCB1cCB0aGUgY2FsbCBzdGFj ayBzbyB0aGF0IGZsdXNoKCkgY2FuIGJlCj4gc2VsZWN0aXZlbHkgcmVtb3ZlZCBkZXBlbmRpbmcg b24gdGhlIGNhbGwgc2l0ZS4KCk9oISBub3cgaXQgbWFkZSBtb3JlIHNlbnNlLi4uCgpwcm9iYWJs eSB0aGlzIHBocmFzZSBpcyBtb3JlIGNsZWFyIHRoYW4gdGhlIGN1cnJlbnQgY29tbWl0IG1lc3Nh Z2UgZm9yIGEKY29tbWl0IG1lc3NhZ2UuCgpCdXQgSSBjaGVja2VkIHRoZSBjb2RlIGFuZCBJIGFn cmVlIGl0IGlzIHJpZ2h0LCBzbzoKClJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+CgoKCj4gCj4gCj4gCj4gCj4gPiAKPiA+ID4gIAlfX2k5MTVfZ2VtX29i amVjdF9mbHVzaF9mb3JfZGlzcGxheShvYmopOwo+ID4gPiAtCWludGVsX2ZiX29ial9mbHVzaChv YmosIE9SSUdJTl9ESVJUWUZCKTsKPiA+ID4gIAo+ID4gPiAgCS8qIEl0IHNob3VsZCBub3cgYmUg b3V0IG9mIGFueSBvdGhlciB3cml0ZSBkb21haW5zLCBhbmQgd2UgY2FuIHVwZGF0ZQo+ID4gPiAg CSAqIHRoZSBkb21haW4gdmFsdWVzIGZvciBvdXIgY2hhbmdlcy4KPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCAzMzEwODQwODI1NDUuLjkxY2U4YTA1MjJh MyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBA QCAtMjg1OCw2ICsyODU4LDkgQEAgaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ID4gIAkJcmV0dXJuOwo+ID4gPiAgCX0KPiA+ID4g IAo+ID4gPiArCW9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gPiA+ICsJaW50ZWxfZmJfb2JqX2Zs dXNoKG9iaiwgT1JJR0lOX0RJUlRZRkIpOwo+ID4gPiArCj4gPiA+ICAJcGxhbmVfc3RhdGUtPnNy Y194ID0gMDsKPiA+ID4gIAlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAwOwo+ID4gPiAgCXBsYW5lX3N0 YXRlLT5zcmNfdyA9IGZiLT53aWR0aCA8PCAxNjsKPiA+ID4gQEAgLTI4NzEsNyArMjg3NCw2IEBA IGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCj4gPiA+ICAJaW50ZWxfc3RhdGUtPmJhc2Uuc3JjID0gZHJtX3BsYW5lX3N0YXRlX3NyYyhw bGFuZV9zdGF0ZSk7Cj4gPiA+ICAJaW50ZWxfc3RhdGUtPmJhc2UuZHN0ID0gZHJtX3BsYW5lX3N0 YXRlX2Rlc3QocGxhbmVfc3RhdGUpOwo+ID4gPiAgCj4gPiA+IC0Jb2JqID0gaW50ZWxfZmJfb2Jq KGZiKTsKPiA+ID4gIAlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKG9iaikpCj4gPiA+ICAJ CWRldl9wcml2LT5wcmVzZXJ2ZV9iaW9zX3N3aXp6bGUgPSB0cnVlOwo+ID4gPiAgCj4gPiA+IEBA IC0xMjc4NSw2ICsxMjc4Nyw4IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCj4gPiA+ICAJaWYgKHJldCkKPiA+ID4gIAkJcmV0dXJuIHJldDsKPiA+ID4g IAo+ID4gPiArCWludGVsX2ZiX29ial9mbHVzaChvYmosIE9SSUdJTl9ESVJUWUZCKTsKPiA+ID4g Kwo+ID4gPiAgCWlmICghbmV3X3N0YXRlLT5mZW5jZSkgeyAvKiBpbXBsaWNpdCBmZW5jaW5nICov Cj4gPiA+ICAJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ID4gPiAgCj4gPiA+IEBAIC0xMzE3 Miw4ICsxMzE3Niw5IEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ID4gPiAgCWlmIChyZXQpCj4gPiA+ICAJCWdvdG8gb3V0X3VubG9jazsKPiA+ ID4gIAo+ID4gPiAtCW9sZF9mYiA9IG9sZF9wbGFuZV9zdGF0ZS0+ZmI7Cj4gPiA+ICsJaW50ZWxf ZmJfb2JqX2ZsdXNoKGludGVsX2ZiX29iaihmYiksIE9SSUdJTl9ESVJUWUZCKTsKPiA+ID4gIAo+ ID4gPiArCW9sZF9mYiA9IG9sZF9wbGFuZV9zdGF0ZS0+ZmI7Cj4gPiA+ICAJaTkxNV9nZW1fdHJh Y2tfZmIoaW50ZWxfZmJfb2JqKG9sZF9mYiksIGludGVsX2ZiX29iaihmYiksCj4gPiA+ICAJCQkg IGludGVsX3BsYW5lLT5mcm9udGJ1ZmZlcl9iaXQpOwo+ID4gPiAgCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJkZXYuYwo+ID4gPiBpbmRleCA2ZjEyYWRjMDYzNjUuLjY1YTMzMTM3MjNjOSAx MDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCj4gPiA+IEBAIC0yMjEs NiArMjIxLDkgQEAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqaGVscGVyLAo+ID4gPiAgCQlnb3RvIG91dF91bmxvY2s7Cj4gPiA+ICAJfQo+ID4gPiAgCj4g PiA+ICsJZmIgPSAmaWZiZGV2LT5mYi0+YmFzZTsKPiA+ID4gKwlpbnRlbF9mYl9vYmpfZmx1c2go aW50ZWxfZmJfb2JqKGZiKSwgT1JJR0lOX0RJUlRZRkIpOwo+ID4gPiArCj4gPiA+ICAJaW5mbyA9 IGRybV9mYl9oZWxwZXJfYWxsb2NfZmJpKGhlbHBlcik7Cj4gPiA+ICAJaWYgKElTX0VSUihpbmZv KSkgewo+ID4gPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBmYl9pbmZvXG4iKTsK PiA+ID4gQEAgLTIzMCw4ICsyMzMsNiBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gPiA+ICAKPiA+ID4gIAlpbmZvLT5wYXIgPSBoZWxw ZXI7Cj4gPiA+ICAKPiA+ID4gLQlmYiA9ICZpZmJkZXYtPmZiLT5iYXNlOwo+ID4gPiAtCj4gPiA+ ICAJaWZiZGV2LT5oZWxwZXIuZmIgPSBmYjsKPiA+ID4gIAo+ID4gPiAgCXN0cmNweShpbmZvLT5m aXguaWQsICJpbnRlbGRybWZiIik7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5 LmMKPiA+ID4gaW5kZXggMzY2NzFhOTM3ZmE0Li5jMmYxMGQ4OTkzMjkgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiA+ID4gQEAgLTgwNyw2ICs4MDcsNyBA QCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdlKHN0cnVjdCBpbnRlbF9vdmVy bGF5ICpvdmVybGF5LAo+ID4gPiAgCQlyZXQgPSBQVFJfRVJSKHZtYSk7Cj4gPiA+ICAJCWdvdG8g b3V0X3Bpbl9zZWN0aW9uOwo+ID4gPiAgCX0KPiA+ID4gKwlpbnRlbF9mYl9vYmpfZmx1c2gobmV3 X2JvLCBPUklHSU5fRElSVFlGQik7Cj4gPiA+ICAKPiA+ID4gIAlyZXQgPSBpOTE1X3ZtYV9wdXRf ZmVuY2Uodm1hKTsKPiA+ID4gIAlpZiAocmV0KQo+ID4gPiAtLSAKPiA+ID4gMi4xNC4xCj4gPiA+ IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==