From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/13] drm/i915: Move LUT programming to happen after vblank waits Date: Thu, 17 Jan 2019 17:00:05 +0200 Message-ID: <20190117150005.GD20097@intel.com> References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> <20190111170823.4441-8-ville.syrjala@linux.intel.com> <20190116173859.GH4563@mdroper-desk.amr.corp.intel.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 7A78D6F4B5 for ; Thu, 17 Jan 2019 15:00:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190116173859.GH4563@mdroper-desk.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMTYsIDIwMTkgYXQgMDk6Mzg6NTlBTSAtMDgwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBPbiBGcmksIEphbiAxMSwgMjAxOSBhdCAwNzowODoxN1BNICswMjAwLCBWaWxsZSBTeXJq YWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IAo+ID4gVGhlIExVVHMgYXJlIHNpbmdsZSBidWZmZXJlZCBzbyB3ZSBz aG91bGQgcHJvZ3JhbSB0aGVtIGFmdGVyCj4gPiB0aGUgZG91YmxlIGJ1ZmZlcmVkIHBpcGUgdXBk YXRlcyBoYXZlIGJlZW4gbGF0Y2hlZCBieSB0aGUKPiA+IGhhcmR3YXJlLgo+ID4gCj4gPiBXZSds bCBhbHNvIGZpeCB1cCB0aGUgSVBTIHZzLiBzcGxpdCBnYW1tYSB3L2EgdG8gZG8gdGhlIElQUwo+ ID4gZGlzYWJsZSBsaWtlIGV2ZXJ5b25lIGVsc2UuIE5vdGUgdGhhdCB0aGlzIGlzIGN1cnJlbnRs eSBkZWFkCj4gPiBjb2RlIGFzIHdlIGRvbid0IHVzZSB0aGUgc3BsaXQgZ2FtbWEgbW9kZSBvbiBI U1csIGJ1dCB0aGF0Cj4gPiB3aWxsIGJlIGZpeGVkIHVwIHNob3J0bHkuCj4gCj4gSSBkb24ndCB0 aGluayB0aGlzIGlzIHF1aXRlIGRlYWQgY29kZS4uLndlIGRvbid0IHVzZSBzcGxpdCBnYW1tYQo+ IG91cnNlbHZlcywgYnV0IHdlIGNvdWxkIHBvdGVudGlhbGx5IGluaGVyaXQgdGhhdCBzZXR1cCBm cm9tIHRoZSBCSU9TCj4gKHdoaWNoIHdpbGwgc3RpY2sgYXJvdW5kIHVudGlsIGl0IGV2ZW50dWFs bHkgZ2V0cyBjbG9iYmVyZWQgYnkgdGhlIGZpcnN0Cj4gbW9kZXNldC9mYXN0c2V0KS4KPiAKPiBV bWEncyBzZXJpZXMgYWRkZWQgc29tZSBsb2dpYyB0byBzYW5pdGl6ZSB0aGUgTFVUJ3MgaW1tZWRp YXRlbHkgb24gYm9vdCwKPiBidXQgdGhhdCBoYXNuJ3QgbGFuZGVkIHlldC4KCldpdGggdGhlIGdh bW1hX2VuYWJsZS9jc2NfZW5hYmxlIGZsYWdzIHByb3Blcmx5IHRyYWNrZWQgd2Ugc2hvdWxkbid0 Cm5lZWQgYW55dGhpbmcgbGlrZSB0aGF0LiBPciBhbSBJIG1pc3Npbmcgc29tZXRoaW5nPwoKPiAK PiAKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMgICB8IDI1ICstLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQo+ID4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+IGluZGV4IGY5ZTA4NTUxNjJmMy4uMGMw ZGE3ZWQwZmQ3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29s b3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4gQEAg LTM2MSwyOSArMzYxLDYgQEAgc3RhdGljIHZvaWQgaHN3X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ICAJaWxrX2xvYWRfY3NjX21hdHJp eChjcnRjX3N0YXRlKTsKPiA+ICB9Cj4gPiAgCj4gPiAtLyogTG9hZHMgdGhlIGxlZ2FjeSBwYWxl dHRlL2dhbW1hIHVuaXQgZm9yIHRoZSBDUlRDIG9uIEhhc3dlbGwuICovCj4gPiAtc3RhdGljIHZv aWQgaGFzd2VsbF9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCj4gPiAtewo+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiAtCWJvb2wgcmVlbmFibGVf aXBzID0gZmFsc2U7Cj4gPiAtCj4gPiAtCS8qCj4gPiAtCSAqIFdvcmthcm91bmQgOiBEbyBub3Qg cmVhZCBvciB3cml0ZSB0aGUgcGlwZSBwYWxldHRlL2dhbW1hIGRhdGEgd2hpbGUKPiA+IC0JICog R0FNTUFfTU9ERSBpcyBjb25maWd1cmVkIGZvciBzcGxpdCBnYW1tYSBhbmQgSVBTX0NUTCBoYXMg SVBTIGVuYWJsZWQuCj4gPiAtCSAqLwo+ID4gLQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYg Y3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQgJiYKPiA+IC0JICAgIChjcnRjX3N0YXRlLT5nYW1tYV9t b2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkpIHsKPiA+IC0JCWhzd19kaXNhYmxlX2lwcyhj cnRjX3N0YXRlKTsKPiA+IC0JCXJlZW5hYmxlX2lwcyA9IHRydWU7Cj4gPiAtCX0KPiA+IC0KPiA+ IC0JaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7Cj4gPiAtCj4gPiAtCWlmIChyZWVuYWJsZV9p cHMpCj4gPiAtCQloc3dfZW5hYmxlX2lwcyhjcnRjX3N0YXRlKTsKPiA+IC19Cj4gPiAtCj4gPiAg c3RhdGljIHZvaWQgYmR3X2xvYWRfZGVnYW1tYV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+IEBAIC02NjAsNyArNjM3 LDcgQEAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4g IAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5 LmxvYWRfbHV0cyA9IGNoZXJyeXZpZXdfbG9hZF9sdXRzOwo+ID4gIAl9IGVsc2UgaWYgKElTX0hB U1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBo YXN3ZWxsX2xvYWRfbHV0czsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5 eHhfbG9hZF9sdXRzOwo+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0ID0gaHN3 X2NvbG9yX2NvbW1pdDsKPiA+ICAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8 IElTX0dFTjlfQkMoZGV2X3ByaXYpIHx8Cj4gPiAgCQkgICBJU19CUk9YVE9OKGRldl9wcml2KSkg ewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggOTZjNzg1NjZi OGU2Li4xY2FlZTQxMjg5NzQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gQEAgLTUyOTksMjQgKzUyOTksNTQgQEAgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFy eV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgc3RhdGljIGJvb2wgaHN3X3By ZV91cGRhdGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YXRlLAo+ID4gIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km5ld19jcnRjX3N0YXRlKQo+ID4gIHsKPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiA+ICsK PiA+ICAJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCj4gPiAgCQlyZXR1cm4gZmFs c2U7Cj4gPiAgCj4gPiAgCWlmIChuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkp Cj4gPiAgCQlyZXR1cm4gdHJ1ZTsKPiA+ICAKPiA+ICsJLyoKPiA+ICsJICogV29ya2Fyb3VuZCA6 IERvIG5vdCByZWFkIG9yIHdyaXRlIHRoZSBwaXBlIHBhbGV0dGUvZ2FtbWEgZGF0YSB3aGlsZQo+ ID4gKwkgKiBHQU1NQV9NT0RFIGlzIGNvbmZpZ3VyZWQgZm9yIHNwbGl0IGdhbW1hIGFuZCBJUFNf Q1RMIGhhcyBJUFMgZW5hYmxlZC4KPiA+ICsJICoKPiA+ICsJICogRGlzYWJsZSBJUFMgYmVmb3Jl IHdlIHByb2dyYW0gdGhlIExVVC4KPiA+ICsJICovCj4gPiArCWlmIChJU19IQVNXRUxMKGRldl9w cml2KSAmJgo+ID4gKwkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdl ZCB8fAo+ID4gKwkgICAgIG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgJiYKPiA+ICsJICAg IG5ld19jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKPiAK PiBXb3VsZG4ndCB3ZSB3YW50IG9sZF9jcnRjX3N0YXRlIGZvciB0aGUgZ2FtbWFfbW9kZSB0ZXN0 PyAgV2UgbmVlZCB0bwo+IGRpc2FibGUgSVBTIGlmIHdlJ3JlIGFscmVhZHkgaW4gc3BsaXQgZ2Ft bWEgbW9kZSAoaW5oZXJpdGVkIGZyb20gQklPUyksCj4gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdl J3JlIG1vdmluZyB0byBub24tc3BsaXQgZ2FtbWEuCj4gCj4gCj4gTWF0dAo+IAo+ID4gKwkJcmV0 dXJuIHRydWU7Cj4gPiArCj4gPiAgCXJldHVybiAhbmV3X2NydGNfc3RhdGUtPmlwc19lbmFibGVk Owo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgYm9vbCBoc3dfcG9zdF91cGRhdGVfZW5hYmxlX2lw cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gPiAgCQkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4g PiAgewo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2Ny dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gKwo+ID4gIAlpZiAoIW5ld19jcnRj X3N0YXRlLT5pcHNfZW5hYmxlZCkKPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ICAKPiA+ICAJaWYg KG5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKPiA+ICAJCXJldHVybiB0cnVl Owo+ID4gIAo+ID4gKwkvKgo+ID4gKwkgKiBXb3JrYXJvdW5kIDogRG8gbm90IHJlYWQgb3Igd3Jp dGUgdGhlIHBpcGUgcGFsZXR0ZS9nYW1tYSBkYXRhIHdoaWxlCj4gPiArCSAqIEdBTU1BX01PREUg aXMgY29uZmlndXJlZCBmb3Igc3BsaXQgZ2FtbWEgYW5kIElQU19DVEwgaGFzIElQUyBlbmFibGVk Lgo+ID4gKwkgKgo+ID4gKwkgKiBSZS1lbmFibGUgSVBTIGFmdGVyIHRoZSBMVVQgaGFzIGJlZW4g cHJvZ3JhbW1lZC4KPiA+ICsJICovCj4gPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJgo+ ID4gKwkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+ID4g KwkgICAgIG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgJiYKPiA+ICsJICAgIG5ld19jcnRj X3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKPiA+ICsJCXJldHVy biB0cnVlOwo+ID4gKwo+ID4gIAkvKgo+ID4gIAkgKiBXZSBjYW4ndCByZWFkIG91dCBJUFMgb24g YnJvYWR3ZWxsLCBhc3N1bWUgdGhlIHdvcnN0IGFuZAo+ID4gIAkgKiBmb3JjaWJseSBlbmFibGUg SVBTIG9uIHRoZSBmaXJzdCBmYXN0c2V0Lgo+ID4gQEAgLTExMDUwLDcgKzExMDgwLDcgQEAgc3Rh dGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g PiAgCQkJcmV0dXJuIHJldDsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpZiAoY3J0Y19zdGF0ZS0+Y29s b3JfbWdtdF9jaGFuZ2VkKSB7Cj4gPiArCWlmIChtb2RlX2NoYW5nZWQgfHwgY3J0Y19zdGF0ZS0+ Y29sb3JfbWdtdF9jaGFuZ2VkKSB7Cj4gPiAgCQlyZXQgPSBpbnRlbF9jb2xvcl9jaGVjayhwaXBl X2NvbmZpZyk7Cj4gPiAgCQlpZiAocmV0KQo+ID4gIAkJCXJldHVybiByZXQ7Cj4gPiBAQCAtMTMx MTcsNiArMTMxNDcsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAJICovCj4gPiAgCWRybV9hdG9taWNf aGVscGVyX3dhaXRfZm9yX2ZsaXBfZG9uZShkZXYsIHN0YXRlKTsKPiA+ICAKPiA+ICsJZm9yX2Vh Y2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4g PiArCQluZXdfaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNf c3RhdGUpOwo+ID4gKwo+ID4gKwkJaWYgKG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgJiYKPiA+ICsJ CSAgICAhbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgJiYKPiA+ICsJCSAgICAobmV3X2lu dGVsX2NydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8Cj4gPiArCQkgICAgIG5l d19pbnRlbF9jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkpCj4gPiArCQkJaW50ZWxfY29sb3JfbG9h ZF9sdXRzKG5ld19pbnRlbF9jcnRjX3N0YXRlKTsKPiA+ICsJfQo+ID4gKwo+ID4gIAkvKgo+ID4g IAkgKiBOb3cgdGhhdCB0aGUgdmJsYW5rIGhhcyBwYXNzZWQsIHdlIGNhbiBnbyBhaGVhZCBhbmQg cHJvZ3JhbSB0aGUKPiA+ICAJICogb3B0aW1hbCB3YXRlcm1hcmtzIG9uIHBsYXRmb3JtcyB0aGF0 IG5lZWQgdHdvLXN0ZXAgd2F0ZXJtYXJrCj4gPiBAQCAtMTM2MzIsMTEgKzEzNjcyLDYgQEAgc3Rh dGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ID4gIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShvbGRfaW50ZWxfc3RhdGUsIGlu dGVsX2NydGMpOwo+ID4gIAlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KCZpbnRlbF9jc3Rh dGUtPmJhc2UpOwo+ID4gIAo+ID4gLQlpZiAoIW1vZGVzZXQgJiYKPiA+IC0JICAgIChpbnRlbF9j c3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8Cj4gPiAtCSAgICAgaW50ZWxfY3N0YXRl LT51cGRhdGVfcGlwZSkpCj4gPiAtCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoaW50ZWxfY3N0YXRl KTsKPiA+IC0KPiA+ICAJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lvbiBhcm91bmQgY29tbWl0IG9w ZXJhdGlvbiAqLwo+ID4gIAlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChpbnRlbF9jc3RhdGUpOwo+ ID4gIAo+ID4gLS0gCj4gPiAyLjE5LjIKPiA+IAo+IAo+IC0tIAo+IE1hdHQgUm9wZXIKPiBHcmFw aGljcyBTb2Z0d2FyZSBFbmdpbmVlcgo+IElvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9w bWVudAo+IEludGVsIENvcnBvcmF0aW9uCj4gKDkxNikgMzU2LTI3OTUKCi0tIApWaWxsZSBTeXJq w6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==