From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v2 5/6] i915/dp/fec: Configure the Forward Error Correction bits. Date: Fri, 19 Oct 2018 22:58:29 +0300 Message-ID: <20181019195829.GE9144@intel.com> References: <20181015215037.13901-1-anusha.srivatsa@intel.com> <20181015215037.13901-6-anusha.srivatsa@intel.com> <20181019183911.GW9144@intel.com> <20181019192442.GN8224@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 4EDA16E52A for ; Fri, 19 Oct 2018 19:58:35 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181019192442.GN8224@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMTksIDIwMTggYXQgMTI6MjQ6NDNQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBGcmksIE9jdCAxOSwgMjAxOCBhdCAwOTozOToxMVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIE9jdCAxNSwgMjAxOCBhdCAwMjo1MDozNlBNIC0w NzAwLCBBbnVzaGEgU3JpdmF0c2Egd3JvdGU6Cj4gPiA+IElmIEZFQyBpcyBzdXBwb3J0ZWQsIHRo ZSBjb3JyZXNwb25kaW5nCj4gPiA+IERQX1RQX0NUTCByZWdpc3RlciBiaXRzIGhhdmUgdG8gYmUg Y29uZmlndXJlZC4KPiA+ID4gCj4gPiA+IFRoZSBkcml2ZXIgaGFzIHRvIHByb2dyYW0gdGhlIEZF Q19FTkFCTEUgaW4gRFBfVFBfQ1RMWzMwXSByZWdpc3Rlcgo+ID4gPiBhbmQgd2FpdCB0aWxsIEZF Q19TVEFUVVMgaW4gRFBfVFBfQ1RMWzI4XSBpcyAxLgo+ID4gPiBBbHNvIGFkZCB0aGUgd2FybiBt ZXNzYWdlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb250cm9sCj4gPiA+IHJlZ2lzdGVyIGlzIGFs cmVhZHkgYWN0aXZlIHdoaWxlIGVuYWJsaW5nIEZFQy4KPiA+ID4gCj4gPiA+IHYyOgo+ID4gPiAt IENoYW5nZSBjb21taXQgbWVzc2FnZS4gQ29uZmlndXJlIGZlYyBzdGF0ZSBhZnRlcgo+ID4gPiAg IGxpbmsgdHJhaW5pbmcgKE1hbmFzaSwgR2F1cmF2KQo+ID4gPiAtIFJlbW92ZSByZWR1bmRlbnQg Y2hlY2tzIChNYW5hc2kpCj4gPiA+IC0gUmVtb3ZlIHRoZSByZWdpc3RlcnMgdGhhdCBnZXQgYWRk ZWQgYXV0b21hZ2ljYWxseSAoQW51c2hhKQo+ID4gPiAKPiA+ID4gdjM6IHMvaW50ZWxfZHBfc2V0 X2ZlY19zdGF0ZSgpL2ludGVsX2RwX2VuYWJsZV9mZWNfc3RhdGUoKSAoR2F1cmF2KQo+ID4gPiAK PiA+ID4gdjQ6IHJlYmFzZWQuCj4gPiA+IAo+ID4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJh di5rLnNpbmdoQGludGVsLmNvbT4KPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBs aW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNy aXZhdHNhQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oICB8ICAyICsrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YyB8ICAyICsrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDI3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggfCAgMyArKy0KPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ IGluZGV4IGJjZGU3OGJjMDAyNy4uYzhkN2ZkY2Q3ODIzIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+ID4gQEAgLTkwOTMsNiArOTA5Myw3IEBAIGVudW0gc2tsX3Bvd2Vy X2dhdGUgewo+ID4gPiAgI2RlZmluZSBfRFBfVFBfQ1RMX0IJCQkweDY0MTQwCj4gPiA+ICAjZGVm aW5lIERQX1RQX0NUTChwb3J0KSBfTU1JT19QT1JUKHBvcnQsIF9EUF9UUF9DVExfQSwgX0RQX1RQ X0NUTF9CKQo+ID4gPiAgI2RlZmluZSAgRFBfVFBfQ1RMX0VOQUJMRQkJCSgxIDw8IDMxKQo+ID4g PiArI2RlZmluZSAgRFBfVFBfQ1RMX0ZFQ19FTkFCTEUJCQkoMSA8PCAzMCkKPiA+ID4gICNkZWZp bmUgIERQX1RQX0NUTF9NT0RFX1NTVAkJCSgwIDw8IDI3KQo+ID4gPiAgI2RlZmluZSAgRFBfVFBf Q1RMX01PREVfTVNUCQkJKDEgPDwgMjcpCj4gPiA+ICAjZGVmaW5lICBEUF9UUF9DVExfRk9SQ0Vf QUNUCQkJKDEgPDwgMjUpCj4gPiA+IEBAIC05MTExLDYgKzkxMTIsNyBAQCBlbnVtIHNrbF9wb3dl cl9nYXRlIHsKPiA+ID4gICNkZWZpbmUgX0RQX1RQX1NUQVRVU19BCQkJMHg2NDA0NAo+ID4gPiAg I2RlZmluZSBfRFBfVFBfU1RBVFVTX0IJCQkweDY0MTQ0Cj4gPiA+ICAjZGVmaW5lIERQX1RQX1NU QVRVUyhwb3J0KSBfTU1JT19QT1JUKHBvcnQsIF9EUF9UUF9TVEFUVVNfQSwgX0RQX1RQX1NUQVRV U19CKQo+ID4gPiArI2RlZmluZSAgRFBfVFBfU1RBVFVTX0ZFQ19FTkFCTEVfTElWRQkJKDEgPDwg MjgpCj4gPiA+ICAjZGVmaW5lICBEUF9UUF9TVEFUVVNfSURMRV9ET05FCQkJKDEgPDwgMjUpCj4g PiA+ICAjZGVmaW5lICBEUF9UUF9TVEFUVVNfQUNUX1NFTlQJCQkoMSA8PCAyNCkKPiA+ID4gICNk ZWZpbmUgIERQX1RQX1NUQVRVU19NT0RFX1NUQVRVU19NU1QJCSgxIDw8IDIzKQo+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gPiBpbmRleCBmNTMxOTAwMTY1YmYuLjY3YzAxM2VhNGQz OSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gQEAgLTI5MTEs NiArMjkxMSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCQkJCQkgICAgICBEUF9ERUNPTVBSRVNTSU9O X0VOKTsKPiA+ID4gIAlpbnRlbF9kcF9zaW5rX3NldF9mZWNfcmVhZHkoaW50ZWxfZHAsIGNydGNf c3RhdGUsIERQX0ZFQ19SRUFEWSk7Cj4gPiA+ICAJaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihp bnRlbF9kcCk7Cj4gPiA+ICsJaW50ZWxfZHBfZW5hYmxlX2ZlY19zdGF0ZShpbnRlbF9kcCwgY3J0 Y19zdGF0ZSk7Cj4gPiAKPiA+IFRoaXMgZG9lc24ndCBsb29rIGxpa2UgdGhlIGNvcnJlY3Qgc3Bv dC4gQWNjb3JkaW5nIHRvIHRoZSBzcGVjIGl0Cj4gPiBzaG91bGQgYmUgYWZ0ZXIgc3RvcF9saW5r X3RyYWluKCkgKHdoZXJlIHdlIHNldCBEUF9UUF9DVEwgdG8KPiA+IHRvIG5vcm1hbCkuCj4gPgo+ IAo+IFllcyBJIHNlZSBpbiB0aGUgZGlzcGxheSBwb3J0IGVuYWJsaW5nIHNlcXVlbmNlIHBhZ2Ug b2YgdGhlIHNwZWMsIHRoYXQgaXQgc2F5cyBlbmFibGUgRkVDCj4gYWZ0ZXIgRFBfVFBfQ1RMIGlz IHNldCB0byBOb3JtYWwuIEFsc28gdGhlIEZFQyBwYWdlIHNheXMgdGhhdCB0aGlzIHNob3VsZCBi ZSBlbmFibGVkIG9ubHkgYWZ0ZXIgZW5zdXJpbmcgdGhhdCBsaW5rIHRyYWluaW5nCj4gY29tcGxl dGVkLiBTbyBhY2NvcmRpbmcgdG8gdGhhdCB0aGlzIGNhbGwgc2hvdWxkIGhhcHBlbiBhZnRlcgo+ IGludGVsX2RwX3N0b3BfbGlua190cmFpbigpLiAKPiBTbyB5ZXMgbW92ZSB0aGlzIHRvIGFmdGVy IGludGVsX2RwX3N0b3BfbGlua190cmFpbmluZygpLgo+IAo+ID4gPiArCj4gPiA+ICAJaWYgKHBv cnQgIT0gUE9SVF9BIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiA+ID4gIAkJaW50ZWxf ZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiA+ID4gIAo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiA+ID4gaW5kZXggYjRlOGFmMzE0MmEyLi5iOWY4NTUwMmQ5ZmYgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBAQCAtMzAxNyw2ICszMDE3LDMzIEBA IHZvaWQgaW50ZWxfZHBfc2lua19zZXRfZmVjX3JlYWR5KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiA+ICAJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBnZXQgRkVDIGVuYWJsZWQgaW4g c2lua1xuIik7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3ZvaWQgaW50ZWxfZHBfZW5hYmxlX2Zl Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiArCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiArewo+ID4gPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gPiArCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiArCj4gPiA+ICsJLyogRkVDIHN1 cHBvcnQgZXhpc3RzIGZvciBEUCAxLjQgb25seSAqLwo+ID4gPiArCWlmIChpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKQo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsKPiA+ID4gKwkvKiBJZiBEaXNw bGF5IENvbXByZXNzaW9uIGlzIG5vdCBlbmFibGVkLCBGRUMgbmVlZCBub3QgYmUgY29uZmlndXJl ZCAqLwo+ID4gPiArCWlmICghY3J0Y19zdGF0ZS0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFi bGUpCj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwo+ID4gPiArCXZhbCA9IEk5MTVfUkVBRChEUF9U UF9DVEwocG9ydCkpOwo+ID4gPiArCXZhbCB8PSBEUF9UUF9DVExfRkVDX0VOQUJMRTsKPiA+ID4g KwlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdmFsKTsKPiA+ID4gKwo+ID4gPiArCWlmIChp bnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKHBvcnQpLAo+ID4g PiArCQkJCSAgICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLAo+ID4gPiArCQkJCSAgICBE UF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZFLAo+ID4gPiArCQkJCSAgICAxKSkKPiA+ID4gKwkJ RFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgRkVDIEVuYWJsZSBTdGF0dXNcbiIpOwo+ ID4gPiArfQo+ID4gCj4gPiBUaGVyZSBpcyBubyByZWFzb24gdG8gc3RpY2sgdGhlc2UgaW50byBp bnRlbF9kcC5jIHdoZW4gdGhlCj4gPiBvbmx5IGNhbGxlciBpcyBpbiBpbnRlbF9kZGkuYy4KPiA+ Cj4gCj4gU28gbWF5IGJlIG1vdmUgdGhlIHNldF9kc2Nfc3RhdGUgZnVuY3Rpb24gYWxzbyBmcm9t IGludGVsX2RwLmMgdG8gaW50ZWxfZGRpLmMKPiBPciBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gbW92 ZSBhbGwgdGhlc2UgRFNDIHJlbGF0ZWQgZnVuY3Rpb25zIGluY2x1ZGluZyBmZWMgdG8gaW50ZWxf ZHNjLmM/Cj4gIAo+ID4gV2UgYWxzbyBzZWVtIHRvIGJlIG1pc3NpbmcgcGxhdGZvcm0gY2hlY2tz LiBGRUMgZG9lc24ndCBhcHBlYXIgdG8KPiA+IGJlIGEgdGhpbmcgcHJpb3IgdG8gSUNMLiBJIGd1 ZXNzIHRoZSBlZHArY29tcHJlc3Npb25fZW5hYmxlIHRha2VzIGNhcmUKPiA+IG9mIHRoaXMsIGJ1 dCBJIHRoaW5rIEknZCByYXRoZXIgc3RpY2sgYSBuZXcgZmVjX2VuYWJsZSBib29sIGludG8KPiA+ IHRoZSBjcnRjIHN0YXRlLiBUaGF0IHdheSB3ZSBnZXQgY2FuIGFkZCBpdCB0byB0aGUgc3RhdGUg Y2hlY2tlciBhcyB3ZWxsLgo+ID4KPiAKPiBmZWNfZW5hYmxlIGNhbiBiZSBhZGRlZCB0byBjcnRj X3N0YXRlLT5kc2NfcGFyYW1zIG1heSBiZT8KCklzbid0IEZFQyBzb21ldGhpbmcgdGhhdCBjYW4g YmUgdXNlZCB3L28gRFNDIHRvbz8KCj4gCj4gTWFuYXNpCj4gIAo+ID4gPiArCj4gPiA+ICAvKiBJ ZiB0aGUgc2luayBzdXBwb3J0cyBpdCwgdHJ5IHRvIHNldCB0aGUgcG93ZXIgc3RhdGUgYXBwcm9w cmlhdGVseSAqLwo+ID4gPiAgdm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwgaW50IG1vZGUpCj4gPiA+ICB7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gPiA+IGluZGV4IGZiYzlmYTA2ZThiZS4uZTUxZDYxMmE5ZjQyIDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMTUzMiw3ICsxNTMyLDYgQEAgaW50 ZWxfZW5jb2Rlcl9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ ID4gPiAgYm9vbCBpbnRlbF9wb3J0X2lzX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+ID4gPiAgZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9f dGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkJICAgICAgZW51 bSBwb3J0IHBvcnQpOwo+ID4gPiAtCj4gPiA+ICBlbnVtIHBpcGUgaW50ZWxfZ2V0X3BpcGVfZnJv bV9jb25uZWN0b3Ioc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+ID4gIGlu dCBpbnRlbF9nZXRfcGlwZV9mcm9tX2NydGNfaWRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiA+ID4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dik7Cj4gPiA+IEBAIC0xNzEyLDYgKzE3MTEsOCBAQCB2b2lkIGludGVsX2RwX3Npbmtfc2V0X2Rl Y29tcHJlc3Npb25fc3RhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIHZvaWQg aW50ZWxfZHBfc2lua19zZXRfZmVjX3JlYWR5KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiA+ICAJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4g PiAgCQkJCSBpbnQgc3RhdGUpOwo+ID4gPiArdm9pZCBpbnRlbF9kcF9lbmFibGVfZmVjX3N0YXRl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ID4gPiAgdm9pZCBpbnRlbF9kcF9lbmNv ZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiA+ICB2b2lkIGludGVs X2RwX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rlcik7 Cj4gPiA+ICB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpOwo+ID4gPiAtLSAKPiA+ID4gMi4xNy4xCj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUg U3lyasOkbMOkCj4gPiBJbnRlbAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK