From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 05/18] drm/i915: Rename struct intel_ringbuffer to struct intel_ring Date: Thu, 21 Jul 2016 14:59:23 +0300 Message-ID: <1469102363.4821.16.camel@linux.intel.com> References: <1469020330-1071-1-git-send-email-chris@chris-wilson.co.uk> <1469020330-1071-6-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 8822F6E17F for ; Thu, 21 Jul 2016 11:59:27 +0000 (UTC) In-Reply-To: <1469020330-1071-6-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24ga2UsIDIwMTYtMDctMjAgYXQgMTQ6MTEgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBU aGUgc3RhdGUgc3RvcmVkIGluIHRoaXMgc3RydWN0IGlzIG5vdCBvbmx5IHRoZSBpbmZvcm1hdGlv biBhYm91dCB0aGUKPiBidWZmZXIgb2JqZWN0LCBidXQgdGhlIHJpbmcgdXNlZCB0byBjb21tdW5p Y2F0ZSB3aXRoIHRoZSBoYXJkd2FyZS4gVXNpbmcKPiBidWZmZXIgaGVyZSBpcyBvdmVybHkgc3Bl Y2lmaWMgYW5kLCBmb3IgbWUgYXQgbGVhc3QsIGNvbmZsYXRlcyB3aXRoIHRoZQo+IG5vdGlvbiBv ZiBidWZmZXIgb2JqZWN0cyB0aGVtc2VsdmVzLgo+IAoKWW91IHNob3VsZCBsaXN0IGFsbCB0aGUg cmVuYW1lcyBoZXJlIHNvIHRoZSBwb29yIHJlYmFzZXJzIGdldCB0byBsaXZlLgpXaXRoIHRob3Nl IGxpc3RlZDsKClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBs aW51eC5pbnRlbC5jb20+CgpDb21tZW50IGJlbG93LgoKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jwqDCoMKgwqDCoMKgwqDCoHzCoMKgMTEgKystCj4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDC oDQgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB8wqDCoDE2ICsrLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuY8KgwqDCoMKgfMKgwqDCoDYgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyB8wqDCoMKgNiArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmPCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDYgKy0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuY8KgwqDCoMKgfMKgwqDCoDYgKy0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaMKgwqDCoMKgfMKgwqDCoDIgKy0KPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmPCoMKgwqDCoMKgwqB8wqDCoMKgOCAr LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuY8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHzCoMKgMTQgKystLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j wqDCoMKgwqDCoMKgwqB8wqDCoDEwICstLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmPCoMKgwqDCoMKgfMKgwqDCoDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMzQgKysrKy0tLS0KPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuY8KgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDC oDQgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuY8KgwqDCoMKgwqDC oMKgfMKgwqDCoDggKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu Y8KgwqDCoMKgfCAxMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaMKgwqDCoMKgfMKgwqA1MSArKysrKystLS0t LS0KPiDCoDE3IGZpbGVzIGNoYW5nZWQsIDE1NyBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBiZGU2ODc0MTgw OWIuLmRjY2M3MmQ2M2RkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g QEAgLTE0MTksNyArMTQxOSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiDCoAlpbnRlbF9ydW50aW1lX3BtX2dldChk ZXZfcHJpdik7Cj4gwqAKPiDCoAlmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lLCBkZXZfcHJpdiwg aWQpIHsKPiAtCQlhY3RoZFtpZF0gPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUp Owo+ICsJCWFjdGhkW2lkXSA9IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsK PiDCoAkJc2Vxbm9baWRdID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+IMKgCX0K PiDCoAo+IEBAIC0yMDE3LDEyICsyMDE3LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fZnJhbWVi dWZmZXJfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gwqAJcmV0dXJuIDA7 Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgZGVzY3JpYmVfY3R4X3JpbmdidWYoc3RydWN0IHNl cV9maWxlICptLAo+IC0JCQkJwqBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAr c3RhdGljIHZvaWQgZGVzY3JpYmVfY3R4X3Jpbmcoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qg aW50ZWxfcmluZyAqcmluZykKPiDCoHsKPiDCoAlzZXFfcHJpbnRmKG0sICIgKHJpbmdidWZmZXIs IHNwYWNlOiAlZCwgaGVhZDogJXUsIHRhaWw6ICV1LCBsYXN0IGhlYWQ6ICVkKSIsCj4gLQkJwqDC oMKgcmluZ2J1Zi0+c3BhY2UsIHJpbmdidWYtPmhlYWQsIHJpbmdidWYtPnRhaWwsCj4gLQkJwqDC oMKgcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQpOwo+ICsJCcKgwqDCoHJpbmctPnNwYWNlLCBy aW5nLT5oZWFkLCByaW5nLT50YWlsLAo+ICsJCcKgwqDCoHJpbmctPmxhc3RfcmV0aXJlZF9oZWFk KTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGludCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+IEBAIC0yMDY3LDcgKzIwNjYsNyBAQCBzdGF0aWMg aW50IGk5MTVfY29udGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Cj4gwqAJCQlpZiAoY2UtPnN0YXRlKQo+IMKgCQkJCWRlc2NyaWJlX29iaihtLCBjZS0+c3RhdGUp Owo+IMKgCQkJaWYgKGNlLT5yaW5nKQo+IC0JCQkJZGVzY3JpYmVfY3R4X3JpbmdidWYobSwgY2Ut PnJpbmcpOwo+ICsJCQkJZGVzY3JpYmVfY3R4X3JpbmcobSwgY2UtPnJpbmcpOwo+IMKgCQkJc2Vx X3B1dGMobSwgJ1xuJyk7Cj4gwqAJCX0KPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IDg3ZTA2YTZhNzk3YS4uZjMyZWM2ZGI1YmZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gQEAgLTUxOCw3ICs1MTgsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgewo+ IMKgCQlib29sIHdhaXRpbmc7Cj4gwqAJCWludCBudW1fd2FpdGVyczsKPiDCoAkJaW50IGhhbmdj aGVja19zY29yZTsKPiAtCQllbnVtIGludGVsX3JpbmdfaGFuZ2NoZWNrX2FjdGlvbiBoYW5nY2hl Y2tfYWN0aW9uOwo+ICsJCWVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gaGFuZ2No ZWNrX2FjdGlvbjsKPiDCoAkJaW50IG51bV9yZXF1ZXN0czsKPiDCoAo+IMKgCQkvKiBvdXIgb3du IHRyYWNraW5nIG9mIHJpbmcgaGVhZCBhbmQgdGFpbCAqLwo+IEBAIC04OTQsNyArODk0LDcgQEAg c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+IMKgCj4gwqAJc3RydWN0IGludGVsX2NvbnRleHQg ewo+IMKgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7Cj4gLQkJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmc7Cj4gKwkJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gwqAJ CXN0cnVjdCBpOTE1X3ZtYSAqbHJjX3ZtYTsKPiDCoAkJdWludDMyX3QgKmxyY19yZWdfc3RhdGU7 Cj4gwqAJCXU2NCBscmNfZGVzYzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA0MDA0 N2ViNDg4MjYuLjk1ZGJjZmQ5NGE4MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBA IC0yNDg2LDcgKzI0ODYsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfc3Rh dHVzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoAo+IMKgc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVzZXRfZW5naW5lX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKmJ1ZmZlcjsKPiArCXN0cnVj dCBpbnRlbF9yaW5nICpyaW5nOwo+IMKgCj4gwqAJd2hpbGUgKCFsaXN0X2VtcHR5KCZlbmdpbmUt PmFjdGl2ZV9saXN0KSkgewo+IMKgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ IEBAIC0yNTAyLDcgKzI1MDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVf Y2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqAJwqAqIChsb2NrbGVz cykgbG9va3VwIGRvZXNuJ3QgdHJ5IGFuZCB3YWl0IHVwb24gdGhlIHJlcXVlc3QgYXMgd2UKPiDC oAnCoCogcmVzZXQgaXQuCj4gwqAJwqAqLwo+IC0JaW50ZWxfcmluZ19pbml0X3NlcW5vKGVuZ2lu ZSwgZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubyk7Cj4gKwlpbnRlbF9lbmdpbmVfaW5pdF9z ZXFubyhlbmdpbmUsIGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8pOwo+IMKgCj4gwqAJLyoK PiDCoAnCoCogQ2xlYXIgdGhlIGV4ZWNsaXN0cyBxdWV1ZSB1cCBiZWZvcmUgZnJlZWluZyB0aGUg cmVxdWVzdHMsIGFzIHRob3NlCj4gQEAgLTI1NDEsOSArMjU0MSw5IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiDCoAnCoCogdXBvbiByZXNldCBpcyBsZXNzIHRoYW4gd2hlbiB3ZSBzdGFydC4gRG8gb25l IG1vcmUgcGFzcyBvdmVyCj4gwqAJwqAqIGFsbCB0aGUgcmluZ2J1ZmZlcnMgdG8gcmVzZXQgbGFz dF9yZXRpcmVkX2hlYWQuCj4gwqAJwqAqLwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShidWZmZXIs ICZlbmdpbmUtPmJ1ZmZlcnMsIGxpbmspIHsKPiAtCQlidWZmZXItPmxhc3RfcmV0aXJlZF9oZWFk ID0gYnVmZmVyLT50YWlsOwo+IC0JCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKGJ1ZmZlcik7Cj4g KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJpbmcsICZlbmdpbmUtPmJ1ZmZlcnMsIGxpbmspIHsKPiAr CQlyaW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IHJpbmctPnRhaWw7Cj4gKwkJaW50ZWxfcmluZ191 cGRhdGVfc3BhY2UocmluZyk7Cj4gwqAJfQo+IMKgCj4gwqAJZW5naW5lLT5pOTE1LT5ndC5hY3Rp dmVfZW5naW5lcyAmPSB+aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKPiBAQCAtMjg2Nyw3ICsy ODY3LDcgQEAgX19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+IMKgCj4gwqAJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfcmVxdWVzdChvYmosIGZy b21fcmVxKTsKPiDCoAl9IGVsc2Ugewo+IC0JCWludCBpZHggPSBpbnRlbF9yaW5nX3N5bmNfaW5k ZXgoZnJvbSwgdG8pOwo+ICsJCWludCBpZHggPSBpbnRlbF9lbmdpbmVfc3luY19pbmRleChmcm9t LCB0byk7Cj4gwqAJCXUzMiBzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKGZyb21f cmVxKTsKPiDCoAo+IMKgCQlXQVJOX09OKCF0b19yZXEpOwo+IEBAIC00NTY3LDggKzQ1NjcsOCBA QCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCj4gwqAJaWYg KCFpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPiDCoAkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3Vi bWl0ID0gaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uOwo+IC0JCWRldl9wcml2LT5ndC5j bGVhbnVwX2VuZ2luZSA9IGludGVsX2NsZWFudXBfZW5naW5lOwo+IC0JCWRldl9wcml2LT5ndC5z dG9wX2VuZ2luZSA9IGludGVsX3N0b3BfZW5naW5lOwo+ICsJCWRldl9wcml2LT5ndC5jbGVhbnVw X2VuZ2luZSA9IGludGVsX2VuZ2luZV9jbGVhbnVwOwo+ICsJCWRldl9wcml2LT5ndC5zdG9wX2Vu Z2luZSA9IGludGVsX2VuZ2luZV9zdG9wOwoKSSBndWVzcyB5b3UgYWRkZWQgcmVuYW1pbmcgZ3Qu Kl9lbmdpbmUgdG8geW91ciBUT0RPIGFscmVhZHkuCgpSZWdhcmRzLCBKb29uYXMKCj4gwqAJfSBl bHNlIHsKPiDCoAkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0ID0gaW50ZWxfZXhlY2xpc3Rz X3N1Ym1pc3Npb247Cj4gwqAJCWRldl9wcml2LT5ndC5jbGVhbnVwX2VuZ2luZSA9IGludGVsX2xv Z2ljYWxfcmluZ19jbGVhbnVwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKPiBpbmRleCBjOGJmN2I4ZTk1OWYuLmQ5Yjg2MWI4NTZkYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgaTkx NV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBrcmVmICpjdHhfcmVmKQo+IMKgCj4gwqAJCVdBUk5f T04oY2UtPnBpbl9jb3VudCk7Cj4gwqAJCWlmIChjZS0+cmluZykKPiAtCQkJaW50ZWxfcmluZ2J1 ZmZlcl9mcmVlKGNlLT5yaW5nKTsKPiArCQkJaW50ZWxfcmluZ19mcmVlKGNlLT5yaW5nKTsKPiDC oAo+IMKgCQlpOTE1X2dlbV9vYmplY3RfcHV0KGNlLT5zdGF0ZSk7Cj4gwqAJfQo+IEBAIC01NTIs NyArNTUyLDcgQEAgc3RhdGljIGlubGluZSBpbnQKPiDCoG1pX3NldF9jb250ZXh0KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCB1MzIgaHdfZmxhZ3MpCj4gwqB7Cj4gwqAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVxLT5pOTE1Owo+IC0Jc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZyA9IHJlcS0+cmluZzsKPiDCoAl1MzIgZmxhZ3MgPSBod19mbGFncyB8IE1JX01NX1NQQUNFX0dU VDsKPiDCoAljb25zdCBpbnQgbnVtX3JpbmdzID0KPiDCoAkJLyogVXNlIGFuIGV4dGVuZGVkIHcv YSBvbiBpdmIrIGlmIHNpZ25hbGxpbmcgZnJvbSBvdGhlciByaW5ncyAqLwo+IEBAIC02NTQsNyAr NjU0LDcgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs IHUzMiBod19mbGFncykKPiDCoHN0YXRpYyBpbnQgcmVtYXBfbDMoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsIGludCBzbGljZSkKPiDCoHsKPiDCoAl1MzIgKnJlbWFwX2luZm8gPSBy ZXEtPmk5MTUtPmwzX3Bhcml0eS5yZW1hcF9pbmZvW3NsaWNlXTsKPiAtCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcg PSByZXEtPnJpbmc7Cj4gwqAJaW50IGksIHJldDsKPiDCoAo+IMKgCWlmICghcmVtYXBfaW5mbykK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggNTAx YTE3NTFkNDMyLi4xMmFkZmVjMmQ2YTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTEwMDEsNyArMTAwMSw3IEBAIGk5MTVfZ2VtX2V4ZWNi dWZmZXJfbW92ZV90b19ncHUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJ LyogVW5jb25kaXRpb25hbGx5IGludmFsaWRhdGUgZ3B1IGNhY2hlcyBhbmQgZW5zdXJlIHRoYXQg d2UgZG8gZmx1c2gKPiDCoAnCoCogYW55IHJlc2lkdWFsIHdyaXRlcyBmcm9tIHRoZSBwcmV2aW91 cyBiYXRjaC4KPiDCoAnCoCovCj4gLQlyZXR1cm4gaW50ZWxfcmluZ19pbnZhbGlkYXRlX2FsbF9j YWNoZXMocmVxKTsKPiArCXJldHVybiBpbnRlbF9lbmdpbmVfaW52YWxpZGF0ZV9hbGxfY2FjaGVz KHJlcSk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBib29sCj4gQEAgLTExNzMsNyArMTE3Myw3IEBA IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMpCj4gwqBzdGF0aWMgaW50Cj4gwqBpOTE1X3Jlc2V0X2dlbjdfc29s X29mZnNldHMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqB7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCWludCByZXQsIGk7Cj4gwqAKPiDCoAlpZiAoIUlT X0dFTjcocmVxLT5pOTE1KSB8fCByZXEtPmVuZ2luZS0+aWQgIT0gUkNTKSB7Cj4gQEAgLTEzMDMs NyArMTMwMyw3IEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9l eGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+IMKgCj4gwqAJaWYgKHBhcmFtcy0+ZW5naW5lLT5p ZCA9PSBSQ1MgJiYKPiDCoAnCoMKgwqDCoGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZl X2NvbnN0YW50c19tb2RlKSB7Cj4gLQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBw YXJhbXMtPnJlcXVlc3QtPnJpbmc7Cj4gKwkJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBwYXJh bXMtPnJlcXVlc3QtPnJpbmc7Cj4gwqAKPiDCoAkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihwYXJh bXMtPnJlcXVlc3QsIDQpOwo+IMKgCQlpZiAocmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCj4gaW5kZXggYTQ4MzI5YmFmNDMyLi4wMWI4MjUxNjkxNjQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC02NjksNyArNjY5LDcgQEAgc3RhdGljIGludCBn ZW44X3dyaXRlX3BkcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCcKg wqB1bnNpZ25lZCBlbnRyeSwKPiDCoAkJCcKgwqBkbWFfYWRkcl90IGFkZHIpCj4gwqB7Cj4gLQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRl bF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCWludCByZXQ7Cj4gwqAKPiDCoAlCVUdfT04o ZW50cnkgPj0gNCk7Cj4gQEAgLTE2NjAsNyArMTY2MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBnZXRf cGRfb2Zmc2V0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKPiDCoHN0YXRpYyBpbnQgaHN3 X21tX3N3aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gwqAJCQnCoHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+ cmluZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJLyogTkI6IFRMQnMgbXVzdCBiZSBmbHVzaGVk IGFuZCBpbnZhbGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8KPiBAQCAtMTY4OCw3ICsxNjg4LDcg QEAgc3RhdGljIGludCBoc3dfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwK PiDCoHN0YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 LAo+IMKgCQkJwqDCoHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJLyogTkI6 IFRMQnMgbXVzdCBiZSBmbHVzaGVkIGFuZCBpbnZhbGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCj4gaW5kZXggMGY0MTU2MDZh MzgzLi41NGIyNzM2OTIyNWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5jCj4gQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2luaXRfc2Vx bm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc2Vxbm8pCj4gwqAKPiDC oAkvKiBGaW5hbGx5IHJlc2V0IGh3IHN0YXRlICovCj4gwqAJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYpCj4gLQkJaW50ZWxfcmluZ19pbml0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOwo+ ICsJCWludGVsX2VuZ2luZV9pbml0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOwo+IMKgCj4gwqAJcmV0 dXJuIDA7Cj4gwqB9Cj4gQEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gwqAJCQlib29sIGZsdXNo X2NhY2hlcykKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gLQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5n Owo+IMKgCXUzMiByZXF1ZXN0X3N0YXJ0Owo+IMKgCXUzMiByZXNlcnZlZF90YWlsOwo+IMKgCWlu dCByZXQ7Cj4gQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gwqAJCWlmIChpOTE1LmVuYWJsZV9l eGVjbGlzdHMpCj4gwqAJCQlyZXQgPSBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhyZXF1 ZXN0KTsKPiDCoAkJZWxzZQo+IC0JCQlyZXQgPSBpbnRlbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMo cmVxdWVzdCk7Cj4gKwkJCXJldCA9IGludGVsX2VuZ2luZV9mbHVzaF9hbGxfY2FjaGVzKHJlcXVl c3QpOwo+IMKgCQkvKiBOb3QgYWxsb3dlZCB0byBmYWlsISAqLwo+IMKgCQlXQVJOKHJldCwgIipf cmluZ19mbHVzaF9hbGxfY2FjaGVzIGZhaWxlZDogJWQhXG4iLCByZXQpOwo+IMKgCX0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4gaW5kZXggNjg4NjhkODI1ZDlkLi4z ODJjYTVhMTYzZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5o Cj4gQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPiDCoAnC oCovCj4gwqAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKPiDCoAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiAr CXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+IMKgCXN0cnVjdCBpbnRlbF9zaWduYWxfbm9kZSBz aWduYWxpbmc7Cj4gwqAKPiDCoAkvKiogR0VNIHNlcXVlbmNlIG51bWJlciBhc3NvY2lhdGVkIHdp dGggdGhlIHByZXZpb3VzIHJlcXVlc3QsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCj4gaW5kZXggMDk5OTdjNmFkY2QyLi4yZmJlODFkNTFhZjEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBAQCAtMjIxLDcgKzIyMSw3IEBAIHN0YXRpYyB2b2lk IHByaW50X2Vycm9yX2J1ZmZlcnMoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwK PiDCoAl9Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGNvbnN0IGNoYXIgKmhhbmdjaGVja19hY3Rpb25f dG9fc3RyKGVudW0gaW50ZWxfcmluZ19oYW5nY2hlY2tfYWN0aW9uIGEpCj4gK3N0YXRpYyBjb25z dCBjaGFyICpoYW5nY2hlY2tfYWN0aW9uX3RvX3N0cihlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hl Y2tfYWN0aW9uIGEpCj4gwqB7Cj4gwqAJc3dpdGNoIChhKSB7Cj4gwqAJY2FzZSBIQU5HQ0hFQ0tf SURMRToKPiBAQCAtODgyLDcgKzg4Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcmVjb3JkX3NlbWFw aG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCXNpZ25h bF9vZmZzZXQgPSAoR0VOOF9TSUdOQUxfT0ZGU0VUKGVuZ2luZSwgaWQpICYgKFBBR0VfU0laRSAt IDEpKQo+IMKgCQkJCS8gNDsKPiDCoAkJdG1wID0gZXJyb3ItPnNlbWFwaG9yZV9vYmotPnBhZ2Vz WzBdOwo+IC0JCWlkeCA9IGludGVsX3Jpbmdfc3luY19pbmRleChlbmdpbmUsIHRvKTsKPiArCQlp ZHggPSBpbnRlbF9lbmdpbmVfc3luY19pbmRleChlbmdpbmUsIHRvKTsKPiDCoAo+IMKgCQllcmlu Zy0+c2VtYXBob3JlX21ib3hlc1tpZHhdID0gdG1wW3NpZ25hbF9vZmZzZXRdOwo+IMKgCQllcmlu Zy0+c2VtYXBob3JlX3NlcW5vW2lkeF0gPSBlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vW2lk eF07Cj4gQEAgLTk4Myw3ICs5ODMsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlY29yZF9yaW5nX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAo+IMKgCWVyaW5nLT53 YWl0aW5nID0gaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKTsKPiDCoAllcmluZy0+aW5z dHBtID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4gLQllcmlu Zy0+YWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+ICsJZXJpbmct PmFjdGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+IMKgCWVyaW5n LT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKPiDCoAllcmluZy0+bGFz dF9zZXFubyA9IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm87Cj4gwqAJZXJpbmctPnN0YXJ0 ID0gSTkxNV9SRUFEX1NUQVJUKGVuZ2luZSk7Cj4gQEAgLTEwOTEsNyArMTA5MSw3IEBAIHN0YXRp YyB2b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gwqAJCXJlcXVlc3QgPSBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2lu ZSk7Cj4gwqAJCWlmIChyZXF1ZXN0KSB7Cj4gwqAJCQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bTsKPiAtCQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7Cj4gKwkJCXN0cnVjdCBp bnRlbF9yaW5nICpyaW5nOwo+IMKgCj4gwqAJCQl2bSA9IHJlcXVlc3QtPmN0eC0+cHBndHQgPwo+ IMKgCQkJCSZyZXF1ZXN0LT5jdHgtPnBwZ3R0LT5iYXNlIDogJmdndHQtPmJhc2U7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCj4gaW5kZXggNzEwNGRjMTQ2M2ViLi41OTAzMTExZGI3MTggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMjk5Myw3ICsyOTkzLDcgQEAgc3RhdGljIGJv b2wgc3VidW5pdHNfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgCXJl dHVybiBzdHVjazsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgZW51bSBpbnRlbF9yaW5nX2hhbmdjaGVj a19hY3Rpb24KPiArc3RhdGljIGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24KPiDC oGhlYWRfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCj4g wqB7Cj4gwqAJaWYgKGFjdGhkICE9IGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGhkKSB7Cj4gQEAgLTMw MTEsMTEgKzMwMTEsMTEgQEAgaGVhZF9zdHVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsIHU2NCBhY3RoZCkKPiDCoAlyZXR1cm4gSEFOR0NIRUNLX0hVTkc7Cj4gwqB9Cj4gwqAKPiAt c3RhdGljIGVudW0gaW50ZWxfcmluZ19oYW5nY2hlY2tfYWN0aW9uCj4gLXJpbmdfc3R1Y2soc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCj4gK3N0YXRpYyBlbnVtIGlu dGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uCj4gK2VuZ2luZV9zdHVjayhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsIHU2NCBhY3RoZCkKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQllbnVtIGludGVsX3JpbmdfaGFu Z2NoZWNrX2FjdGlvbiBoYTsKPiArCWVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24g aGE7Cj4gwqAJdTMyIHRtcDsKPiDCoAo+IMKgCWhhID0gaGVhZF9zdHVjayhlbmdpbmUsIGFjdGhk KTsKPiBAQCAtMzEyNCw3ICszMTI0LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxh cHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gwqAJCWlmIChlbmdpbmUtPmlycV9zZXFu b19iYXJyaWVyKQo+IMKgCQkJZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihlbmdpbmUpOwo+IMKg Cj4gLQkJYWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+ICsJCWFj dGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+IMKgCQlzZXFubyA9 IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKPiDCoAo+IMKgCQkvKiBSZXNldCBzdHVj ayBpbnRlcnJ1cHRzIGJldHdlZW4gYmF0Y2ggYWR2YW5jZXMgKi8KPiBAQCAtMzE1NCw4ICszMTU0 LDggQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCj4gwqAJCQkJwqAqIGJlaW5nIHJlcGVhdGVkbHkga2lja2VkIGFuZCBzbyByZXNw b25zaWJsZQo+IMKgCQkJCcKgKiBmb3Igc3RhbGxpbmcgdGhlIG1hY2hpbmUuCj4gwqAJCQkJwqAq Lwo+IC0JCQkJZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uID0gcmluZ19zdHVjayhlbmdpbmUsCj4g LQkJCQkJCQkJwqDCoMKgwqDCoMKgYWN0aGQpOwo+ICsJCQkJZW5naW5lLT5oYW5nY2hlY2suYWN0 aW9uID0KPiArCQkJCQllbmdpbmVfc3R1Y2soZW5naW5lLCBhY3RoZCk7Cj4gwqAKPiDCoAkJCQlz d2l0Y2ggKGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlvbikgewo+IMKgCQkJCWNhc2UgSEFOR0NIRUNL X0lETEU6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGQxOTMyODQw YTI2OC4uYmZmMTcyYzQ1ZmY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IEBAIC0xMTEyMyw3ICsxMTEyMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9m bGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gwqAJCQkJwqBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKPiDCoAkJCQnCoHVpbnQzMl90IGZsYWdzKQo+IMKgewo+IC0Jc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJdTMyIGZsaXBfbWFzazsKPiDCoAlpbnQgcmV0Owo+ IEBAIC0xMTE1Nyw3ICsxMTE1Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuM19xdWV1ZV9mbGlw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gwqAJCQkJwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSwKPiDCoAkJCQnCoHVpbnQzMl90IGZsYWdzKQo+IMKgewo+IC0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAq cmluZyA9IHJlcS0+cmluZzsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJdTMyIGZsaXBfbWFzazsKPiDCoAlpbnQgcmV0Owo+IEBA IC0xMTE4OCw3ICsxMTE4OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNF9xdWV1ZV9mbGlwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gwqAJCQkJwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwKPiDCoAkJCQnCoHVpbnQzMl90IGZsYWdzKQo+IMKgewo+IC0Jc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZyA9IHJlcS0+cmluZzsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gwqAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwo+IMKgCXVpbnQzMl90IHBmLCBwaXBlc3JjOwo+IEBAIC0xMTIyNiw3ICsx MTIyNiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gwqAJCQkJwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDC oAkJCQnCoHVpbnQzMl90IGZsYWdzKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Cj4gwqAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+IMKgCXVpbnQzMl90IHBmLCBwaXBlc3JjOwo+IEBAIC0xMTI2MSw3ICsxMTI2MSw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZ2VuN19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g wqAJCQkJwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCQnCoHVpbnQz Ml90IGZsYWdzKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJdWlu dDMyX3QgcGxhbmVfYml0ID0gMDsKPiDCoAlpbnQgbGVuLCByZXQ7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBmNGEzNWVjNzg0ODEuLmYwMGJkNTVmZTU4MiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTE1NCw3ICsx NTQsNyBAQCBjbGVhbnVwOgo+IMKgCQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+IMKgCQkJ aW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoJmRldl9wcml2LT5lbmdpbmVbaV0pOwo+IMKgCQll bHNlCj4gLQkJCWludGVsX2NsZWFudXBfZW5naW5lKCZkZXZfcHJpdi0+ZW5naW5lW2ldKTsKPiAr CQkJaW50ZWxfZW5naW5lX2NsZWFudXAoJmRldl9wcml2LT5lbmdpbmVbaV0pOwo+IMKgCX0KPiDC oAo+IMKgCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA3YmMx ZDBjOTI3OTkuLjViOWY5OGY2ZWQ4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4g QEAgLTc2Nyw3ICs3NjcsNyBAQCBlcnJfdW5waW46Cj4gwqBzdGF0aWMgaW50Cj4gwqBpbnRlbF9s b2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVx dWVzdC0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxdWVzdC0+cmluZzsK PiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7Cj4g wqAKPiDCoAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gQEAgLTgxOCw3ICs4MTgsNyBAQCBp bnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJh bXMgKnBhcmFtcywKPiDCoAlzdHJ1Y3QgZHJtX2RldmljZcKgwqDCoMKgwqDCoMKgKmRldiA9IHBh cmFtcy0+ZGV2Owo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHBhcmFtcy0+ ZW5naW5lOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcGFyYW1zLT5yZXF1ZXN0 LT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBwYXJhbXMtPnJlcXVlc3QtPnJp bmc7Cj4gwqAJdTY0IGV4ZWNfc3RhcnQ7Cj4gwqAJaW50IGluc3RwX21vZGU7Cj4gwqAJdTMyIGlu c3RwX21hc2s7Cj4gQEAgLTk3Myw3ICs5NzMsNyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRl eHRfcGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gwqAKPiDCoAlscmNfcmVnX3N0 YXRlID0gdmFkZHIgKyBMUkNfU1RBVEVfUE4gKiBQQUdFX1NJWkU7Cj4gwqAKPiAtCXJldCA9IGlu dGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldl9wcml2LCBjZS0+cmluZyk7Cj4gKwly ZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nKGRldl9wcml2LCBjZS0+cmluZyk7Cj4gwqAJaWYg KHJldCkKPiDCoAkJZ290byB1bnBpbl9tYXA7Cj4gwqAKPiBAQCAtMTAxMSw3ICsxMDExLDcgQEAg dm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs Cj4gwqAJaWYgKC0tY2UtPnBpbl9jb3VudCkKPiDCoAkJcmV0dXJuOwo+IMKgCj4gLQlpbnRlbF91 bnBpbl9yaW5nYnVmZmVyX29iaihjZS0+cmluZyk7Cj4gKwlpbnRlbF91bnBpbl9yaW5nKGNlLT5y aW5nKTsKPiDCoAo+IMKgCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2UtPnN0YXRlKTsKPiDC oAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjZS0+c3RhdGUpOwo+IEBAIC0xMDI3LDcgKzEw MjcsNyBAQCBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IMKgCWludCByZXQsIGk7Cj4g wqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCXN0cnVjdCBpOTE1X3dvcmthcm91bmRzICp3ID0g JnJlcS0+aTkxNS0+d29ya2Fyb3VuZHM7Cj4gwqAKPiDCoAlpZiAody0+Y291bnQgPT0gMCkKPiBA QCAtMTU0Myw3ICsxNTQzLDcgQEAgc3RhdGljIGludCBnZW45X2luaXRfcmVuZGVyX3Jpbmcoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgc3RhdGljIGludCBpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+ IMKgCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IHJlcS0+Y3R4LT5wcGd0dDsKPiAtCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVs X3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gwqAJY29uc3QgaW50IG51bV9scmlfY21kcyA9IEdF TjhfTEVHQUNZX1BEUEVTICogMjsKPiDCoAlpbnQgaSwgcmV0Owo+IMKgCj4gQEAgLTE1NzAsNyAr MTU3MCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2JiX3N0 YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKgCQkJwqDCoMKgwqDCoMKg dTY0IG9mZnNldCwgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gwqB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpy aW5nID0gcmVxLT5yaW5nOwo+IMKgCWJvb2wgcHBndHQgPSAhKGRpc3BhdGNoX2ZsYWdzICYgSTkx NV9ESVNQQVRDSF9TRUNVUkUpOwo+IMKgCWludCByZXQ7Cj4gwqAKPiBAQCAtMTYyNyw4ICsxNjI3 LDggQEAgc3RhdGljIGludCBnZW44X2VtaXRfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0LAo+IMKgCQkJwqDCoMKgdTMyIGludmFsaWRhdGVfZG9tYWlucywKPiDCoAkJ CcKgwqDCoHUzMiB1bnVzZWQpCj4gwqB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu ZyA9IHJlcXVlc3QtPnJpbmc7Cj4gLQl1aW50MzJfdCBjbWQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gKwl1MzIgY21kOwo+IMKgCWludCByZXQ7Cj4gwqAK PiDCoAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcXVlc3QsIDQpOwo+IEBAIC0xNjY1LDcgKzE2 NjUsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+IMKgCQkJCcKgwqB1MzIgaW52YWxpZGF0ZV9kb21haW5z LAo+IMKgCQkJCcKgwqB1MzIgZmx1c2hfZG9tYWlucykKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpy aW5nID0gcmVxdWVzdC0+cmluZzsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSByZXF1ZXN0LT5lbmdpbmU7Cj4gwqAJdTMyIHNjcmF0Y2hfYWRkciA9IGVuZ2luZS0+c2NyYXRj aC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKPiDCoAlib29sIHZmX2ZsdXNoX3dh ID0gZmFsc2UsIGRjX2ZsdXNoX3dhID0gZmFsc2U7Cj4gQEAgLTE3NzksNyArMTc3OSw3IEBAIHN0 YXRpYyB2b2lkIGJ4dF9hX3NlcW5vX2JhcnJpZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+IMKgCj4gwqBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxdWVzdC0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx dWVzdC0+cmluZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwo+IEBAIC0xODAyLDcgKzE4MDIsNyBAQCBz dGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKPiDCoAo+IMKgc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdF9yZW5kZXIoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+IMKgewo+IC0Jc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3Jpbmcg KnJpbmcgPSByZXF1ZXN0LT5yaW5nOwo+IMKgCWludCByZXQ7Cj4gwqAKPiDCoAlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJlcXVlc3QsIDggKyBXQV9UQUlMX0RXT1JEUyk7Cj4gQEAgLTIxNTQsNyAr MjE1NCw3IEBAIHN0YXRpYyBpbnQKPiDCoHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiDCoAkJwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqY3R4X29iaiwKPiDCoAkJwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4gLQkJwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArCQnCoMKg wqDCoHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGN0eC0+aTkxNTsKPiDCoAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQgPSBjdHgtPnBwZ3R0Owo+IEBAIC0yMjA3LDcgKzIyMDcsNyBAQCBwb3B1bGF0ZV9scl9j b250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gwqAJCcKgwqDCoMKgwqDCoMKg UklOR19TVEFSVChlbmdpbmUtPm1taW9fYmFzZSksIDApOwo+IMKgCUFTU0lHTl9DVFhfUkVHKHJl Z19zdGF0ZSwgQ1RYX1JJTkdfQlVGRkVSX0NPTlRST0wsCj4gwqAJCcKgwqDCoMKgwqDCoMKgUklO R19DVEwoZW5naW5lLT5tbWlvX2Jhc2UpLAo+IC0JCcKgwqDCoMKgwqDCoMKgKChyaW5nYnVmLT5z aXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMpIHwgUklOR19WQUxJRCk7Cj4gKwkJwqDC oMKgwqDCoMKgwqAoKHJpbmctPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19OUl9QQUdFUykgfCBS SU5HX1ZBTElEKTsKPiDCoAlBU1NJR05fQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9CQl9IRUFEX1Us Cj4gwqAJCcKgwqDCoMKgwqDCoMKgUklOR19CQkFERFJfVURXKGVuZ2luZS0+bW1pb19iYXNlKSwg MCk7Cj4gwqAJQVNTSUdOX0NUWF9SRUcocmVnX3N0YXRlLCBDVFhfQkJfSEVBRF9MLAo+IEBAIC0y MzM1LDcgKzIzMzUsNyBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X2RlZmVycmVkX2Fs bG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gwqAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmo7Cj4gwqAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ ZW5naW5lW2VuZ2luZS0+aWRdOwo+IMKgCXVpbnQzMl90IGNvbnRleHRfc2l6ZTsKPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4g wqAJaW50IHJldDsKPiDCoAo+IMKgCVdBUk5fT04oY2UtPnN0YXRlKTsKPiBAQCAtMjM1MSw3ICsy MzUxLDcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+IMKgCQlyZXR1cm4gUFRSX0VSUihjdHhfb2JqKTsK PiDCoAl9Cj4gwqAKPiAtCXJpbmcgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoZW5n aW5lLCBjdHgtPnJpbmdfc2l6ZSk7Cj4gKwlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5n KGVuZ2luZSwgY3R4LT5yaW5nX3NpemUpOwo+IMKgCWlmIChJU19FUlIocmluZykpIHsKPiDCoAkJ cmV0ID0gUFRSX0VSUihyaW5nKTsKPiDCoAkJZ290byBlcnJvcl9kZXJlZl9vYmo7Cj4gQEAgLTIz NzAsNyArMjM3MCw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfZGVmZXJyZWRfYWxs b2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiDCoAlyZXR1cm4gMDsKPiDCoAo+IMKg ZXJyb3JfcmluZ2J1ZjoKPiAtCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nKTsKPiArCWludGVs X3JpbmdfZnJlZShyaW5nKTsKPiDCoGVycm9yX2RlcmVmX29iajoKPiDCoAlpOTE1X2dlbV9vYmpl Y3RfcHV0KGN0eF9vYmopOwo+IMKgCWNlLT5yaW5nID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbW9jcy5jCj4gaW5kZXggZmU2M2M3ZTc5ZmIxLi41OGRiMGUzMzBlZTYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbW9jcy5jCj4gQEAgLTI3Niw3ICsyNzYsNyBAQCBpbnQgaW50ZWxfbW9j c19pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqBzdGF0aWMg aW50IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAo+IMKgCQkJCcKgwqDCoGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJs ZSkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gwqAJZW51bSBpbnRlbF9l bmdpbmVfaWQgZW5naW5lID0gcmVxLT5lbmdpbmUtPmlkOwo+IMKgCXVuc2lnbmVkIGludCBpbmRl eDsKPiDCoAlpbnQgcmV0Owo+IEBAIC0zMzYsNyArMzM2LDcgQEAgc3RhdGljIGlubGluZSB1MzIg bDNjY19jb21iaW5lKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKPiDC oHN0YXRpYyBpbnQgZW1pdF9tb2NzX2wzY2NfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCj4gwqAJCQkJY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxl KQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4g KwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAl1bnNpZ25lZCBpbnQg aTsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+ IGluZGV4IDg0YjhmNzRiZDEzYy4uYTUwNzFlMjgxMDg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX292ZXJsYXkuYwo+IEBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIGludCBpbnRlbF9v dmVybGF5X29uKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+IMKgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG92ZXJsYXktPmk5MTU7Cj4gwqAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbUkNTXTsKPiDCoAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gwqAJaW50IHJldDsKPiDCoAo+IMKg CVdBUk5fT04ob3ZlcmxheS0+YWN0aXZlKTsKPiBAQCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfb3ZlcmxheV9jb250aW51ZShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwK PiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1Owo+ IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JD U107Cj4gwqAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gLQlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+IMKgCXUz MiBmbGlwX2FkZHIgPSBvdmVybGF5LT5mbGlwX2FkZHI7Cj4gwqAJdTMyIHRtcDsKPiDCoAlpbnQg cmV0Owo+IEBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihz dHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1Owo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107Cj4gwqAJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXE7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiArCXN0 cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+IMKgCXUzMiBmbGlwX2FkZHIgPSBvdmVybGF5LT5mbGlw X2FkZHI7Cj4gwqAJaW50IHJldDsKPiDCoAo+IEBAIC00MjYsNyArNDI2LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSkKPiDCoAlpZiAoSTkxNV9SRUFEKElTUikgJiBJOTE1X09WRVJMQVlfUExBTkVfRkxJUF9Q RU5ESU5HX0lOVEVSUlVQVCkgewo+IMKgCQkvKiBzeW5jaHJvbm91cyBzbG93cGF0aCAqLwo+IMKg CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAtCQlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZzsKPiArCQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKPiDCoAo+IMKgCQly ZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgTlVMTCk7Cj4gwqAJCWlmIChJU19F UlIocmVxKSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXgg M2NmYmZlNDBmNmU4Li45YWFmODFiYTY2YzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTQ3LDcgKzQ3LDcgQEAgaW50IF9faW50ZWxfcmluZ19zcGFj ZShpbnQgaGVhZCwgaW50IHRhaWwsIGludCBzaXplKQo+IMKgCXJldHVybiBzcGFjZSAtIEk5MTVf UklOR19GUkVFX1NQQUNFOwo+IMKgfQo+IMKgCj4gLXZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3Bh Y2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK3ZvaWQgaW50ZWxfcmluZ191 cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCj4gwqB7Cj4gwqAJaWYgKHJp bmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkICE9IC0xKSB7Cj4gwqAJCXJpbmdidWYtPmhlYWQgPSBy aW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZDsKPiBAQCAtNjAsOSArNjAsMTAgQEAgdm9pZCBpbnRl bF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiDC oAo+IMKgc3RhdGljIHZvaWQgX19pbnRlbF9lbmdpbmVfc3VibWl0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gZW5naW5lLT5idWZmZXI7Cj4gLQlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAx Owo+IC0JZW5naW5lLT53cml0ZV90YWlsKGVuZ2luZSwgcmluZ2J1Zi0+dGFpbCk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcmluZyAqcmluZyA9IGVuZ2luZS0+YnVmZmVyOwo+ICsKPiArCXJpbmctPnRhaWwg Jj0gcmluZy0+c2l6ZSAtIDE7Cj4gKwllbmdpbmUtPndyaXRlX3RhaWwoZW5naW5lLCByaW5nLT50 YWlsKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGludAo+IEBAIC03MCw3ICs3MSw3IEBAIGdlbjJf cmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJ CcKgwqDCoMKgwqDCoMKgdTMyCWludmFsaWRhdGVfZG9tYWlucywKPiDCoAkJwqDCoMKgwqDCoMKg wqB1MzIJZmx1c2hfZG9tYWlucykKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7 Cj4gwqAJdTMyIGNtZDsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gQEAgLTk3LDcgKzk4LDcgQEAgZ2Vu NF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDC oAkJwqDCoMKgwqDCoMKgwqB1MzIJaW52YWxpZGF0ZV9kb21haW5zLAo+IMKgCQnCoMKgwqDCoMKg wqDCoHUzMglmbHVzaF9kb21haW5zKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiDCoAl1MzIgY21kOwo+IMKgCWludCByZXQ7Cj4gwqAKPiBAQCAtMTg3LDcgKzE4OCw3IEBA IGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Cj4gwqBzdGF0aWMgaW50Cj4gwqBpbnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9 IHJlcS0+cmluZzsKPiDCoAl1MzIgc2NyYXRjaF9hZGRyID0KPiDCoAkJcmVxLT5lbmdpbmUtPnNj cmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7Cj4gwqAJaW50IHJldDsKPiBA QCAtMjI0LDcgKzIyNSw3IEBAIHN0YXRpYyBpbnQKPiDCoGdlbjZfcmVuZGVyX3JpbmdfZmx1c2go c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJCcKgwqDCoMKgwqDCoMKgdTMy IGludmFsaWRhdGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCj4gwqB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5n ICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCXUzMiBzY3JhdGNoX2FkZHIgPQo+IMKgCQlyZXEtPmVu Z2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKPiDCoAl1MzIg ZmxhZ3MgPSAwOwo+IEBAIC0yNzcsNyArMjc4LDcgQEAgZ2VuNl9yZW5kZXJfcmluZ19mbHVzaChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoHN0YXRpYyBpbnQKPiDCoGdlbjdf cmVuZGVyX3JpbmdfY3Nfc3RhbGxfd2Eoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEp Cj4gwqB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiAr CXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCWludCByZXQ7Cj4gwqAK PiDCoAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gQEAgLTI5OSw3ICszMDAsNyBA QCBzdGF0aWMgaW50Cj4gwqBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAo+IMKgCQnCoMKgwqDCoMKgwqDCoHUzMiBpbnZhbGlkYXRlX2RvbWFp bnMsIHUzMiBmbHVzaF9kb21haW5zKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiDCoAl1MzIgc2NyYXRjaF9hZGRyID0KPiDCoAkJcmVxLT5lbmdpbmUtPnNjcmF0Y2guZ3R0 X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7Cj4gwqAJdTMyIGZsYWdzID0gMDsKPiBAQCAt MzY0LDcgKzM2NSw3IEBAIHN0YXRpYyBpbnQKPiDCoGdlbjhfZW1pdF9waXBlX2NvbnRyb2woc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJCcKgwqDCoMKgwqDCoMKgdTMyIGZs YWdzLCB1MzIgc2NyYXRjaF9hZGRyKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYp Owo+IEBAIC00MjcsNyArNDI4LDcgQEAgc3RhdGljIHZvaWQgcmluZ193cml0ZV90YWlsKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiDCoAlJOTE1X1dSSVRFX1RBSUwoZW5naW5lLCB2 YWx1ZSk7Cj4gwqB9Cj4gwqAKPiAtdTY0IGludGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArdTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZl X2hlYWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgewo+IMKgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiDCoAl1NjQgYWN0aGQ7 Cj4gQEAgLTU1Myw4ICs1NTQsOCBAQCBzdGF0aWMgYm9vbCBzdG9wX3Jpbmcoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgc3RhdGljIGludCBpbml0X3JpbmdfY29tbW9uKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGVuZ2luZS0+YnVmZmVyOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IHJpbmdidWYtPm9iajsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gZW5n aW5lLT5idWZmZXI7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcmluZy0+ b2JqOwo+IMKgCWludCByZXQgPSAwOwo+IMKgCj4gwqAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9n ZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwo+IEBAIC02MDQsNyArNjA1LDcgQEAgc3RhdGlj IGludCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDC oAkodm9pZClJOTE1X1JFQURfSEVBRChlbmdpbmUpOwo+IMKgCj4gwqAJSTkxNV9XUklURV9DVEwo ZW5naW5lLAo+IC0JCQkoKHJpbmdidWYtPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19OUl9QQUdF UykKPiArCQkJKChyaW5nLT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMpCj4gwqAJ CQl8IFJJTkdfVkFMSUQpOwo+IMKgCj4gwqAJLyogSWYgdGhlIGhlYWQgaXMgc3RpbGwgbm90IHpl cm8sIHRoZSByaW5nIGlzIGRlYWQgKi8KPiBAQCAtNjIzLDEwICs2MjQsMTAgQEAgc3RhdGljIGlu dCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoAkJ Z290byBvdXQ7Cj4gwqAJfQo+IMKgCj4gLQlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0x Owo+IC0JcmluZ2J1Zi0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7Cj4gLQlyaW5nYnVm LT50YWlsID0gSTkxNV9SRUFEX1RBSUwoZW5naW5lKSAmIFRBSUxfQUREUjsKPiAtCWludGVsX3Jp bmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+ICsJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAt MTsKPiArCXJpbmctPmhlYWQgPSBJOTE1X1JFQURfSEVBRChlbmdpbmUpOwo+ICsJcmluZy0+dGFp bCA9IEk5MTVfUkVBRF9UQUlMKGVuZ2luZSkgJiBUQUlMX0FERFI7Cj4gKwlpbnRlbF9yaW5nX3Vw ZGF0ZV9zcGFjZShyaW5nKTsKPiDCoAo+IMKgCWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhl bmdpbmUpOwo+IMKgCj4gQEAgLTY4MCw3ICs2ODEsNyBAQCBlcnI6Cj4gwqAKPiDCoHN0YXRpYyBp bnQgaW50ZWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlzdHJ1Y3Qg aTkxNV93b3JrYXJvdW5kcyAqdyA9ICZyZXEtPmk5MTUtPndvcmthcm91bmRzOwo+IMKgCWludCBy ZXQsIGk7Cj4gwqAKPiBAQCAtNjg4LDcgKzY4OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmluZ193 b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgCQly ZXR1cm4gMDsKPiDCoAo+IMKgCXJlcS0+ZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1ZTsK PiAtCXJldCA9IGludGVsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhyZXEpOwo+ICsJcmV0ID0gaW50 ZWxfZW5naW5lX2ZsdXNoX2FsbF9jYWNoZXMocmVxKTsKPiDCoAlpZiAocmV0KQo+IMKgCQlyZXR1 cm4gcmV0Owo+IMKgCj4gQEAgLTcwNiw3ICs3MDcsNyBAQCBzdGF0aWMgaW50IGludGVsX3Jpbmdf d29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoAlp bnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gwqAKPiDCoAlyZXEtPmVuZ2luZS0+Z3B1X2NhY2hl c19kaXJ0eSA9IHRydWU7Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMocmVx KTsKPiArCXJldCA9IGludGVsX2VuZ2luZV9mbHVzaF9hbGxfY2FjaGVzKHJlcSk7Cj4gwqAJaWYg KHJldCkKPiDCoAkJcmV0dXJuIHJldDsKPiDCoAo+IEBAIC0xMzI0LDcgKzEzMjUsNyBAQCBzdGF0 aWMgaW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25h bGxlcl9yZXEsCj4gwqAJCQnCoMKgwqB1bnNpZ25lZCBpbnQgbnVtX2R3b3JkcykKPiDCoHsKPiDC oCNkZWZpbmUgTUJPWF9VUERBVEVfRFdPUkRTIDgKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpzaWduYWxsZXIgPSBzaWduYWxsZXJfcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3Jpbmcg KnNpZ25hbGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmc7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gc2lnbmFsbGVyX3JlcS0+aTkxNTsKPiDCoAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICp3YWl0ZXI7Cj4gwqAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gQEAgLTEz NjYsNyArMTM2Nyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF94Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKPiDCoAkJCcKgwqDCoHVuc2lnbmVkIGludCBu dW1fZHdvcmRzKQo+IMKgewo+IMKgI2RlZmluZSBNQk9YX1VQREFURV9EV09SRFMgNgo+IC0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnNpZ25hbGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmc7Cj4g KwlzdHJ1Y3QgaW50ZWxfcmluZyAqc2lnbmFsbGVyID0gc2lnbmFsbGVyX3JlcS0+cmluZzsKPiDC oAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzaWduYWxsZXJfcmVxLT5pOTE1 Owo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKndhaXRlcjsKPiDCoAllbnVtIGludGVsX2Vu Z2luZV9pZCBpZDsKPiBAQCAtMTQwNSw3ICsxNDA2LDcgQEAgc3RhdGljIGludCBnZW44X3hjc19z aWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+IMKgc3Rh dGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxl cl9yZXEsCj4gwqAJCcKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCj4gwqB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2lnbmFsbGVyID0gc2lnbmFsbGVyX3JlcS0+ cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpzaWduYWxsZXIgPSBzaWduYWxsZXJfcmVxLT5y aW5nOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHNpZ25hbGxlcl9y ZXEtPmk5MTU7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdXNlbGVzczsKPiDCoAllbnVt IGludGVsX2VuZ2luZV9pZCBpZDsKPiBAQCAtMTQ0OSw3ICsxNDUwLDcgQEAgc3RhdGljIGludCBn ZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4g wqBzdGF0aWMgaW50Cj4gwqBnZW42X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQg cmV0Owo+IMKgCj4gwqAJaWYgKHJlcS0+ZW5naW5lLT5zZW1hcGhvcmUuc2lnbmFsKQo+IEBAIC0x NDczLDcgKzE0NzQsNyBAQCBzdGF0aWMgaW50Cj4gwqBnZW44X3JlbmRlcl9hZGRfcmVxdWVzdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEt PnJpbmc7Cj4gwqAJaW50IHJldDsKPiDCoAo+IMKgCWlmIChlbmdpbmUtPnNlbWFwaG9yZS5zaWdu YWwpCj4gQEAgLTE1MTgsNyArMTUxOSw3IEBAIGdlbjhfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqd2FpdGVyX3JlcSwKPiDCoAnCoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnNpZ25hbGxlciwKPiDCoAnCoMKgwqDCoMKgwqDCoHUzMiBzZXFubykKPiDC oHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICp3YWl0ZXIgPSB3YWl0ZXJfcmVxLT5yaW5n Owo+ICsJc3RydWN0IGludGVsX3JpbmcgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmc7Cj4gwqAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gd2FpdGVyX3JlcS0+aTkxNTsKPiDC oAl1NjQgb2Zmc2V0ID0gR0VOOF9XQUlUX09GRlNFVCh3YWl0ZXJfcmVxLT5lbmdpbmUsIHNpZ25h bGxlci0+aWQpOwo+IMKgCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKPiBAQCAtMTU1Miw3 ICsxNTUzLDcgQEAgZ2VuNl9yaW5nX3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp3 YWl0ZXJfcmVxLAo+IMKgCcKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2ln bmFsbGVyLAo+IMKgCcKgwqDCoMKgwqDCoMKgdTMyIHNlcW5vKQo+IMKgewo+IC0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50 ZWxfcmluZyAqd2FpdGVyID0gd2FpdGVyX3JlcS0+cmluZzsKPiDCoAl1MzIgZHcxID0gTUlfU0VN QVBIT1JFX01CT1ggfAo+IMKgCQnCoMKgTUlfU0VNQVBIT1JFX0NPTVBBUkUgfAo+IMKgCQnCoMKg TUlfU0VNQVBIT1JFX1JFR0lTVEVSOwo+IEBAIC0xNjg2LDcgKzE2ODcsNyBAQCBic2RfcmluZ19m bHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAnCoMKgwqDCoMKgwqDC oHUzMsKgwqDCoMKgwqBpbnZhbGlkYXRlX2RvbWFpbnMsCj4gwqAJwqDCoMKgwqDCoMKgwqB1MzLC oMKgwqDCoMKgZmx1c2hfZG9tYWlucykKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJp bmc7Cj4gwqAJaW50IHJldDsKPiDCoAo+IMKgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAy KTsKPiBAQCAtMTcwMiw3ICsxNzAzLDcgQEAgYnNkX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqBzdGF0aWMgaW50Cj4gwqBpOXh4X2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9 IHJlcS0+cmluZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXEsIDQpOwo+IEBAIC0xNzgwLDcgKzE3ODEsNyBAQCBpOTY1X2Rpc3BhdGNoX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJCQnCoHU2NCBvZmZzZXQs IHUzMiBsZW5ndGgsCj4gwqAJCQnCoHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQo+IMKgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcmV0ID0g aW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+IEBAIC0xODA3LDcgKzE4MDgsNyBAQCBpODMwX2Rp c3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gwqAJ CQnCoHU2NCBvZmZzZXQsIHUzMiBsZW4sCj4gwqAJCQnCoHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdz KQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4g KwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAl1MzIgY3Nfb2Zmc2V0 ID0gcmVxLT5lbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldDsKPiDCoAlpbnQgcmV0Owo+IMKgCj4g QEAgLTE4NjksNyArMTg3MCw3IEBAIGk5MTVfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCcKgdTY0IG9mZnNldCwgdTMyIGxlbiwKPiDC oAkJCcKgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gwqB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0g cmVxLT5yaW5nOwo+IMKgCWludCByZXQ7Cj4gwqAKPiDCoAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2lu KHJlcSwgMik7Cj4gQEAgLTE5NzcsNyArMTk3OCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9waHlzX3N0 YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoAlyZXR1cm4gMDsK PiDCoH0KPiDCoAo+IC12b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt2b2lkIGludGVsX3VucGluX3Jpbmcoc3RydWN0IGlu dGVsX3JpbmcgKnJpbmdidWYpCj4gwqB7Cj4gwqAJR0VNX0JVR19PTighcmluZ2J1Zi0+dm1hKTsK PiDCoAlHRU1fQlVHX09OKCFyaW5nYnVmLT52YWRkcik7Cj4gQEAgLTE5OTIsOCArMTk5Myw4IEBA IHZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCj4gwqAJcmluZ2J1Zi0+dm1hID0gTlVMTDsKPiDCoH0KPiDCoAo+IC1pbnQgaW50 ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+IC0JCQkJwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQo+ICtpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gKwkJCcKgwqDCoHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKQo+IMKgewo+ IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSByaW5nYnVmLT5vYmo7Cj4gwqAJ LyogUmluZyB3cmFwYXJvdW5kIGF0IG9mZnNldCAwIHNvbWV0aW1lcyBoYW5ncy4gTm8gaWRlYSB3 aHkuICovCj4gQEAgLTIwNDUsMTQgKzIwNDYsMTQgQEAgZXJyX3VucGluOgo+IMKgCXJldHVybiBy ZXQ7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29i aihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArc3RhdGljIHZvaWQgaW50ZWxf ZGVzdHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZikKPiDCoHsK PiDCoAlpOTE1X2dlbV9vYmplY3RfcHV0KHJpbmdidWYtPm9iaik7Cj4gwqAJcmluZ2J1Zi0+b2Jq ID0gTlVMTDsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVy X29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJwqDCoMKgwqDCoMKgc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gKwkJCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxf cmluZyAqcmluZ2J1ZikKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq Owo+IMKgCj4gQEAgLTIwNzIsMTAgKzIwNzMsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hbGxvY19y aW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IMKgCXJldHVybiAwOwo+IMKg fQo+IMKgCj4gLXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICoKPiAtaW50ZWxfZW5naW5lX2NyZWF0 ZV9yaW5nYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCj4g K3N0cnVjdCBpbnRlbF9yaW5nICoKPiAraW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCj4gwqB7Cj4gLQlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+IMKgCWludCBy ZXQ7Cj4gwqAKPiDCoAlyaW5nID0ga3phbGxvYyhzaXplb2YoKnJpbmcpLCBHRlBfS0VSTkVMKTsK PiBAQCAtMjExMyw3ICsyMTE0LDcgQEAgaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCj4gwqB9Cj4gwqAKPiDCoHZv aWQKPiAtaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n KQo+ICtpbnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCj4gwqB7Cj4gwqAJ aW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihyaW5nKTsKPiDCoAlsaXN0X2RlbCgmcmluZy0+ bGluayk7Cj4gQEAgLTIxNzQsNyArMjE3NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3JpbmdfY29u dGV4dF91bnBpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+IMKgc3RhdGljIGludCBp bnRlbF9pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqB7Cj4g wqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAq cmluZ2J1ZjsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJV0FSTl9PTihlbmdpbmUtPmJ1ZmZlcik7 Cj4gQEAgLTIxOTksNyArMjIwMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9lbmdpbmUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgCWlmIChyZXQpCj4gwqAJCWdvdG8gZXJy b3I7Cj4gwqAKPiAtCXJpbmdidWYgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoZW5n aW5lLCAzMiAqIFBBR0VfU0laRSk7Cj4gKwlyaW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9y aW5nKGVuZ2luZSwgMzIgKiBQQUdFX1NJWkUpOwo+IMKgCWlmIChJU19FUlIocmluZ2J1ZikpIHsK PiDCoAkJcmV0ID0gUFRSX0VSUihyaW5nYnVmKTsKPiDCoAkJZ290byBlcnJvcjsKPiBAQCAtMjIx Nyw3ICsyMjE4LDcgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gwqAJCQlnb3RvIGVycm9yOwo+IMKgCX0KPiDCoAo+IC0JcmV0 ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2X3ByaXYsIHJpbmdidWYpOwo+ ICsJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZyhkZXZfcHJpdiwgcmluZ2J1Zik7Cj4gwqAJ aWYgKHJldCkgewo+IMKgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwaW4gYW5kIG1hcCByaW5nYnVm ZmVyICVzOiAlZFxuIiwKPiDCoAkJCQllbmdpbmUtPm5hbWUsIHJldCk7Cj4gQEAgLTIyMjgsMTEg KzIyMjksMTEgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gwqAJcmV0dXJuIDA7Cj4gwqAKPiDCoGVycm9yOgo+IC0JaW50ZWxf Y2xlYW51cF9lbmdpbmUoZW5naW5lKTsKPiArCWludGVsX2VuZ2luZV9jbGVhbnVwKGVuZ2luZSk7 Cj4gwqAJcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IC12b2lkIGludGVsX2NsZWFudXBfZW5naW5l KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArdm9pZCBpbnRlbF9lbmdpbmVfY2xl YW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqB7Cj4gwqAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2Owo+IMKgCj4gQEAgLTIyNDIsMTEgKzIyNDMsMTEgQEAg dm9pZCBpbnRlbF9jbGVhbnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gwqAJZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gwqAKPiDCoAlpZiAoZW5naW5lLT5idWZm ZXIpIHsKPiAtCQlpbnRlbF9zdG9wX2VuZ2luZShlbmdpbmUpOwo+ICsJCWludGVsX2VuZ2luZV9z dG9wKGVuZ2luZSk7Cj4gwqAJCVdBUk5fT04oIUlTX0dFTjIoZGV2X3ByaXYpICYmIChJOTE1X1JF QURfTU9ERShlbmdpbmUpICYgTU9ERV9JRExFKSA9PSAwKTsKPiDCoAo+IC0JCWludGVsX3VucGlu X3JpbmdidWZmZXJfb2JqKGVuZ2luZS0+YnVmZmVyKTsKPiAtCQlpbnRlbF9yaW5nYnVmZmVyX2Zy ZWUoZW5naW5lLT5idWZmZXIpOwo+ICsJCWludGVsX3VucGluX3JpbmcoZW5naW5lLT5idWZmZXIp Owo+ICsJCWludGVsX3JpbmdfZnJlZShlbmdpbmUtPmJ1ZmZlcik7Cj4gwqAJCWVuZ2luZS0+YnVm ZmVyID0gTlVMTDsKPiDCoAl9Cj4gwqAKPiBAQCAtMjMwOSw3ICsyMzEwLDcgQEAgaW50IGludGVs X3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQo+IMKgCj4gwqBzdGF0aWMgaW50IHdhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gwqB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0g cmVxLT5yaW5nOwo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5n aW5lOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdGFyZ2V0Owo+IMKgCj4gQEAg LTIzNTQsNyArMjM1NSw3IEBAIHN0YXRpYyBpbnQgd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBieXRlcykKPiDCoAo+IMKgaW50IGludGVsX3Jpbmdf YmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBudW1fZHdvcmRzKQo+ IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlz dHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQgcmVtYWluX2FjdHVh bCA9IHJpbmctPnNpemUgLSByaW5nLT50YWlsOwo+IMKgCWludCByZW1haW5fdXNhYmxlID0gcmlu Zy0+ZWZmZWN0aXZlX3NpemUgLSByaW5nLT50YWlsOwo+IMKgCWludCBieXRlcyA9IG51bV9kd29y ZHMgKiBzaXplb2YodTMyKTsKPiBAQCAtMjQxMSw3ICsyNDEyLDcgQEAgaW50IGludGVsX3Jpbmdf YmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBudW1fZHdvcmRzKQo+ IMKgLyogQWxpZ24gdGhlIHJpbmcgdGFpbCB0byBhIGNhY2hlbGluZSBib3VuZGFyeSAqLwo+IMKg aW50IGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQgbnVt X2R3b3JkcyA9Cj4gwqAJCShyaW5nLT50YWlsICYgKENBQ0hFTElORV9CWVRFUyAtIDEpKSAvIHNp emVvZih1aW50MzJfdCk7Cj4gwqAJaW50IHJldDsKPiBAQCAtMjQzMiw3ICsyNDMzLDcgQEAgaW50 IGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXZvaWQgaW50ZWxfcmluZ19pbml0X3Nl cW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKQo+ICt2b2lkIGlu dGVsX2VuZ2luZV9pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMy IHNlcW5vKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVu Z2luZS0+aTkxNTsKPiDCoAo+IEBAIC0yNTE4LDcgKzI1MTksNyBAQCBzdGF0aWMgdm9pZCBnZW42 X2JzZF9yaW5nX3dyaXRlX3RhaWwoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IMKg c3RhdGljIGludCBnZW42X2JzZF9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLAo+IMKgCQkJwqDCoMKgwqDCoMKgwqB1MzIgaW52YWxpZGF0ZSwgdTMyIGZsdXNoKQo+ IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlz dHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAl1aW50MzJfdCBjbWQ7Cj4g wqAJaW50IHJldDsKPiDCoAo+IEBAIC0yNTY0LDcgKzI1NjUsNyBAQCBnZW44X3JpbmdfZGlzcGF0 Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCcKg wqDCoMKgwqDCoHU2NCBvZmZzZXQsIHUzMiBsZW4sCj4gwqAJCQnCoMKgwqDCoMKgwqB1bnNpZ25l ZCBkaXNwYXRjaF9mbGFncykKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n ID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4g wqAJYm9vbCBwcGd0dCA9IFVTRVNfUFBHVFQocmVxLT5pOTE1KSAmJgo+IMKgCQkJIShkaXNwYXRj aF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKPiDCoAlpbnQgcmV0Owo+IEBAIC0yNTkw LDcgKzI1OTEsNyBAQCBoc3dfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKgCQkJwqDCoMKgwqDCoHU2NCBvZmZzZXQsIHUzMiBsZW4s Cj4gwqAJCQnCoMKgwqDCoMKgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gwqB7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwo+IMKgCWludCByZXQ7Cj4gwqAKPiDCoAlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4gQEAgLTI2MTUsNyArMjYxNiw3IEBAIGdlbjZfcmluZ19k aXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKg CQkJwqDCoMKgwqDCoMKgdTY0IG9mZnNldCwgdTMyIGxlbiwKPiDCoAkJCcKgwqDCoMKgwqDCoHVu c2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIp Owo+IEBAIC0yNjM4LDcgKzI2MzksNyBAQCBnZW42X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoHN0YXRpYyBpbnQgZ2VuNl9yaW5n X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IMKgCQkJwqDCoMKgdTMy IGludmFsaWRhdGUsIHUzMiBmbHVzaCkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJp bmc7Cj4gwqAJdWludDMyX3QgY21kOwo+IMKgCWludCByZXQ7Cj4gwqAKPiBAQCAtMjk1NSw3ICsy OTU2LDcgQEAgaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+IMKgfQo+IMKgCj4gwqBpbnQKPiAtaW50ZWxfcmluZ19mbHVzaF9h bGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICtpbnRlbF9lbmdp bmVfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDC oHsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKPiDC oAlpbnQgcmV0Owo+IEBAIC0yOTc0LDcgKzI5NzUsNyBAQCBpbnRlbF9yaW5nX2ZsdXNoX2FsbF9j YWNoZXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqB9Cj4gwqAKPiDCoGlu dAo+IC1pbnRlbF9yaW5nX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSkKPiAraW50ZWxfZW5naW5lX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKPiDCoAl1aW50MzJfdCBmbHVzaF9kb21haW5z Owo+IEBAIC0yOTk0LDggKzI5OTUsNyBAQCBpbnRlbF9yaW5nX2ludmFsaWRhdGVfYWxsX2NhY2hl cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoAlyZXR1cm4gMDsKPiDCoH0K PiDCoAo+IC12b2lkCj4gLWludGVsX3N0b3BfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKPiArdm9pZCBpbnRlbF9lbmdpbmVfc3RvcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gwqB7Cj4gwqAJaW50IHJldDsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA0MjdmYjE5YTdhMmUuLjkxZDBhZWE2OTViMiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtNjIsNyArNjIs NyBAQCBzdHJ1Y3TCoMKgaW50ZWxfaHdfc3RhdHVzX3BhZ2Ugewo+IMKgCShpOTE1X2dlbV9vYmpf Z2d0dF9vZmZzZXQoZGV2X3ByaXYtPnNlbWFwaG9yZV9vYmopICsgXAo+IMKgCcKgR0VOOF9TRU1B UEhPUkVfT0ZGU0VUKGZyb20sIChfX3JpbmcpLT5pZCkpCj4gwqAKPiAtZW51bSBpbnRlbF9yaW5n X2hhbmdjaGVja19hY3Rpb24gewo+ICtlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9u IHsKPiDCoAlIQU5HQ0hFQ0tfSURMRSA9IDAsCj4gwqAJSEFOR0NIRUNLX1dBSVQsCj4gwqAJSEFO R0NIRUNLX0FDVElWRSwKPiBAQCAtNzIsMTcgKzcyLDE3IEBAIGVudW0gaW50ZWxfcmluZ19oYW5n Y2hlY2tfYWN0aW9uIHsKPiDCoAo+IMKgI2RlZmluZSBIQU5HQ0hFQ0tfU0NPUkVfUklOR19IVU5H IDMxCj4gwqAKPiAtc3RydWN0IGludGVsX3JpbmdfaGFuZ2NoZWNrIHsKPiArc3RydWN0IGludGVs X2VuZ2luZV9oYW5nY2hlY2sgewo+IMKgCXU2NCBhY3RoZDsKPiDCoAl1bnNpZ25lZCBsb25nIHVz ZXJfaW50ZXJydXB0czsKPiDCoAl1MzIgc2Vxbm87Cj4gwqAJaW50IHNjb3JlOwo+IC0JZW51bSBp bnRlbF9yaW5nX2hhbmdjaGVja19hY3Rpb24gYWN0aW9uOwo+ICsJZW51bSBpbnRlbF9lbmdpbmVf aGFuZ2NoZWNrX2FjdGlvbiBhY3Rpb247Cj4gwqAJaW50IGRlYWRsb2NrOwo+IMKgCXUzMiBpbnN0 ZG9uZVtJOTE1X05VTV9JTlNURE9ORV9SRUddOwo+IMKgfTsKPiDCoAo+IC1zdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciB7Cj4gK3N0cnVjdCBpbnRlbF9yaW5nIHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqOwo+IMKgCXZvaWQgKnZhZGRyOwo+IMKgCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwo+IEBAIC0xNDksNyArMTQ5LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gwqAJ dTY0IGZlbmNlX2NvbnRleHQ7Cj4gwqAJdTMyCQltbWlvX2Jhc2U7Cj4gwqAJdW5zaWduZWQgaW50 IGlycV9zaGlmdDsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpidWZmZXI7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcmluZyAqYnVmZmVyOwo+IMKgCXN0cnVjdCBsaXN0X2hlYWQgYnVmZmVyczsKPiDC oAo+IMKgCS8qIFJhdGhlciB0aGFuIGhhdmUgZXZlcnkgY2xpZW50IHdhaXQgdXBvbiBhbGwgdXNl ciBpbnRlcnJ1cHRzLAo+IEBAIC0zMjksNyArMzI5LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9j cyB7Cj4gwqAKPiDCoAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqbGFzdF9jb250ZXh0Owo+IMKg Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ19oYW5nY2hlY2sgaGFuZ2NoZWNrOwo+ICsJc3RydWN0IGlu dGVsX2VuZ2luZV9oYW5nY2hlY2sgaGFuZ2NoZWNrOwo+IMKgCj4gwqAJc3RydWN0IHsKPiDCoAkJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiBAQCAtMzc2LDggKzM3Niw4IEBAIGlu dGVsX2VuZ2luZV9mbGFnKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDC oH0KPiDCoAo+IMKgc3RhdGljIGlubGluZSB1MzIKPiAtaW50ZWxfcmluZ19zeW5jX2luZGV4KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAtCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpvdGhlcikKPiAraW50ZWxfZW5naW5lX3N5bmNfaW5kZXgoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpvdGhl cikKPiDCoHsKPiDCoAlpbnQgaWR4Owo+IMKgCj4gQEAgLTQzOSw0NSArNDM5LDQ0IEBAIGludGVs X3dyaXRlX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiDCoCNk ZWZpbmUgSTkxNV9HRU1fSFdTX1NDUkFUQ0hfSU5ERVgJMHg0MAo+IMKgI2RlZmluZSBJOTE1X0dF TV9IV1NfU0NSQVRDSF9BRERSIChJOTE1X0dFTV9IV1NfU0NSQVRDSF9JTkRFWCA8PCBNSV9TVE9S RV9EV09SRF9JTkRFWF9TSElGVCkKPiDCoAo+IC1zdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqCj4g LWludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIGludCBzaXplKTsKPiAtaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCcKgwqDCoMKgwqBzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gLXZvaWQgaW50ZWxfdW5waW5fcmluZ2J1 ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+IC12b2lkIGludGVs X3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7Cj4gK3N0cnVj dCBpbnRlbF9yaW5nICoKPiAraW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpOwo+ICtpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmlu ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCcKgwqDCoHN0cnVjdCBp bnRlbF9yaW5nICpyaW5nKTsKPiArdm9pZCBpbnRlbF91bnBpbl9yaW5nKHN0cnVjdCBpbnRlbF9y aW5nICpyaW5nKTsKPiArdm9pZCBpbnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKnJp bmcpOwo+IMKgCj4gLXZvaWQgaW50ZWxfc3RvcF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKPiAtdm9pZCBpbnRlbF9jbGVhbnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwo+ICt2b2lkIGludGVsX2VuZ2luZV9zdG9wKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7Cj4gK3ZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiDCoAo+IMKgaW50IGludGVsX3JpbmdfYWxsb2NfcmVx dWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPiDCoAo+ IMKgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLCBpbnQgbik7Cj4gwqBpbnQgX19tdXN0X2NoZWNrIGludGVsX3JpbmdfY2Fj aGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiDCoAo+IC1z dGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfcmluZ19lbWl0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nLCB1MzIgZGF0YSkKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfZW1pdChz dHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIGRhdGEpCj4gwqB7Cj4gwqAJKih1aW50MzJfdCAq KShyaW5nLT52YWRkciArIHJpbmctPnRhaWwpID0gZGF0YTsKPiDCoAlyaW5nLT50YWlsICs9IDQ7 Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfZW1pdF9yZWcoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcsCj4gLQkJCQnCoMKgwqDCoMKgwqDCoGk5MTVfcmVn X3QgcmVnKQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfcmluZ19lbWl0X3JlZyhzdHJ1Y3Qg aW50ZWxfcmluZyAqcmluZywgaTkxNV9yZWdfdCByZWcpCj4gwqB7Cj4gwqAJaW50ZWxfcmluZ19l bWl0KHJpbmcsIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZykpOwo+IMKgfQo+IMKgCj4gLXN0YXRp YyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcpCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGlu dGVsX3JpbmcgKnJpbmcpCj4gwqB7Cj4gwqAJcmluZy0+dGFpbCAmPSByaW5nLT5zaXplIC0gMTsK PiDCoH0KPiDCoAo+IMKgaW50IF9faW50ZWxfcmluZ19zcGFjZShpbnQgaGVhZCwgaW50IHRhaWws IGludCBzaXplKTsKPiAtdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gK3ZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3Ry dWN0IGludGVsX3JpbmcgKnJpbmdidWYpOwo+IMKgCj4gwqBpbnQgX19tdXN0X2NoZWNrIGludGVs X2VuZ2luZV9pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gLXZvaWQgaW50 ZWxfcmluZ19pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNl cW5vKTsKPiAtaW50IGludGVsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSk7Cj4gLWludCBpbnRlbF9yaW5nX2ludmFsaWRhdGVfYWxsX2NhY2hl cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gK3ZvaWQgaW50ZWxfZW5naW5l X2luaXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pOwo+ ICtpbnQgaW50ZWxfZW5naW5lX2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpOwo+ICtpbnQgaW50ZWxfZW5naW5lX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gwqAKPiDCoGludCBpbnRlbF9pbml0 X3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKTsK PiDCoHZvaWQgaW50ZWxfZmluaV9waXBlX2NvbnRyb2woc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKTsKPiBAQCAtNDkxLDcgKzQ5MCw3IEBAIGludCBpbnRlbF9pbml0X2JzZDJfcmluZ19i dWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiDCoGludCBpbnRlbF9pbml0 X2JsdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+IMKgaW50 IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKTsKPiDCoAo+IC11NjQgaW50ZWxfcmluZ19nZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKTsKPiArdTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiDCoHN0YXRpYyBpbmxpbmUgdTMyIGlu dGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKg ewo+IMKgCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdT X0lOREVYKTsKPiBAQCAtNDk5LDcgKzQ5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2Vu Z2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgCj4gwqBp bnQgaW5pdF93b3JrYXJvdW5kc19yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 Cj4gwqAKPiAtc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfdGFpbChzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19n ZXRfdGFpbChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZikKPiDCoHsKPiDCoAlyZXR1cm4gcmlu Z2J1Zi0+dGFpbDsKPiDCoH0KLS0gCkpvb25hcyBMYWh0aW5lbgpPcGVuIFNvdXJjZSBUZWNobm9s b2d5IENlbnRlcgpJbnRlbCBDb3Jwb3JhdGlvbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK