From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 30 Oct 2018 13:41:56 +0200 Message-ID: <20181030114156.GS9144@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@intel.com> <20181029203039.GO9144@intel.com> <20181029221251.GD27040@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: <20181029221251.GD27040@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjksIDIwMTggYXQgMDM6MTI6NTFQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBNb24sIE9jdCAyOSwgMjAxOCBhdCAxMDozMDozOVBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE9jdCAyNCwgMjAxOCBhdCAwMzoyODoyNVBNIC0w NzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJs ZSwgY29tcHJlc3NlZCBicHAsIHNsaWNlIGNvdW50IGFuZAo+ID4gPiBkc2Nfc3BsaXQgYXJlIGFk ZGVkIHRvIHRoZSBpbnRlbF9jcnRjX3N0YXRlLiBUaGVzZSBwYXJhbWV0ZXJzCj4gPiA+IGFyZSBz ZXQgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBtb2RlIGFuZCBhdmFpbGFibGUgbGluayBwYXJhbWV0 ZXJzCj4gPiA+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVjayBw aGFzZS4KPiA+ID4gVGhlc2UgdmFsdWVzIGFyZSB0aGVuIGxhdGVyIHVzZWQgdG8gcG9wdWxhdGUg dGhlIHJlbWFpbmluZyBEU0MKPiA+ID4gYW5kIFJDIHBhcmFtZXRlcnMgYmVmb3JlIGVuYmFsaW5n IERTQyBpbiBhdG9taWMgY29tbWl0Lgo+ID4gPiAKPiA+ID4gdjk6Cj4gPiA+ICogUmViYXNlIG9u IHRvcCBvZiBkcm0tdGlwIHRoYXQgbm93IHVzZXMgZmFzdF9uYXJyb3cgY29uZmlnCj4gPiA+IGZv ciBlZHAgKE1hbmFzaSkKPiA+ID4gdjg6Cj4gPiA+ICogQ2hlY2sgZm9yIERTQyBicGMgbm90IDAg KG1hbmFzaSkKPiA+ID4gCj4gPiA+IHY3Ogo+ID4gPiAqIEZpeCBpbmRlbnRhdGlvbiBpbiBjb21w dXRlX21fbiAoTWFuYXNpKQo+ID4gPiAKPiA+ID4gdjYgKEZyb20gR2F1cmF2KToKPiA+ID4gKiBS ZW1vdmUgZnVuY3Rpb24gY2FsbCBvZiBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoKSBhbmQK PiA+ID4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRoZSBwYXRjaCB3 aGVyZQo+ID4gPiBpdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxhdGlvbiB3YXJuaW5nIChHYXVy YXYpCj4gPiA+IAo+ID4gPiB2NToKPiA+ID4gQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2NydGNf c3RhdGUgKE1hbmFzaSkKPiA+ID4gCj4gPiA+IHY0Ogo+ID4gPiAqIFJlYmFzZSBvbiByZWZhY3Rv cmluZyBvZiBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyBvbiB0aXAgKE1hbmFzaSkKPiA+ID4gKiBB ZGQgYSBjb21tZW50IHdoeSB3ZSBuZWVkIHRvIGNoZWNrIFBTUiB3aGlsZSBlbmFibGluZyBEU0Mg KEdhdXJhdikKPiA+ID4gCj4gPiA+IHYzOgo+ID4gPiAqIENoZWNrIFBQUiA+IG1heF9jZGNsb2Nr IHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzIChWaWxsZSkKPiA+ID4gCj4gPiA+IHYyOgo+ID4gPiAq IEFkZCBpZi1lbHNlIGZvciBlRFAvRFAgKEdhdXJhdikKPiA+ID4gCj4gPiA+IENjOiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiBDYzogVmlsbGUgU3lyamFs YSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBBbnVzaGEgU3JpdmF0 c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiA+IENjOiBHYXVyYXYgSyBTaW5naCA8 Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2 YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gPiBSZXZpZXdlZC1ieTogQW51c2hh IFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+ID4gPiBBY2tlZC1ieTogSmFu aSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMjAgKysrLQo+ID4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAzICstCj4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAxNzAgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgfCAgIDIg Ky0KPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9u cygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBp bmRleCBmZTA0NWFiYjY0NzIuLjE4NzM3YmQ4MmI2OCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBAQCAtNjQzNCw3ICs2NDM0LDcgQEAgc3RhdGlj IGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCj4gPiA+ICAKPiA+ID4gIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKPiA+ ID4gIAo+ID4gPiAtCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBw LCBsYW5lLCBmZGlfZG90Y2xvY2ssCj4gPiA+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBl X2NvbmZpZy0+cGlwZV9icHAsIDAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ID4gIAkJCSAgICAg ICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24sIGZhbHNlKTsKPiA+ID4gIAo+ID4gPiAg CXJldCA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhkZXYsIGludGVsX2NydGMtPnBpcGUsIHBp cGVfY29uZmlnKTsKPiA+ID4gQEAgLTY2NzEsMTcgKzY2NzEsMjUgQEAgc3RhdGljIHZvaWQgY29t cHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAo+ID4gPiAgfQo+ID4gPiAg Cj4gPiA+ICB2b2lkCj4gPiA+IC1pbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9w aXhlbCwgaW50IG5sYW5lcywKPiA+ID4gK2ludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNf cGVyX3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiA+ID4gKwkJICAgICAgIGludCBu bGFuZXMsCj4gPiA+ICAJCSAgICAgICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ ID4gPiAgCQkgICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCj4gPiA+ICAJCSAgICAg ICBib29sIGNvbnN0YW50X24pCj4gPiA+ICB7Cj4gPiA+ICAJbV9uLT50dSA9IDY0Owo+ID4gPiAg Cj4gPiA+IC0JY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKPiA+ID4g LQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gPiAtCQkgICAgJm1fbi0+Z21jaF9t LCAmbV9uLT5nbWNoX24sCj4gPiA+IC0JCSAgICBjb25zdGFudF9uKTsKPiA+ID4gKwkvKiBGb3Ig RFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQICovCj4gPiA+ICsJ aWYgKGNvbXByZXNzZWRfYnBwKQo+ID4gPiArCQljb21wdXRlX21fbihjb21wcmVzc2VkX2JwcCAq IHBpeGVsX2Nsb2NrLAo+ID4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4g PiArCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4gPiArCQkJICAgIGNvbnN0 YW50X24pOwo+ID4gPiArCWVsc2UKPiA+ID4gKwkJY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwg KiBwaXhlbF9jbG9jaywKPiA+ID4gKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiA+ ID4gKwkJCSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ID4gKwkJCSAgICBjb25z dGFudF9uKTsKPiA+ID4gIAo+ID4gPiAgCWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5rX2Ns b2NrLAo+ID4gPiAgCQkgICAgJm1fbi0+bGlua19tLCAmbV9uLT5saW5rX24sCj4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+ID4gaW5kZXggNWQ1MGRlY2JjYmI1Li5iMGIy M2UxZTkzOTIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgK PiA+ID4gQEAgLTQwNyw3ICs0MDcsOCBAQCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gewo+ID4gPiAg CSAgICAgKF9faSkrKykgXAo+ID4gPiAgCQlmb3JfZWFjaF9pZihwbGFuZSkKPiA+ID4gIAo+ID4g PiAtdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIGludCBubGFuZXMsCj4gPiA+ ICt2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwgdWludDE2X3QgY29tcHJlc3Nl ZF9icHAsCj4gPiA+ICsJCQkgICAgaW50IG5sYW5lcywKPiA+ID4gIAkJCSAgICBpbnQgcGl4ZWxf Y2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ID4gPiAgCQkJICAgIHN0cnVjdCBpbnRlbF9saW5rX21f biAqbV9uLAo+ID4gPiAgCQkJICAgIGJvb2wgY29uc3RhbnRfbik7Cj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ID4gPiBpbmRleCA2ZjY2YTM4YmEwYjIuLmE4OGY5MzcxZGQzMiAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IEBAIC00Nyw2ICs0Nyw4IEBACj4g PiA+ICAKPiA+ID4gIC8qIERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIgRklGT3MgZWFjaCBvZiA2 NDAgeCA2IGJ5dGVzICovCj4gPiA+ICAjZGVmaW5lIERQX0RTQ19NQVhfU01BTExfSk9JTkVSX1JB TV9CVUZGRVIJNjE0NDAKPiA+ID4gKyNkZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4 Cj4gPiA+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQwkJMTAKPiA+ID4gIAo+ID4g PiAgLyogRFAgRFNDIHRocm91Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNlIGNvdW50IGNhbGN1 bGF0aW9ucyBLUGl4ZWxzL3MgKi8KPiA+ID4gICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxfUkFU RQkJCTI3MjAwMDAKPiA+ID4gQEAgLTE5MjQsNiArMTkyNiwxNiBAQCBzdGF0aWMgaW50IGludGVs X2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJCX0KPiA+ ID4gIAl9Cj4gPiA+ICAKPiA+ID4gKwkvKiBJZiBEU0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1h eCB2YWx1ZSByZXBvcnRlZCBieSBwYW5lbCAqLwo+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDEwICYmCj4gPiA+ICsJICAgIGRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9k cC0+ZHNjX2RwY2QpKSB7Cj4gPiA+ICsJCWJwYyA9IG1pbl90KHU4LAo+ID4gPiArCQkJICAgIGRy bV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNkKSwKPiA+ID4g KwkJCSAgICBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMpOwo+ID4gPiArCQlpZiAoYnBjKQo+ID4g PiArCQkJYnBwID0gMyAqIGJwYzsKPiA+IAo+ID4gVGhpcyBzZWVtcyBsaWtlIGl0IHNob3VsZCBi ZSAnYnBwID0gbWluKGJwcCwgMypicGMpJy4gCj4gPiBPdGhlcndpc2Ugd2UgbWF5IGJ1bXAgdGhl IGJwcCBhYm92ZSBhIGxpbWl0IHdlIGFscmVhZHkgZXN0YWJsaXNoZWQgZWFybGllci4KPiA+Cj4g Cj4gWWVzIHdpbGwgbWFrZSB0aGlzIGNoYW5nZS4KPiAgCj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ ICAJcmV0dXJuIGJwcDsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBAQCAtMTk4NCwxNCArMTk5Niwx MSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiA+ID4gIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tj bG9ja107Cj4gPiA+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlu a19jbG9jaywKPiA+ID4gIAkJCQkJCQkJICAgIGxhbmVfY291bnQpOwo+ID4gPiAtCj4gPiA+IC0J CQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gPiA+IC0JCQkJCXBpcGVfY29uZmln LT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ID4gLQkJCQkJcGlwZV9jb25maWctPnBpcGVf YnBwID0gYnBwOwo+ID4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xv Y2s7Cj4gPiA+IC0KPiA+ID4gKwkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291 bnQ7Cj4gPiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ID4gPiArCQkJCXBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiA+ID4gKwkJCQlpZiAobW9kZV9y YXRlIDw9IGxpbmtfYXZhaWwpCj4gPiA+ICAJCQkJCXJldHVybiB0cnVlOwo+ID4gCj4gPiBXaHkg ZG8gd2UgbmVlZCB0byBhc3NpZ24gdGhlc2UgaWYgd2UgZG9uJ3QgYWNjZXB0IHRoZSBjb25maWd1 cmF0aW9uPwo+IAo+IFdlIG5lZWQgdG8gYXNzaWduIHRoZW0gYmVjYXVzZSBpbiBjYXNlIG9mIGZh aWx1cmUsIHdlIHVzZSB0aGVtIHRvIHRoZW4gY29uZmlndXJlIERTQyBwYXJhbWV0ZXJzCj4gaW4g aW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKCkuCgpXaGF0IHlvdSBhcmUgZG9pbmcgaXMgbm93 IGlzIGVmZmVjdGl2ZWx5OgpwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IG1heF9sYW5lczsKcGlw ZV9jb25maWctPnBpcGVfYnBwID0gbWluX2JwcDsKcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBt YXhfY2xvY2s7CgpTbyBtaWdodCBhcyB3ZWxsIGRvIHRoYXQgZXhwbGljaXRseSBpbiBkc2NfY29t cHV0ZV9jb25maWcoKSB0aGVuLgpOb3Qgc3VyZSB0aGF0IG1ha2VzIHNlbnNlIHRob3VnaC4gTWF5 YmUgd2UgRFNDIHdlIGNhbiBtYWtlIGR1ZQp3aXRoIGEgc2xvd2VyL25hcnJvd2VyIGxpbms/IFNv IHdlIG1pZ2h0IHdhbnQgdG8gaXRlcmF0ZSB0aGUKcG9zc2libGUgY29uZmlndXJhdGlvbnMgYWdh aW4gd2l0aCBkc2MuCgo+IFByZXZpb3VzbHkgd2Ugd2VyZSBqdXN0IHJldHVybmluZyBhIGZhaWx1 cmUgaWYgdGhpcyBmYWlsZWQgYW5kIHNvIHdlIG5lZWQgbm90IHNzaWduIHRoZW0uIEJ1dCBub3cK PiBpbiBjYXNlIHRoaXMgZmFpbHMsIHdlIHRyeSB0aGUgRFNDIGNvbXB1dGUgY29uZmlnLgo+IAo+ ID4gCj4gPiA+IC0JCQkJfQo+ID4gPiAgCQkJfQo+ID4gPiAgCQl9Cj4gPiA+ICAJfQo+ID4gPiBA QCAtMjAyMCwxNCArMjAyOSwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxf ZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gPiA+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2Rw X21heF9kYXRhX3JhdGUobGlua19jbG9jaywKPiA+ID4gIAkJCQkJCQkJICAgIGxhbmVfY291bnQp Owo+ID4gPiAtCj4gPiA+IC0JCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gPiA+ IC0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ID4gLQkJCQkJ cGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ID4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cG9y dF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gPiA+IC0KPiA+ID4gKwkJCQlwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0g YnBwOwo+ID4gPiArCQkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiA+ ID4gKwkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCj4gPiA+ICAJCQkJCXJldHVybiB0 cnVlOwo+ID4gPiAtCQkJCX0KPiA+ID4gIAkJCX0KPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4g QEAgLTIwMzUsMTQgKzIwNDEsODggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0 KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gPiAg fQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gKwkJCQkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gPiArCQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRz ICpsaW1pdHMpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4g PiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0YyktPnBpcGU7Cj4gPiA+ICsJdTE2IGRzY19tYXhf b3V0cHV0X2JwcCA9IDA7Cj4gPiA+ICsJdTggZHNjX2RwX3NsaWNlX2NvdW50ID0gMDsKPiA+ID4g Kwo+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAgfHwKPiA+ID4gKwkgICAgIWRy bV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKQo+ID4gPiArCQlyZXR1 cm4gZmFsc2U7Cj4gPiA+ICsKPiA+ID4gKwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0ZWQgb24gUGlw ZSBCIGFuZCBDICovCj4gPiA+ICsJaWYgKHBpcGUgPT0gUElQRV9BICYmICFpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKQo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiAKPiA+IERvIHdlIG1lYW4g J3RyYW5zY29kZXIgPT0gRURQIHx8IHRyYW5zY29kZXIgPT0gQiB8fCB0cmFuc2NvZGVyID09IEMn ID8KPiA+IE9yIG1heWJlICd0cmFuc2NvZGVyICE9IEEnIGZvciBzaG9ydC4gSSBndWVzcyB0aGlz IHdpbGwgbmVlZCB0byBhZGp1c3RlZAo+ID4gZm9yIHRoZSBuZXh0IHBsYXRmb3JtIGFueXdheSBz byBtYWtpbmcgdGhlIGFzc3VtcHRpb24gdGhhdCB0cmFuc2NvZGVyIEEKPiA+IGlzIHRoZSBvbmx5 IG9uZSB0aGF0IGNhbid0IGRvIERTQyBpcyBmaW5lLgo+IAo+IFllcyB0aGUgbW9kZSBJIGFtIHRy eWluZyB0byByZWplY3QgaXMgaW4gY2FzZSBvZiBhIE5VQywgd2hlcmUgdGhlcmUgaXMgbm8gZWRw LCB0aGUgZmlyc3QKPiBEUCBjb25uZWN0aW9uIHdpbGwgdXNlIFBpcGUgQSBhbmQgdHJhbnNjb2Rl ciBBIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgRFNDLiBTbyByZWplY3QgaXQuCj4gU28geWVhIEkg Z3Vlc3MgSSBjb3VsZCBqdXN0IGNoZWNrIGZvciB0cmFuc2NvZGVyID09IEEgLCB0aGVuIHJlamVj dC4KPiAKPiA+IAo+ID4gVGhpcyB3aG9sZSB0aGluZyBzZWVtcyBsaWtlIGEgZ29vZCBoZWxwZXIg ZnVuY3Rpb24uCj4gPiBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKCkgb3Igc29tZXRoaW5n IGxpa2UgdGhhdC4gQW5kIHRoZW4gd2UKPiA+IGNvdWxkIGhhdmUgaW50ZWxfZHBfc3VwcG9ydHNf ZHNjKCkgd2hpY2gganVzdCBjYWxscyB0aGF0ICsKPiA+IGRybV9kcF9zaW5rX3N1cHBvcnRzX2Rz YygpLgo+ID4gCj4gPiBpbnRlbF9kcF9jb21wdXRlX2JwcCgpIHNob3VsZCB1c2UgdGhpcyBhdCBs ZWFzdCwgYW5kIHByb2JhYmx5IGEgZmV3Cj4gPiBvdGhlciBwbGFjZXMgYXMgd2VsbC4KPiA+IAo+ ID4gPiArCj4gPiA+ICsJLyogRFNDIG5vdCBzdXBwb3J0ZWQgZm9yIERTQyBzaW5rIEJQQyA8IDgg Ki8KPiA+ID4gKwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19NSU5fU1VQUE9SVEVE X0JQQykgewo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0 aGFuIDhicGNcbiIpOwo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsJfQo+ID4gPiArCj4g PiA+ICsJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKPiA+ID4gKwkJcGlwZV9jb25m aWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPQo+ID4gPiArCQkJZHJtX2VkcF9kc2Nfc2lu a19vdXRwdXRfYnBwKGludGVsX2RwLT5kc2NfZHBjZCkgPj4gNDsKPiA+ID4gKwkJcGlwZV9jb25m aWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPQo+ID4gPiArCQkJZHJtX2RwX2RzY19zaW5rX21h eF9zbGljZV9jb3VudChpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gPiA+ICsJCQkJCQkJdHJ1ZSk7Cj4g PiA+ICsJfSBlbHNlIHsKPiA+ID4gKwkJZHNjX21heF9vdXRwdXRfYnBwID0KPiA+ID4gKwkJCWlu dGVsX2RwX2RzY19nZXRfb3V0cHV0X2JwcChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ID4g KwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiA+ID4gKwkJCQkJCSAgICBhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gPiArCQkJCQkJICAgIGFkanVzdGVkX21vZGUtPmNy dGNfaGRpc3BsYXkpOwo+ID4gPiArCQlkc2NfZHBfc2xpY2VfY291bnQgPQo+ID4gPiArCQkJaW50 ZWxfZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKPiA+ID4gKwkJCQkJCSAgICAgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ID4gKwkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19oZGlzcGxheSk7Cj4gPiA+ICsJCWlmICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2Nf ZHBfc2xpY2VfY291bnQpKSB7Cj4gPiA+ICsJCQlEUk1fREVCVUdfS01TKCJDb21wcmVzc2VkIEJQ UC9TbGljZSBDb3VudCBub3Qgc3VwcG9ydGVkXG4iKTsKPiA+ID4gKwkJCXJldHVybiBmYWxzZTsK PiA+ID4gKwkJfQo+ID4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2Jw cCA9IGRzY19tYXhfb3V0cHV0X2JwcCA+PiA0Owo+ID4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3Bh cmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsKPiA+ID4gKwl9Cj4gPiA+ICsJ LyoKPiA+ID4gKwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywg c28gaWYgcGVhayBwaXhlbCByYXRlCj4gPiA+ICsJICogaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhp bXVtIENkY2xvY2sgYW5kIGlmIHNsaWNlIGNvdW50IGlzIGV2ZW4KPiA+ID4gKwkgKiB0aGVuIHdl IG5lZWQgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMuCj4gPiA+ICsJICovCj4gPiA+ICsJcGlwZV9j b25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gZmFsc2U7Cj4gPiA+ICsJaWYgKGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2sgPiBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsKPiA+ID4gKwkJ aWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID4gMSkgewo+ID4gPiArCQkJ cGlwZV9jb25maWctPmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiA+ID4gKwkJfSBlbHNl IHsKPiA+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNhbm5vdCBzcGxpdCBzdHJlYW0gdG8gdXNlIDIg VkRTQyBpbnN0YW5jZXNcbiIpOwo+ID4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCQl9Cj4g PiA+ICsJfQo+ID4gPiArCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJs ZSA9IHRydWU7Cj4gPiA+ICsJRFJNX0RFQlVHX0tNUygiRFAgRFNDIGNvbXB1dGVkIHdpdGggSW5w dXQgQnBwID0gJWQgIgo+ID4gPiArCQkgICAgICAiQ29tcHJlc3NlZCBCcHAgPSAlZCBTbGljZSBD b3VudCA9ICVkXG4iLAo+ID4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gPiA+ ICsJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAo+ID4gPiAr CQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCk7Cj4gPiA+ICsKPiA+ ID4gKwlyZXR1cm4gdHJ1ZTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIGJvb2wKPiA+ ID4gIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKPiA+ID4gIHsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4g PiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXIt PmJhc2UpOwo+ID4gPiAgCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgbGltaXRzOwo+ID4gPiAg CWludCBjb21tb25fbGVuOwo+ID4gPiArCWJvb2wgcmV0ID0gZmFsc2U7Cj4gPiA+ICAKPiA+ID4g IAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAo+ ID4gPiAgCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKPiA+ID4gQEAgLTIwNTYs NyArMjEzNiw5IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gPiA+ICAJbGltaXRzLm1pbl9sYW5lX2NvdW50ID0gMTsKPiA+ID4g IAlsaW1pdHMubWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9k cCk7Cj4gPiA+ICAKPiA+ID4gLQlsaW1pdHMubWluX2JwcCA9IDYgKiAzOwo+ID4gPiArCWxpbWl0 cy5taW5fYnBwID0gKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgJiYKPiA+ID4gKwkJCSAgZHJt X2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpID8KPiA+ID4gKwkJRFBf RFNDX01JTl9TVVBQT1JURURfQlBDICogMyA6IDYgKiAzOwo+ID4gPiAgCWxpbWl0cy5tYXhfYnBw ID0gaW50ZWxfZHBfY29tcHV0ZV9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKPiA+IAo+ID4g SG1tLiBUaGlzIG5vdyBhc3N1bWVzIHRoYXQgd2Ugd2lsbCBpbiBmYWN0IHVzZSBEU0MuIEkgZ3Vl c3Mgd2UgY2FuIG9ubHkKPiA+IG1ha2UgdGhhdCBhc3N1bXB0aW9uIHdoZW4gd2UndmUgZGV0ZXJt aW5lZCB0aGF0IERTQyBpcyBzdXBwb3J0ZWQgYW5kIHRoZQo+ID4gbWF4X2JwcCBhbHNvIGFsbG93 cyBEU0MuCj4gCj4gQnV0IHRoZSBpbnRlbF9kcF9jb21wdXRlX2JwcCBkb2VzIGNoZWNrIGZvciBz dXBwb3J0c19kc2Mgc28gdGhhdAo+IHNob3VsZCBiZSBmaW5lLiBCdXQgZm9yIG1pbl9icHAgeWVz IEkgY291bGQgdXNlIHRoZSBiZWxvdyBsb2dpYy4KCm1pbl9icHAgaXMgd2hhdCBJJ20gdGFsa2lu ZyBhYm91dCBoZXJlLiBXZSBjYW4ndCBzZXQgaXQgYXNzdW1pbmcgRFNDCndpbGwgYmUgdXNlZCBp ZiB0aGUgbWF4X2JwcCBpcyBhbHJlYWR5IGJlbG93IHRoZSBEU0MgbWluaW11bS4KCj4gQW5kIG1h eSBiZSBtb3ZlIHRoYXQgdG8gYSBoZWxwZXI/CgpJcyB0aGVyZSBzb21lIG90aGVyIHVzZSBmb3Ig aXQ/IEknZCByYXRoZXIga2VlcCB0aGlzICJwb3B1bGF0ZSB0aGUKbGltaXRzIiB0aGluZyBpbiBv bmUgc3BvdC4KCj4gCj4gTWFuYXNpCj4gCj4gCj4gPiAKPiA+IFNvIHNvbWV0aGluZyBsaWtlOgo+ ID4gCj4gPiBtYXhfYnBwID0gaW50ZWxfZHBfY29tcHV0ZV9icHAoKTsKPiA+IGlmIChzdXBwb3J0 c19kc2MoKSAmJiBtYXhfYnBwID49IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyozKQo+ID4gCW1p bl9icHAgPSBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMgKiAzOwo+ID4gZWxzZQo+ID4gCW1pbl9i cHAgPSA2ICogMwo+ID4gCj4gPiA+ICAKPiA+ID4gIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVs X2RwKSAmJiBpbnRlbF9kcC0+ZWRwX2RwY2RbMF0gPCBEUF9FRFBfMTQpIHsKPiA+ID4gQEAgLTIw ODEsNyArMjE2Myw3IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ICAJCSAgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXNb bGltaXRzLm1heF9jbG9ja10sCj4gPiA+ICAJCSAgICAgIGxpbWl0cy5tYXhfYnBwLCBhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrKTsKPiA+ID4gIAo+ID4gPiAtCWlmIChpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKSB7Cj4gPiA+ICsJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gPiA+ ICAJCS8qCj4gPiA+ICAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBuYXJyb3cuIGVEUCAxLjMg c2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKPiA+ID4gIAkJICogc2VjdGlvbiBBLjE6ICJJdCBpcyBy ZWNvbW1lbmRlZCB0aGF0IHRoZSBtaW5pbXVtIG51bWJlciBvZgo+ID4gPiBAQCAtMjA5MSwyNiAr MjE3Myw0OCBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gPiAgCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xvY2sg YW5kIGxhbmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCj4gPiA+ICAJCSAqIGVhcmxpZXIsIGFuZCBm YXN0IHZzLiB3aWRlIGlzIGlycmVsZXZhbnQuCj4gPiA+ICAJCSAqLwo+ID4gPiAtCQlpZiAoIWlu dGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4g PiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiA+IC0JCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ IC0JfSBlbHNlIHsKPiA+ID4gKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19m YXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ID4gKwkJCQkJCQkmbGltaXRzKTsKPiA+ID4g KwllbHNlCj4gPiA+ICAJCS8qIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiAqLwo+ID4gPiAt CQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9j b25maWcsCj4gPiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiA+ICsJCXJldCA9IGludGVs X2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPiA+ ICsJCQkJCQkJJmxpbWl0cyk7Cj4gPiA+ICsKPiA+ID4gKwkvKiBlbmFibGUgY29tcHJlc3Npb24g aWYgdGhlIG1vZGUgZG9lc24ndCBmaXQgYXZhaWxhYmxlIEJXICovCj4gPiA+ICsJaWYgKCFyZXQp IHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgcmVxdWlyZWQgTGluayByYXRlICVpIGRvZXMg bm90IGZpdCBhdmFpbGFibGUgJWlcbiIsCj4gPiA+ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3Jl cXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPiA+ICsJCQkJCQkgICAgIHBpcGVf Y29uZmlnLT5waXBlX2JwcCksCj4gPiA+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRl KHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCkpOwo+ID4gPiArCj4gPiA+ICsJCWlmICghaW50ZWxfZHBfZHNjX2NvbXB1dGVf Y29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ID4gKwkJCQkJCSAmbGltaXRzKSkKPiA+ ID4gIAkJCXJldHVybiBmYWxzZTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gLQlEUk1fREVCVUdf S01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiA+ID4gLQkJICAgICAg cGlwZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiAt CQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gPiArCWlmIChwaXBlX2NvbmZpZy0+ ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygi RFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRc biIsCj4gPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWct PnBvcnRfY2xvY2ssCj4gPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gPiA+ ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCk7Cj4gPiA+ ICAKPiA+ID4gLQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxh YmxlICVpXG4iLAo+ID4gPiAtCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2ssCj4gPiA+IC0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBw KSwKPiA+ID4gLQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9y dF9jbG9jaywKPiA+ID4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4g PiArCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVp XG4iLAo+ID4gPiArCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLAo+ID4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCksCj4gPiA+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCkpOwo+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxh bmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ID4gPiArCQkJICAgICAgcGlwZV9jb25m aWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiArCQkJICAgICAg cGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiA+ID4gIAo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJE UCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ID4gPiArCQkJICAgICAg aW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gPiAr CQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ID4gPiArCQkJICAgICAgaW50ZWxf ZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ID4gKwkJCQkJCSAg ICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiA+ID4gKwl9Cj4gPiA+ICAJcmV0dXJuIHRy dWU7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gQEAgLTIxOTQsNyArMjI5OCw5IEBAIGludGVsX2Rw X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCQkJ aW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJ TUlURUQ7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihw aXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiArCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gPiArCQkJICAg ICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAo+ID4gPiArCQkJICAg ICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiAgCQkJICAgICAgIGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssCj4gPiA+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss Cj4gPiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiA+IEBAIC0yMjAzLDcg KzIzMDksNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ID4gIAlpZiAoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9k ZSAhPSBOVUxMICYmCj4gPiA+ICAJCWRldl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJS U19TVVBQT1JUKSB7Cj4gPiA+ICAJCQlwaXBlX2NvbmZpZy0+aGFzX2RycnMgPSB0cnVlOwo+ID4g PiAtCQkJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gPiA+ ICsJCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwKPiA+ ID4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiAgCQkJCQkgICAg ICAgaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZS0+Y2xvY2ssCj4gPiA+ICAJ CQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMKPiA+ID4gaW5kZXggOGI3MWQ2NGViZDlkLi5lMDJjYWVkZDQ0M2MgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+IEBAIC05MCw3 ICs5MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gIAo+ID4g PiAtCWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAo+ID4gPiArCWludGVs X2xpbmtfY29tcHV0ZV9tX24oYnBwLCAwLCBsYW5lX2NvdW50LAo+ID4gPiAgCQkJICAgICAgIGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPiA+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCj4gPiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiA+IC0t IAo+ID4gPiAyLjE4LjAKPiA+IAo+ID4gLS0gCj4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+IEludGVs CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=