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 14:42:45 -0700 Message-ID: <20181029214245.GC27040@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@intel.com> <20181029203039.GO9144@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: <20181029203039.GO9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Anusha Srivatsa , dri-devel@lists.freedesktop.org, Gaurav K Singh List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjksIDIwMTggYXQgMTA6MzA6MzlQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAzOjI4OjI1UE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3Nl ZCBicHAsIHNsaWNlIGNvdW50IGFuZAo+ID4gZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50 ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFyYW1ldGVycwo+ID4gYXJlIHNldCBiYXNlZCBvbiB0aGUg cmVxdWVzdGVkIG1vZGUgYW5kIGF2YWlsYWJsZSBsaW5rIHBhcmFtZXRlcnMKPiA+IGR1cmluZyB0 aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiA+IFRoZXNlIHZh bHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRlIHRoZSByZW1haW5pbmcgRFNDCj4g PiBhbmQgUkMgcGFyYW1ldGVycyBiZWZvcmUgZW5iYWxpbmcgRFNDIGluIGF0b21pYyBjb21taXQu Cj4gPiAKPiA+IHY5Ogo+ID4gKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNl cyBmYXN0X25hcnJvdyBjb25maWcKPiA+IGZvciBlZHAgKE1hbmFzaSkKPiA+IHY4Ogo+ID4gKiBD aGVjayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQo+ID4gCj4gPiB2NzoKPiA+ICogRml4IGlu ZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCj4gPiAKPiA+IHY2IChGcm9tIEdhdXJh dik6Cj4gPiAqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNjX3Bh cmFtcygpIGFuZAo+ID4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRo ZSBwYXRjaCB3aGVyZQo+ID4gaXQgaXMgZGVmaW5lZCB0byBmaXggY29tcGlsYXRpb24gd2Fybmlu ZyAoR2F1cmF2KQo+ID4gCj4gPiB2NToKPiA+IEFkZCBkcm1fZHNjX2NmZyBpbiBpbnRlbF9jcnRj X3N0YXRlIChNYW5hc2kpCj4gPiAKPiA+IHY0Ogo+ID4gKiBSZWJhc2Ugb24gcmVmYWN0b3Jpbmcg b2YgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcgb24gdGlwIChNYW5hc2kpCj4gPiAqIEFkZCBhIGNv bW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2 KQo+ID4gCj4gPiB2MzoKPiA+ICogQ2hlY2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRT QyBpbnN0YW5jZXMgKFZpbGxlKQo+ID4gCj4gPiB2MjoKPiA+ICogQWRkIGlmLWVsc2UgZm9yIGVE UC9EUCAoR2F1cmF2KQo+ID4gCj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+Cj4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gPiBSZXZpZXdlZC1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwu Y29tPgo+ID4gQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAg MjAgKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAgMyAr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE3MCArKysrKysr KysrKysrKysrKysrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9t c3QuYyAgfCAgIDIgKy0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gaW5kZXggZmUwNDVhYmI2NDcyLi4xODczN2JkODJiNjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTY0MzQsNyArNjQzNCw3IEBAIHN0YXRpYyBp bnQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAo+ID4gIAo+ID4gIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKPiA+ICAKPiA+ IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZk aV9kb3RjbG9jaywKPiA+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlw ZV9icHAsIDAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ICAJCQkgICAgICAgbGlua19idywgJnBp cGVfY29uZmlnLT5mZGlfbV9uLCBmYWxzZSk7Cj4gPiAgCj4gPiAgCXJldCA9IGlyb25sYWtlX2No ZWNrX2ZkaV9sYW5lcyhkZXYsIGludGVsX2NydGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKPiA+IEBA IC02NjcxLDE3ICs2NjcxLDI1IEBAIHN0YXRpYyB2b2lkIGNvbXB1dGVfbV9uKHVuc2lnbmVkIGlu dCBtLCB1bnNpZ25lZCBpbnQgbiwKPiA+ICB9Cj4gPiAgCj4gPiAgdm9pZAo+ID4gLWludGVsX2xp bmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAo+ID4gK2ludGVs X2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2Vk X2JwcCwKPiA+ICsJCSAgICAgICBpbnQgbmxhbmVzLAo+ID4gIAkJICAgICAgIGludCBwaXhlbF9j bG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiAgCQkgICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9u ICptX24sCj4gPiAgCQkgICAgICAgYm9vbCBjb25zdGFudF9uKQo+ID4gIHsKPiA+ICAJbV9uLT50 dSA9IDY0Owo+ID4gIAo+ID4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Ns b2NrLAo+ID4gLQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gLQkJICAgICZtX24t PmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4gLQkJICAgIGNvbnN0YW50X24pOwo+ID4gKwkvKiBG b3IgRFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQICovCj4gPiAr CWlmIChjb21wcmVzc2VkX2JwcCkKPiA+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBwICog cGl4ZWxfY2xvY2ssCj4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gKwkJ CSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ICsJCQkgICAgY29uc3RhbnRfbik7 Cj4gPiArCWVsc2UKPiA+ICsJCWNvbXB1dGVfbV9uKGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xv Y2ssCj4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gKwkJCSAgICAmbV9u LT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ICsJCQkgICAgY29uc3RhbnRfbik7Cj4gPiAgCj4g PiAgCWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5rX2Nsb2NrLAo+ID4gIAkJICAgICZtX24t PmxpbmtfbSwgJm1fbi0+bGlua19uLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku aAo+ID4gaW5kZXggNWQ1MGRlY2JjYmI1Li5iMGIyM2UxZTkzOTIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gQEAgLTQwNyw3ICs0MDcsOCBAQCBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gewo+ID4gIAkgICAgIChfX2kpKyspIFwKPiA+ICAJCWZvcl9lYWNoX2lm KHBsYW5lKQo+ID4gIAo+ID4gLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBp bnQgbmxhbmVzLAo+ID4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCB1aW50 MTZfdCBjb21wcmVzc2VkX2JwcCwKPiA+ICsJCQkgICAgaW50IG5sYW5lcywKPiA+ICAJCQkgICAg aW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKPiA+ICAJCQkgICAgc3RydWN0IGludGVs X2xpbmtfbV9uICptX24sCj4gPiAgCQkJICAgIGJvb2wgY29uc3RhbnRfbik7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDZmNjZhMzhiYTBiMi4uYTg4ZjkzNzFkZDMyIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQ3LDYgKzQ3LDggQEAKPiA+ICAK PiA+ICAvKiBEUCBEU0Mgc21hbGwgam9pbmVyIGhhcyAyIEZJRk9zIGVhY2ggb2YgNjQwIHggNiBi eXRlcyAqLwo+ID4gICNkZWZpbmUgRFBfRFNDX01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2 MTQ0MAo+ID4gKyNkZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4Cj4gPiArI2RlZmlu ZSBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMJCTEwCj4gPiAgCj4gPiAgLyogRFAgRFNDIHRocm91 Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNlIGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3Mg Ki8KPiA+ICAjZGVmaW5lIERQX0RTQ19QRUFLX1BJWEVMX1JBVEUJCQkyNzIwMDAwCj4gPiBAQCAt MTkyNCw2ICsxOTI2LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIAo+ID4gKwkvKiBJZiBE U0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2YWx1ZSByZXBvcnRlZCBieSBwYW5lbCAqLwo+ ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCAmJgo+ID4gKwkgICAgZHJtX2RwX3Np bmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiA+ICsJCWJwYyA9IG1pbl90 KHU4LAo+ID4gKwkJCSAgICBkcm1fZHBfZHNjX3NpbmtfbWF4X2NvbG9yX2RlcHRoKGludGVsX2Rw LT5kc2NfZHBjZCksCj4gPiArCQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gPiAr CQlpZiAoYnBjKQo+ID4gKwkJCWJwcCA9IDMgKiBicGM7Cj4gCj4gVGhpcyBzZWVtcyBsaWtlIGl0 IHNob3VsZCBiZSAnYnBwID0gbWluKGJwcCwgMypicGMpJy4gCj4gT3RoZXJ3aXNlIHdlIG1heSBi dW1wIHRoZSBicHAgYWJvdmUgYSBsaW1pdCB3ZSBhbHJlYWR5IGVzdGFibGlzaGVkIGVhcmxpZXIu CgpZZXMgbWFrZXMgc2Vuc2UuIFdpbGwgY2hhbmdlIHRoaXMuCgpNYW5hc2kKCj4gCj4gPiArCX0K PiA+ICsKPiA+ICAJcmV0dXJuIGJwcDsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMTk4NCwxNCArMTk5 NiwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiA+ICAJCQkJbGlua19jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0ZXNb Y2xvY2tdOwo+ID4gIAkJCQlsaW5rX2F2YWlsID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShsaW5r X2Nsb2NrLAo+ID4gIAkJCQkJCQkJICAgIGxhbmVfY291bnQpOwo+ID4gLQo+ID4gLQkJCQlpZiAo bW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpIHsKPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2Nv dW50ID0gbGFuZV9jb3VudDsKPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsK PiA+IC0JCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiA+IC0KPiA+ ICsJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4gKwkJCQlwaXBl X2NvbmZpZy0+cGlwZV9icHAgPSBicHA7Cj4gPiArCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr ID0gbGlua19jbG9jazsKPiA+ICsJCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQo+ID4g IAkJCQkJcmV0dXJuIHRydWU7Cj4gCj4gV2h5IGRvIHdlIG5lZWQgdG8gYXNzaWduIHRoZXNlIGlm IHdlIGRvbid0IGFjY2VwdCB0aGUgY29uZmlndXJhdGlvbj8KPiAKPiA+IC0JCQkJfQo+ID4gIAkJ CX0KPiA+ICAJCX0KPiA+ICAJfQo+ID4gQEAgLTIwMjAsMTQgKzIwMjksMTEgQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAg CQkJCWxpbmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKPiA+ICAJCQkJ bGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9jaywKPiA+ICAJCQkJ CQkJCSAgICBsYW5lX2NvdW50KTsKPiA+IC0KPiA+IC0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5r X2F2YWlsKSB7Cj4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7 Cj4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHA7Cj4gPiAtCQkJCQlwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gPiAtCj4gPiArCQkJCXBpcGVfY29uZmln LT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBw ID0gYnBwOwo+ID4gKwkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4g PiArCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19hdmFpbCkKPiA+ICAJCQkJCXJldHVybiB0cnVl Owo+ID4gLQkJCQl9Cj4gPiAgCQkJfQo+ID4gIAkJfQo+ID4gIAl9Cj4gPiBAQCAtMjAzNSwxNCAr MjA0MSw4OCBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0 aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiA+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ ICsJCQkJCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKPiA+ICt7Cj4gPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRp Z19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ICsJZW51 bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBl Owo+ID4gKwl1MTYgZHNjX21heF9vdXRwdXRfYnBwID0gMDsKPiA+ICsJdTggZHNjX2RwX3NsaWNl X2NvdW50ID0gMDsKPiA+ICsKPiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMCB8fAo+ ID4gKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKQo+ ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0ZWQg b24gUGlwZSBCIGFuZCBDICovCj4gPiArCWlmIChwaXBlID09IFBJUEVfQSAmJiAhaW50ZWxfZHBf aXNfZWRwKGludGVsX2RwKSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiAKPiBEbyB3ZSBtZWFuICd0 cmFuc2NvZGVyID09IEVEUCB8fCB0cmFuc2NvZGVyID09IEIgfHwgdHJhbnNjb2RlciA9PSBDJyA/ Cj4gT3IgbWF5YmUgJ3RyYW5zY29kZXIgIT0gQScgZm9yIHNob3J0LiBJIGd1ZXNzIHRoaXMgd2ls bCBuZWVkIHRvIGFkanVzdGVkCj4gZm9yIHRoZSBuZXh0IHBsYXRmb3JtIGFueXdheSBzbyBtYWtp bmcgdGhlIGFzc3VtcHRpb24gdGhhdCB0cmFuc2NvZGVyIEEKPiBpcyB0aGUgb25seSBvbmUgdGhh dCBjYW4ndCBkbyBEU0MgaXMgZmluZS4KPiAKPiBUaGlzIHdob2xlIHRoaW5nIHNlZW1zIGxpa2Ug YSBnb29kIGhlbHBlciBmdW5jdGlvbi4KPiBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKCkg b3Igc29tZXRoaW5nIGxpa2UgdGhhdC4gQW5kIHRoZW4gd2UKPiBjb3VsZCBoYXZlIGludGVsX2Rw X3N1cHBvcnRzX2RzYygpIHdoaWNoIGp1c3QgY2FsbHMgdGhhdCArCj4gZHJtX2RwX3Npbmtfc3Vw cG9ydHNfZHNjKCkuCj4gCj4gaW50ZWxfZHBfY29tcHV0ZV9icHAoKSBzaG91bGQgdXNlIHRoaXMg YXQgbGVhc3QsIGFuZCBwcm9iYWJseSBhIGZldwo+IG90aGVyIHBsYWNlcyBhcyB3ZWxsLgo+IAo+ ID4gKwo+ID4gKwkvKiBEU0Mgbm90IHN1cHBvcnRlZCBmb3IgRFNDIHNpbmsgQlBDIDwgOCAqLwo+ ID4gKwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQykg ewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQgZm9yIGxlc3MgdGhhbiA4YnBj XG4iKTsKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoaW50ZWxf ZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29t cHJlc3NlZF9icHAgPQo+ID4gKwkJCWRybV9lZHBfZHNjX3Npbmtfb3V0cHV0X2JwcChpbnRlbF9k cC0+ZHNjX2RwY2QpID4+IDQ7Cj4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9j b3VudCA9Cj4gPiArCQkJZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudChpbnRlbF9kcC0+ ZHNjX2RwY2QsCj4gPiArCQkJCQkJCXRydWUpOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJZHNjX21h eF9vdXRwdXRfYnBwID0KPiA+ICsJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAocGlwZV9j b25maWctPnBvcnRfY2xvY2ssCj4gPiArCQkJCQkJICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50 LAo+ID4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gKwkJCQkJCSAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKPiA+ICsJCWRzY19kcF9zbGljZV9jb3Vu dCA9Cj4gPiArCQkJaW50ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKPiA+ICsJ CQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPiArCQkJCQkJICAgICBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKPiA+ICsJCWlmICghKGRzY19tYXhfb3V0cHV0X2Jw cCAmJiBkc2NfZHBfc2xpY2VfY291bnQpKSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiQ29tcHJl c3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBvcnRlZFxuIik7Cj4gPiArCQkJcmV0dXJuIGZh bHNlOwo+ID4gKwkJfQo+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9i cHAgPSBkc2NfbWF4X291dHB1dF9icHAgPj4gNDsKPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLnNsaWNlX2NvdW50ID0gZHNjX2RwX3NsaWNlX2NvdW50Owo+ID4gKwl9Cj4gPiArCS8qCj4g PiArCSAqIFZEU0MgZW5naW5lIG9wZXJhdGVzIGF0IDEgUGl4ZWwgcGVyIGNsb2NrLCBzbyBpZiBw ZWFrIHBpeGVsIHJhdGUKPiA+ICsJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIENkY2xv Y2sgYW5kIGlmIHNsaWNlIGNvdW50IGlzIGV2ZW4KPiA+ICsJICogdGhlbiB3ZSBuZWVkIHRvIHVz ZSAyIFZEU0MgaW5zdGFuY2VzLgo+ID4gKwkgKi8KPiA+ICsJcGlwZV9jb25maWctPmRzY19wYXJh bXMuZHNjX3NwbGl0ID0gZmFsc2U7Cj4gPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr ID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gPiArCQlpZiAocGlwZV9jb25maWctPmRz Y19wYXJhbXMuc2xpY2VfY291bnQgPiAxKSB7Cj4gPiArCQkJcGlwZV9jb25maWctPmRzY19wYXJh bXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tN UygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNlc1xuIik7Cj4gPiAr CQkJcmV0dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCXBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gPiArCURSTV9ERUJVR19LTVMoIkRQ IERTQyBjb21wdXRlZCB3aXRoIElucHV0IEJwcCA9ICVkICIKPiA+ICsJCSAgICAgICJDb21wcmVz c2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCj4gPiArCQkgICAgICBwaXBlX2NvbmZp Zy0+cGlwZV9icHAsCj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVz c2VkX2JwcCwKPiA+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50 KTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBib29s Cj4gPiAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKPiA+ICB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsK PiA+ICAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7Cj4gPiAgCWludCBjb21tb25f bGVuOwo+ID4gKwlib29sIHJldCA9IGZhbHNlOwo+ID4gIAo+ID4gIAljb21tb25fbGVuID0gaW50 ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAo+ID4gIAkJCQkJCSAgICBpbnRl bF9kcC0+bWF4X2xpbmtfcmF0ZSk7Cj4gPiBAQCAtMjA1Niw3ICsyMTM2LDkgQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJ bGltaXRzLm1pbl9sYW5lX2NvdW50ID0gMTsKPiA+ICAJbGltaXRzLm1heF9sYW5lX2NvdW50ID0g aW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gIAo+ID4gLQlsaW1pdHMubWlu X2JwcCA9IDYgKiAzOwo+ID4gKwlsaW1pdHMubWluX2JwcCA9IChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDEwICYmCj4gPiArCQkJICBkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRz Y19kcGNkKSkgPwo+ID4gKwkJRFBfRFNDX01JTl9TVVBQT1JURURfQlBDICogMyA6IDYgKiAzOwo+ ID4gIAlsaW1pdHMubWF4X2JwcCA9IGludGVsX2RwX2NvbXB1dGVfYnBwKGludGVsX2RwLCBwaXBl X2NvbmZpZyk7Cj4gCj4gSG1tLiBUaGlzIG5vdyBhc3N1bWVzIHRoYXQgd2Ugd2lsbCBpbiBmYWN0 IHVzZSBEU0MuIEkgZ3Vlc3Mgd2UgY2FuIG9ubHkKPiBtYWtlIHRoYXQgYXNzdW1wdGlvbiB3aGVu IHdlJ3ZlIGRldGVybWluZWQgdGhhdCBEU0MgaXMgc3VwcG9ydGVkIGFuZCB0aGUKPiBtYXhfYnBw IGFsc28gYWxsb3dzIERTQy4KPiAKPiBTbyBzb21ldGhpbmcgbGlrZToKPiAKPiBtYXhfYnBwID0g aW50ZWxfZHBfY29tcHV0ZV9icHAoKTsKPiBpZiAoc3VwcG9ydHNfZHNjKCkgJiYgbWF4X2JwcCA+ PSBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMqMykKPiAJbWluX2JwcCA9IERQX0RTQ19NSU5fU1VQ UE9SVEVEX0JQQyAqIDM7Cj4gZWxzZQo+IAltaW5fYnBwID0gNiAqIDMKPiAKPiA+ICAKPiA+ICAJ aWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgJiYgaW50ZWxfZHAtPmVkcF9kcGNkWzBdIDwg RFBfRURQXzE0KSB7Cj4gPiBAQCAtMjA4MSw3ICsyMTYzLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9s aW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCSAgICAgIGlu dGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLm1heF9jbG9ja10sCj4gPiAgCQkgICAgICBsaW1p dHMubWF4X2JwcCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7Cj4gPiAgCj4gPiAtCWlmIChp bnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gPiArCWlmIChpbnRlbF9kcF9pc19lZHAoaW50 ZWxfZHApKQo+ID4gIAkJLyoKPiA+ICAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBuYXJyb3cu IGVEUCAxLjMgc2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKPiA+ICAJCSAqIHNlY3Rpb24gQS4xOiAi SXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWluaW11bSBudW1iZXIgb2YKPiA+IEBAIC0yMDkx LDI2ICsyMTczLDQ4IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xv Y2sgYW5kIGxhbmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCj4gPiAgCQkgKiBlYXJsaWVyLCBhbmQg ZmFzdCB2cy4gd2lkZSBpcyBpcnJlbGV2YW50Lgo+ID4gIAkJICovCj4gPiAtCQlpZiAoIWludGVs X2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPiAt CQkJCQkJICAgICAgICZsaW1pdHMpKQo+ID4gLQkJCXJldHVybiBmYWxzZTsKPiA+IC0JfSBlbHNl IHsKPiA+ICsJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9k cCwgcGlwZV9jb25maWcsCj4gPiArCQkJCQkJCSZsaW1pdHMpOwo+ID4gKwllbHNlCj4gPiAgCQkv KiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4gKi8KPiA+IC0JCWlmICghaW50ZWxfZHBfY29t cHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+IC0JCQkJCQkg ICAgICAgJmxpbWl0cykpCj4gPiArCQlyZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmln X3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ID4gKwkJCQkJCQkmbGltaXRzKTsKPiA+ICsK PiA+ICsJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWls YWJsZSBCVyAqLwo+ID4gKwlpZiAoIXJldCkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgcmVx dWlyZWQgTGluayByYXRlICVpIGRvZXMgbm90IGZpdCBhdmFpbGFibGUgJWlcbiIsCj4gPiArCQkJ ICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ ID4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiA+ICsJCQkgICAgICBpbnRl bF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJCSAg ICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiA+ICsKPiA+ICsJCWlmICghaW50ZWxfZHBf ZHNjX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ICsJCQkJCQkgJmxp bWl0cykpCj4gPiAgCQkJcmV0dXJuIGZhbHNlOwo+ID4gIAl9Cj4gPiAgCj4gPiAtCURSTV9ERUJV R19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ID4gLQkJICAgICAg cGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gLQkJ ICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiA+ICsJaWYgKHBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFu ZSBjb3VudCAlZCBjbG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCj4g PiArCQkJICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAo+ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKPiA+ICsJCQkgICAgICBw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCk7Cj4gPiAgCj4gPiAtCURSTV9E RUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCj4gPiAt CQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ss Cj4gPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCj4gPiAtCQkgICAgICBpbnRl bF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gLQkJCQkJICAg ICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGlu ayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiA+ICsJCQkgICAgICBpbnRlbF9k cF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPiArCQkJCQkJICAg ICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCksCj4gPiArCQkJICAgICAg aW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ICsJCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlE Uk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiA+ICsJ CQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss Cj4gPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiA+ICAKPiA+ICsJCURSTV9E RUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCj4gPiAr CQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr LAo+ID4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiA+ICsJCQkgICAgICBp bnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJ CSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiA+ICsJfQo+ID4gIAlyZXR1cm4gdHJ1 ZTsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMjE5NCw3ICsyMjk4LDkgQEAgaW50ZWxfZHBfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJaW50ZWxfY29u bl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4g PiAgCX0KPiA+ICAKPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlw ZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gKwlpbnRlbF9saW5rX2NvbXB1dGVf bV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwKPiA+ICsJCQkgICAgICAgcGlwZV9jb25maWctPmRz Y19wYXJhbXMuY29tcHJlc3NlZF9icHAsCj4gPiArCQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5l X2NvdW50LAo+ID4gIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gIAkJ CSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ICAJCQkgICAgICAgJnBpcGVfY29u ZmlnLT5kcF9tX24sCj4gPiBAQCAtMjIwMyw3ICsyMzA5LDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCWlmIChpbnRlbF9jb25u ZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlICE9IE5VTEwgJiYKPiA+ICAJCWRldl9wcml2LT5k cnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Cj4gPiAgCQkJcGlwZV9jb25maWct Pmhhc19kcnJzID0gdHJ1ZTsKPiA+IC0JCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29u ZmlnLT5waXBlX2JwcCwKPiA+ICsJCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmln LT5waXBlX2JwcCwgMCwKPiA+ICAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwK PiA+ICAJCQkJCSAgICAgICBpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlLT5j bG9jaywKPiA+ICAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiBpbmRleCA4YjcxZDY0ZWJkOWQuLmUwMmNhZWRk NDQzYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gQEAgLTkw LDcgKzkwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAtCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAo+ID4gKwlpbnRlbF9saW5rX2Nv bXB1dGVfbV9uKGJwcCwgMCwgbGFuZV9jb3VudCwKPiA+ICAJCQkgICAgICAgYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jaywKPiA+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4g PiAgCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAo+ID4gLS0gCj4gPiAyLjE4LjAKPiAK PiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK