From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 4/4] drm/i915: reorganize the get_cdclk assignment Date: Fri, 17 Feb 2017 13:17:22 -0200 Message-ID: <1487344642.16234.44.camel@intel.com> References: <1487337727-9813-1-git-send-email-paulo.r.zanoni@intel.com> <1487337727-9813-5-git-send-email-paulo.r.zanoni@intel.com> <20170217140535.GR31595@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 165046ED48 for ; Fri, 17 Feb 2017 15:18:03 +0000 (UTC) In-Reply-To: <20170217140535.GR31595@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 =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE3LTAyLTE3IMOgcyAxNjowNSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3Jl dmV1Ogo+IE9uIEZyaSwgRmViIDE3LCAyMDE3IGF0IDExOjIyOjA3QU0gLTAyMDAsIFBhdWxvIFph bm9uaSB3cm90ZToKPiA+IAo+ID4gUG9zc2libGUgcHJvYmxlbXMgb2YgdGhlIGN1cnJlbnQgaWYt bGFkZGVyOgo+ID4gwqAgLSBJdCdzIGEgaHVnZSBpZiBsYWRkZXIgd2l0aCBhbG1vc3QgYSBkaWZm ZXJlbnQgY2hlY2sgZm9yIGVhY2ggb2YKPiA+IMKgwqDCoMKgb3VyIHBsYXRmb3Jtcy4KPiA+IMKg IC0gSXQgbWl4ZXMgMyBkaWZmZXJlbnQgdHlwZXMgb2YgY2hlY2tzOiBJU19HRU5YLCBJU19QTEFU Rk9STSBhbmQKPiA+IMKgwqDCoMKgSVNfR1JPVVBfT0ZfUExBVEZPUk1TLgo+ID4gwqAgLSBBcyBk ZW1vbnN0cmF0ZWQgYnkgdGhlIHJlY2VudCBJU19HNFggY29tbWl0LCBpdCdzIG5vdCBlYXN5IHRv Cj4gPiBiZQo+ID4gwqDCoMKgwqBzdXJlIGlmIGEgcGxhdGZvcm0gZG93biBvbiB0aGUgbGlzdCBp c24ndCBhbHNvIGNoZWNrZWQgZWFybGllci4KPiA+IMKgIC0gQXMgZGVtb25zdHJhdGVkIGJ5IHRo ZSBXQVJOIGF0IHRoZSBlbmQsIGl0J3Mgbm90IGVhc3kgdG8gYmUKPiA+IHN1cmUKPiA+IMKgwqDC oMKgaWYgd2UncmUgYWN0dWFsbHkgY2hlY2tpbmcgZm9yIGV2ZXJ5IHNpbmdsZSBwbGF0Zm9ybS4K PiA+IAo+ID4gUG9zc2libGUgYWR2YW50YWdlcyBvZiB0aGUgbmV3IHN3aXRjaCBzdGF0ZW1lbnQ6 Cj4gPiDCoCAtIEl0IG1heSBiZSBlYXNpZXIgZm9yIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBz dHVmZiAoSSBkaWRuJ3QKPiA+IMKgwqDCoMKgY2hlY2sgdGhpcyksIGVzcGVjaWFsbHkgc2luY2Ug dGhlIHZhbHVlcyBhcmUgbGFiZWxzIG9mIGFuIGVudW0uCj4gPiDCoCAtIFRoZSBjb21waWxlciB3 aWxsIHRlbGwgdXMgaW4gY2FzZSB3ZSBtaXNzIHNvbWUgcGxhdGZvcm0uCj4gPiDCoCAtIEFsbCBw bGF0Zm9ybXMgYXJlIGV4cGxpY2l0bHkgdGhlcmUgaW5zdGVhZCBvZiBtYXliZSBoaWRkZW4gaW4K PiA+IHNvbWUKPiA+IMKgwqDCoMKgY2hlY2sgZm9yIGEgY2VydGFpbiBncm91cCBvZiBwbGF0Zm9y bXMgc3VjaCBhcyBJU19HRU45X0JDLgo+IAo+IFBlcmZvcm1hbmNlIGlzIGEgYml0IG9mIGEgbW9v dCBwb2ludCBzaW5jZSB0aGlzIGlzIHJ1biBleGFjbHR5IG9uY2UsCj4gYnV0Cj4gdGhlIElTX0dF TjlfQkMoKSBzdHVmZiBJIHRlbmQgdG8gYWdyZWUgd2l0aC4gSSBkb24ndCByZWFsbHkgbGlrZQo+ IHRob3NlCj4gbWFjcm9zIGF0IGFsbCBzaW5jZSB0aGV5IGRvbid0IGFjdHVsbHkgbWVhbiBhbnl0 aGluZyBhcyBmYXIgYXMgdGhlCj4gaGFyZHdhcmUgZmVhdHVyZXMgZ28uCgpJIHRoaW5rIHRoZXkg bWFrZSBzb21lIHNlbnNlIHdoZW4gdGhleSdyZSBhIHNpbmdsZSBjaGVjay4gQnV0IHdoZW4gd2UK aGF2ZSB0b25zIG9mIGNoZWNrcyBmb3IgdG9ucyBvZiBwbGF0Zm9ybXMsIEkgZG9uJ3Qga25vdy4K Cj4gCj4gPiAKPiA+IAo+ID4gUG9zc2libGUgZGlzYWR2YW50YWdlcyB3aXRoIHRoZSBuZXcgY29k ZToKPiA+IMKgIC0gQSBmZXcgbGluZXMgYmlnZ2VyLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBQ YXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysr KystLS0KPiA+IC0tLS0tLS0tLS0tLQo+ID4gwqAxIGZpbGUgY2hhbmdlZCwgNjIgaW5zZXJ0aW9u cygrKSwgNDEgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nk Y2xrLmMKPiA+IGluZGV4IDdjOTJkYzcuLjU4YTJmNWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jZGNsay5jCj4gPiBAQCAtMTc4OSw0OSArMTc4OSw3MCBAQCB2b2lkIGludGVsX2lu aXRfY2RjbGtfaG9va3Moc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gc2tsX21vZGVz ZXRfY2FsY19jZGNsazsKPiA+IMKgCX0KPiA+IMKgCj4gPiAtCWlmIChJU19HRU45X0JDKGRldl9w cml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IHNrbF9nZXRfY2RjbGs7 Cj4gPiAtCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X2NkY2xrID0gYnh0X2dldF9jZGNsazsKPiA+IC0JZWxzZSBpZiAoSVNfQlJPQURX RUxMKGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGJkd19n ZXRfY2RjbGs7Cj4gPiAtCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQo+ID4gLQkJZGV2 X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gaHN3X2dldF9jZGNsazsKPiA+IC0JZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKPiA+IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gdmx2X2dldF9jZGNsazsKPiA+IC0J ZWxzZSBpZiAoSVNfR0VONihkZXZfcHJpdikgfHwgSVNfSVZZQlJJREdFKGRldl9wcml2KSkKPiA+ ICsJc3dpdGNoIChJTlRFTF9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm0pIHsKPiA+ICsJY2FzZSBJ TlRFTF9QTEFURk9STV9VTklOSVRJQUxJWkVEOgo+IAo+IEp1c3QgZGVmYXVsdDogPwoKSWYgd2Ug YWRkIGEgZGVmYXVsdCBjYXNlIHRoZSBjb21waWxlciB3aWxsIHN0b3AgY29tcGxhaW5pbmcgaW4g Y2FzZSB3ZQpkb24ndCBleHBsaWNpdGx5IGxpc3QgZXZlcnkgcGxhdGZvcm0uIEl0J3MgYSB0cmFk ZS1vZmYsIEkgcmVhbGx5IHRoaW5rCnRoZSBjdXJyZW50IHdheSBpcyBzbGlnaHRseSBiZXR0ZXIs IGJ1dCBJIHdvbid0IG9wcG9zZSBpbiBjYXNlIHlvdQpzdGlsbCB0aGluayBpdCdzIGJldHRlciBh ZGRpbmcgdGhlIGRlZmF1bHQgY2FzZS4KCgo+IAo+ID4gCj4gPiArCQlNSVNTSU5HX0NBU0UoSU5U RUxfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtKTsKPiA+ICsJCS8qIEZhbGwgdGhyb3VnaC4gKi8K PiA+ICsJY2FzZSBJTlRFTF9JODMwOgo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xr ID0KPiA+IGZpeGVkXzEzM21oel9nZXRfY2RjbGs7Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBJ TlRFTF9JODQ1RzoKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9Cj4gPiBmaXhl ZF8yMDBtaHpfZ2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgSU5URUxfSTg1WDoK PiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGk4NXhfZ2V0X2NkY2xrOwo+ID4g KwkJYnJlYWs7Cj4gPiArCWNhc2UgSU5URUxfSTg2NUc6Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfY2RjbGsgPQo+ID4gZml4ZWRfMjY2bWh6X2dldF9jZGNsazsKPiA+ICsJCWJyZWFrOwo+ ID4gKwljYXNlIElOVEVMX0k5MTVHOgo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xr ID0KPiA+IGZpeGVkXzMzM21oel9nZXRfY2RjbGs7Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBJ TlRFTF9JOTE1R006Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBpOTE1Z21f Z2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgSU5URUxfSTk0NUc6Cj4gPiArCWNh c2UgSU5URUxfSTk2NUc6Cj4gPiArCWNhc2UgSU5URUxfU0FORFlCUklER0U6Cj4gPiArCWNhc2Ug SU5URUxfSVZZQlJJREdFOgo+IAo+IEkgZG9uJ3QgcGFydGljdWxhcmx5IGxpa2UgdGhpcyBkaXNv cmRlci4gSSBqdXN0IG1hbmFnZWQgdG8gZ2V0IHRoZQo+IGxpc3QgaW50byBzb21lIHNvcnQgb2Yg c2FuZSBvcmRlciByZWNlbnRseS4KCk15IG9yaWdpbmFsIHRob3VnaHQgaGVyZSB3YXMgdGhhdCBz aW5jZSB0aGUgY29tcGlsZXIgd2lsbCBhY3R1YWxseQpjb21wbGFpbiBpbiBjYXNlIHdlIG1pc3Mg c29tZSBwbGF0Zm9ybSwga2VlcGluZyBhIHN0cmljdCBvcmRlciBpcyBub3QKYXMgbWVhbmluZ2Z1 bCBhcyBpdCB3YXMgYmVmb3JlLiBCdXQgSSB3YXMgYWxzbyB3b25kZXJpbmcgaWYgdGhpcyB3YXMK YWN0dWFsbHkgYmV0dGVyIG9yIG5vdCwgc28gSSBjYW4gY2hhbmdlIHRoaXMuCgpCdXQgSSBkaWQg bm90aWNlIHlvdSBzb3J0ZWQgdGhlIGxpc3QuIEluIGZhY3QsIEkgb3JpZ2luYWxseSB3cm90ZSB0 aGlzCmNvbW1pdCBhZ2FpbnN0IGEgdHJlZSB3aXRob3V0IHlvdXIgaW1wcm92ZW1lbnRzLCBzbyBv bmUgb2YgdGhlIHJlYXNvbnMKSSBjaXRlZCBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ugd2FzIHRoZSBt ZXNzIG9mIGFuIG9yZGVyaW5nIHdlIGhhZCBhdAp0aGF0IHRpbWUgOikuCgo+IAo+ID4gCj4gPiDC oAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0KPiA+IGZpeGVkXzQwMG1oel9nZXRfY2Rj bGs7Cj4gPiAtCWVsc2UgaWYgKElTX0dFTjUoZGV2X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X2NkY2xrID0KPiA+IGZpeGVkXzQ1MG1oel9nZXRfY2RjbGs7Cj4gPiAtCWVsc2Ug aWYgKElTX0dNNDUoZGV2X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xr ID0gZ200NV9nZXRfY2RjbGs7Cj4gPiAtCWVsc2UgaWYgKElTX0c0NShkZXZfcHJpdikpCj4gPiAr CQlicmVhazsKPiA+ICsJY2FzZSBJTlRFTF9JOTQ1R006Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfY2RjbGsgPSBpOTQ1Z21fZ2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2Ug SU5URUxfRzMzOgo+ID4gKwljYXNlIElOVEVMX0c0NToKPiAKPiBNb3JlIGRpc29yZGVyLgo+IAo+ ID4gCj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gZzMzX2dldF9jZGNsazsK PiA+IC0JZWxzZSBpZiAoSVNfSTk2NUdNKGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNw bGF5LmdldF9jZGNsayA9IGk5NjVnbV9nZXRfY2RjbGs7Cj4gPiAtCWVsc2UgaWYgKElTX0k5NjVH KGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9Cj4gPiBmaXhl ZF80MDBtaHpfZ2V0X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19QSU5FVklFVyhkZXZfcHJpdikp Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBJTlRFTF9QSU5FVklFVzoKPiA+IMKgCQlkZXZfcHJp di0+ZGlzcGxheS5nZXRfY2RjbGsgPSBwbnZfZ2V0X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19H MzMoZGV2X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gZzMzX2dl dF9jZGNsazsKPiA+IC0JZWxzZSBpZiAoSVNfSTk0NUdNKGRldl9wcml2KSkKPiA+IC0JCWRldl9w cml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGk5NDVnbV9nZXRfY2RjbGs7Cj4gPiAtCWVsc2UgaWYg KElTX0k5NDVHKGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9 Cj4gPiBmaXhlZF80MDBtaHpfZ2V0X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19JOTE1R00oZGV2 X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gaTkxNWdtX2dldF9j ZGNsazsKPiA+IC0JZWxzZSBpZiAoSVNfSTkxNUcoZGV2X3ByaXYpKQo+ID4gLQkJZGV2X3ByaXYt PmRpc3BsYXkuZ2V0X2NkY2xrID0KPiA+IGZpeGVkXzMzM21oel9nZXRfY2RjbGs7Cj4gPiAtCWVs c2UgaWYgKElTX0k4NjVHKGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9j ZGNsayA9Cj4gPiBmaXhlZF8yNjZtaHpfZ2V0X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19JODVY KGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGk4NXhfZ2V0 X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19JODQ1RyhkZXZfcHJpdikpCj4gPiAtCQlkZXZfcHJp di0+ZGlzcGxheS5nZXRfY2RjbGsgPQo+ID4gZml4ZWRfMjAwbWh6X2dldF9jZGNsazsKPiA+IC0J ZWxzZSB7IC8qIDgzMCAqLwo+ID4gLQkJV0FSTighSVNfSTgzMChkZXZfcHJpdiksCj4gPiAtCQnC oMKgwqDCoMKgIlVua25vd24gcGxhdGZvcm0uIEFzc3VtaW5nIDEzMyBNSHoKPiA+IENEQ0xLXG4i KTsKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9Cj4gPiBmaXhlZF8xMzNtaHpf Z2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgSU5URUxfSTk2NUdNOgo+ID4gKwkJ ZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gaTk2NWdtX2dldF9jZGNsazsKPiA+ICsJCWJy ZWFrOwo+ID4gKwljYXNlIElOVEVMX0dNNDU6Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRf Y2RjbGsgPSBnbTQ1X2dldF9jZGNsazsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIElOVEVMX0lS T05MQUtFOgo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0KPiA+IGZpeGVkXzQ1 MG1oel9nZXRfY2RjbGs7Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBJTlRFTF9WQUxMRVlWSUVX Ogo+ID4gKwljYXNlIElOVEVMX0NIRVJSWVZJRVc6Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5n ZXRfY2RjbGsgPSB2bHZfZ2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgSU5URUxf SEFTV0VMTDoKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGhzd19nZXRfY2Rj bGs7Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBJTlRFTF9CUk9BRFdFTEw6Cj4gPiArCQlkZXZf cHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBiZHdfZ2V0X2NkY2xrOwo+ID4gKwkJYnJlYWs7Cj4g PiArCWNhc2UgSU5URUxfU0tZTEFLRToKPiA+ICsJY2FzZSBJTlRFTF9LQUJZTEFLRToKPiA+ICsJ CWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IHNrbF9nZXRfY2RjbGs7Cj4gPiArCQlicmVh azsKPiA+ICsJY2FzZSBJTlRFTF9CUk9YVE9OOgo+ID4gKwljYXNlIElOVEVMX0dFTUlOSUxBS0U6 Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBieHRfZ2V0X2NkY2xrOwo+ID4g KwkJYnJlYWs7Cj4gPiDCoAl9Cj4gPiDCoH0KPiA+IC0twqAKPiA+IDIuNy40Cj4gPiAKPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK