From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Mon, 29 Oct 2018 16:08:43 -0700 Message-ID: <20181029230843.GE27040@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@intel.com> <20181029203039.GO9144@intel.com> <20181029203458.GP9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181029203458.GP9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjksIDIwMTggYXQgMTA6MzQ6NThQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgT2N0IDI5LCAyMDE4IGF0IDEwOjMwOjM5UE0gKzAyMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAzOjI4OjI1UE0g LTA3MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiA+IERTQyBwYXJhbXMgbGlrZSB0aGUgZW5h YmxlLCBjb21wcmVzc2VkIGJwcCwgc2xpY2UgY291bnQgYW5kCj4gPiA+IGRzY19zcGxpdCBhcmUg YWRkZWQgdG8gdGhlIGludGVsX2NydGNfc3RhdGUuIFRoZXNlIHBhcmFtZXRlcnMKPiA+ID4gYXJl IHNldCBiYXNlZCBvbiB0aGUgcmVxdWVzdGVkIG1vZGUgYW5kIGF2YWlsYWJsZSBsaW5rIHBhcmFt ZXRlcnMKPiA+ID4gZHVyaW5nIHRoZSBwaXBlIGNvbmZpZ3VyYXRpb24gaW4gYXRvbWljIGNoZWNr IHBoYXNlLgo+ID4gPiBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gbGF0ZXIgdXNlZCB0byBwb3B1bGF0 ZSB0aGUgcmVtYWluaW5nIERTQwo+ID4gPiBhbmQgUkMgcGFyYW1ldGVycyBiZWZvcmUgZW5iYWxp bmcgRFNDIGluIGF0b21pYyBjb21taXQuCj4gPiA+IAo+ID4gPiB2OToKPiA+ID4gKiBSZWJhc2Ug b24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNlcyBmYXN0X25hcnJvdyBjb25maWcKPiA+ID4g Zm9yIGVkcCAoTWFuYXNpKQo+ID4gPiB2ODoKPiA+ID4gKiBDaGVjayBmb3IgRFNDIGJwYyBub3Qg MCAobWFuYXNpKQo+ID4gPiAKPiA+ID4gdjc6Cj4gPiA+ICogRml4IGluZGVudGF0aW9uIGluIGNv bXB1dGVfbV9uIChNYW5hc2kpCj4gPiA+IAo+ID4gPiB2NiAoRnJvbSBHYXVyYXYpOgo+ID4gPiAq IFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGFu ZAo+ID4gPiBpbnZva2UgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNo IHdoZXJlCj4gPiA+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgKEdh dXJhdikKPiA+ID4gCj4gPiA+IHY1Ogo+ID4gPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0 Y19zdGF0ZSAoTWFuYXNpKQo+ID4gPiAKPiA+ID4gdjQ6Cj4gPiA+ICogUmViYXNlIG9uIHJlZmFj dG9yaW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQo+ID4gPiAq IEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERT QyAoR2F1cmF2KQo+ID4gPiAKPiA+ID4gdjM6Cj4gPiA+ICogQ2hlY2sgUFBSID4gbWF4X2NkY2xv Y2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQo+ID4gPiAKPiA+ID4gdjI6Cj4gPiA+ ICogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQo+ID4gPiAKPiA+ID4gQ2M6IEphbmkg TmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBWaWxsZSBTeXJq YWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IEFudXNoYSBTcml2 YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4gQ2M6IEdhdXJhdiBLIFNpbmdo IDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBO YXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBBbnVz aGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiA+IEFja2VkLWJ5OiBK YW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAyMCArKystCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAgIDMgKy0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE3MCArKysrKysrKysrKysrKysrKysr KysrLS0tLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8ICAg MiArLQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRp b25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ IGluZGV4IGZlMDQ1YWJiNjQ3Mi4uMTg3MzdiZDgyYjY4IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IEBAIC02NDM0LDcgKzY0MzQsNyBAQCBzdGF0 aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiA+ID4gIAo+ID4gPiAgCXBpcGVfY29uZmlnLT5mZGlfbGFuZXMgPSBsYW5lOwo+ ID4gPiAgCj4gPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9i cHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ID4gKwlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBp cGVfY29uZmlnLT5waXBlX2JwcCwgMCwgbGFuZSwgZmRpX2RvdGNsb2NrLAo+ID4gPiAgCQkJICAg ICAgIGxpbmtfYncsICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgZmFsc2UpOwo+ID4gPiAgCj4gPiA+ ICAJcmV0ID0gaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKGRldiwgaW50ZWxfY3J0Yy0+cGlwZSwg cGlwZV9jb25maWcpOwo+ID4gPiBAQCAtNjY3MSwxNyArNjY3MSwyNSBAQCBzdGF0aWMgdm9pZCBj b21wdXRlX21fbih1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQgaW50IG4sCj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gIHZvaWQKPiA+ID4gLWludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVy X3BpeGVsLCBpbnQgbmxhbmVzLAo+ID4gPiAraW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0 c19wZXJfcGl4ZWwsIHVpbnQxNl90IGNvbXByZXNzZWRfYnBwLAo+ID4gPiArCQkgICAgICAgaW50 IG5sYW5lcywKPiA+ID4gIAkJICAgICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ss Cj4gPiA+ICAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiA+ID4gIAkJICAg ICAgIGJvb2wgY29uc3RhbnRfbikKPiA+ID4gIHsKPiA+ID4gIAltX24tPnR1ID0gNjQ7Cj4gPiA+ ICAKPiA+ID4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ID4g PiAtCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gPiA+IC0JCSAgICAmbV9uLT5nbWNo X20sICZtX24tPmdtY2hfbiwKPiA+ID4gLQkJICAgIGNvbnN0YW50X24pOwo+ID4gPiArCS8qIEZv ciBEU0MsIERhdGEgTS9OIGNhbGN1bGF0aW9uIHVzZXMgY29tcHJlc3NlZCBCUFAgKi8KPiA+ID4g KwlpZiAoY29tcHJlc3NlZF9icHApCj4gPiA+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBw ICogcGl4ZWxfY2xvY2ssCj4gPiA+ICsJCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4g PiA+ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gPiA+ICsJCQkgICAgY29u c3RhbnRfbik7Cj4gPiA+ICsJZWxzZQo+ID4gPiArCQljb21wdXRlX21fbihiaXRzX3Blcl9waXhl bCAqIHBpeGVsX2Nsb2NrLAo+ID4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ ID4gPiArCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4gPiArCQkJICAgIGNv bnN0YW50X24pOwo+ID4gPiAgCj4gPiA+ICAJY29tcHV0ZV9tX24ocGl4ZWxfY2xvY2ssIGxpbmtf Y2xvY2ssCj4gPiA+ICAJCSAgICAmbV9uLT5saW5rX20sICZtX24tPmxpbmtfbiwKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gPiBpbmRleCA1ZDUwZGVjYmNiYjUuLmIw YjIzZTFlOTM5MiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku aAo+ID4gPiBAQCAtNDA3LDcgKzQwNyw4IEBAIHN0cnVjdCBpbnRlbF9saW5rX21fbiB7Cj4gPiA+ ICAJICAgICAoX19pKSsrKSBcCj4gPiA+ICAJCWZvcl9lYWNoX2lmKHBsYW5lKQo+ID4gPiAgCj4g PiA+IC12b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwgaW50IG5sYW5lcywKPiA+ ID4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCB1aW50MTZfdCBjb21wcmVz c2VkX2JwcCwKPiA+ID4gKwkJCSAgICBpbnQgbmxhbmVzLAo+ID4gPiAgCQkJICAgIGludCBwaXhl bF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiA+ICAJCQkgICAgc3RydWN0IGludGVsX2xpbmtf bV9uICptX24sCj4gPiA+ICAJCQkgICAgYm9vbCBjb25zdGFudF9uKTsKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gPiA+IGluZGV4IDZmNjZhMzhiYTBiMi4uYTg4ZjkzNzFkZDMyIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTQ3LDYgKzQ3LDggQEAK PiA+ID4gIAo+ID4gPiAgLyogRFAgRFNDIHNtYWxsIGpvaW5lciBoYXMgMiBGSUZPcyBlYWNoIG9m IDY0MCB4IDYgYnl0ZXMgKi8KPiA+ID4gICNkZWZpbmUgRFBfRFNDX01BWF9TTUFMTF9KT0lORVJf UkFNX0JVRkZFUgk2MTQ0MAo+ID4gPiArI2RlZmluZSBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMJ CTgKPiA+ID4gKyNkZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDCQkxMAo+ID4gPiAgCj4g PiA+ICAvKiBEUCBEU0MgdGhyb3VnaHB1dCB2YWx1ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2Fs Y3VsYXRpb25zIEtQaXhlbHMvcyAqLwo+ID4gPiAgI2RlZmluZSBEUF9EU0NfUEVBS19QSVhFTF9S QVRFCQkJMjcyMDAwMAo+ID4gPiBAQCAtMTkyNCw2ICsxOTI2LDE2IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIAkJfQo+ ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiArCS8qIElmIERTQyBpcyBzdXBwb3J0ZWQsIHVzZSB0aGUg bWF4IHZhbHVlIHJlcG9ydGVkIGJ5IHBhbmVsICovCj4gPiA+ICsJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTAgJiYKPiA+ID4gKwkgICAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVs X2RwLT5kc2NfZHBjZCkpIHsKPiA+ID4gKwkJYnBjID0gbWluX3QodTgsCj4gPiA+ICsJCQkgICAg ZHJtX2RwX2RzY19zaW5rX21heF9jb2xvcl9kZXB0aChpbnRlbF9kcC0+ZHNjX2RwY2QpLAo+ID4g PiArCQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gPiA+ICsJCWlmIChicGMpCj4g PiA+ICsJCQlicHAgPSAzICogYnBjOwo+ID4gCj4gPiBUaGlzIHNlZW1zIGxpa2UgaXQgc2hvdWxk IGJlICdicHAgPSBtaW4oYnBwLCAzKmJwYyknLiAKPiA+IE90aGVyd2lzZSB3ZSBtYXkgYnVtcCB0 aGUgYnBwIGFib3ZlIGEgbGltaXQgd2UgYWxyZWFkeSBlc3RhYmxpc2hlZCBlYXJsaWVyLgo+ID4g Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICAJcmV0dXJuIGJwcDsKPiA+ID4gIH0KPiA+ID4gIAo+ ID4gPiBAQCAtMTk4NCwxNCArMTk5NiwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmln X3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIAkJCQlsaW5rX2Nsb2NrID0g aW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gPiA+ICAJCQkJbGlua19hdmFpbCA9IGlu dGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9jaywKPiA+ID4gIAkJCQkJCQkJICAgIGxhbmVf Y291bnQpOwo+ID4gPiAtCj4gPiA+IC0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7 Cj4gPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ID4g LQkJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ID4gPiAtCQkJCQlwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gPiA+IC0KPiA+ID4gKwkJCQlwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVf YnBwID0gYnBwOwo+ID4gPiArCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9j azsKPiA+ID4gKwkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCj4gPiA+ICAJCQkJCXJl dHVybiB0cnVlOwo+ID4gCj4gPiBXaHkgZG8gd2UgbmVlZCB0byBhc3NpZ24gdGhlc2UgaWYgd2Ug ZG9uJ3QgYWNjZXB0IHRoZSBjb25maWd1cmF0aW9uPwo+ID4gCj4gPiA+IC0JCQkJfQo+ID4gPiAg CQkJfQo+ID4gPiAgCQl9Cj4gPiA+ICAJfQo+ID4gPiBAQCAtMjAyMCwxNCArMjAyOSwxMSBAQCBp bnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKPiA+ID4gIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107 Cj4gPiA+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9j aywKPiA+ID4gIAkJCQkJCQkJICAgIGxhbmVfY291bnQpOwo+ID4gPiAtCj4gPiA+IC0JCQkJaWYg KG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5sYW5l X2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ID4gLQkJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0g YnBwOwo+ID4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4g PiA+IC0KPiA+ID4gKwkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4g PiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ID4gPiArCQkJCXBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiA+ID4gKwkJCQlpZiAobW9kZV9yYXRlIDw9 IGxpbmtfYXZhaWwpCj4gPiA+ICAJCQkJCXJldHVybiB0cnVlOwo+ID4gPiAtCQkJCX0KPiA+ID4g IAkJCX0KPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gQEAgLTIwMzUsMTQgKzIwNDEsODggQEAg aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMg Ym9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKPiA+ID4gKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4g PiArCQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCj4gPiA+ICt7Cj4gPiA+ ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChp bnRlbF9kcCk7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsK PiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0YyktPnBpcGU7Cj4gPiA+ICsJdTE2IGRzY19tYXhfb3V0cHV0X2JwcCA9IDA7Cj4gPiA+ICsJ dTggZHNjX2RwX3NsaWNlX2NvdW50ID0gMDsKPiA+ID4gKwo+ID4gPiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgMTAgfHwKPiA+ID4gKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhp bnRlbF9kcC0+ZHNjX2RwY2QpKQo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsKPiA+ID4g KwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0ZWQgb24gUGlwZSBCIGFuZCBDICovCj4gPiA+ICsJaWYg KHBpcGUgPT0gUElQRV9BICYmICFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQo+ID4gPiArCQly ZXR1cm4gZmFsc2U7Cj4gPiAKPiA+IERvIHdlIG1lYW4gJ3RyYW5zY29kZXIgPT0gRURQIHx8IHRy YW5zY29kZXIgPT0gQiB8fCB0cmFuc2NvZGVyID09IEMnID8KPiA+IE9yIG1heWJlICd0cmFuc2Nv ZGVyICE9IEEnIGZvciBzaG9ydC4gSSBndWVzcyB0aGlzIHdpbGwgbmVlZCB0byBhZGp1c3RlZAo+ ID4gZm9yIHRoZSBuZXh0IHBsYXRmb3JtIGFueXdheSBzbyBtYWtpbmcgdGhlIGFzc3VtcHRpb24g dGhhdCB0cmFuc2NvZGVyIEEKPiA+IGlzIHRoZSBvbmx5IG9uZSB0aGF0IGNhbid0IGRvIERTQyBp cyBmaW5lLgo+ID4gCj4gPiBUaGlzIHdob2xlIHRoaW5nIHNlZW1zIGxpa2UgYSBnb29kIGhlbHBl ciBmdW5jdGlvbi4KPiA+IGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2MoKSBvciBzb21ldGhp bmcgbGlrZSB0aGF0LiBBbmQgdGhlbiB3ZQo+ID4gY291bGQgaGF2ZSBpbnRlbF9kcF9zdXBwb3J0 c19kc2MoKSB3aGljaCBqdXN0IGNhbGxzIHRoYXQgKwo+ID4gZHJtX2RwX3Npbmtfc3VwcG9ydHNf ZHNjKCkuCj4KClNvIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Mgd2lsbCBoYXZlIHBsYXRm b3JtIGNoZWNrcywgYnV0IGZvciBpdCB0byBkbwp0cmFuc2NvZGVyIGNoZWNrIGl0IHdvdWxkIGFs c28gbmVlZCBjcnRjX3N0YXRlIGFzIGlucHV0LgoKQW5kIHllcyBpbnRlbF9kcF9zdXBwb3J0c19k c2MoKSBjYW4gY2FsbCB0aGlzIGFuZCBkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoKQogCj4gQW5v dGhlciBjb25mdXNpb24gYWJvdXQgdGhlc2UgY2hlY2tzIGlzIGdsay4gU29tZSBvdGhlciBwbGFj ZXMgc2VlbQo+IHRvIGluZGljYXRlIHRoYXQgZ2xrIGhhcyBEU0MsIGJ1dCB0aGVuIGNvZGUgbGlr ZSB0aGlzIGhlcmUgZG9lc24ndCAKPiBhY2NlcHQgZ2xrLiBXaGF0J3MgdXAgd2l0aCB0aGF0PwoK VGhpcyBpcyBiZWNhdXNlIG9uIEdMSywgVkRTQyBpcyBvbmx5IHN1cHBvcnRlZCBvbiBlRFAgYW5k IG5vdCBvbiBleHRlcm5hbCBEUAoKTWFuYXNpCgo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+ IEludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=