From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 3/6] drm/i915: Pass crtc_state to ips toggle functions Date: Thu, 9 Nov 2017 19:09:57 +0200 Message-ID: <20171109170957.GV10981@intel.com> References: <20171109162458.50681-1-maarten.lankhorst@linux.intel.com> <20171109162458.50681-3-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92C2E6E944 for ; Thu, 9 Nov 2017 17:10:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171109162458.50681-3-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDksIDIwMTcgYXQgMDU6MjQ6NTVQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY29sb3IuYyAgIHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgfCAyNCArKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICAgIHwgIDYgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICA0ICsrLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25z KCspLCAxOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBp bmRleCBiODMxNWJjYTg1MmIuLmM2MzczZmViZjYxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY29sb3IuYwo+IEBAIC0zNzAsNyArMzcwLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9sb2Fk X2x1dHMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJICovCj4gIAlpZiAo SVNfSEFTV0VMTChkZXZfcHJpdikgJiYgaW50ZWxfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQgJiYK PiAgCSAgICAoaW50ZWxfY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVf U1BMSVQpKSB7Cj4gLQkJaHN3X2Rpc2FibGVfaXBzKGludGVsX2NydGMpOwo+ICsJCWhzd19kaXNh YmxlX2lwcyhpbnRlbF9jcnRjLCBpbnRlbF9jcnRjX3N0YXRlKTsKCkkgd291bGQgc3VnZ2VzdCBz aW1wbGlmeWluZyBtb3JlIGFuZCBwYXNzaW5nIG9ubHkgdGhlIHN0YXRlLgpUaGUgY2FsbGVlIGNh biBhbHdheXMgZGlnIG91dCB0aGUgY3J0YyBpZiBpdCBuZWVkcyBpdC4KCj4gIAkJcmVlbmFibGVf aXBzID0gdHJ1ZTsKPiAgCX0KPiAgCj4gQEAgLTM4MCw3ICszODAsNyBAQCBzdGF0aWMgdm9pZCBo YXN3ZWxsX2xvYWRfbHV0cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlp OXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKPiAgCj4gIAlpZiAocmVlbmFibGVfaXBzKQo+IC0J CWhzd19lbmFibGVfaXBzKGludGVsX2NydGMpOwo+ICsJCWhzd19lbmFibGVfaXBzKGludGVsX2Ny dGMsIGludGVsX2NydGNfc3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBiZHdfbG9hZF9k ZWdhbW1hX2x1dChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBmNTkzM2IwNzE5YzkuLjEzYjM3MmU0ZjA2ZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDgzMiwxMiArNDgzMiwx MiBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKPiAgCX0KPiAgfQo+ICAKPiAtdm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiArdm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCj4gLQlpZiAoIWNydGMtPmNv bmZpZy0+aXBzX2VuYWJsZWQpCj4gKwlpZiAoIWNydGNfc3RhdGUtPmlwc19lbmFibGVkKQo+ICAJ CXJldHVybjsKPiAgCj4gIAkvKgo+IEBAIC00ODcxLDEyICs0ODcxLDEyIEBAIHZvaWQgaHN3X2Vu YWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAl9Cj4gIH0KPiAgCj4gLXZvaWQg aHN3X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICt2b2lkIGhzd19kaXNh YmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAgCj4gLQlpZiAoIWNydGMtPmNvbmZpZy0+aXBzX2VuYWJsZWQpCj4gKwlpZiAo IWNydGNfc3RhdGUtPmlwc19lbmFibGVkKQo+ICAJCXJldHVybjsKPiAgCj4gIAlhc3NlcnRfcGxh bmVfZW5hYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGxhbmUpOwoKSG1tLiBDb25mdXNpZWQuIE9oIHJp Z2h0LCBteSBwbGFuZSBhc3NlcnQgY2xlYW51cCBkaWRuJ3QgbWFuYWdlIHRvIGdvIGluIHlldCA6 UAoKPiBAQCAtNDkyNCw3ICs0OTI0LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kcG1zX292 ZXJsYXlfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgICogY29tcGxl dGVseSBoaWRlIHRoZSBwcmltYXJ5IHBsYW5lLgo+ICAgKi8KPiAgc3RhdGljIHZvaWQKPiAtaW50 ZWxfcG9zdF9lbmFibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gK2ludGVsX3Bv c3RfZW5hYmxlX3ByaW1hcnkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtNDkzNyw3ICs0OTM4LDcgQEAgaW50ZWxfcG9z dF9lbmFibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkgKiB3aGVuIGdvaW5n IGZyb20gcHJpbWFyeSBvbmx5IHRvIHNwcml0ZSBvbmx5IGFuZCB2aWNlCj4gIAkgKiB2ZXJzYS4K PiAgCSAqLwo+IC0JaHN3X2VuYWJsZV9pcHMoaW50ZWxfY3J0Yyk7Cj4gKwloc3dfZW5hYmxlX2lw cyhpbnRlbF9jcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJLyoKPiAgCSAqIEdlbjIgcmVw b3J0cyBwaXBlIHVuZGVycnVucyB3aGVuZXZlciBhbGwgcGxhbmVzIGFyZSBkaXNhYmxlZC4KPiBA QCAtNDk1Niw3ICs0OTU3LDggQEAgaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gIAo+ICAvKiBGSVhNRSBtb3ZlIGFsbCB0aGlzIHRvIHByZV9wbGFuZV91 cGRhdGUoKSB3aXRoIHByb3BlciBzdGF0ZSB0cmFja2luZyAqLwo+ICBzdGF0aWMgdm9pZAo+IC1p bnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAraW50ZWxf cHJlX2Rpc2FibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IEBAIC00OTc4LDcgKzQ5ODAsNyBAQCBpbnRlbF9w cmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCSAqIHdoZW4gZ29p bmcgZnJvbSBwcmltYXJ5IG9ubHkgdG8gc3ByaXRlIG9ubHkgYW5kIHZpY2UKPiAgCSAqIHZlcnNh Lgo+ICAJICovCj4gLQloc3dfZGlzYWJsZV9pcHMoaW50ZWxfY3J0Yyk7Cj4gKwloc3dfZGlzYWJs ZV9pcHMoaW50ZWxfY3J0Yywgb2xkX2NydGNfc3RhdGUpOwo+ICB9Cj4gIAo+ICAvKiBGSVhNRSBn ZXQgcmlkIG9mIHRoaXMgYW5kIHVzZSBwcmVfcGxhbmVfdXBkYXRlICovCj4gQEAgLTQ5OTAsNyAr NDk5Miw3IEBAIGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnlfbm9hdG9taWMoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwo+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAKPiAtCWludGVs X3ByZV9kaXNhYmxlX3ByaW1hcnkoY3J0Yyk7Cj4gKwlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5 KGNydGMsIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpKTsKPiAgCj4gIAkvKgo+ICAJ ICogVmJsYW5rIHRpbWUgdXBkYXRlcyBmcm9tIHRoZSBzaGFkb3cgdG8gbGl2ZSBwbGFuZSBjb250 cm9sIHJlZ2lzdGVyCj4gQEAgLTUwMzQsNyArNTAzNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bv c3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkK PiAgCQlpZiAocHJpbWFyeV9zdGF0ZS0+YmFzZS52aXNpYmxlICYmCj4gIAkJICAgIChuZWVkc19t b2Rlc2V0KCZwaXBlX2NvbmZpZy0+YmFzZSkgfHwKPiAgCQkgICAgICFvbGRfcHJpbWFyeV9zdGF0 ZS0+YmFzZS52aXNpYmxlKSkKPiAtCQkJaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeSgmY3J0Yy0+ YmFzZSk7Cj4gKwkJCWludGVsX3Bvc3RfZW5hYmxlX3ByaW1hcnkoJmNydGMtPmJhc2UsIHBpcGVf Y29uZmlnKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtNTA2Myw3ICs1MDY1LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCj4gIAo+ICAJCWlmIChvbGRfcHJpbWFyeV9zdGF0ZS0+YmFzZS52aXNpYmxlICYm Cj4gIAkJICAgIChtb2Rlc2V0IHx8ICFwcmltYXJ5X3N0YXRlLT5iYXNlLnZpc2libGUpKQo+IC0J CQlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KCZjcnRjLT5iYXNlKTsKPiArCQkJaW50ZWxfcHJl X2Rpc2FibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSwgb2xkX2NydGNfc3RhdGUpOwo+ICAJfQo+ICAK PiAgCS8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggY2RkZDk2YjI0ODc4Li44MmMz M2Q5Y2Q0NjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMzk0Nyw3ICszOTQ3 LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9zaW5rX2NyY19zdG9wKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gIAl9Cj4gIAo+ICAgb3V0Ogo+IC0JaHN3X2VuYWJsZV9pcHMoaW50ZWxfY3J0 Yyk7Cj4gKwloc3dfZW5hYmxlX2lwcyhpbnRlbF9jcnRjLCB0b19pbnRlbF9jcnRjX3N0YXRlKGlu dGVsX2NydGMtPmJhc2Uuc3RhdGUpKTsKCmNydGMtPmNvbmZpZyB3b3VsZCBzZWVtIGxpa2UgdGhl IHNsaWdodGx5IG1vcmUgY29ycmVjdCB0aGluZyB0byBwYXNzCmhlcmUuIEl0J3MgYWxzbyBlYXNp ZXIgdG8gZ3JlcCBmb3Igd2hlbiBzb21lb25lIHNldHMgb3V0IHRvIGZpeCB0aGlzCm1lc3MgcHJv cGVybHkuCgo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiBAQCAtMzk3NCwxMSArMzk3NCwxMSBA QCBzdGF0aWMgaW50IGludGVsX2RwX3NpbmtfY3JjX3N0YXJ0KHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JaHN3X2Rpc2FibGVfaXBzKGlu dGVsX2NydGMpOwo+ICsJaHN3X2Rpc2FibGVfaXBzKGludGVsX2NydGMsIHRvX2ludGVsX2NydGNf c3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSkpOwo+ICAKPiAgCWlmIChkcm1fZHBfZHBjZF93 cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfU0lOSywKPiAgCQkJICAgICAgIGJ1ZiB8IERQ X1RFU1RfU0lOS19TVEFSVCkgPCAwKSB7Cj4gLQkJaHN3X2VuYWJsZV9pcHMoaW50ZWxfY3J0Yyk7 Cj4gKwkJaHN3X2VuYWJsZV9pcHMoaW50ZWxfY3J0YywgdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRl bF9jcnRjLT5iYXNlLnN0YXRlKSk7Cj4gIAkJcmV0dXJuIC1FSU87Cj4gIAl9Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDBiNDg4Njg4MDQyLi4yZjhiOGIyYTQ0M2IgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNDkwLDggKzE0OTAsOCBAQCBib29s IGJ4dF9maW5kX2Jlc3RfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwg aW50IHRhcmdldF9jbG9jaywKPiAgaW50IGNodl9jYWxjX2RwbGxfcGFyYW1zKGludCByZWZjbGss IHN0cnVjdCBkcGxsICpwbGxfY2xvY2spOwo+ICAKPiAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gLXZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpOwo+IC12b2lkIGhzd19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yyk7Cj4gK3ZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMs IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiArdm9pZCBoc3df ZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp biBpbnRlbF9wb3J0X3RvX3Bvd2VyX2RvbWFpbihlbnVtIHBvcnQgcG9ydCk7Cj4gIHZvaWQgaW50 ZWxfbW9kZV9mcm9tX3BpcGVfY29uZmlnKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ ICAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gLS0gCj4gMi4x NS4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK