From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 15/18] drm/i915/hsw+: Add has_fuses power well attribute Date: Tue, 11 Jul 2017 20:37:24 +0300 Message-ID: <20170711173724.GE12629@intel.com> References: <1499352040-8819-1-git-send-email-imre.deak@intel.com> <1499352040-8819-16-git-send-email-imre.deak@intel.com> <20170711170539.GC12629@intel.com> <20170711171129.ruuagbvwnfwripxd@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B2C76E03B for ; Tue, 11 Jul 2017 17:37:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170711171129.ruuagbvwnfwripxd@ideak-desk.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMTEsIDIwMTcgYXQgMDg6MjI6MTlQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIFR1ZSwgSnVsIDExLCAyMDE3IGF0IDA4OjA1OjM5UE0gKzAzMDAsIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+IE9uIFRodSwgSnVsIDA2LCAyMDE3IGF0IDA1OjQwOjM3UE0gKzAzMDAs IEltcmUgRGVhayB3cm90ZToKPiA+ID4gVGhlIHBhdHRlcm4gb2YgYSBwb3dlciB3ZWxsIGJhY2tp bmcgYSBzZXQgb2YgZnVzZXMgd2hvc2UgaW5pdGlhbGl6YXRpb24KPiA+ID4gd2UgbmVlZCB0byB3 YWl0IGZvciBkdXJpbmcgcG93ZXIgd2VsbCBlbmFibGluZyBpcyBjb21tb24gdG8gYWxsIEdFTjkr Cj4gPiA+IHBsYXRmb3Jtcy4gQWRkaW5nIHN1cHBvcnQgZm9yIHRoaXMgdG8gdGhlIEhTVyBwb3dl ciB3ZWxsIGVuYWJsZSBoZWxwZXIKPiA+ID4gYWxsb3dzIHVzIHRvIHVzZSB0aGUgSFNXL0JEVyBw b3dlciB3ZWxsIGNvZGUgZm9yIEdFTjkrIGFzIHdlbGwgaW4gYQo+ID4gPiBmb2xsb3ctdXAgcGF0 Y2guCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRl bC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXku YyAgICAgIHwgIDYgKysrLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgICAgfCAgMSArCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgICAgfCAgOCArKysrLS0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVu dGltZV9wbS5jIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gPiA+ICA0 IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+ID4gPiAK PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlzcGxheS5jCj4gPiA+IGluZGV4IDJkZWIwNWYuLjEz NTk5YmIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5 LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXkuYwo+ID4gPiBA QCAtMTc4LDkgKzE3OCw5IEBAIHN0YXRpYyB2b2lkIGVtdWxhdGVfbW9uaXRvcl9zdGF0dXNfY2hh bmdlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQo+ID4gPiAgCQkJCVNERV9QT1JURV9IT1RQTFVH X1NQVCk7Cj4gPiA+ICAJCXZncHVfdnJlZyh2Z3B1LCBTS0xfRlVTRV9TVEFUVVMpIHw9Cj4gPiA+ ICAJCQkJU0tMX0ZVU0VfRE9XTkxPQURfU1RBVFVTIHwKPiA+ID4gLQkJCQlTS0xfRlVTRV9QRzBf RElTVF9TVEFUVVMgfAo+ID4gPiAtCQkJCVNLTF9GVVNFX1BHMV9ESVNUX1NUQVRVUyB8Cj4gPiA+ IC0JCQkJU0tMX0ZVU0VfUEcyX0RJU1RfU1RBVFVTOwo+ID4gPiArCQkJCVNLTF9GVVNFX1BHX0RJ U1RfU1RBVFVTKDApIHwKPiA+ID4gKwkJCQlTS0xfRlVTRV9QR19ESVNUX1NUQVRVUygxKSB8Cj4g PiA+ICsJCQkJU0tMX0ZVU0VfUEdfRElTVF9TVEFUVVMoMik7Cj4gPiA+ICAJCXZncHVfdnJlZyh2 Z3B1LCBMQ1BMTDFfQ1RMKSB8PQo+ID4gPiAgCQkJCUxDUExMX1BMTF9FTkFCTEUgfAo+ID4gPiAg CQkJCUxDUExMX1BMTF9MT0NLOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gaW5k ZXggZGM1Y2E1YS4uOWU5NzUzNiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPiA+IEBAIC0xMzk2LDYgKzEzOTYsNyBAQCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsIHsKPiA+ ID4gIAkJCXUzMiBpcnFfcGlwZV9tYXNrOwo+ID4gPiAgCQkJLyogVGhlIHB3IGlzIGJhY2tpbmcg dGhlIFZHQSBmdW5jdGlvbmFsaXR5ICovCj4gPiA+ICAJCQlib29sIGhhc192Z2E6MTsKPiA+ID4g KwkJCWJvb2wgaGFzX2Z1c2VzOjE7Cj4gPiA+ICAJCX0gaHN3Owo+ID4gPiAgCX07Cj4gPiA+ICAJ Y29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgKm9wczsKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gPiA+IGluZGV4IDg0NWY1MGMuLjc5NGQ2NWMgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBAQCAtODAyMywxMCArODAyMywxMCBAQCBlbnVtIHsK PiA+ID4gIAo+ID4gPiAgLyogU0tMIEZ1c2UgU3RhdHVzICovCj4gPiA+ICAjZGVmaW5lIFNLTF9G VVNFX1NUQVRVUwkJCQlfTU1JTygweDQyMDAwKQo+ID4gPiAtI2RlZmluZSAgU0tMX0ZVU0VfRE9X TkxPQURfU1RBVFVTICAgICAgICAgICAgICAoMTw8MzEpCj4gPiA+IC0jZGVmaW5lICBTS0xfRlVT RV9QRzBfRElTVF9TVEFUVVMgICAgICAgICAgICAgICgxPDwyNykKPiA+ID4gLSNkZWZpbmUgIFNL TF9GVVNFX1BHMV9ESVNUX1NUQVRVUyAgICAgICAgICAgICAgKDE8PDI2KQo+ID4gPiAtI2RlZmlu ZSAgU0tMX0ZVU0VfUEcyX0RJU1RfU1RBVFVTICAgICAgICAgICAgICAoMTw8MjUpCj4gPiA+ICsj ZGVmaW5lICBTS0xfRlVTRV9ET1dOTE9BRF9TVEFUVVMJCSgxPDwzMSkKPiA+ID4gKy8qIFBHMCAo SFcgY29udHJvbC0+bm8gcG93ZXIgd2VsbCBJRCksIFBHMS4uUEcyIChTS0xfRElTUF9QVzEuLlNL TF9ESVNQX1BXMikgKi8KPiA+ID4gKyNkZWZpbmUgIFNLTF9QV19UT19QRyhwdykJCQkoKHB3KSAt IFNLTF9ESVNQX1BXXzEgKyAxKQo+ID4gPiArI2RlZmluZSAgU0tMX0ZVU0VfUEdfRElTVF9TVEFU VVMocGcpCQkoMSA8PCAoMjcgLSAocGcpKSkKPiA+ID4gIAo+ID4gPiAgLyogUGVyLXBpcGUgRERJ IEZ1bmN0aW9uIENvbnRyb2wgKi8KPiA+ID4gICNkZWZpbmUgX1RSQU5TX0RESV9GVU5DX0NUTF9B CQkweDYwNDAwCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiA+ ID4gaW5kZXggMTRkNGZmNC4uYzIwNGJlMCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gPiBAQCAtNDAwLDE2ICs0MDAsMzYgQEAgc3RhdGlj IHZvaWQgaHN3X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAJCSAgICAgICEhKHJlcXMgJiAxKSwgISEocmVxcyAmIDIp LCAhIShyZXFzICYgNCksICEhKHJlcXMgJiA4KSk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0 YXRpYyB2b2lkIGdlbjlfd2FpdF9mb3JfcG93ZXJfd2VsbF9mdXNlcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICsJCQkJCSAgIGludCBwZykKPiA+ID4gK3sKPiA+ID4g KwkvKiBUaW1lb3V0IDV1cyBmb3IgUEcjMCwgZm9yIG90aGVyIFBHcyAxdXMgKi8KPiA+ID4gKwlX QVJOX09OKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LCBTS0xfRlVTRV9TVEFUVVMs Cj4gPiA+ICsJCQkJCVNLTF9GVVNFX1BHX0RJU1RfU1RBVFVTKHBnKSwKPiA+ID4gKwkJCQkJU0tM X0ZVU0VfUEdfRElTVF9TVEFUVVMocGcpLCAxKSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0 YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gPiA+ICAJCQkJICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxs KQo+ID4gPiAgewo+ID4gPiAgCWVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIGlkID0gcG93ZXJfd2Vs bC0+aWQ7Cj4gPiA+ICsJYm9vbCB3YWl0X2Z1c2VzID0gcG93ZXJfd2VsbC0+aHN3Lmhhc19mdXNl czsKPiA+ID4gKwlpbnQgcGc7Cj4gPiA+ICAJdTMyIHZhbDsKPiA+ID4gIAo+ID4gPiArCWlmICh3 YWl0X2Z1c2VzKSB7Cj4gPiA+ICsJCXBnID0gU0tMX1BXX1RPX1BHKGlkKTsKPiA+ID4gKwkJaWYg KHBnID09IDEpCj4gPiA+ICsJCQlnZW45X3dhaXRfZm9yX3Bvd2VyX3dlbGxfZnVzZXMoZGV2X3By aXYsIHBnIC0gMSk7Cj4gPiA+ICsJfQo+ID4gCj4gPiBUaGlzIHBhcnQgbG9va3MgbWFnaWN5LiBU aGUgbWFjcm8gYWRkcyAxLCBidXQgaGVyZSB5b3UgaGF2ZSB0byBzdWJ0cmFjdAo+ID4gMSB3aGVu IGZlZWRpbmcgaXQgdGhlIHZhbHVlLCB3aGljaCBzZWVtcyBvZGQuCj4gCj4gVGhhdCBvbmUgbWFw cyBQRzEgdG8gUFcxLCBQRzIgdG8gUFcyIGV0Yy4KCldvdWxkIGJlIHBlcmhhcHMgYmV0dGVyIHRv IHJlcGxhY2UgdGhlIHJhdyBudW1iZXJzIHdpdGggYSBQRyBlbnVtIG9yCnNvbWV0aGluZy4gT3Ig bWF5YmUganVzdCBwYXNzIGFyb3VuZCB0aGUgcG93ZXIgd2VsbCBJRHMgaW5zdGVhZCBhbmQKa2Vl cCB0aGUgUEcgbnVtYmVycyBoaWRkZW4gZnJvbSB2aWV3LgoKPiAKPiA+IEFuZCBhcHBhcmVudGx5 IDEgaXMgc29tZWhvdyBzcGVjaWFsLCBidXQgSSBjYW4ndCB0ZWxsIHdoeS4KPiAKPiBGb3IgcG93 ZXIgd2VsbCAxIHdlIG5lZWQgdG8gd2FpdCBib3RoIGZvciBmdXNlcyBpbiBQRyMwIGJlZm9yZSBl bmFibGluZwo+IGFuZCBmdXNlcyBpbiBQRyMxIGFmdGVyIGVuYWJsaW5nIHRoZSBwb3dlciB3ZWxs LiBGb3IgYWxsIG90aGVyIHBvd2VyCj4gd2VsbHMgd2Ugb25seSBuZWVkIHRvIHdhaXQgZm9yIHRo ZSBmdXNlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBQRyBhZnRlcgo+IGVuYWJsaW5nLiBJIGNvdWxk IGFkZCBhIGNvbW1lbnQgdG8gY2xhcmlmeSB0aGlzLgo+IAo+ID4gCj4gPiA+ICsKPiA+ID4gIAl2 YWwgPSBJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0RSSVZFUik7Cj4gPiA+ICAJSTkxNV9XUklURShI U1dfUFdSX1dFTExfRFJJVkVSLCB2YWwgfCBIU1dfUFdSX1dFTExfQ1RMX1JFUShpZCkpOwo+ID4g PiAgCWhzd193YWl0X2Zvcl9wb3dlcl93ZWxsX2VuYWJsZShkZXZfcHJpdiwgcG93ZXJfd2VsbCk7 Cj4gPiA+ICAKPiA+ID4gKwlpZiAod2FpdF9mdXNlcykKPiA+ID4gKwkJZ2VuOV93YWl0X2Zvcl9w b3dlcl93ZWxsX2Z1c2VzKGRldl9wcml2LCBwZyk7Cj4gPiA+ICsKPiA+ID4gIAloc3dfcG93ZXJf d2VsbF9wb3N0X2VuYWJsZShkZXZfcHJpdiwgcG93ZXJfd2VsbC0+aHN3LmlycV9waXBlX21hc2ss Cj4gPiA+ICAJCQkJICAgcG93ZXJfd2VsbC0+aHN3Lmhhc192Z2EpOwo+ID4gPiAgfQo+ID4gPiBA QCAtODEwLDE1ICs4MzAsMTUgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAljYXNlIFNLTF9ESVNQX1BXXzE6 Cj4gPiA+ICAJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiA+ID4gIAkJ CQkJICAgIFNLTF9GVVNFX1NUQVRVUywKPiA+ID4gLQkJCQkJICAgIFNLTF9GVVNFX1BHMF9ESVNU X1NUQVRVUywKPiA+ID4gLQkJCQkJICAgIFNLTF9GVVNFX1BHMF9ESVNUX1NUQVRVUywKPiA+ID4g KwkJCQkJICAgIFNLTF9GVVNFX1BHX0RJU1RfU1RBVFVTKDApLAo+ID4gPiArCQkJCQkgICAgU0tM X0ZVU0VfUEdfRElTVF9TVEFUVVMoMCksCj4gPiA+ICAJCQkJCSAgICAxKSkgewo+ID4gPiAgCQkJ RFJNX0VSUk9SKCJQRzAgbm90IGVuYWJsZWRcbiIpOwo+ID4gPiAgCQkJcmV0dXJuOwo+ID4gPiAg CQl9Cj4gPiA+ICAJCWJyZWFrOwo+ID4gPiAgCWNhc2UgU0tMX0RJU1BfUFdfMjoKPiA+ID4gLQkJ aWYgKCEoZnVzZV9zdGF0dXMgJiBTS0xfRlVTRV9QRzFfRElTVF9TVEFUVVMpKSB7Cj4gPiA+ICsJ CWlmICghKGZ1c2Vfc3RhdHVzICYgU0tMX0ZVU0VfUEdfRElTVF9TVEFUVVMoMSkpKSB7Cj4gPiA+ ICAJCQlEUk1fRVJST1IoIlBHMSBpbiBkaXNhYmxlZCBzdGF0ZVxuIik7Cj4gPiA+ICAJCQlyZXR1 cm47Cj4gPiA+ICAJCX0KPiA+ID4gQEAgLTg2MywxNSArODgzLDE1IEBAIHN0YXRpYyB2b2lkIHNr bF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ ICAJCWlmIChwb3dlcl93ZWxsLT5pZCA9PSBTS0xfRElTUF9QV18xKSB7Cj4gPiA+ICAJCQlpZiAo aW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gPiA+ICAJCQkJCQkgICAgU0tMX0ZV U0VfU1RBVFVTLAo+ID4gPiAtCQkJCQkJICAgIFNLTF9GVVNFX1BHMV9ESVNUX1NUQVRVUywKPiA+ ID4gLQkJCQkJCSAgICBTS0xfRlVTRV9QRzFfRElTVF9TVEFUVVMsCj4gPiA+ICsJCQkJCQkgICAg U0tMX0ZVU0VfUEdfRElTVF9TVEFUVVMoMSksCj4gPiA+ICsJCQkJCQkgICAgU0tMX0ZVU0VfUEdf RElTVF9TVEFUVVMoMSksCj4gPiA+ICAJCQkJCQkgICAgMSkpCj4gPiA+ICAJCQkJRFJNX0VSUk9S KCJQRzEgZGlzdHJpYnV0aW5nIHN0YXR1cyB0aW1lb3V0XG4iKTsKPiA+ID4gIAkJfSBlbHNlIGlm IChwb3dlcl93ZWxsLT5pZCA9PSBTS0xfRElTUF9QV18yKSB7Cj4gPiA+ICAJCQlpZiAoaW50ZWxf d2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gPiA+ICAJCQkJCQkgICAgU0tMX0ZVU0VfU1RB VFVTLAo+ID4gPiAtCQkJCQkJICAgIFNLTF9GVVNFX1BHMl9ESVNUX1NUQVRVUywKPiA+ID4gLQkJ CQkJCSAgICBTS0xfRlVTRV9QRzJfRElTVF9TVEFUVVMsCj4gPiA+ICsJCQkJCQkgICAgU0tMX0ZV U0VfUEdfRElTVF9TVEFUVVMoMiksCj4gPiA+ICsJCQkJCQkgICAgU0tMX0ZVU0VfUEdfRElTVF9T VEFUVVMoMiksCj4gPiA+ICAJCQkJCQkgICAgMSkpCj4gPiA+ICAJCQkJRFJNX0VSUk9SKCJQRzIg ZGlzdHJpYnV0aW5nIHN0YXR1cyB0aW1lb3V0XG4iKTsKPiA+ID4gIAkJfQo+ID4gPiAtLSAKPiA+ ID4gMi43LjQKPiA+ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gCj4gPiAtLSAKPiA+IFZpbGxlIFN5cmrD pGzDpAo+ID4gSW50ZWwgT1RDCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK