From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 23/42] drm/i915: Pass old state to encoder->(post_)disable. Date: Tue, 12 May 2015 11:16:13 +0200 Message-ID: <20150512091613.GJ15256@phenom.ffwll.local> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431354318-11995-24-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by gabe.freedesktop.org (Postfix) with ESMTP id 847B86E062 for ; Tue, 12 May 2015 02:13:53 -0700 (PDT) Received: by wicmc15 with SMTP id mc15so48583154wic.1 for ; Tue, 12 May 2015 02:13:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1431354318-11995-24-git-send-email-maarten.lankhorst@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: Maarten Lankhorst Cc: Ander Conselvan de Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMTEsIDIwMTUgYXQgMDQ6MjQ6NTlQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyByZW1vdmVzIGEgbG90IG9mIHVzZXJzIGZvciBjcnRjLT5jb25maWcu Cj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4KCkNoYW5naW5nIGNvbm5lY3Rvci0+c2V0X2RwbXMgc2hvdWxkIGJl IGEgc2VwYXJhdGUgcGF0Y2guIE90aGVyd2lzZSBzYW1lCmNvbW1lbnQgYXMgd2l0aCB0aGUgcHJl dmlvdXMgcGF0Y2ggYWJvdXQgdG91Y2hpbmcgX2VuYWJsZSBmdW5jdGlvbnMuCi1EYW5pZWwKCgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyAgICAgfCAyMSArKysrKyst LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8IDc4ICsrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgfCAzNiArKysrKysrKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICAgICAgfCA0OSArKysrKysrKystLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8ICA5ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8IDEzICsrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYyAgICAgfCAxMSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kdm8uYyAgICAgfCAxNSArKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYyAgICB8IDIwICsrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRz LmMgICAgfCAxMSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAg fCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgfCAgMyArLQo+ ICAxMiBmaWxlcyBjaGFuZ2VkLCAxNTAgaW5zZXJ0aW9ucygrKSwgMTE5IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gaW5kZXggOTNiYjUxNTlkMDkzLi5kOTRmNmNi OTFkNDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+IEBAIC0xNTIsMTMgKzE1Miwx MyBAQCBzdGF0aWMgdm9pZCBoc3dfY3J0X3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gIAo+ICAvKiBOb3RlOiBUaGUgY2FsbGVyIGlzIHJlcXVpcmVkIHRvIGZpbHRl ciBvdXQgZHBtcyBtb2RlcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZQo+ICAgKiBwbGF0Zm9ybS4gKi8K PiAtc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLCBpbnQgbW9kZSkKPiArc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1zKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSwKPiArCQkJICAgICAgIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydCAqY3J0ID0g aW50ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlOwo+ICAJdTMyIGFkcGE7Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDUp Cj4gQEAgLTIwMiwxMyArMjAyLDE2IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9zZXRfZHBtcyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUpCj4gIAlJOTE1X1dSSVRFKGNy dC0+YWRwYV9yZWcsIGFkcGEpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X2NydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxf ZGlzYWJsZV9jcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+IC0JaW50ZWxfY3J0X3Nl dF9kcG1zKGVuY29kZXIsIERSTV9NT0RFX0RQTVNfT0ZGKTsKPiArCWludGVsX2NydF9zZXRfZHBt cyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRiwKPiArCQkJICAgJnBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUpOwo+ICB9Cj4gIAo+ICAKPiAtc3RhdGljIHZvaWQgaHN3X2NydF9wb3N0 X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGhz d19jcnRfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMjI0LDggKzIyNywxMCBA QCBzdGF0aWMgdm9pZCBoc3dfY3J0X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2NydChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IGludGVsX2NydCAqY3J0ID0gaW50ZWxfZW5j b2Rlcl90b19jcnQoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVy LT5iYXNlLmNydGM7Cj4gIAo+IC0JaW50ZWxfY3J0X3NldF9kcG1zKGVuY29kZXIsIGNydC0+Y29u bmVjdG9yLT5iYXNlLmRwbXMpOwo+ICsJaW50ZWxfY3J0X3NldF9kcG1zKGVuY29kZXIsIGNydC0+ Y29ubmVjdG9yLT5iYXNlLmRwbXMsCj4gKwkJCSAgICZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9k ZSk7Cj4gIH0KPiAgCj4gIC8qIFNwZWNpYWwgZHBtcyBmdW5jdGlvbiB0byBzdXBwb3J0IGNsb25p bmcgYmV0d2VlbiBkdm8vc2R2by9jcnQuICovCj4gQEAgLTI2NSw5ICsyNzAsOSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9jcnRfZHBtcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQg bW9kZSkKPiAgCQkvKiBGcm9tIG9mZiB0byBvbiwgZW5hYmxlIHRoZSBwaXBlIGZpcnN0LiAqLwo+ ICAJCWludGVsX2NydGNfdXBkYXRlX2RwbXMoY3J0Yyk7Cj4gIAo+IC0JCWludGVsX2NydF9zZXRf ZHBtcyhlbmNvZGVyLCBtb2RlKTsKPiArCQlpbnRlbF9jcnRfc2V0X2RwbXMoZW5jb2RlciwgbW9k ZSwgJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlKTsKPiAgCX0gZWxzZSB7Cj4gLQkJaW50ZWxf Y3J0X3NldF9kcG1zKGVuY29kZXIsIG1vZGUpOwo+ICsJCWludGVsX2NydF9zZXRfZHBtcyhlbmNv ZGVyLCBtb2RlLCAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGUpOwo+ICAKPiAgCQlpbnRlbF9j cnRjX3VwZGF0ZV9kcG1zKGNydGMpOwo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g aW5kZXggODA3ZTE1ZDQxYTFiLi5jNWE5ZTM2ZDZhMGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+IEBAIC00MzAsNyArNDMwLDggQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3Ry dWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4gKwkJ dG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gIAl1MzIgdGVtcCwgaSwgcnhfY3Rs X3ZhbDsKPiAgCj4gIAkvKiBTZXQgdGhlIEZESV9SWF9NSVNDIHB3cmRuIGxhbmVzIGFuZCB0aGUg MiB3b3JrYXJvdW5kcyBsaXN0ZWQgYXQgdGhlCj4gQEAgLTQ0Nyw3ICs0NDgsNyBAQCB2b2lkIGhz d19mZGlfbGlua190cmFpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkvKiBFbmFibGUgdGhl IFBDSCBSZWNlaXZlciBGREkgUExMICovCj4gIAlyeF9jdGxfdmFsID0gZGV2X3ByaXYtPmZkaV9y eF9jb25maWcgfCBGRElfUlhfRU5IQU5DRV9GUkFNRV9FTkFCTEUgfAo+ICAJCSAgICAgRkRJX1JY X1BMTF9FTkFCTEUgfAo+IC0JCSAgICAgRkRJX0RQX1BPUlRfV0lEVEgoaW50ZWxfY3J0Yy0+Y29u ZmlnLT5mZGlfbGFuZXMpOwo+ICsJCSAgICAgRkRJX0RQX1BPUlRfV0lEVEgocGlwZV9jb25maWct PmZkaV9sYW5lcyk7Cj4gIAlJOTE1X1dSSVRFKF9GRElfUlhBX0NUTCwgcnhfY3RsX3ZhbCk7Cj4g IAlQT1NUSU5HX1JFQUQoX0ZESV9SWEFfQ1RMKTsKPiAgCXVkZWxheSgyMjApOwo+IEBAIC00NTcs OCArNDU4LDggQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAJSTkxNV9XUklURShfRkRJX1JYQV9DVEwsIHJ4X2N0bF92YWwpOwo+ICAKPiAgCS8qIENv bmZpZ3VyZSBQb3J0IENsb2NrIFNlbGVjdCAqLwo+IC0JSTkxNV9XUklURShQT1JUX0NMS19TRUwo UE9SVF9FKSwgaW50ZWxfY3J0Yy0+Y29uZmlnLT5kZGlfcGxsX3NlbCk7Cj4gLQlXQVJOX09OKGlu dGVsX2NydGMtPmNvbmZpZy0+ZGRpX3BsbF9zZWwgIT0gUE9SVF9DTEtfU0VMX1NQTEwpOwo+ICsJ STkxNV9XUklURShQT1JUX0NMS19TRUwoUE9SVF9FKSwgcGlwZV9jb25maWctPmRkaV9wbGxfc2Vs KTsKPiArCVdBUk5fT04ocGlwZV9jb25maWctPmRkaV9wbGxfc2VsICE9IFBPUlRfQ0xLX1NFTF9T UExMKTsKPiAgCj4gIAkvKiBTdGFydCB0aGUgdHJhaW5pbmcgaXRlcmF0aW5nIHRocm91Z2ggYXZh aWxhYmxlIHZvbHRhZ2VzIGFuZCBlbXBoYXNpcywKPiAgCSAqIHRlc3RpbmcgZWFjaCB2YWx1ZSB0 d2ljZS4gKi8KPiBAQCAtNDc2LDcgKzQ3Nyw3IEBAIHZvaWQgaHN3X2ZkaV9saW5rX3RyYWluKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQkgKiBwb3J0IHJldmVyc2FsIGJpdCAqLwo+ICAJCUk5 MTVfV1JJVEUoRERJX0JVRl9DVEwoUE9SVF9FKSwKPiAgCQkJICAgRERJX0JVRl9DVExfRU5BQkxF IHwKPiAtCQkJICAgKChpbnRlbF9jcnRjLT5jb25maWctPmZkaV9sYW5lcyAtIDEpIDw8IDEpIHwK PiArCQkJICAgKChwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzIC0gMSkgPDwgMSkgfAo+ICAJCQkgICBE RElfQlVGX1RSQU5TX1NFTEVDVChpIC8gMikpOwo+ICAJCVBPU1RJTkdfUkVBRChERElfQlVGX0NU TChQT1JUX0UpKTsKPiAgCj4gQEAgLTE0ODEsMTUgKzE0ODIsMTYgQEAgYm9vbCBpbnRlbF9kZGlf cGxsX3NlbGVjdChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgdm9pZCBpbnRlbF9k ZGlfc2V0X3BpcGVfc2V0dGluZ3Moc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2Ny dGNfZW5jb2RlcihjcnRjKTsKPiAtCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGlu dGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUp Owo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90 cmFuc2NvZGVyOwo+ICAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOwo+ICAJdWludDMy X3QgdGVtcDsKPiAgCj4gIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQgfHwg dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkg ewo+ICAJCXRlbXAgPSBUUkFOU19NU0FfU1lOQ19DTEs7Cj4gLQkJc3dpdGNoIChpbnRlbF9jcnRj LT5jb25maWctPnBpcGVfYnBwKSB7Cj4gKwkJc3dpdGNoIChwaXBlX2NvbmZpZy0+cGlwZV9icHAp IHsKPiAgCQljYXNlIDE4Ogo+ICAJCQl0ZW1wIHw9IFRSQU5TX01TQV82X0JQQzsKPiAgCQkJYnJl YWs7Cj4gQEAgLTE1MDksMTIgKzE1MTEsMTIgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0 dGluZ3Moc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJfQo+ICB9Cj4gIAo+IC12b2lkIGludGVs X2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgc3Rh dGUpCj4gK3ZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiArCQkJCSAgICBlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIsCj4gKwkJ CQkgICAgYm9vbCBzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyOwo+ICAJdWludDMyX3QgdGVtcDsKPiAgCXRlbXAgPSBJOTE1 X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSk7Cj4gIAlpZiAoc3RhdGUg PT0gdHJ1ZSkKPiBAQCAtMTUzMiw3ICsxNTM0LDggQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3Ry YW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKPiAtCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZp Zy0+Y3B1X3RyYW5zY29kZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiArCWVudW0gdHJhbnNjb2Rl ciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiAgCWVudW0g cG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5jb2Rlcik7Cj4g IAlpbnQgdHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4gIAl1aW50MzJfdCB0ZW1wOwo+IEBA IC0xNTQxLDcgKzE1NDQsNyBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5j KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCXRlbXAgPSBUUkFOU19ERElfRlVOQ19FTkFCTEU7 Cj4gIAl0ZW1wIHw9IFRSQU5TX0RESV9TRUxFQ1RfUE9SVChwb3J0KTsKPiAgCj4gLQlzd2l0Y2gg KGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9icHApIHsKPiArCXN3aXRjaCAocGlwZV9jb25maWct PnBpcGVfYnBwKSB7Cj4gIAljYXNlIDE4Ogo+ICAJCXRlbXAgfD0gVFJBTlNfRERJX0JQQ182Owo+ ICAJCWJyZWFrOwo+IEBAIC0xNTU4LDkgKzE1NjEsOSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVf dHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlCVUcoKTsKPiAgCX0K PiAgCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKPiArCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19QVlNZTkMpCj4gIAkJdGVtcCB8PSBUUkFOU19E RElfUFZTWU5DOwo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZTkMpCj4gKwlpZiAocGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQo+ICAJCXRlbXAgfD0g VFJBTlNfRERJX1BIU1lOQzsKPiAgCj4gIAlpZiAoY3B1X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RF Ul9FRFApIHsKPiBAQCAtMTU3MSw4ICsxNTc0LDggQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3Ry YW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkJCSAqIHVzaW5nIG1vdGlv biBibHVyIG1pdGlnYXRpb24gKHdoaWNoIHdlIGRvbid0Cj4gIAkJCSAqIHN1cHBvcnQpLiAqLwo+ ICAJCQlpZiAoSVNfSEFTV0VMTChkZXYpICYmCj4gLQkJCSAgICAoaW50ZWxfY3J0Yy0+Y29uZmln LT5wY2hfcGZpdC5lbmFibGVkIHx8Cj4gLQkJCSAgICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5wY2hf cGZpdC5mb3JjZV90aHJ1KSkKPiArCQkJICAgIChwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxl ZCB8fAo+ICsJCQkgICAgIHBpcGVfY29uZmlnLT5wY2hfcGZpdC5mb3JjZV90aHJ1KSkKPiAgCQkJ CXRlbXAgfD0gVFJBTlNfRERJX0VEUF9JTlBVVF9BX09OT0ZGOwo+ICAJCQllbHNlCj4gIAkJCQl0 ZW1wIHw9IFRSQU5TX0RESV9FRFBfSU5QVVRfQV9PTjsKPiBAQCAtMTU5MCwxNCArMTU5MywxNCBA QCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiAgCX0KPiAgCj4gIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+IC0J CWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmspCj4gKwkJaWYgKHBpcGVfY29u ZmlnLT5oYXNfaGRtaV9zaW5rKQo+ICAJCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9I RE1JOwo+ICAJCWVsc2UKPiAgCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJOwo+ ICAKPiAgCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfQU5BTE9HKSB7Cj4gIAkJdGVt cCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRkRJOwo+IC0JCXRlbXAgfD0gKGludGVsX2NydGMt PmNvbmZpZy0+ZmRpX2xhbmVzIC0gMSkgPDwgMTsKPiArCQl0ZW1wIHw9IChwaXBlX2NvbmZpZy0+ ZmRpX2xhbmVzIC0gMSkgPDwgMTsKPiAgCj4gIAl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VU UFVUX0RJU1BMQVlQT1JUIHx8Cj4gIAkJICAgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4g QEAgLTE3NDcsMTcgKzE3NTAsMTkgQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2so c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsK PiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5j b2Rlcik7Cj4gLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiArCWVudW0g dHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsK PiAgCj4gIAlpZiAoY3B1X3RyYW5zY29kZXIgIT0gVFJBTlNDT0RFUl9FRFApCj4gIAkJSTkxNV9X UklURShUUkFOU19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKPiAgCQkJICAgVFJBTlNfQ0xLX1NF TF9QT1JUKHBvcnQpKTsKPiAgfQo+ICAKPiAtdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Ns b2NrKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQo+ICt2b2lkIGludGVsX2RkaV9kaXNh YmxlX3BpcGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gKwkJCQkgIGVu dW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+IC0J ZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVf dHJhbnNjb2RlcjsKPiAgCj4gIAlpZiAoY3B1X3RyYW5zY29kZXIgIT0gVFJBTlNDT0RFUl9FRFAp Cj4gIAkJSTkxNV9XUklURShUUkFOU19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKPiBAQCAtMTkw Miw3ICsxOTA3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lk IGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIsCj4gKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRl bF9lbmNvZGVyLT5iYXNlOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRl djsKPiBAQCAtMTk0NSwxMCArMTk1MSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZGRp KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKPiAgCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVy X3BvcnQoaW50ZWxfZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcgPQo+ICsJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAJaW50IHR5 cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOwo+ICAKPiAgCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9IRE1JKSB7Cj4gQEAgLTE5NzAsMjUgKzE5NzcsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCj4gIAkJaW50 ZWxfZWRwX2JhY2tsaWdodF9vbihpbnRlbF9kcCk7Cj4gIAkJaW50ZWxfcHNyX2VuYWJsZShpbnRl bF9kcCk7Cj4gLQkJaW50ZWxfZWRwX2RycnNfZW5hYmxlKGludGVsX2RwKTsKPiArCj4gKwkJaWYg KHBpcGVfY29uZmlnLT5oYXNfZHJycykKPiArCQkJaW50ZWxfZWRwX2RycnNfZW5hYmxlKGludGVs X2RwKTsKPiArCQllbHNlCj4gKwkJCURSTV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9y dCBEUlJTXG4iKTsKPiAgCX0KPiAgCj4gLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfYXVk aW8pIHsKPiArCWlmIChwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvKSB7Cj4gIAkJaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVURJTyk7Cj4gIAkJaW50ZWxfYXVk aW9fY29kZWNfZW5hYmxlKGludGVsX2VuY29kZXIpOwo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKPiArc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2Vu Y29kZXItPmJhc2U7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5jcnRjOwo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ ICAJaW50IHR5cGUgPSBpbnRlbF9lbmNvZGVyLT50eXBlOwo+ICAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFz X2F1ZGlvKSB7Cj4gKwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykgewo+ICAJCWludGVsX2F1 ZGlvX2NvZGVjX2Rpc2FibGUoaW50ZWxfZW5jb2Rlcik7Cj4gIAkJaW50ZWxfZGlzcGxheV9wb3dl cl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVURJTyk7Cj4gIAl9Cj4gQEAgLTE5OTYsNyAr MjAwNiw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyKQo+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7 Cj4gIAo+IC0JCWludGVsX2VkcF9kcnJzX2Rpc2FibGUoaW50ZWxfZHApOwo+ICsJCWlmIChwaXBl X2NvbmZpZy0+aGFzX2RycnMpCj4gKwkJCWludGVsX2VkcF9kcnJzX2Rpc2FibGUoaW50ZWxfZHAp Owo+ICAJCWludGVsX3Bzcl9kaXNhYmxlKGludGVsX2RwKTsKPiAgCQlpbnRlbF9lZHBfYmFja2xp Z2h0X29mZihpbnRlbF9kcCk7Cj4gIAl9Cj4gQEAgLTI1NDYsMTMgKzI1NTcsMTQgQEAgdm9pZCBp bnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJhaW4oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KQo+ICAJdWRlbGF5KDYwMCk7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfZGRpX2ZkaV9kaXNhYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiArdm9pZCBpbnRlbF9kZGlfZmRpX2Rpc2FibGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRj LT5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKPiAgCXVpbnQzMl90IHZhbDsK PiAgCj4gLQlpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKGludGVsX2VuY29kZXIpOwo+ICsJaW50ZWxf ZGRpX3Bvc3RfZGlzYWJsZShpbnRlbF9lbmNvZGVyLCBvbGRfc3RhdGUpOwo+ICAKPiAgCXZhbCA9 IEk5MTVfUkVBRChfRkRJX1JYQV9DVEwpOwo+ICAJdmFsICY9IH5GRElfUlhfRU5BQkxFOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzMTFhNGI0NGJlYmUuLjdiYzc4 YjQ5ZjlmNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDk1 Myw3ICs0OTUzLDkgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gIAkJbHB0X3BjaF9lbmFibGUoY3J0Yyk7Cj4gIAo+ICAJaWYgKGludGVs X2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCj4gLQkJaW50ZWxfZGRpX3NldF92Y19w YXlsb2FkX2FsbG9jKGNydGMsIHRydWUpOwo+ICsJCWludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9h bGxvYyhjcnRjLAo+ICsJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIsCj4g KwkJCQkJICAgICAgIHRydWUpOwo+ICAKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7 Cj4gIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gQEAgLTQ5OTQsNyArNDk5Niw3IEBAIHN0 YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g IAl1MzIgcmVnLCB0ZW1wOwo+ICAKPiAgCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNy dGMsIGVuY29kZXIpCj4gLQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsKPiArCQllbmNvZGVy LT5kaXNhYmxlKGVuY29kZXIsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJZHJtX2NydGNfdmJsYW5rX29m ZihjcnRjKTsKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7Cj4gQEAgLTUwMDgsNyAr NTAxMCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gIAo+ICAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5j b2RlcikKPiAgCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQo+IC0JCQllbmNvZGVyLT5wb3N0 X2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwkJCWVuY29kZXItPnBvc3RfZGlzYWJsZShlbmNvZGVyLCBv bGRfc3RhdGUpOwo+ICAKPiAgCWlmIChvbGRfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcikgewo+ICAJ CWlyb25sYWtlX2ZkaV9kaXNhYmxlKGNydGMpOwo+IEBAIC01MDQ1LDcgKzUwNDcsNyBAQCBzdGF0 aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAo+ ICAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+ICAJCWlu dGVsX29wcmVnaW9uX25vdGlmeV9lbmNvZGVyKGVuY29kZXIsIGZhbHNlKTsKPiAtCQllbmNvZGVy LT5kaXNhYmxlKGVuY29kZXIpOwo+ICsJCWVuY29kZXItPmRpc2FibGUoZW5jb2Rlciwgb2xkX3N0 YXRlKTsKPiAgCX0KPiAgCj4gIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwo+IEBAIC01MDU3 LDcgKzUwNTksOSBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gIAlpbnRlbF9kaXNhYmxlX3BpcGUoaW50ZWxfY3J0Yywgb2xkX3N0YXRl KTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcF9lbmNvZGVyX2lzX21zdCkKPiAt CQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywgZmFsc2UpOwo+ICsJCWludGVs X2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjcnRjLAo+ICsJCQkJCSAgICAgICBvbGRfc3RhdGUt PmNwdV90cmFuc2NvZGVyLAo+ICsJCQkJCSAgICAgICBmYWxzZSk7Cj4gIAo+ICAJaW50ZWxfZGRp X2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlcik7Cj4gIAo+ IEBAIC01MDY4LDE2ICs1MDcyLDE2IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWVsc2UKPiAgCQlNSVNTSU5HX0NBU0UoSU5URUxf SU5GTyhkZXYpLT5nZW4pOwo+ICAKPiAtCWludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soaW50 ZWxfY3J0Yyk7Cj4gKwlpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMsIG9s ZF9zdGF0ZS0+Y3B1X3RyYW5zY29kZXIpOwo+ICAKPiAgCWlmIChpbnRlbF9jcnRjLT5jb25maWct Pmhhc19wY2hfZW5jb2Rlcikgewo+ICAJCWxwdF9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKGRldl9w cml2KTsKPiAtCQlpbnRlbF9kZGlfZmRpX2Rpc2FibGUoY3J0Yyk7Cj4gKwkJaW50ZWxfZGRpX2Zk aV9kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAl9Cj4gIAo+ICAJZm9yX2VhY2hfZW5jb2Rl cl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAgCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNh YmxlKQo+IC0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwkJCWVuY29kZXIt PnBvc3RfZGlzYWJsZShlbmNvZGVyLCBvbGRfc3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZCBpOXh4X3BmaXRfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IEBAIC01OTE0LDcg KzU5MTgsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gIAlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBwaXBlKTsKPiAgCj4gIAlmb3Jf ZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQo+IC0JCWVuY29kZXItPmRp c2FibGUoZW5jb2Rlcik7Cj4gKwkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyLCBvbGRfc3RhdGUp Owo+ICAKPiAgCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7Cj4gIAlhc3NlcnRfdmJsYW5rX2Rp c2FibGVkKGNydGMpOwo+IEBAIC01OTI1LDcgKzU5MjksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Ny dGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAo+ICAJZm9yX2VhY2hfZW5jb2Rl cl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAgCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNh YmxlKQo+IC0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwkJCWVuY29kZXIt PnBvc3RfZGlzYWJsZShlbmNvZGVyLCBvbGRfc3RhdGUpOwo+ICAKPiAgCWlmICghaW50ZWxfcGlw ZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFNJKSkgewo+ICAJCWlmIChJU19D SEVSUllWSUVXKGRldikpCj4gQEAgLTE0NjcyLDEyICsxNDY3NiwxMiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9zYW5pdGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICB7 Cj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBlbmNvZGVyLT5iYXNlLmNydGM7Cj4gIAo+ICAJLyogV2UgbmVlZCB0byBjaGVjayBib3RoIGZv ciBhIGNydGMgbGluayAobWVhbmluZyB0aGF0IHRoZQo+ICAJICogZW5jb2RlciBpcyBhY3RpdmUg YW5kIHRyeWluZyB0byByZWFkIGZyb20gYSBwaXBlKSBhbmQgdGhlCj4gIAkgKiBwaXBlIGl0c2Vs ZiBiZWluZyBhY3RpdmUuICovCj4gLQlib29sIGhhc19hY3RpdmVfY3J0YyA9IGVuY29kZXItPmJh c2UuY3J0YyAmJgo+IC0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKS0+YWN0aXZl Owo+ICsJYm9vbCBoYXNfYWN0aXZlX2NydGMgPSBjcnRjICYmIHRvX2ludGVsX2NydGMoY3J0Yykt PmFjdGl2ZTsKPiAgCj4gIAlpZiAoZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgJiYgIWhhc19h Y3RpdmVfY3J0Yykgewo+ICAJCURSTV9ERUJVR19LTVMoIltFTkNPREVSOiVkOiVzXSBoYXMgYWN0 aXZlIGNvbm5lY3RvcnMgYnV0IG5vIGFjdGl2ZSBwaXBlIVxuIiwKPiBAQCAtMTQ2ODcsMTMgKzE0 NjkxLDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2VuY29kZXIoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gIAkJLyogQ29ubmVjdG9yIGlzIGFjdGl2ZSwgYnV0IGhhcyBu byBhY3RpdmUgcGlwZS4gVGhpcyBpcwo+ICAJCSAqIGZhbGxvdXQgZnJvbSBvdXIgcmVzdW1lIHJl Z2lzdGVyIHJlc3RvcmluZy4gRGlzYWJsZQo+ICAJCSAqIHRoZSBlbmNvZGVyIG1hbnVhbGx5IGFn YWluLiAqLwo+IC0JCWlmIChlbmNvZGVyLT5iYXNlLmNydGMpIHsKPiArCQlpZiAoY3J0Yykgewo+ ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCQkJdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gIAkJCURSTV9ERUJVR19LTVMoIltFTkNPREVS OiVkOiVzXSBtYW51YWxseSBkaXNhYmxlZFxuIiwKPiAgCQkJCSAgICAgIGVuY29kZXItPmJhc2Uu YmFzZS5pZCwKPiAgCQkJCSAgICAgIGVuY29kZXItPmJhc2UubmFtZSk7Cj4gLQkJCWVuY29kZXIt PmRpc2FibGUoZW5jb2Rlcik7Cj4gKwkJCWVuY29kZXItPmRpc2FibGUoZW5jb2RlciwgcGlwZV9j b25maWcpOwo+ICAJCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQo+IC0JCQkJZW5jb2Rlci0+ cG9zdF9kaXNhYmxlKGVuY29kZXIpOwo+ICsJCQkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29k ZXIsIHBpcGVfY29uZmlnKTsKPiAgCQl9Cj4gIAkJZW5jb2Rlci0+YmFzZS5jcnRjID0gTlVMTDsK PiAgCQllbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSA9IGZhbHNlOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+IGluZGV4IDgzZGUzNmJmZGRjMS4uZWRhMWIyMmMzMTExIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gQEAgLTE0OTksMTcgKzE0OTksMTkgQEAgZm91bmQ6Cj4gIHN0YXRp YyB2b2lkIGlyb25sYWtlX3NldF9wbGxfY3B1X2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGMpOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZGlnX3BvcnQt PmJhc2UuYmFzZS5jcnRjOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVs X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAJdTMyIGRwYV9jdGw7Cj4gIAo+ICAJRFJNX0RF QlVHX0tNUygiZURQIFBMTCBlbmFibGUgZm9yIGNsb2NrICVkXG4iLAo+IC0JCSAgICAgIGNydGMt PmNvbmZpZy0+cG9ydF9jbG9jayk7Cj4gKwkJICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2sp Owo+ICAJZHBhX2N0bCA9IEk5MTVfUkVBRChEUF9BKTsKPiAgCWRwYV9jdGwgJj0gfkRQX1BMTF9G UkVRX01BU0s7Cj4gIAo+IC0JaWYgKGNydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA9PSAxNjIwMDAp IHsKPiArCWlmIChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9PSAxNjIwMDApIHsKPiAgCQkvKiBG b3IgYSBsb25nIHRpbWUgd2UndmUgY2FycmllZCBhcm91bmQgYSBJTEstRGV2QSB3L2EgZm9yIHRo ZQo+ICAJCSAqIDE2ME1IeiBjbG9jay4gSWYgd2UncmUgcmVhbGx5IHVubHVja3ksIGl0J3Mgc3Rp bGwgcmVxdWlyZWQuCj4gIAkJICovCj4gQEAgLTIxMDgsNyArMjExMCw4IEBAIHN0YXRpYyB2b2lk IGlyb25sYWtlX2VkcF9wbGxfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCXVkZWxh eSgyMDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29mZihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICtzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29m ZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmNydGM7Cj4gQEAgLTIxMTcsNyAr MjEyMCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VkcF9wbGxfb2ZmKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gIAl1MzIgZHBhX2N0bDsKPiAgCj4gIAlhc3NlcnRfcGlwZV9kaXNhYmxl ZChkZXZfcHJpdiwKPiAtCQkJICAgICB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPmNwdV90 cmFuc2NvZGVyLAo+ICsJCQkgICAgIHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciwKPiAgCQkJ ICAgICB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlKTsKPiAgCj4gIAlkcGFfY3RsID0gSTkxNV9S RUFEKERQX0EpOwo+IEBAIC0yMzA4LDEzICsyMzExLDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rw X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl9Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5i YXNlLmRldjsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNv ZGVyLT5iYXNlLmNydGMpOwo+ICAKPiAtCWlmIChjcnRjLT5jb25maWctPmhhc19hdWRpbykKPiAr CWlmIChwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvKQo+ICAJCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2Fi bGUoZW5jb2Rlcik7Cj4gIAo+ICAJaWYgKEhBU19QU1IoZGV2KSAmJiAhSEFTX0RESShkZXYpKQo+ IEBAIC0yMzMyLDI0ICsyMzM1LDI3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJaW50ZWxfZHBfbGlua19kb3duKGludGVs X2RwKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaWxrX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaWxrX3Bvc3RfZGlzYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGRw X3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCj4gIAlpbnRlbF9kcF9saW5rX2Rvd24o aW50ZWxfZHApOwo+ICAJaWYgKHBvcnQgPT0gUE9SVF9BKQo+IC0JCWlyb25sYWtlX2VkcF9wbGxf b2ZmKGludGVsX2RwKTsKPiArCQlpcm9ubGFrZV9lZHBfcGxsX29mZihpbnRlbF9kcCwgcGlwZV9j b25maWcpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2bHZfcG9zdF9kaXNhYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCB2bHZfcG9zdF9kaXNhYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCj4gIAlpbnRlbF9kcF9saW5r X2Rvd24oaW50ZWxfZHApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjaHZfcG9zdF9kaXNhYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBjaHZfcG9z dF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IEBA IC01MjQ5LDcgKzUyNTUsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcmVmcmVzaF9yYXRlKQo+ICAJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXI7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZGV2X3ByaXYtPmRycnMu ZHA7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnID0gTlVMTDsKPiAgCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gTlVMTDsKPiAgCXUzMiByZWcsIHZhbDsKPiAgCWVu dW0gZHJyc19yZWZyZXNoX3JhdGVfdHlwZSBpbmRleCA9IERSUlNfSElHSF9SUjsKPiBAQCAtNTI3 OCw4ICs1MjgzLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKPiAgCQlyZXR1cm47Cj4gIAl9Cj4g IAo+IC0JY29uZmlnID0gaW50ZWxfY3J0Yy0+Y29uZmlnOwo+IC0KPiAgCWlmIChkZXZfcHJpdi0+ ZHJycy50eXBlIDwgU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygi T25seSBTZWFtbGVzcyBEUlJTIHN1cHBvcnRlZC5cbiIpOwo+ICAJCXJldHVybjsKPiBAQCAtNTM0 NSwxNCArNTM0OCw2IEBAIHZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90 b19kZXYoaW50ZWxfZHApOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0g ZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0KPiAtCWlmICghaW50ZWxfY3J0Yy0+Y29uZmln LT5oYXNfZHJycykgewo+IC0JCURSTV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBE UlJTXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PmRycnMubXV0ZXgpOwo+ICAJaWYgKFdBUk5fT04oZGV2X3ByaXYtPmRycnMuZHApKSB7Cj4gQEAg LTUzNzcsMTIgKzUzNzIsNiBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVs X2RwX3RvX2RldihpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQo+IC0JaWYgKCFpbnRlbF9jcnRjLT5j b25maWctPmhhc19kcnJzKQo+IC0JCXJldHVybjsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJp di0+ZHJycy5tdXRleCk7Cj4gIAlpZiAoIWRldl9wcml2LT5kcnJzLmRwKSB7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBpbmRleCA2ZTRjYzUzMzRmNDcuLjQ5OTJjODAyNTUyMCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTEwMSw3ICsxMDEsOCBA QCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tc3RfZGlz YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50 ZWxfbXN0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJhc2Up Owo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9t c3QtPnByaW1hcnk7Cj4gQEAgLTExOCw3ICsxMTksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3Rf ZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCX0KPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGludGVsX2RwX21zdF9lbmNv ZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gaW50ZWxfbXN0LT5wcmltYXJ5Owo+ IEBAIC0xMzYsNyArMTM4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWludGVsX2RwLT5hY3RpdmVfbXN0 X2xpbmtzLS07Cj4gIAlpbnRlbF9tc3QtPnBvcnQgPSBOVUxMOwo+ICAJaWYgKGludGVsX2RwLT5h Y3RpdmVfbXN0X2xpbmtzID09IDApIHsKPiAtCQlpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3N0X2Rp c2FibGUoJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiArCQlpbnRlbF9kaWdfcG9ydC0+YmFzZS5w b3N0X2Rpc2FibGUoJmludGVsX2RpZ19wb3J0LT5iYXNlLAo+ICsJCQkJCQkgIHBpcGVfY29uZmln KTsKPiAgCQlpbnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNfT0ZGKTsK PiAgCX0KPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNTgyNDBlNjM2MzBj Li5lYjg3ZjgyYjVhZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNDEs OCArMTQxLDkgQEAgc3RydWN0IGludGVsX2VuY29kZXIgewo+ICAJdm9pZCAoKnByZV9lbmFibGUp KHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+ICAJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGludGVs X2VuY29kZXIgKik7Cj4gIAl2b2lkICgqbW9kZV9zZXQpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyKTsKPiAtCXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq KTsKPiAtCXZvaWQgKCpwb3N0X2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+ICsJ dm9pZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICopOwo+ICsJdm9pZCAoKnBvc3RfZGlzYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIg KiwKPiArCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqKTsKPiAgCS8qIFJlYWQgb3V0 IHRoZSBjdXJyZW50IGh3IHN0YXRlIG9mIHRoaXMgY29ubmVjdG9yLCByZXR1cm5pbmcgdHJ1ZSBp Zgo+ICAJICogdGhlIGVuY29kZXIgaXMgYWN0aXZlLiBJZiB0aGUgZW5jb2RlciBpcyBlbmFibGVk IGl0IGFsc28gc2V0IHRoZSBwaXBlCj4gIAkgKiBpdCBpcyBjb25uZWN0ZWQgdG8gaW4gdGhlIHBp cGUgcGFyYW1ldGVyLiAqLwo+IEBAIC05MTAsMTMgKzkxMSwxNCBAQCB2b2lkIGludGVsX2RkaV9l bmFibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIHZvaWQgaW50 ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJCSAgICAgICBlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIpOwo+ ICB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0Yyk7Cj4gLXZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0Yyk7Cj4gK3ZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9j ayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiArCQkJCSAgZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyKTsKPiAgYm9vbCBpbnRlbF9kZGlfcGxsX3NlbGVjdChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiAgCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7Cj4gIHZvaWQgaW50ZWxfZGRpX3NldF9waXBlX3NldHRpbmdzKHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yyk7Cj4gIHZvaWQgaW50ZWxfZGRpX3ByZXBhcmVfbGlua19yZXRyYWluKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2Rlcik7Cj4gIGJvb2wgaW50ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3Rh dGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKPiAtdm9pZCBpbnRl bF9kZGlfZmRpX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiArdm9pZCBpbnRlbF9k ZGlfZmRpX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqKTsKPiAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Owo+ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCj4gQEAgLTkyNSw3ICs5MjcsOCBAQCBpbnRlbF9k ZGlfZ2V0X2NydGNfbmV3X2VuY29kZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpOwo+ICB2b2lkIGludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpOwo+ICB2b2lkIGludGVsX2RkaV9jbG9ja19nZXQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpOwo+IC12b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsIGJvb2wgc3RhdGUpOwo+ICt2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9h bGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkgICAgZW51bSB0cmFuc2NvZGVyLCBi b29sIHN0YXRlKTsKPiAgdm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIgbGV2ZWwsCj4gIAkJCQllbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IGluZGV4IDUxOTY2NDI2YWRkZi4uM2YyOGIw NDY3NTFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBAQCAtNDA5LDYgKzQwOSw5 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0 Yy0+YmFzZS5zdGF0ZSk7Cj4gKwkKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKPiAgCWVudW0gcG9ydCBwb3J0Owo+ICAJdTMyIHRtcDsKPiBAQCAtNDIyLDcgKzQyNSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICAJSTkxNV9XUklURShEUExMKHBpcGUpLCB0bXApOwo+ICAKPiAgCS8qIHVwZGF0 ZSB0aGUgaHcgc3RhdGUgZm9yIERQTEwgKi8KPiAtCWludGVsX2NydGMtPmNvbmZpZy0+ZHBsbF9o d19zdGF0ZS5kcGxsID0gRFBMTF9JTlRFR1JBVEVEX0NMT0NLX1ZMViB8Cj4gKwlwaXBlX2NvbmZp Zy0+ZHBsbF9od19zdGF0ZS5kcGxsID0gRFBMTF9JTlRFR1JBVEVEX0NMT0NLX1ZMViB8Cj4gIAkJ RFBMTF9SRUZBX0NMS19FTkFCTEVfVkxWOwo+ICAKPiAgCXRtcCA9IEk5MTVfUkVBRChEU1BDTEtf R0FURV9EKTsKPiBAQCAtNDU0LDcgKzQ1Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9lbmFi bGVfbm9wKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJICovCj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19p bnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gQEAgLTU1Niw3 ICs1NjAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJdmx2X2Rpc2FibGVfZHNpX3BsbChlbmNvZGVy KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZHNpX3Bvc3RfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZHNpX3Bvc3RfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiBpbmRleCBlY2U1YmQ3NTRmODUuLjRkYWM0Y2U1 OTYzYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gQEAgLTE2Niw3ICsxNjYsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kdm9fZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9 IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9k aXNhYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQg aW50ZWxfZGlzYWJsZV9kdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2 YXRlOwo+ICAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVy KTsKPiBAQCAtMTgyLDEzICsxODMsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2R2byhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3Ry dWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVyKTsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+YmFzZS5jcnRjOwo+ICsJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9IGNydGMtPnN0YXRlOwo+ICAJdTMyIGR2b19y ZWcgPSBpbnRlbF9kdm8tPmRldi5kdm9fcmVnOwo+ICAJdTMyIHRlbXAgPSBJOTE1X1JFQUQoZHZv X3JlZyk7Cj4gIAo+ICAJaW50ZWxfZHZvLT5kZXYuZGV2X29wcy0+bW9kZV9zZXQoJmludGVsX2R2 by0+ZGV2LAo+IC0JCQkJCSAmY3J0Yy0+Y29uZmlnLT5iYXNlLm1vZGUsCj4gLQkJCQkJICZjcnRj LT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7Cj4gKwkJCQkJICZwaXBlX2NvbmZpZy0+bW9k ZSwKPiArCQkJCQkgJnBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlKTsKPiAgCj4gIAlJOTE1X1dS SVRFKGR2b19yZWcsIHRlbXAgfCBEVk9fRU5BQkxFKTsKPiAgCUk5MTVfUkVBRChkdm9fcmVnKTsK PiBAQCAtMjAxLDcgKzIwMyw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19kcG1zKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZHZvICppbnRlbF9kdm8gPSBpbnRlbF9hdHRhY2hlZF9kdm8oY29ubmVjdG9yKTsKPiAgCXN0cnVj dCBkcm1fY3J0YyAqY3J0YzsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7Cj4g IAo+ICAJLyogZHZvIHN1cHBvcnRzIG9ubHkgMiBkcG1zIHN0YXRlcy4gKi8KPiAgCWlmIChtb2Rl ICE9IERSTV9NT0RFX0RQTVNfT04pCj4gQEAgLTIyMiw4ICsyMjMsNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kdm9fZHBtcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQgbW9kZSkK PiAgCS8qIFdlIGNhbGwgY29ubmVjdG9yIGRwbXMgbWFudWFsbHkgYmVsb3cgaW4gY2FzZSBwaXBl IGRwbXMgZG9lc24ndAo+ICAJICogY2hhbmdlIGR1ZSB0byBjbG9uaW5nLiAqLwo+ICAJaWYgKG1v ZGUgPT0gRFJNX01PREVfRFBNU19PTikgewo+IC0JCWNvbmZpZyA9IHRvX2ludGVsX2NydGMoY3J0 YyktPmNvbmZpZzsKPiAtCj4gIAkJaW50ZWxfZHZvLT5iYXNlLmNvbm5lY3RvcnNfYWN0aXZlID0g dHJ1ZTsKPiAgCj4gIAkJaW50ZWxfY3J0Y191cGRhdGVfZHBtcyhjcnRjKTsKPiBAQCAtMjk2LDcg KzI5NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJh c2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNv ZGVyLT5iYXNlLmNydGMpOwo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5iYXNlLnN0YXRlLT5hZGp1c3RlZF9t b2RlOwo+ICAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVy KTsKPiAgCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCXUzMiBkdm9fdmFsOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCBkMDRlNmRjOTdmZTUuLjc2OTk0ZGMwMzNhMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAtODY2LDcgKzg2Niw4IEBAIHN0YXRp YyB2b2lkIHZsdl9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAg ewo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVu Y29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtODc1LDcgKzg3Niw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXUzMiB0ZW1w Owo+ICAJdTMyIGVuYWJsZV9iaXRzID0gU0RWT19FTkFCTEUgfCBTRFZPX0FVRElPX0VOQUJMRTsK PiAgCj4gLQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pCj4gKwlpZiAocGlwZV9jb25maWct Pmhhc19hdWRpbykKPiAgCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIpOwo+ICAK PiAgCXRlbXAgPSBJOTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwo+IEBAIC04ODMsOCAr ODg0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICAJLyogSFcgd29ya2Fyb3VuZCBmb3IgSUJYLCB3ZSBuZWVkIHRvIG1v dmUgdGhlIHBvcnQgdG8gdHJhbnNjb2RlciBBCj4gIAkgKiBiZWZvcmUgZGlzYWJsaW5nIGl0LiAq Lwo+ICAJaWYgKEhBU19QQ0hfSUJYKGRldikpIHsKPiAtCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBlbmNvZGVyLT5iYXNlLmNydGM7Cj4gLQkJaW50IHBpcGUgPSBjcnRjID8gdG9faW50ZWxfY3J0 YyhjcnRjKS0+cGlwZSA6IC0xOwo+ICsJCWludCBwaXBlID0gY3J0YyA/IGNydGMtPnBpcGUgOiAt MTsKPiAgCj4gIAkJaWYgKHRlbXAgJiBTRFZPX1BJUEVfQl9TRUxFQ1QpIHsKPiAgCQkJdGVtcCAm PSB+U0RWT19QSVBFX0JfU0VMRUNUOwo+IEBAIC0xNDI2LDcgKzE0MjYsOCBAQCBzdGF0aWMgdm9p ZCBjaHZfaGRtaV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIHZsdl9oZG1pX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiArc3RhdGljIHZvaWQgdmx2X2hkbWlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICsJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2Rp Z19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMTQ0Miw3ICsxNDQz LDggQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBpb19sb2NrKTsKPiAg fQo+ICAKPiAtc3RhdGljIHZvaWQgY2h2X2hkbWlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBjaHZfaGRtaV9wb3N0X2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBv cnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+IEBAIC0xNDgzLDggKzE0ODUsMTAgQEAgc3Rh dGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9Cj4gIAkJdG9faW50ZWxfY3J0 YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUp Owo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+IC0JCSZpbnRl bF9jcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCQkmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKPiAgCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3Rv X2NoYW5uZWwoZHBvcnQpOwo+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJaW50 IGRhdGEsIGksIHN0YWdnZXI7Cj4gQEAgLTE2MzYsNyArMTY0MCw3IEBAIHN0YXRpYyB2b2lkIGNo dl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAltdXRl eF91bmxvY2soJmRldl9wcml2LT5kcGlvX2xvY2spOwo+ICAKPiAgCWludGVsX2hkbWktPnNldF9p bmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAo+IC0JCQkJICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5o YXNfaGRtaV9zaW5rLAo+ICsJCQkJICAgcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmssCj4gIAkJ CQkgICBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gIAlpbnRlbF9lbmFibGVfaGRtaShlbmNvZGVyKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gaW5kZXggOWE5ZGYwZmE2N2Y5Li44YWFhYTI0 MTQ0ZjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gQEAgLTEzOSw4ICsxMzks MTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2Uu ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVy LT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0K PiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwo+ICAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+IC0JCSZjcnRjLT5jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiArCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKPiAgCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCXUzMiB0ZW1wOwo+ICAKPiBAQCAtMTY4 LDcgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9lbmFibGVfbHZkcyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIAkvKiBzZXQgdGhlIGNvcnJlc3BvbnNkaW5nIExW RFNfQk9SREVSIGJpdCAqLwo+ICAJdGVtcCAmPSB+TFZEU19CT1JERVJfRU5BQkxFOwo+IC0JdGVt cCB8PSBjcnRjLT5jb25maWctPmdtY2hfcGZpdC5sdmRzX2JvcmRlcl9iaXRzOwo+ICsJdGVtcCB8 PSBwaXBlX2NvbmZpZy0+Z21jaF9wZml0Lmx2ZHNfYm9yZGVyX2JpdHM7Cj4gIAkvKiBTZXQgdGhl IEIwLUIzIGRhdGEgcGFpcnMgY29ycmVzcG9uZGluZyB0byB3aGV0aGVyIHdlJ3JlIGdvaW5nIHRv Cj4gIAkgKiBzZXQgdGhlIERQTExzIGZvciBkdWFsLWNoYW5uZWwgbW9kZSBvciBub3QuCj4gIAkg Ki8KPiBAQCAtMTkxLDcgKzE5Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9lbmFibGVfbHZk cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA9PSA0KSB7Cj4gIAkJLyogQnNwZWMgd29yZGluZyBzdWdnZXN0cyB0aGF0IExWRFMgcG9y dCBkaXRoZXJpbmcgb25seSBleGlzdHMKPiAgCQkgKiBmb3IgMThicHAgcGFuZWxzLiAqLwo+IC0J CWlmIChjcnRjLT5jb25maWctPmRpdGhlciAmJiBjcnRjLT5jb25maWctPnBpcGVfYnBwID09IDE4 KQo+ICsJCWlmIChwaXBlX2NvbmZpZy0+ZGl0aGVyICYmIHBpcGVfY29uZmlnLT5waXBlX2JwcCA9 PSAxOCkKPiAgCQkJdGVtcCB8PSBMVkRTX0VOQUJMRV9ESVRIRVI7Cj4gIAkJZWxzZQo+ICAJCQl0 ZW1wICY9IH5MVkRTX0VOQUJMRV9ESVRIRVI7Cj4gQEAgLTIzNSw3ICsyMzcsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9lbmFibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAg CWludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoaW50ZWxfY29ubmVjdG9yKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2x2ZHMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNl LmRldjsKPiAgCXN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IHRvX2x2 ZHNfZW5jb2RlcigmZW5jb2Rlci0+YmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ IGluZGV4IDBhMDYyNTc2MWY0Mi4uNmE2ODA5OGY4YjA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nkdm8uYwo+IEBAIC0xNDI1LDcgKzE0MjUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZv X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkgICAgIHBpcGVf Y29uZmlnLT5waXhlbF9tdWx0aXBsaWVyLCBlbmNvZGVyX3BpeGVsX211bHRpcGxpZXIpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfc2R2byhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX3Nkdm8g KmludGVsX3Nkdm8gPSB0b19zZHZvKGVuY29kZXIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ IGluZGV4IGI0YWViMjU2MTI4Zi4uOTgxNmE5Zjg4ZmY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3R2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF90di5jCj4gQEAgLTg2Myw3ICs4NjMsOCBAQCBpbnRlbF9lbmFibGVfdHYoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLWludGVsX2Rpc2Fi bGVfdHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK2ludGVsX2Rpc2FibGVfdHYo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29k ZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAtLSAKPiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK