From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915: Remove mostly duplicated video DIP handling from PSR code Date: Tue, 17 Oct 2017 12:46:38 +0300 Message-ID: <20171017094638.GO10981@intel.com> References: <20171013194051.19286-1-ville.syrjala@linux.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 B5EA16E1B6 for ; Tue, 17 Oct 2017 09:46:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171013194051.19286-1-ville.syrjala@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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMTMsIDIwMTcgYXQgMTA6NDA6NTFQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IE5vdyB0aGF0IHRoZSBpbmZvZnJhbWUgaG9va3MgYXJlIHBhcnQgb2YgdGhlIGlu dGVsX2RpZ19wb3J0LCB3ZSBjYW4gdXNlCj4gdGhlIG5vcm1hbCAud3JpdGVfaW5mb2ZyYW1lKCkg aG9vayB0byB1cGRhdGUgdGhlIFZTQyBTRFAuIFdlIGRvIG5lZWQgdG8KPiBkZWFsIHdpdGggdGhl IHNpemUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBWU0MgRElQIGFuZCB0aGUgb3RoZXJzIHRob3Vn aC4KPiAKPiBBbm90aGVyIG1pbm9yIHNuYWcgaXMgdGhhdCB0aGUgY29tcGlsZXIgd2lsbCBjb21w bGFpbiB0byB1c2UgaWYgd2Uga2VlcAo+IHVzaW5nIGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0 eXBlIGFuZCBwYXNzaW5nIGluIHRoZSBEUCBkZWZpbmUgaW5zdGVhZCwKPiBzbyBldCdzIGp1c3Qg Y2hhbmdlIHRvIHVuc2lnbmVkIGludCBhbGwgb3ZlciBmb3IgdGhlIGluZm9yZnJhbWUgdHlwZS4K PiAKPiB2MjogUmViYXNlIGR1ZSB0byBvdGhlciBQU1IgY2hhbmdlcwo+IAo+IFJldmlld2VkLWJ5 OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClB1c2hlZCB0 byBkaW5xLiBUaGFua3MgZm9yIHRoZSByZXZpZXcuCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgfCAyNiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wc3IuYyAgfCAzNCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gIDMgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBkNjE5ODVmOTNkNDAuLjg2ZWVkM2M3 ODI4YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEwNjksNyArMTA2OSw3 IEBAIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ICAKPiAgCXZvaWQgKCp3cml0ZV9pbmZv ZnJhbWUpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCWNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0JCQkJZW51bSBoZG1pX2luZm9mcmFtZV90 eXBlIHR5cGUsCj4gKwkJCQl1bnNpZ25lZCBpbnQgdHlwZSwKPiAgCQkJCWNvbnN0IHZvaWQgKmZy YW1lLCBzc2l6ZV90IGxlbik7Cj4gIAl2b2lkICgqc2V0X2luZm9mcmFtZXMpKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBpbmRleCBlNmY4ZjMwY2U3YmQuLjUxMzJkYzgxNDc4OCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgc3Ry dWN0IGludGVsX2hkbWkgKmludGVsX2F0dGFjaGVkX2hkbWkoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiAgCXJldHVybiBlbmNfdG9faW50ZWxfaGRtaSgmaW50ZWxfYXR0YWNoZWRf ZW5jb2Rlcihjb25uZWN0b3IpLT5iYXNlKTsKPiAgfQo+ICAKPiAtc3RhdGljIHUzMiBnNHhfaW5m b2ZyYW1lX2luZGV4KGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlKQo+ICtzdGF0aWMgdTMy IGc0eF9pbmZvZnJhbWVfaW5kZXgodW5zaWduZWQgaW50IHR5cGUpCj4gIHsKPiAgCXN3aXRjaCAo dHlwZSkgewo+ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPiBAQCAtODUsNyArODUs NyBAQCBzdGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVfaW5kZXgoZW51bSBoZG1pX2luZm9mcmFtZV90 eXBlIHR5cGUpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB1MzIgZzR4X2luZm9mcmFtZV9lbmFi bGUoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4gK3N0YXRpYyB1MzIgZzR4X2luZm9m cmFtZV9lbmFibGUodW5zaWduZWQgaW50IHR5cGUpCj4gIHsKPiAgCXN3aXRjaCAodHlwZSkgewo+ ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPiBAQCAtMTAwLDkgKzEwMCwxMSBAQCBz dGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVfZW5hYmxlKGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0 eXBlKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGhzd19pbmZvZnJhbWVfZW5hYmxlKGVu dW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlKQo+ICtzdGF0aWMgdTMyIGhzd19pbmZvZnJhbWVf ZW5hYmxlKHVuc2lnbmVkIGludCB0eXBlKQo+ICB7Cj4gIAlzd2l0Y2ggKHR5cGUpIHsKPiArCWNh c2UgRFBfU0RQX1ZTQzoKPiArCQlyZXR1cm4gVklERU9fRElQX0VOQUJMRV9WU0NfSFNXOwo+ICAJ Y2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPiAgCQlyZXR1cm4gVklERU9fRElQX0VOQUJM RV9BVklfSFNXOwo+ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX1NQRDoKPiBAQCAtMTE4LDEw ICsxMjAsMTIgQEAgc3RhdGljIHUzMiBoc3dfaW5mb2ZyYW1lX2VuYWJsZShlbnVtIGhkbWlfaW5m b2ZyYW1lX3R5cGUgdHlwZSkKPiAgc3RhdGljIGk5MTVfcmVnX3QKPiAgaHN3X2RpcF9kYXRhX3Jl ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJIGVudW0gdHJhbnNjb2Rl ciBjcHVfdHJhbnNjb2RlciwKPiAtCQkgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUsCj4g KwkJIHVuc2lnbmVkIGludCB0eXBlLAo+ICAJCSBpbnQgaSkKPiAgewo+ICAJc3dpdGNoICh0eXBl KSB7Cj4gKwljYXNlIERQX1NEUF9WU0M6Cj4gKwkJcmV0dXJuIEhTV19UVklERU9fRElQX1ZTQ19E QVRBKGNwdV90cmFuc2NvZGVyLCBpKTsKPiAgCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9BVkk6 Cj4gIAkJcmV0dXJuIEhTV19UVklERU9fRElQX0FWSV9EQVRBKGNwdV90cmFuc2NvZGVyLCBpKTsK PiAgCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9TUEQ6Cj4gQEAgLTEzNiw3ICsxNDAsNyBAQCBo c3dfZGlwX2RhdGFfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4g IHN0YXRpYyB2b2lkIGc0eF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g LQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiArCQkJCXVuc2lnbmVkIGludCB0 eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7Cj4gIAljb25z dCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+IEBAIC0xOTEsNyArMTk1LDcgQEAgc3RhdGljIGJv b2wgZzR4X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAg Cj4gIHN0YXRpYyB2b2lkIGlieF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gLQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiArCQkJCXVuc2lnbmVkIGlu dCB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7Cj4gIAlj b25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+IEBAIC0yNTEsNyArMjU1LDcgQEAgc3RhdGlj IGJvb2wgaWJ4X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK PiAgCj4gIHN0YXRpYyB2b2lkIGNwdF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gLQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiArCQkJCXVuc2lnbmVk IGludCB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7Cj4g IAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+IEBAIC0zMDksNyArMzEzLDcgQEAgc3Rh dGljIGJvb2wgY3B0X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKPiAgCj4gIHN0YXRpYyB2b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gLQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiArCQkJCXVuc2ln bmVkIGludCB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ICB7 Cj4gIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+IEBAIC0zNjgsNyArMzcyLDcgQEAg c3RhdGljIGJvb2wgdmx2X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKPiAgCj4gIHN0YXRpYyB2b2lkIGhzd193cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gLQkJCQllbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSwKPiArCQkJCXVu c2lnbmVkIGludCB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQo+ ICB7Cj4gIAljb25zdCB1aW50MzJfdCAqZGF0YSA9IGZyYW1lOwo+IEBAIC0zNzcsNiArMzgxLDgg QEAgc3RhdGljIHZvaWQgaHN3X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5j cHVfdHJhbnNjb2RlcjsKPiAgCWk5MTVfcmVnX3QgY3RsX3JlZyA9IEhTV19UVklERU9fRElQX0NU TChjcHVfdHJhbnNjb2Rlcik7Cj4gIAlpOTE1X3JlZ190IGRhdGFfcmVnOwo+ICsJaW50IGRhdGFf c2l6ZSA9IHR5cGUgPT0gRFBfU0RQX1ZTQyA/Cj4gKwkJVklERU9fRElQX1ZTQ19EQVRBX1NJWkUg OiBWSURFT19ESVBfREFUQV9TSVpFOwo+ICAJaW50IGk7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFE KGN0bF9yZWcpOwo+ICAKPiBAQCAtMzkyLDcgKzM5OCw3IEBAIHN0YXRpYyB2b2lkIGhzd193cml0 ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCWRhdGErKzsKPiAg CX0KPiAgCS8qIFdyaXRlIGV2ZXJ5IHBvc3NpYmxlIGRhdGEgYnl0ZSB0byBmb3JjZSBjb3JyZWN0 IEVDQyBjYWxjdWxhdGlvbi4gKi8KPiAtCWZvciAoOyBpIDwgVklERU9fRElQX0RBVEFfU0laRTsg aSArPSA0KQo+ICsJZm9yICg7IGkgPCBkYXRhX3NpemU7IGkgKz0gNCkKPiAgCQlJOTE1X1dSSVRF KGhzd19kaXBfZGF0YV9yZWcoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLAo+ICAJCQkJCSAgICB0 eXBlLCBpID4+IDIpLCAwKTsKPiAgCW1taW93YigpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5j Cj4gaW5kZXggOTNiMTc3Y2M0Y2JmLi42ZTNiNDMwZmNjZGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wc3IuYwo+IEBAIC03NSwzNyArNzUsNiBAQCBzdGF0aWMgYm9vbCB2bHZfaXNfcHNyX2Fj dGl2ZV9vbl9waXBlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJICAgICAg ICh2YWwgPT0gVkxWX0VEUF9QU1JfQUNUSVZFX1NGX1VQREFURSk7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIGludGVsX3Bzcl93cml0ZV92c2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAt CQkJCWNvbnN0IHN0cnVjdCBlZHBfdnNjX3BzciAqdnNjX3BzcikKPiAtewo+IC0Jc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4g LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZGlnX3BvcnQtPmJhc2UuYmFzZS5j cnRjKTsKPiAtCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGMtPmNvbmZpZy0+ Y3B1X3RyYW5zY29kZXI7Cj4gLQlpOTE1X3JlZ190IGN0bF9yZWcgPSBIU1dfVFZJREVPX0RJUF9D VEwoY3B1X3RyYW5zY29kZXIpOwo+IC0JdWludDMyX3QgKmRhdGEgPSAodWludDMyX3QgKikgdnNj X3BzcjsKPiAtCXVuc2lnbmVkIGludCBpOwo+IC0KPiAtCS8qIEFzIHBlciBCU1BlYyAoUGlwZSBW aWRlbyBEYXRhIElzbGFuZCBQYWNrZXQpLCB3ZSBuZWVkIHRvIGRpc2FibGUKPiAtCSAgIHRoZSB2 aWRlbyBESVAgYmVpbmcgdXBkYXRlZCBiZWZvcmUgcHJvZ3JhbSB2aWRlbyBESVAgZGF0YSBidWZm ZXIKPiAtCSAgIHJlZ2lzdGVycyBmb3IgRElQIGJlaW5nIHVwZGF0ZWQuICovCj4gLQlJOTE1X1dS SVRFKGN0bF9yZWcsIDApOwo+IC0JUE9TVElOR19SRUFEKGN0bF9yZWcpOwo+IC0KPiAtCWZvciAo aSA9IDA7IGkgPCBzaXplb2YoKnZzY19wc3IpOyBpICs9IDQpIHsKPiAtCQlJOTE1X1dSSVRFKEhT V19UVklERU9fRElQX1ZTQ19EQVRBKGNwdV90cmFuc2NvZGVyLAo+IC0JCQkJCQkgICBpID4+IDIp LCAqZGF0YSk7Cj4gLQkJZGF0YSsrOwo+IC0JfQo+IC0JZm9yICg7IGkgPCBWSURFT19ESVBfVlND X0RBVEFfU0laRTsgaSArPSA0KQo+IC0JCUk5MTVfV1JJVEUoSFNXX1RWSURFT19ESVBfVlNDX0RB VEEoY3B1X3RyYW5zY29kZXIsCj4gLQkJCQkJCSAgIGkgPj4gMiksIDApOwo+IC0KPiAtCUk5MTVf V1JJVEUoY3RsX3JlZywgVklERU9fRElQX0VOQUJMRV9WU0NfSFNXKTsKPiAtCVBPU1RJTkdfUkVB RChjdGxfcmVnKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgdmx2X3Bzcl9zZXR1cF92c2Moc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBAQCAtMTUyLDcgKzEyMSw4IEBAIHN0YXRpYyB2 b2lkIGhzd19wc3Jfc2V0dXBfdnNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJcHNy X3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKPiAgCX0KPiAgCj4gLQlpbnRlbF9wc3Jfd3JpdGVf dnNjKGludGVsX2RwLCAmcHNyX3ZzYyk7Cj4gKwlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5mb2Zy YW1lKCZpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLCBjcnRjX3N0YXRlLAo+ICsJCQkJCURQX1NE UF9WU0MsICZwc3JfdnNjLCBzaXplb2YocHNyX3ZzYykpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZCB2bHZfcHNyX2VuYWJsZV9zaW5rKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gLS0gCj4g Mi4xMy42CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK