From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/4] [v5] drm/i915/color: Extract icl_read_luts() Date: Tue, 15 Oct 2019 15:34:28 +0300 Message-ID: <20191015123428.GC1208@intel.com> References: <20191009065542.27415-1-swati2.sharma@intel.com> <20191009065542.27415-4-swati2.sharma@intel.com> <20191009141611.GB1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 759736E7E6 for ; Tue, 15 Oct 2019 12:34:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Swati2" Cc: jani.nikula@intel.com, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTAsIDIwMTkgYXQgMDQ6MjA6MDRQTSArMDUzMCwgU2hhcm1hLCBTd2F0aTIg d3JvdGU6Cj4gT24gMDktT2N0LTE5IDc6NDYgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ IE9uIFdlZCwgT2N0IDA5LCAyMDE5IGF0IDEyOjI1OjQxUE0gKzA1MzAsIFN3YXRpIFNoYXJtYSB3 cm90ZToKPiA+PiBGb3IgaWNsKywgaGF2ZSBodyByZWFkIG91dCB0byBjcmVhdGUgaHcgYmxvYiBv ZiBnYW1tYQo+ID4+IGx1dCB2YWx1ZXMuIGljbCsgcGxhdGZvcm1zIHN1cHBvcnRzIG11bHRpIHNl Z21lbnRlZCBnYW1tYQo+ID4+IG1vZGUgYnkgZGVmYXVsdCwgYWRkIGh3IGx1dCBjcmVhdGlvbiBm b3IgdGhpcyBtb2RlLgo+ID4+Cj4gPj4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gdmFsaWRhdGUgZ2Ft bWEgcHJvZ3JhbW1pbmcgdXNpbmcgZHNiCj4gPj4gKGRpc3BsYXkgc3RhdGUgYnVmZmVyKSB3aGlj aCBpcyBhIHRnbCBzcGVjaWZpYyBmZWF0dXJlLgo+ID4+Cj4gPj4gTWFqb3IgY2hhbmdlIGRvbmUt cmVtb3ZhbCBvZiByZWFkb3V0cyBvZiBjb2Fyc2UgYW5kIGZpbmUgc2VnbWVudHMKPiA+PiBiZWNh dXNlIFBBTF9QUkVDX0RBVEEgcmVnaXN0ZXIgaXNuJ3QgZ2l2aW5nIHByb3BvZXIgdmFsdWVzLgo+ ID4+IFN0YXRlIGNoZWNrZXIgbGltaXRlZCBvbmx5IHRvICJmaW5lIHNlZ21lbnQiCj4gPj4KPiA+ PiB2MjogLXJlYWRvdXQgY29kZSBmb3IgbXVsdGlzZWdtZW50ZWQgZ2FtbWEgaGFzIHRvIGNvbWUK PiA+PiAgICAgICB1cCB3aXRoIHNvbWUgaW50ZXJtZWRpYXRlIGVudHJpZXMgdGhhdCBhcmVuJ3Qg cHJlc2VydmVkCj4gPj4gICAgICAgaW4gaGFyZHdhcmUgKEphbmkgTikKPiA+PiAgICAgIC1saW5l YXIgaW50ZXJwb2xhdGlvbiAoVmlsbGUpCj4gPj4gICAgICAtbW92ZWQgY29tbW9uIGNvZGUgdG8g Y2hlY2sgZ2FtbWFfZW5hYmxlIHRvIHNwZWNpZmljIGZ1bmNzLAo+ID4+ICAgICAgIHNpbmNlIGlj bCBkb2Vzbid0IHN1cHBvcnQgdGhhdAo+ID4+IHYzOiAtdXNlIHUxNiBpbnN0ZWFkIG9mIF9fdTE2 IFtKYW5pIE5dCj4gPj4gICAgICAtdXNlZCBzaW5nbGUgbHV0IFtKYW5pIE5dCj4gPj4gICAgICAt aW1wcm92ZWQgYW5kIG1vcmUgcmVhZGFibGUgZm9yIGxvb3BzIFtKYW5pIE5dCj4gPj4gICAgICAt cmVhZCB2YWx1ZXMgZGlyZWN0bHkgdG8gYWN0dWFsIGxvY2F0aW9ucyBhbmQgdGhlbiBmaWxsIGdh cHMgW0phbmkgTl0KPiA+PiAgICAgIC1tb3ZlZCBjbGVhbmluZyB0byBwYXRjaCAxIFtKYW5pIE5d Cj4gPj4gICAgICAtcmVuYW1lZCBpY2xfcmVhZF9sdXRfbXVsdGlfc2VnKCkgdG8gaWNsX3JlYWRf bHV0X211bHRpX3NlZ21lbnQgdG8KPiA+PiAgICAgICBtYWtlIGl0IHNpbWlsYXIgdG8gaWNsX2xv YWRfbHV0cygpCj4gPj4gICAgICAtcmVuYW1lZCBpY2xfY29tcHV0ZV9pbnRlcnBvbGF0ZWRfZ2Ft bWFfYmxvYigpIHRvCj4gPj4gICAgICAgaWNsX2NvbXB1dGVfaW50ZXJwb2xhdGVkX2dhbW1hX2x1 dF92YWx1ZXMoKSBtb3JlIHNlbnNpYmxlLCBJIGd1ZXNzCj4gPj4gdjQ6IC1yZW1vdmVkIGludGVy cG9sYXRlZCBmdW5jIGZvciBjcmVhdGluZyBnYW1tYSBsdXQgdmFsdWVzCj4gPj4gICAgICAtcmVt b3ZlZCByZWFkb3V0cyBvZiBmaW5lIGFuZCBjb2Fyc2Ugc2VnbWVudHMsIGZhaWx1cmUgdG8gcmVh ZCBQQUxfUFJFQ19EQVRBCj4gPj4gICAgICAgY29ycmVjdGx5Cj4gPj4gdjU6IC1hZGRlZCBnYW1t YV9lbmFibGUgY2hlY2sgaW5zaWRlIHJlYWRfbHV0cygpCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBTd2F0aSBTaGFybWEgPHN3YXRpMi5zaGFybWFAaW50ZWwuY29tPgo+ID4+IC0tLQo+ID4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jIHwgMTE0ICsrKysrKysr KysrKysrKysrKy0tLQo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAg ICAgICAgIHwgICA2ICsrCj4gPj4gICAyIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NvbG9yLmMKPiA+PiBpbmRleCBmYTQ0ZWI3M2QwODguLjYxNGUwYWQzODZjYSAxMDA2 NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMK PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPiA+ PiBAQCAtMTQ3Nyw2ICsxNDc3LDI1IEBAIHN0YXRpYyBpbnQgZ2xrX2dhbW1hX3ByZWNpc2lvbihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgIAl9Cj4gPj4g ICB9Cj4gPj4gICAKPiA+PiArc3RhdGljIGludCBpY2xfZ2FtbWFfcHJlY2lzaW9uKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICt7Cj4gPj4gKwlpZiAoKGNy dGNfc3RhdGUtPmdhbW1hX21vZGUgJiBQT1NUX0NTQ19HQU1NQV9FTkFCTEUpID09IDApCj4gPj4g KwkJcmV0dXJuIDA7Cj4gPj4gKwo+ID4+ICsJc3dpdGNoIChjcnRjX3N0YXRlLT5nYW1tYV9tb2Rl ICYgR0FNTUFfTU9ERV9NT0RFX01BU0spIHsKPiA+PiArCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhC SVQ6Cj4gPj4gKwkJcmV0dXJuIDg7Cj4gPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMEJJVDoK PiA+PiArCQlyZXR1cm4gMTA7Cj4gPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJVF9NVUxU SV9TRUdNRU5URUQ6Cj4gPj4gKwkJcmV0dXJuIDE2Owo+ID4+ICsJZGVmYXVsdDoKPiA+PiArCQlN SVNTSU5HX0NBU0UoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPj4gKwkJcmV0dXJuIDA7Cj4g Pj4gKwl9Cj4gPj4gKwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgaW50IGludGVsX2NvbG9yX2dldF9n YW1tYV9iaXRfcHJlY2lzaW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ID4+ICAgewo+ID4+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4+IEBAIC0xNDg4LDcgKzE1MDcsOSBAQCBp bnQgaW50ZWxfY29sb3JfZ2V0X2dhbW1hX2JpdF9wcmVjaXNpb24oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdAo+ID4+ICAgCQllbHNlCj4gPj4gICAJCQlyZXR1cm4gaTl4 eF9nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gPj4gICAJfSBlbHNlIHsKPiA+PiAtCQlp ZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4g Pj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPj4gKwkJCXJldHVybiBpY2xf Z2FtbWFfcHJlY2lzaW9uKGNydGNfc3RhdGUpOwo+ID4+ICsJCWVsc2UgaWYgKElTX0NBTk5PTkxB S0UoZGV2X3ByaXYpIHx8IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4+ICAgCQkJcmV0dXJu IGdsa19nYW1tYV9wcmVjaXNpb24oY3J0Y19zdGF0ZSk7Cj4gPj4gICAJCWVsc2UgaWYgKElTX0lS T05MQUtFKGRldl9wcml2KSkKPiA+PiAgIAkJCXJldHVybiBpbGtfZ2FtbWFfcHJlY2lzaW9uKGNy dGNfc3RhdGUpOwo+ID4+IEBAIC0xNTE5LDYgKzE1NDAsMjAgQEAgc3RhdGljIGJvb2wgaW50ZWxf Y29sb3JfbHV0X2VudHJ5X2VxdWFsKHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQxLAo+ID4+ICAg CXJldHVybiB0cnVlOwo+ID4+ICAgfQo+ID4+ICAgCj4gPj4gK3N0YXRpYyBib29sIGludGVsX2Nv bG9yX2x1dF9lbnRyeV9tdWx0aV9lcXVhbChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0MSwKPiA+ PiArCQkJCQkgICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0MiwKPiA+PiArCQkJCQkgICAg ICBpbnQgbHV0X3NpemUsIHUzMiBlcnIpCj4gPj4gK3sKPiA+PiArCWludCBpOwo+ID4+ICsKPiA+ PiArCWZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHsKPiA+PiArCQlpZiAoIWVycl9jaGVjaygmbHV0 MVtpXSwgJmx1dDJbaV0sIGVycikpCj4gPj4gKwkJCXJldHVybiBmYWxzZTsKPiA+PiArCX0KPiA+ PiArCj4gPj4gKwlyZXR1cm4gdHJ1ZTsKPiA+PiArfQo+ID4+ICsKPiA+PiAgIGJvb2wgaW50ZWxf Y29sb3JfbHV0X2VxdWFsKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjEsCj4gPj4gICAJ CQkgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IyLAo+ID4+ICAgCQkJICAgdTMyIGdh bW1hX21vZGUsIHUzMiBiaXRfcHJlY2lzaW9uKQo+ID4+IEBAIC0xNTM3LDE2ICsxNTcyLDggQEAg Ym9vbCBpbnRlbF9jb2xvcl9sdXRfZXF1YWwoc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i MSwKPiA+PiAgIAlsdXRfc2l6ZTIgPSBkcm1fY29sb3JfbHV0X3NpemUoYmxvYjIpOwo+ID4+ICAg Cj4gPj4gICAJLyogY2hlY2sgc3cgYW5kIGh3IGx1dCBzaXplICovCj4gPj4gLQlzd2l0Y2ggKGdh bW1hX21vZGUpIHsKPiA+PiAtCWNhc2UgR0FNTUFfTU9ERV9NT0RFXzhCSVQ6Cj4gPj4gLQljYXNl IEdBTU1BX01PREVfTU9ERV8xMEJJVDoKPiA+PiAtCQlpZiAobHV0X3NpemUxICE9IGx1dF9zaXpl MikKPiA+PiAtCQkJcmV0dXJuIGZhbHNlOwo+ID4+IC0JCWJyZWFrOwo+ID4+IC0JZGVmYXVsdDoK PiA+PiAtCQlNSVNTSU5HX0NBU0UoZ2FtbWFfbW9kZSk7Cj4gPj4gLQkJCXJldHVybiBmYWxzZTsK PiA+PiAtCX0KPiA+PiArCWlmIChsdXRfc2l6ZTEgIT0gbHV0X3NpemUyKQo+ID4+ICsJCXJldHVy biBmYWxzZTsKPiA+PiAgIAo+ID4+ICAgCWx1dDEgPSBibG9iMS0+ZGF0YTsKPiA+PiAgIAlsdXQy ID0gYmxvYjItPmRhdGE7Cj4gPj4gQEAgLTE1NTQsMTMgKzE1ODEsMTggQEAgYm9vbCBpbnRlbF9j b2xvcl9sdXRfZXF1YWwoc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iMSwKPiA+PiAgIAll cnIgPSAweGZmZmYgPj4gYml0X3ByZWNpc2lvbjsKPiA+PiAgIAo+ID4+ICAgCS8qIGNoZWNrIHN3 IGFuZCBodyBsdXQgZW50cnkgdG8gYmUgZXF1YWwgKi8KPiA+PiAtCXN3aXRjaCAoZ2FtbWFfbW9k ZSkgewo+ID4+ICsJc3dpdGNoIChnYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RFX01BU0spIHsK PiA+PiAgIAljYXNlIEdBTU1BX01PREVfTU9ERV84QklUOgo+ID4+ICAgCWNhc2UgR0FNTUFfTU9E RV9NT0RFXzEwQklUOgo+ID4+ICAgCQlpZiAoIWludGVsX2NvbG9yX2x1dF9lbnRyeV9lcXVhbChs dXQxLCBsdXQyLAo+ID4+ICAgCQkJCQkJIGx1dF9zaXplMiwgZXJyKSkKPiA+PiAgIAkJCXJldHVy biBmYWxzZTsKPiA+PiAgIAkJYnJlYWs7Cj4gPj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJ VF9NVUxUSV9TRUdNRU5URUQ6Cj4gPj4gKwkJaWYgKCFpbnRlbF9jb2xvcl9sdXRfZW50cnlfbXVs dGlfZXF1YWwobHV0MSwgbHV0MiwKPiA+PiArCQkJCQkJICAgICAgIGx1dF9zaXplMiwgZXJyKSkK PiA+IAo+ID4gSSBkb24ndCB0aGluayB5b3UgbmVlZCBhIG5ldyBmdW5jdGlvbiBmb3IgdGhhdC4g SnVzdCBwYXNzIDkgYXMgdGhlIHNpemUKPiA+IHRvIGludGVsX2NvbG9yX2x1dF9lbnRyeV9lcXVh bCgpID8KPiAKPiBJIGhhZCBtYWRlIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIG11bHRpLXNlZ21l bnRlZCBnYW1tYSBzaW5jZSB0aGVyZSAKPiB3aWxsIGJlIDMgbG9vcHMgZm9yIGNvbXBhcmluZyBz dXBlcmZpbmUsIGZpbmUgYW5kIGNvdXJzZSBzZWdtZW50cyB3aGljaCAKPiB3b250IGdvIHdpdGgg aW50ZWxfbHV0X2VudHJ5X2VxdWFsKCkgc3RydWN0dXJlLgo+IAo+IFJpZ2h0IG5vdyB3ZSBhcmUg bGltaXRpbmcgdG8gc3VwZXJmaW5lIHNlZ21lbnQgb25seSBidXQgaW4gZnV0dXJlIHdlIAo+IHdp bGwgYWRkIGZvciBvdGhlciBzZWdtZW50cyB0b28gKG9uY2Ugd2UgZ2V0IGZpeCBmcm9tIGgvdykK PiAKPiBGdW5jKCkgc2hvdWxkIGxvb2sgbGlrZSB0aGlzLiBBY3R1YWxseSB0aGVyZSBpcyBubyBu ZWVkIHRvIHBhc3NpbmcgCj4gbHV0X3NpemUgb25seSBpbiB0aGlzIGZ1bmN0aW9uIGlmIHdlIGNv bnRpbnVlIHdpdGggdGhpcyBmdW5jdGlvbiBvbmx5Lgo+IAo+ICtzdGF0aWMgYm9vbCBpbnRlbF9j b2xvcl9sdXRfZW50cnlfbXVsdGlfZXF1YWwoc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDEsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1f Y29sb3JfbHV0ICpsdXQyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgbHV0X3NpemUsIHUzMiBlcnIpCj4gK3sKPiArICAgICAgIGludCBpOwo+ICsK PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCA5OyBpKyspIHsKPiArICAgICAgICAgICAgICAgaWYg KCFlcnJfY2hlY2soJmx1dDFbaV0sICZsdXQyW2ldLCBlcnIpKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBmb3IgKGkgPSAx OyBpIDwgMjU3OyBpKyspIHsKPiArICAgICAgICAgICAgICAgaWYgKCFlcnJfY2hlY2soJmx1dDFb aSAqIDhdLCAmbHV0MltpICogOF0sIGVycikpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7 IGkrKykgewo+ICsgICAgICAgICAgICAgICBpZiAoIWVycl9jaGVjaygmbHV0MVtpICogOCAqIDEy OF0sICZsdXQyW2kgKiA4ICogMTI4XSwgZXJyKSkKPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHRydWU7Cj4gK30K PiArCj4gUGxlYXNlIHN1Z2dlc3QuCgpUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIGR1cGxpY2F0 aW5nIGNvZGUgdW50aWwgaXQncyBwcm92ZW4gdG8KYmUgcmVxdWlyZWQuIFdobyBrbm93cyB3aGVu IHRoZSBodyBnZXRzIGZpeGVkLCBtYXliZSBuZXZlci4KCj4gCj4gPiAKPiA+IEhtbSwgc2hvdWxk IHByb2JhYmx5IHJlbmFtZSB0aGF0IHRvIGp1c3QgaW50ZWxfY29sb3JfbHV0X2VxdWFsKCkgc2lu Y2UKPiA+IGl0IGNoZWNrcyB0aGUgZW50aXJlIExVVCAob3IgYXQgbGVhc3QgdGhlIHNwZWNpZmll ZCBzdWJzZXQpIGFuZCBub3QKPiA+IGp1c3QgYSBzaW5nbGUgZW50cnkuLi4KPiAKPiBUaGlzIHdp bGwgYmUgZmluZSBmb3IgdGhpcyBzZWdtZW50IGJ1dCBmb3Igb3RoZXIgdHdvIHNlZ21lbnRzIGl0 IHdvbid0IAo+IHdvcmsuIFJpZ2h0PwoKV2UgY291bGQgZ2VuZXJhbGl6ZSBpdCB0byB0YWtlIHN0 YXJ0K2VuZCtzdHJpZGUuIER1bm5vIGlmIHRoYXQgd291bGQgYmUKcGFydGljdWxhcmx5IGJlbmVm aWNpYWwgdGhvdWdoLgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=