From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 14/23] drm/i915/tgl: move DP_TP_* to transcoder Date: Fri, 23 Aug 2019 15:39:44 +0300 Message-ID: <20190823123944.GS5942@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> <20190823082055.5992-15-lucas.demarchi@intel.com> <20190823122518.GR5942@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 2A99189498 for ; Fri, 23 Aug 2019 12:39:48 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823122518.GR5942@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBdWcgMjMsIDIwMTkgYXQgMDM6MjU6MThQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgQXVnIDIzLCAyMDE5IGF0IDAxOjIwOjQ2QU0gLTA3MDAsIEx1Y2Fz IERlIE1hcmNoaSB3cm90ZToKPiA+IEdlbiAxMiBvbndhcmRzIG1vdmVzIHRoZSBEUF9UUF8qIHJl Z2lzdGVycyB0byBiZSB0cmFuc2NvZGVyLWJhc2VkIHJhdGhlcgo+ID4gdGhhbiBwb3J0LWJhc2Vk LiBUaGlzIGFkZCB0aGUgbmV3IHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGNoYW5nZXMgdGhlCj4gPiBm dW5jdGlvbnMgdGhhdCBhcmUgdXNlZCB3aXRoIERESSBvbiBnZW4gMTIgdG8gdXNlIHRoZSBuZXcg cmVnaXN0ZXJzLiBPbgo+ID4gTVNUIHRoZSBtYXN0ZXIgdHJhbnNjb2RlciBpcyB0aGUgb25lIHRv IGJlIHVzZWQuCj4gPiAKPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5j b20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4K PiA+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwu Y29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGku YyAgICAgIHwgNDIgKysrKysrKystLS0tCj4gPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV90eXBlcy5oICAgIHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHAuYyAgICAgICB8IDY2ICsrKysrKysrKysrKysrKysrLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmggICAgICAgfCAgOSArKysKPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAgfCAyMCArKysrLS0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAgNCArKwo+ ID4gIDYgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k ZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+IGluZGV4 IGY0Y2I2YmQ3NDQyMS4uM2ViNzNkYmFmOWZkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ID4gQEAgLTMxMzYsMTcgKzMxMzYsMjIgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9mZWMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gPiAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ID4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBj cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0Owo+ID4gKwlpOTE1X3JlZ190IGN0bCwgc3RhdHVzOwo+ID4gIAl1MzIgdmFsOwo+ID4g IAo+ID4gIAlpZiAoIWNydGNfc3RhdGUtPmZlY19lbmFibGUpCj4gPiAgCQlyZXR1cm47Cj4gPiAg Cj4gPiAtCXZhbCA9IEk5MTVfUkVBRChEUF9UUF9DVEwocG9ydCkpOwo+ID4gKwljdGwgPSBpbnRl bF9kcF90cF9jdGxfcmVnKGRldl9wcml2LCBjcHVfdHJhbnNjb2RlciwgcG9ydCk7Cj4gPiArCXN0 YXR1cyA9IGludGVsX2RwX3RwX3N0YXR1c19yZWcoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyLCBw b3J0KTsKPiA+ICsKPiA+ICsJdmFsID0gSTkxNV9SRUFEKGN0bCk7Cj4gPiAgCXZhbCB8PSBEUF9U UF9DVExfRkVDX0VOQUJMRTsKPiA+IC0JSTkxNV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7 Cj4gPiArCUk5MTVfV1JJVEUoY3RsLCB2YWwpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZGVfd2Fp dF9mb3Jfc2V0KGRldl9wcml2LCBEUF9UUF9TVEFUVVMocG9ydCksCj4gPiArCWlmIChpbnRlbF9k ZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIHN0YXR1cywKPiA+ICAJCQkJICBEUF9UUF9TVEFUVVNf RkVDX0VOQUJMRV9MSVZFLCAxKSkKPiA+ICAJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcg Zm9yIEZFQyBFbmFibGUgU3RhdHVzXG4iKTsKPiA+ICB9Cj4gPiBAQCAtMzE1NSwxNiArMzE2MCwx OSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9mZWNfc3RhdGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+ICAJZW51bSBw b3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ID4gKwlpOTE1X3JlZ190IGN0bDsKPiA+ICAJdTMy IHZhbDsKPiA+ICAKPiA+ICAJaWYgKCFjcnRjX3N0YXRlLT5mZWNfZW5hYmxlKQo+ID4gIAkJcmV0 dXJuOwo+ID4gIAo+ID4gLQl2YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKTsKPiA+ICsJ Y3RsID0gaW50ZWxfZHBfdHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQp Owo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoY3RsKTsKPiA+ICAJdmFsICY9IH5EUF9UUF9DVExfRkVD X0VOQUJMRTsKPiA+IC0JSTkxNV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gPiAtCVBP U1RJTkdfUkVBRChEUF9UUF9DVEwocG9ydCkpOwo+ID4gKwlJOTE1X1dSSVRFKGN0bCwgdmFsKTsK PiA+ICsJUE9TVElOR19SRUFEKGN0bCk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGlu dGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g QEAgLTMzMjYsNyArMzMzNCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpX2J1Zihz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwllbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsK PiA+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ID4gKwlpOTE1X3JlZ190IGN0 bDsKPiA+ICAJYm9vbCB3YWl0ID0gZmFsc2U7Cj4gPiAgCXUzMiB2YWw7Cj4gPiAgCj4gPiBAQCAt MzMzNywxMCArMzM0NywxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9idWYoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQl3YWl0ID0gdHJ1ZTsKPiA+ICAJfQo+ ID4gIAo+ID4gLQl2YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKTsKPiA+ICsJY3RsID0g aW50ZWxfZHBfdHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpOwo+ID4g Kwl2YWwgPSBJOTE1X1JFQUQoY3RsKTsKPiA+ICAJdmFsICY9IH4oRFBfVFBfQ1RMX0VOQUJMRSB8 IERQX1RQX0NUTF9MSU5LX1RSQUlOX01BU0spOwo+ID4gIAl2YWwgfD0gRFBfVFBfQ1RMX0xJTktf VFJBSU5fUEFUMTsKPiA+IC0JSTkxNV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gPiAr CUk5MTVfV1JJVEUoY3RsLCB2YWwpOwo+ID4gIAo+ID4gIAkvKiBEaXNhYmxlIEZFQyBpbiBEUCBT aW5rICovCj4gPiAgCWludGVsX2RkaV9kaXNhYmxlX2ZlY19zdGF0ZShlbmNvZGVyLCBjcnRjX3N0 YXRlKTsKPiA+IEBAIC0zNzY1LDEwICszNzc2LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9w cmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ID4gIAkJdG9faTkxNShpbnRlbF9kaWdf cG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKPiA+ICsJaTkxNV9yZWdfdCBjdGw7Cj4gPiAgCXUzMiB2YWw7Cj4gPiAg CWJvb2wgd2FpdCA9IGZhbHNlOwo+ID4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBpbnRlbF9kcF9nZXRfdHJhbnNjb2RlcihpbnRlbF9kcCk7Cj4gPiAgCj4gPiAtCWlmIChJOTE1 X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKSAmIERQX1RQX0NUTF9FTkFCTEUpIHsKPiA+ICsJY3RsID0g aW50ZWxfZHBfdHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpOwo+ID4g KwlpZiAoSTkxNV9SRUFEKGN0bCkgJiBEUF9UUF9DVExfRU5BQkxFKSB7Cj4gPiAgCQl2YWwgPSBJ OTE1X1JFQUQoRERJX0JVRl9DVEwocG9ydCkpOwo+ID4gIAkJaWYgKHZhbCAmIERESV9CVUZfQ1RM X0VOQUJMRSkgewo+ID4gIAkJCXZhbCAmPSB+RERJX0JVRl9DVExfRU5BQkxFOwo+ID4gQEAgLTM3 NzYsMTEgKzM3OTAsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZXBhcmVfbGlua19yZXRy YWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCQkJd2FpdCA9IHRydWU7Cj4gPiAg CQl9Cj4gPiAgCj4gPiAtCQl2YWwgPSBJOTE1X1JFQUQoRFBfVFBfQ1RMKHBvcnQpKTsKPiA+ICsJ CXZhbCA9IEk5MTVfUkVBRChjdGwpOwo+ID4gIAkJdmFsICY9IH4oRFBfVFBfQ1RMX0VOQUJMRSB8 IERQX1RQX0NUTF9MSU5LX1RSQUlOX01BU0spOwo+ID4gIAkJdmFsIHw9IERQX1RQX0NUTF9MSU5L X1RSQUlOX1BBVDE7Cj4gPiAtCQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdmFsKTsKPiA+ IC0JCVBPU1RJTkdfUkVBRChEUF9UUF9DVEwocG9ydCkpOwo+ID4gKwkJSTkxNV9XUklURShjdGws IHZhbCk7Cj4gPiArCQlQT1NUSU5HX1JFQUQoY3RsKTsKPiA+ICAKPiA+ICAJCWlmICh3YWl0KQo+ ID4gIAkJCWludGVsX3dhaXRfZGRpX2J1Zl9pZGxlKGRldl9wcml2LCBwb3J0KTsKPiA+IEBAIC0z Nzk1LDggKzM4MDksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJCWlmIChkcm1fZHBfZW5oYW5jZWRf ZnJhbWVfY2FwKGludGVsX2RwLT5kcGNkKSkKPiA+ICAJCQl2YWwgfD0gRFBfVFBfQ1RMX0VOSEFO Q0VEX0ZSQU1FX0VOQUJMRTsKPiA+ICAJfQo+ID4gLQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0 KSwgdmFsKTsKPiA+IC0JUE9TVElOR19SRUFEKERQX1RQX0NUTChwb3J0KSk7Cj4gPiArCUk5MTVf V1JJVEUoY3RsLCB2YWwpOwo+ID4gKwlQT1NUSU5HX1JFQUQoY3RsKTsKPiA+ICAKPiA+ICAJaW50 ZWxfZHAtPkRQIHw9IERESV9CVUZfQ1RMX0VOQUJMRTsKPiA+ICAJSTkxNV9XUklURShERElfQlVG X0NUTChwb3J0KSwgaW50ZWxfZHAtPkRQKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiBpbmRleCBkODRhNjY0NTlkYWYu LmE4N2ZhMDY5OTRhZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+ID4gQEAgLTEyMTQsNiArMTIxNCw3IEBAIHN0 cnVjdCBpbnRlbF9kcCB7Cj4gPiAgCWJvb2wgY2FuX21zdDsgLyogdGhpcyBwb3J0IHN1cHBvcnRz IG1zdCAqLwo+ID4gIAlib29sIGlzX21zdDsKPiA+ICAJaW50IGFjdGl2ZV9tc3RfbGlua3M7Cj4g PiArCWVudW0gdHJhbnNjb2RlciBtc3RfbWFzdGVyX3RyYW5zOyAvKiBPbmx5IHZhbGlkIG9uIFRH TCsgKi8KCkhtbS4gU28gbWF5YmUganVzdCBzL21zdF9tYXN0ZXJfdHJhbnMvZHBfdHBfdHJhbnNj b2Rlci8gZXRjLiBhbmQgc2V0CnRoaXMgdW5jb25kaXRpb25hbGx5IGluIGVnLiBpbnRlbF9kcF9z ZXRfbGlua19wYXJhbXMoKS4KCj4gPiAgCS8qIGNvbm5lY3RvciBkaXJlY3RseSBhdHRhY2hlZCAt IHdvbid0IGJlIHVzZSBmb3IgbW9kZXNldCBpbiBtc3Qgd29ybGQgKi8KPiA+ICAJc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqYXR0YWNoZWRfY29ubmVjdG9yOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ID4gaW5kZXggMjM5MDhkYTFjZDVkLi45NDMzOTJm YWFlYTIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ ID4gQEAgLTMyMDksNiArMzIwOSw1MSBAQCBzdGF0aWMgdm9pZCBjaHZfcG9zdF9kaXNhYmxlX2Rw KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAl2bHZfZHBpb19wdXQoZGV2X3By aXYpOwo+ID4gIH0KPiA+ICAKPiA+ICtpOTE1X3JlZ190IGludGVsX2RwX3RwX2N0bF9yZWcoY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCSAgICAgICBlbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gPiArCQkJICAgICAgIGVudW0gcG9ydCBwb3J0 KQo+ID4gK3sKPiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiA+ICsJCVdB Uk5fT04oY3B1X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RFUl9JTlZBTElEKTsKPiA+ICsJCXJldHVy biBUR0xfRFBfVFBfQ1RMKGNwdV90cmFuc2NvZGVyKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCXJl dHVybiBEUF9UUF9DVEwocG9ydCk7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiAraTkxNV9yZWdf dCBpbnRlbF9kcF90cF9zdGF0dXNfcmVnKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+ICsJCQkJICBlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gPiAr CQkJCSAgZW51bSBwb3J0IHBvcnQpCj4gPiArewo+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMikgewo+ID4gKwkJV0FSTl9PTihjcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0lO VkFMSUQpOwo+ID4gKwkJcmV0dXJuIFRHTF9EUF9UUF9TVEFUVVMoY3B1X3RyYW5zY29kZXIpOwo+ ID4gKwl9IGVsc2Ugewo+ID4gKwkJcmV0dXJuIERQX1RQX1NUQVRVUyhwb3J0KTsKPiA+ICsJfQo+ ID4gK30KPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFJldHVybiB0aGUgdHJhbnNjb2RlciB0aGF0IHRo aXMgaW50ZWxfZHAgcG9ydCBpcyBkcml2ZW4uCj4gPiArICogV2hlbiBpbiBNU1QgbW9kZSBpdCB3 aWxsIHJldHVybiB0aGUgbWFzdGVyIHRyYW5zY29kZXIgb2YgdGhlIE1TVCBzbyBkbyBub3QKPiA+ ICsgKiB1c2UgaXQgd2hlbiByZWFkaW5nIG9yIHdyaXRpbmcgcmVnaXN0ZXJzIGluIHRoZSBzbGF2 ZSB0cmFuc2NvZGVycy4KPiA+ICsgKi8KPiA+ICtlbnVtIHRyYW5zY29kZXIgaW50ZWxfZHBfZ2V0 X3RyYW5zY29kZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICt7Cj4gPiArCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOwo+ID4gKwo+ID4gKwlpZiAoaW50ZWxfZHAtPmlzX21zdCkKPiA+ICsJCXJldHVybiBpbnRl bF9kcC0+bXN0X21hc3Rlcl90cmFuczsKPiA+ICsKPiA+ICsJY29ubmVjdG9yID0gaW50ZWxfZHAt PmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+ICsJY29ubl9zdGF0ZSA9IGNvbm5lY3Rvci0+YmFzZS5z dGF0ZTsKPiA+ICsJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY29ubl9zdGF0ZS0+ Y3J0Yy0+c3RhdGUpOwo+IAo+IFRoYXQncyBpbGxlZ2FsLiBJZGVhbGx5IHdlJ2QgcGx1bWIgdGhl IGNydGMgc3RhdGUgaW50byB0aGUgbGluayB0cmFpbmluZwo+IHN0dWZmLCBidXQgSUlSQyBsYXN0 IHRpbWUgSSB0cmllZCB0aGF0IHdlIHN0aWxsIGhhZCBhdCBsZWFzdCBvbmUgY2FzZQo+IHdoZXJl IHRoYXQgd2Fzbid0IHRyaXZpYWwuIEkgY2FuJ3QgcmVtZW1iZXIgcmlnaHQgbm93IHdoZXJlIHRo YXQgY2FzZQo+IHdhcyB0aG91Z2guCj4gCj4gSSBndWVzcyB0aGUgYWx0ZXJuYXRpdmUgaXMgdG8g Y29udGludWUgZHVwbGljYXRpbmcgdGhpbmdzIGluIGludGVsX2RwLgo+IAo+ID4gKwo+ID4gKwly ZXR1cm4gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRp YyB2b2lkCj4gPiAgX2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCj4gPiAgCQkJIHUzMiAqRFAsCj4gPiBAQCAtMzIyNCw4ICszMjY5LDEzIEBAIF9pbnRl bF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCSAg ICAgIGRwX3RyYWluX3BhdCAmIHRyYWluX3BhdF9tYXNrKTsKPiA+ICAKPiA+ICAJaWYgKEhBU19E REkoZGV2X3ByaXYpKSB7Cj4gPiAtCQl1MzIgdGVtcCA9IEk5MTVfUkVBRChEUF9UUF9DVEwocG9y dCkpOwo+ID4gKwkJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ID4gKwkJaTkxNV9y ZWdfdCBjdGw7Cj4gPiArCQl1MzIgdGVtcDsKPiA+ICAKPiA+ICsJCWNwdV90cmFuc2NvZGVyID0g aW50ZWxfZHBfZ2V0X3RyYW5zY29kZXIoaW50ZWxfZHApOwo+ID4gKwkJY3RsID0gaW50ZWxfZHBf dHBfY3RsX3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpOwo+ID4gKwkJdGVtcCA9 IEk5MTVfUkVBRChjdGwpOwo+ID4gIAkJaWYgKGRwX3RyYWluX3BhdCAmIERQX0xJTktfU0NSQU1C TElOR19ESVNBQkxFKQo+ID4gIAkJCXRlbXAgfD0gRFBfVFBfQ1RMX1NDUkFNQkxFX0RJU0FCTEU7 Cj4gPiAgCQllbHNlCj4gPiBAQCAtMzI1MCw3ICszMzAwLDcgQEAgX2ludGVsX2RwX3NldF9saW5r X3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJdGVtcCB8PSBEUF9UUF9D VExfTElOS19UUkFJTl9QQVQ0Owo+ID4gIAkJCWJyZWFrOwo+ID4gIAkJfQo+ID4gLQkJSTkxNV9X UklURShEUF9UUF9DVEwocG9ydCksIHRlbXApOwo+ID4gKwkJSTkxNV9XUklURShjdGwsIHRlbXAp Owo+ID4gIAo+ID4gIAl9IGVsc2UgaWYgKChJU19JVllCUklER0UoZGV2X3ByaXYpICYmIHBvcnQg PT0gUE9SVF9BKSB8fAo+ID4gIAkJICAgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJiBwb3J0ICE9 IFBPUlRfQSkpIHsKPiA+IEBAIC0zOTQzLDE1ICszOTkzLDIxIEBAIHZvaWQgaW50ZWxfZHBfc2V0 X2lkbGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKPiA+ICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2Uu cG9ydDsKPiA+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ID4gKwlpOTE1X3Jl Z190IGN0bCwgc3RhdHVzOwo+ID4gIAl1MzIgdmFsOwo+ID4gIAo+ID4gIAlpZiAoIUhBU19EREko ZGV2X3ByaXYpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQl2YWwgPSBJOTE1X1JFQUQoRFBf VFBfQ1RMKHBvcnQpKTsKPiA+ICsJY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9kcF9nZXRfdHJhbnNj b2RlcihpbnRlbF9kcCk7Cj4gPiArCWN0bCA9IGludGVsX2RwX3RwX2N0bF9yZWcoZGV2X3ByaXYs IGNwdV90cmFuc2NvZGVyLCBwb3J0KTsKPiA+ICsJc3RhdHVzID0gaW50ZWxfZHBfdHBfc3RhdHVz X3JlZyhkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHBvcnQpOwo+ID4gKwo+ID4gKwl2YWwgPSBJ OTE1X1JFQUQoY3RsKTsKPiA+ICAJdmFsICY9IH5EUF9UUF9DVExfTElOS19UUkFJTl9NQVNLOwo+ ID4gIAl2YWwgfD0gRFBfVFBfQ1RMX0xJTktfVFJBSU5fSURMRTsKPiA+IC0JSTkxNV9XUklURShE UF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gPiArCUk5MTVfV1JJVEUoY3RsLCB2YWwpOwo+ID4gIAo+ ID4gIAkvKgo+ID4gIAkgKiBPbiBQT1JUX0Egd2UgY2FuIGhhdmUgb25seSBlRFAgaW4gU1NUIG1v ZGUuIFRoZXJlIHRoZSBvbmx5IHJlYXNvbgo+ID4gQEAgLTM5NjMsNyArNDAxOSw3IEBAIHZvaWQg aW50ZWxfZHBfc2V0X2lkbGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ID4gIAlpZiAocG9ydCA9PSBQT1JUX0EpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAtCWlmIChp bnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIERQX1RQX1NUQVRVUyhwb3J0KSwKPiA+ICsJ aWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgc3RhdHVzLAo+ID4gIAkJCQkgIERQ X1RQX1NUQVRVU19JRExFX0RPTkUsIDEpKQo+ID4gIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2Fp dGluZyBmb3IgRFAgaWRsZSBwYXR0ZXJuc1xuIik7Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuaAo+ID4gaW5kZXggNjU3YmJiMWY1ZWQwLi4xMDcxMjliNWQ5 YTMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuaAo+ID4g QEAgLTExLDYgKzExLDcgQEAKPiA+ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gPiAgCj4g PiAgI2luY2x1ZGUgImk5MTVfcmVnLmgiCj4gPiArI2luY2x1ZGUgImludGVsX2Rpc3BsYXkuaCIK PiA+ICAKPiA+ICBlbnVtIHBpcGU7Cj4gPiAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGU7Cj4g PiBAQCAtMTEzLDYgKzExNCwxNCBAQCBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQgcGl4 ZWxfY2xvY2ssIGludCBicHApOwo+ID4gIGludCBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGludCBt YXhfbGlua19jbG9jaywgaW50IG1heF9sYW5lcyk7Cj4gPiAgYm9vbCBpbnRlbF9kaWdpdGFsX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiA+ICAKPiA+ICtp OTE1X3JlZ190IGludGVsX2RwX3RwX2N0bF9yZWcoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gKwkJCSAgICAgICBlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29k ZXIsCj4gPiArCQkJICAgICAgIGVudW0gcG9ydCBwb3J0KTsKPiA+ICtpOTE1X3JlZ190IGludGVs X2RwX3RwX3N0YXR1c19yZWcoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gKwkJCQkgIGVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciwKPiA+ICsJCQkJICBl bnVtIHBvcnQgcG9ydCk7Cj4gPiArZW51bSB0cmFuc2NvZGVyIGludGVsX2RwX2dldF90cmFuc2Nv ZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gKwo+ID4gIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgaW50IGludGVsX2RwX3VudXNlZF9sYW5lX21hc2soaW50IGxhbmVfY291bnQpCj4g PiAgewo+ID4gIAlyZXR1cm4gfigoMSA8PCBsYW5lX2NvdW50KSAtIDEpICYgMHhmOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gPiBpbmRleCA4MDAy ZGNhOWI3MzQuLjYzMGRiMmZhZGFjYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+IEBAIC0zNTQsOSArMzU0LDExIEBAIHN0YXRpYyB2 b2lkIGludGVsX21zdF9wcmVfcGxsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBp bnRlbF9tc3QtPnByaW1hcnk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50 ZWxfZGlnX3BvcnQtPmRwOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZHAtPmFjdGl2ZV9tc3RfbGlu a3MgPT0gMCkKPiA+ICsJaWYgKGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzID09IDApIHsKPiA+ ICsJCWludGVsX2RwLT5tc3RfbWFzdGVyX3RyYW5zID0gcGlwZV9jb25maWctPm1zdF9tYXN0ZXJf dHJhbnM7CgpUaGUgY3VycmVudCB0cmFuc2NvZGVyIHNob3VsZCBiZSB0aGUgbWFzdGVyIGhlcmUs IG5vPwoKTWF5YmUgc3ByaW5rbGUgc29tZQoKYXNzZXJ0X2lzX21hc3Rlcl90cmFuc2NvZGVyKGNy dGNfc3RhdGUpCnsKCVdBUk4oY3J0Y19oYXNfdHlwZShNU1QpICYmCgkJY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zICE9IGNydGNfc3RhdGUtPm1hc3Rlcl90cmFucyk7Cn0KCnN0dWZmIGludG8gdGhlIGRk aSBjb2RlPwoKPiA+ICAJCWludGVsX2RpZ19wb3J0LT5iYXNlLnByZV9wbGxfZW5hYmxlKCZpbnRl bF9kaWdfcG9ydC0+YmFzZSwKPiA+ICAJCQkJCQkgICAgcGlwZV9jb25maWcsIE5VTEwpOwo+ID4g Kwl9Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX21zdF9wb3N0X3BsbF9kaXNh YmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gQEAgLTM4NCw2ICszODYs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFz ZS5wb3J0Owo+ID4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPQo+ID4gIAkJ dG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gPiArCWk5MTVfcmVn X3Qgc3RhdHVzOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAl1MzIgdGVtcDsKPiA+ICAKPiA+IEBAIC00 MTIsOCArNDE1LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfZW5hYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxs b2NhdGUgdmNwaVxuIik7Cj4gPiAgCj4gPiAgCWludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzKys7 Cj4gPiAtCXRlbXAgPSBJOTE1X1JFQUQoRFBfVFBfU1RBVFVTKHBvcnQpKTsKPiA+IC0JSTkxNV9X UklURShEUF9UUF9TVEFUVVMocG9ydCksIHRlbXApOwo+ID4gKwo+ID4gKwlzdGF0dXMgPSBpbnRl bF9kcF90cF9zdGF0dXNfcmVnKGRldl9wcml2LAo+ID4gKwkJCQkJcGlwZV9jb25maWctPm1zdF9t YXN0ZXJfdHJhbnMsCj4gPiArCQkJCQlwb3J0KTsKPiA+ICsJdGVtcCA9IEk5MTVfUkVBRChzdGF0 dXMpOwo+ID4gKwlJOTE1X1dSSVRFKHN0YXR1cywgdGVtcCk7Cj4gPiAgCj4gPiAgCXJldCA9IGRy bV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MSgmaW50ZWxfZHAtPm1zdF9tZ3IpOwo+ID4gIAo+ID4g QEAgLTQyOSwxMCArNDM2LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9lbmFibGVfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+ID4gKwlpOTE1X3JlZ190IHN0YXR1czsK PiA+ICAKPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+ YWN0aXZlX21zdF9saW5rcyk7Cj4gPiAgCj4gPiAtCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQo ZGV2X3ByaXYsIERQX1RQX1NUQVRVUyhwb3J0KSwKPiA+ICsJc3RhdHVzID0gaW50ZWxfZHBfdHBf c3RhdHVzX3JlZyhkZXZfcHJpdiwKPiA+ICsJCQkJCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3Ry YW5zLAo+ID4gKwkJCQkJcG9ydCk7Cj4gPiArCj4gPiArCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9z ZXQoZGV2X3ByaXYsIHN0YXR1cywKPiA+ICAJCQkJICBEUF9UUF9TVEFUVVNfQUNUX1NFTlQsIDEp KQo+ID4gIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgQUNUIHNlbnRcbiIpOwo+ ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBpbmRleCBiZmY5ZWUxOTE4MzIuLmZm ZmFlZDBjYTNjZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC05NDU0 LDcgKzk0NTQsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiA+ICAvKiBEaXNwbGF5UG9ydCBU cmFuc3BvcnQgQ29udHJvbCAqLwo+ID4gICNkZWZpbmUgX0RQX1RQX0NUTF9BCQkJMHg2NDA0MAo+ ID4gICNkZWZpbmUgX0RQX1RQX0NUTF9CCQkJMHg2NDE0MAo+ID4gKyNkZWZpbmUgX1RHTF9EUF9U UF9DVExfQQkJMHg2MDU0MAo+ID4gICNkZWZpbmUgRFBfVFBfQ1RMKHBvcnQpIF9NTUlPX1BPUlQo cG9ydCwgX0RQX1RQX0NUTF9BLCBfRFBfVFBfQ1RMX0IpCj4gPiArI2RlZmluZSBUR0xfRFBfVFBf Q1RMKHRyYW4pIF9NTUlPX1RSQU5TMigodHJhbiksIF9UR0xfRFBfVFBfQ1RMX0EpCj4gPiAgI2Rl ZmluZSAgRFBfVFBfQ1RMX0VOQUJMRQkJCSgxIDw8IDMxKQo+ID4gICNkZWZpbmUgIERQX1RQX0NU TF9GRUNfRU5BQkxFCQkJKDEgPDwgMzApCj4gPiAgI2RlZmluZSAgRFBfVFBfQ1RMX01PREVfU1NU CQkJKDAgPDwgMjcpCj4gPiBAQCAtOTQ3NCw3ICs5NDc2LDkgQEAgZW51bSBza2xfcG93ZXJfZ2F0 ZSB7Cj4gPiAgLyogRGlzcGxheVBvcnQgVHJhbnNwb3J0IFN0YXR1cyAqLwo+ID4gICNkZWZpbmUg X0RQX1RQX1NUQVRVU19BCQkJMHg2NDA0NAo+ID4gICNkZWZpbmUgX0RQX1RQX1NUQVRVU19CCQkJ MHg2NDE0NAo+ID4gKyNkZWZpbmUgX1RHTF9EUF9UUF9TVEFUVVNfQQkJMHg2MDU0NAo+ID4gICNk ZWZpbmUgRFBfVFBfU1RBVFVTKHBvcnQpIF9NTUlPX1BPUlQocG9ydCwgX0RQX1RQX1NUQVRVU19B LCBfRFBfVFBfU1RBVFVTX0IpCj4gPiArI2RlZmluZSBUR0xfRFBfVFBfU1RBVFVTKHRyYW4pIF9N TUlPX1RSQU5TMigodHJhbiksIF9UR0xfRFBfVFBfU1RBVFVTX0EpCj4gPiAgI2RlZmluZSAgRFBf VFBfU1RBVFVTX0ZFQ19FTkFCTEVfTElWRQkJKDEgPDwgMjgpCj4gPiAgI2RlZmluZSAgRFBfVFBf U1RBVFVTX0lETEVfRE9ORQkJCSgxIDw8IDI1KQo+ID4gICNkZWZpbmUgIERQX1RQX1NUQVRVU19B Q1RfU0VOVAkJCSgxIDw8IDI0KQo+ID4gLS0gCj4gPiAyLjIzLjAKPiAKPiAtLSAKPiBWaWxsZSBT eXJqw6Rsw6QKPiBJbnRlbAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=