From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 1/2] drm/i915: Cleanup instdone collection Date: Fri, 16 Sep 2016 12:56:51 +0300 Message-ID: <87y42snp5o.fsf@intel.com> References: <1473087178-4847-1-git-send-email-imre.deak@intel.com> <1473087178-4847-2-git-send-email-imre.deak@intel.com> <87lgz58e99.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 089D26E07D for ; Fri, 16 Sep 2016 09:56:54 +0000 (UTC) In-Reply-To: <87lgz58e99.fsf@gaia.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , Imre Deak , intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwNiBTZXAgMjAxNiwgTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4gd3JpdGVz Ogo+Cj4+IEZyb206IEJlbiBXaWRhd3NreSA8YmVuamFtaW4ud2lkYXdza3lAaW50ZWwuY29tPgo+ Pgo+PiBDb25zb2xpZGF0ZSB0aGUgaW5zdGRvbmUgbG9naWMgc28gd2UgY2FuIGdldCBhIGJpdCBm YW5jaWVyLiBUaGlzIHBhdGNoIGFsc28KPj4gcmVtb3ZlcyB0aGUgZHVwbGljYXRlZCBwcmludCBv ZiBJTlNURE9ORVswXS4KPj4KPj4gdjI6IChJbXJlKQo+PiAtIFJlYmFzZWQgb24gdG9wIG9mIGhh bmdjaGVjayBJTlNURE9ORSBjaGFuZ2VzLgo+PiAtIE1vdmUgYWxsIElOU1RET05FIHJlZ2lzdGVy cyBpbnRvIGEgc2luZ2xlIHN0cnVjdCwgc3RvcmUgaXQgd2l0aGluIHRoZQo+PiAgIGVuZ2luZSBl cnJvciBzdHJ1Y3QgZHVyaW5nIGVycm9yIGNhcHR1cmluZy4KPj4KPj4gU2lnbmVkLW9mZi1ieTog QmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+PiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4KPiBSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFsYSA8 bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+CgpJIGRpZG4ndCByZWNlaXZlIHRoZSBvcmlnaW5hbCBt ZXNzYWdlcywgYW5kIEkgY2FuJ3QgZmluZCB0aGVtIG9uIHRoZQpsaXN0IGVpdGhlci4KCkJSLApK YW5pLgoKCj4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgfCA0MSArKysrKysrKysrKy0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgfCAgOCArKy0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jICAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwg IDEgLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgMTAgKysr LQo+PiAgNiBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+IGluZGV4IDNmZGU1MDcuLjQ1 MjQ0ZjkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+IEBAIC0xMjc3 LDE1ICsxMjc3LDM2IEBAIG91dDoKPj4gIAlyZXR1cm4gcmV0Owo+PiAgfQo+PiAgCj4+ICtzdGF0 aWMgdm9pZCBpOTE1X2luc3Rkb25lX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiArCQkJICAgICAgIHN0cnVjdCBzZXFfZmlsZSAqbSwKPj4gKwkJCSAgICAgICBzdHJ1 Y3QgaW50ZWxfaW5zdGRvbmUgKmluc3Rkb25lKQo+PiArewo+PiArCXNlcV9wcmludGYobSwgIlx0 XHRJTlNURE9ORTogMHglMDh4XG4iLAo+PiArCQkgICBpbnN0ZG9uZS0+aW5zdGRvbmUpOwo+PiAr Cj4+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gMykKPj4gKwkJcmV0dXJuOwo+PiArCj4+ ICsJc2VxX3ByaW50ZihtLCAiXHRcdFNDX0lOU1RET05FOiAweCUwOHhcbiIsCj4+ICsJCSAgIGlu c3Rkb25lLT5zbGljZV9jb21tb24pOwo+PiArCj4+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PD0gNikKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJc2VxX3ByaW50ZihtLCAiXHRcdFNBTVBMRVJf SU5TVERPTkU6IDB4JTA4eFxuIiwKPj4gKwkJICAgaW5zdGRvbmUtPnNhbXBsZXIpOwo+PiArCXNl cV9wcmludGYobSwgIlx0XHRST1dfSU5TVERPTkU6IDB4JTA4eFxuIiwKPj4gKwkJICAgaW5zdGRv bmUtPnJvdyk7Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4+ICAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+PiAgCXU2NCBhY3RoZFtJOTE1X05VTV9FTkdJ TkVTXTsKPj4gIAl1MzIgc2Vxbm9bSTkxNV9OVU1fRU5HSU5FU107Cj4+IC0JdTMyIGluc3Rkb25l W0k5MTVfTlVNX0lOU1RET05FX1JFR107Cj4+ICsJc3RydWN0IGludGVsX2luc3Rkb25lIGluc3Rk b25lOwo+PiAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+PiAtCWludCBqOwo+PiAgCj4+ICAJ aWYgKCFpOTE1LmVuYWJsZV9oYW5nY2hlY2spIHsKPj4gIAkJc2VxX3ByaW50ZihtLCAiSGFuZ2No ZWNrIGRpc2FibGVkXG4iKTsKPj4gQEAgLTEyOTksNyArMTMyMCw3IEBAIHN0YXRpYyBpbnQgaTkx NV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPj4gIAkJ c2Vxbm9baWRdID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+PiAgCX0KPj4gIAo+ PiAtCWk5MTVfZ2V0X2V4dHJhX2luc3Rkb25lKGRldl9wcml2LCBpbnN0ZG9uZSk7Cj4+ICsJaTkx NV9nZXRfZW5naW5lX2luc3Rkb25lKGRldl9wcml2LCBSQ1MsICZpbnN0ZG9uZSk7Cj4+ICAKPj4g IAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4+ICAKPj4gQEAgLTEzMjcsMTggKzEz NDgsMTQgQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQo+PiAgCQlzZXFfcHJpbnRmKG0sICJcdGFjdGlvbiA9ICVkXG4iLCBl bmdpbmUtPmhhbmdjaGVjay5hY3Rpb24pOwo+PiAgCj4+ICAJCWlmIChlbmdpbmUtPmlkID09IFJD Uykgewo+PiAtCQkJc2VxX3B1dHMobSwgIlx0aW5zdGRvbmUgcmVhZCA9Iik7Cj4+ICsJCQlzZXFf cHV0cyhtLCAiXHRpbnN0ZG9uZSByZWFkID1cbiIpOwo+PiAgCj4+IC0JCQlmb3IgKGogPSAwOyBq IDwgSTkxNV9OVU1fSU5TVERPTkVfUkVHOyBqKyspCj4+IC0JCQkJc2VxX3ByaW50ZihtLCAiIDB4 JTA4eCIsIGluc3Rkb25lW2pdKTsKPj4gKwkJCWk5MTVfaW5zdGRvbmVfaW5mbyhkZXZfcHJpdiwg bSwgJmluc3Rkb25lKTsKPj4gIAo+PiAtCQkJc2VxX3B1dHMobSwgIlxuXHRpbnN0ZG9uZSBhY2N1 ID0iKTsKPj4gKwkJCXNlcV9wdXRzKG0sICJcdGluc3Rkb25lIGFjY3UgPVxuIik7Cj4+ICAKPj4g LQkJCWZvciAoaiA9IDA7IGogPCBJOTE1X05VTV9JTlNURE9ORV9SRUc7IGorKykKPj4gLQkJCQlz ZXFfcHJpbnRmKG0sICIgMHglMDh4IiwKPj4gLQkJCQkJICAgZW5naW5lLT5oYW5nY2hlY2suaW5z dGRvbmVbal0pOwo+PiAtCj4+IC0JCQlzZXFfcHV0cyhtLCAiXG4iKTsKPj4gKwkJCWk5MTVfaW5z dGRvbmVfaW5mbyhkZXZfcHJpdiwgbSwKPj4gKwkJCQkJICAgJmVuZ2luZS0+aGFuZ2NoZWNrLmlu c3Rkb25lKTsKPj4gIAkJfQo+PiAgCX0KPj4gIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4g aW5kZXggNzU3YjFkMS4uMjBiZjcyZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ IEBAIC03NDcsNyArNzQ3LDcgQEAgc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlIHsKPj4gIAl1 MzIgZ2FtX2Vjb2NoazsKPj4gIAl1MzIgZ2FiX2N0bDsKPj4gIAl1MzIgZ2Z4X21vZGU7Cj4+IC0J dTMyIGV4dHJhX2luc3Rkb25lW0k5MTVfTlVNX0lOU1RET05FX1JFR107Cj4+ICsKPj4gIAl1NjQg ZmVuY2VbSTkxNV9NQVhfTlVNX0ZFTkNFU107Cj4+ICAJc3RydWN0IGludGVsX292ZXJsYXlfZXJy b3Jfc3RhdGUgKm92ZXJsYXk7Cj4+ICAJc3RydWN0IGludGVsX2Rpc3BsYXlfZXJyb3Jfc3RhdGUg KmRpc3BsYXk7Cj4+IEBAIC03NzksNyArNzc5LDYgQEAgc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0 YXRlIHsKPj4gIAkJdTMyIGh3czsKPj4gIAkJdTMyIGlwZWlyOwo+PiAgCQl1MzIgaXBlaHI7Cj4+ IC0JCXUzMiBpbnN0ZG9uZTsKPj4gIAkJdTMyIGJic3RhdGU7Cj4+ICAJCXUzMiBpbnN0cG07Cj4+ ICAJCXUzMiBpbnN0cHM7Cj4+IEBAIC03OTAsNiArNzg5LDcgQEAgc3RydWN0IGRybV9pOTE1X2Vy cm9yX3N0YXRlIHsKPj4gIAkJdTY0IGZhZGRyOwo+PiAgCQl1MzIgcmNfcHNtaTsgLyogc2xlZXAg c3RhdGUgKi8KPj4gIAkJdTMyIHNlbWFwaG9yZV9tYm94ZXNbSTkxNV9OVU1fRU5HSU5FUyAtIDFd Owo+PiArCQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Cj4+ICAKPj4gIAkJc3RydWN0 IGRybV9pOTE1X2Vycm9yX29iamVjdCB7Cj4+ICAJCQlpbnQgcGFnZV9jb3VudDsKPj4gQEAgLTM1 NjAsNyArMzU2MCw5IEBAIHZvaWQgaTkxNV9lcnJvcl9zdGF0ZV9nZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPj4gIHZvaWQgaTkxNV9lcnJvcl9zdGF0ZV9wdXQoc3RydWN0IGk5MTVfZXJyb3Jf c3RhdGVfZmlsZV9wcml2ICplcnJvcl9wcml2KTsKPj4gIHZvaWQgaTkxNV9kZXN0cm95X2Vycm9y X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgCj4+IC12b2lkIGk5MTVfZ2V0X2V4 dHJhX2luc3Rkb25lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3Qg Kmluc3Rkb25lKTsKPj4gK3ZvaWQgaTkxNV9nZXRfZW5naW5lX2luc3Rkb25lKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKwkJCSAgICAgIGVudW0gaW50ZWxfZW5naW5lX2lk IGVuZ2luZV9pZCwKPj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRvbmUp Owo+PiAgY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9zdHIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIGludCB0eXBlKTsKPj4gIAo+PiAgLyogaTkxNV9jbWRfcGFyc2VyLmMgKi8K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4+IGluZGV4IGFlZDU1ZTQuLjgw ZmUxMDEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+PiBAQCAt MjI4LDYgKzIyOCwyNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqaGFuZ2NoZWNrX2FjdGlvbl90b19z dHIoZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiBhKQo+PiAgCXJldHVybiAidW5r bm93biI7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyB2b2lkIGVycm9yX3ByaW50X2luc3Rkb25lKHN0 cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4+ICsJCQkJIHN0cnVjdCBkcm1faTkx NV9lcnJvcl9lbmdpbmUgKmVlKQo+PiArewo+PiArCWVycl9wcmludGYobSwgIiAgSU5TVERPTkU6 IDB4JTA4eFxuIiwKPj4gKwkJICAgZWUtPmluc3Rkb25lLmluc3Rkb25lKTsKPj4gKwo+PiArCWlm IChlZS0+ZW5naW5lX2lkICE9IFJDUyB8fCBJTlRFTF9HRU4obS0+aTkxNSkgPD0gMykKPj4gKwkJ cmV0dXJuOwo+PiArCj4+ICsJZXJyX3ByaW50ZihtLCAiICBTQ19JTlNURE9ORTogMHglMDh4XG4i LAo+PiArCQkgICBlZS0+aW5zdGRvbmUuc2xpY2VfY29tbW9uKTsKPj4gKwo+PiArCWlmIChJTlRF TF9HRU4obS0+aTkxNSkgPD0gNikKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJZXJyX3ByaW50Ziht LCAiICBTQU1QTEVSX0lOU1RET05FOiAweCUwOHhcbiIsCj4+ICsJCSAgIGVlLT5pbnN0ZG9uZS5z YW1wbGVyKTsKPj4gKwllcnJfcHJpbnRmKG0sICIgIFJPV19JTlNURE9ORTogMHglMDh4XG4iLAo+ PiArCQkgICBlZS0+aW5zdGRvbmUucm93KTsKPj4gK30KPj4gKwo+PiAgc3RhdGljIHZvaWQgZXJy b3JfcHJpbnRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4+ICAJ CQkgICAgICAgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUpCj4+ICB7Cj4+IEBAIC0y NDIsNyArMjYzLDkgQEAgc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfZW5naW5lKHN0cnVjdCBkcm1f aTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4+ICAJCSAgICh1MzIpKGVlLT5hY3RoZD4+MzIpLCAo dTMyKWVlLT5hY3RoZCk7Cj4+ICAJZXJyX3ByaW50ZihtLCAiICBJUEVJUjogMHglMDh4XG4iLCBl ZS0+aXBlaXIpOwo+PiAgCWVycl9wcmludGYobSwgIiAgSVBFSFI6IDB4JTA4eFxuIiwgZWUtPmlw ZWhyKTsKPj4gLQllcnJfcHJpbnRmKG0sICIgIElOU1RET05FOiAweCUwOHhcbiIsIGVlLT5pbnN0 ZG9uZSk7Cj4+ICsKPj4gKwllcnJvcl9wcmludF9pbnN0ZG9uZShtLCBlZSk7Cj4+ICsKPj4gIAlp ZiAoZWUtPmJhdGNoYnVmZmVyKSB7Cj4+ICAJCXU2NCBzdGFydCA9IGVlLT5iYXRjaGJ1ZmZlci0+ Z3R0X29mZnNldDsKPj4gIAkJdTY0IGVuZCA9IHN0YXJ0ICsgZWUtPmJhdGNoYnVmZmVyLT5ndHRf c2l6ZTsKPj4gQEAgLTQwMiwxMCArNDI1LDYgQEAgaW50IGk5MTVfZXJyb3Jfc3RhdGVfdG9fc3Ry KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4+ICAJZm9yIChpID0gMDsgaSA8 IGRldl9wcml2LT5udW1fZmVuY2VfcmVnczsgaSsrKQo+PiAgCQllcnJfcHJpbnRmKG0sICIgIGZl bmNlWyVkXSA9ICUwOGxseFxuIiwgaSwgZXJyb3ItPmZlbmNlW2ldKTsKPj4gIAo+PiAtCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVycm9yLT5leHRyYV9pbnN0ZG9uZSk7IGkrKykKPj4gLQkJ ZXJyX3ByaW50ZihtLCAiICBJTlNURE9ORV8lZDogMHglMDh4XG4iLCBpLAo+PiAtCQkJICAgZXJy b3ItPmV4dHJhX2luc3Rkb25lW2ldKTsKPj4gLQo+PiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA2KSB7Cj4+ICAJCWVycl9wcmludGYobSwgIkVSUk9SOiAweCUwOHhcbiIsIGVycm9yLT5l cnJvcik7Cj4+ICAKPj4gQEAgLTg1MSw3ICs4NzAsOCBAQCBzdGF0aWMgdWludDMyX3QgaTkxNV9l cnJvcl9nZW5lcmF0ZV9jb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4g IAkJCWlmIChlbmdpbmVfaWQpCj4+ICAJCQkJKmVuZ2luZV9pZCA9IGk7Cj4+ICAKPj4gLQkJCXJl dHVybiBlcnJvci0+ZW5naW5lW2ldLmlwZWhyIF4gZXJyb3ItPmVuZ2luZVtpXS5pbnN0ZG9uZTsK Pj4gKwkJCXJldHVybiBlcnJvci0+ZW5naW5lW2ldLmlwZWhyIF4KPj4gKwkJCSAgICAgICBlcnJv ci0+ZW5naW5lW2ldLmluc3Rkb25lLmluc3Rkb25lOwo+PiAgCQl9Cj4+ICAJfQo+PiAgCj4+IEBA IC05ODMsNyArMTAwMyw2IEBAIHN0YXRpYyB2b2lkIGVycm9yX3JlY29yZF9lbmdpbmVfcmVnaXN0 ZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZSAqZXJyb3IsCj4+ICAJCWVlLT5mYWRkciA9 IEk5MTVfUkVBRChSSU5HX0RNQV9GQUREKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4+ICAJCWVlLT5p cGVpciA9IEk5MTVfUkVBRChSSU5HX0lQRUlSKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4+ICAJCWVl LT5pcGVociA9IEk5MTVfUkVBRChSSU5HX0lQRUhSKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4+IC0J CWVlLT5pbnN0ZG9uZSA9IEk5MTVfUkVBRChSSU5HX0lOU1RET05FKGVuZ2luZS0+bW1pb19iYXNl KSk7Cj4+ICAJCWVlLT5pbnN0cHMgPSBJOTE1X1JFQUQoUklOR19JTlNUUFMoZW5naW5lLT5tbWlv X2Jhc2UpKTsKPj4gIAkJZWUtPmJiYWRkciA9IEk5MTVfUkVBRChSSU5HX0JCQUREUihlbmdpbmUt Pm1taW9fYmFzZSkpOwo+PiAgCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KSB7Cj4+IEBA IC05OTUsOSArMTAxNCwxMCBAQCBzdGF0aWMgdm9pZCBlcnJvcl9yZWNvcmRfZW5naW5lX3JlZ2lz dGVycyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgKmVycm9yLAo+PiAgCQllZS0+ZmFkZHIg PSBJOTE1X1JFQUQoRE1BX0ZBRERfSThYWCk7Cj4+ICAJCWVlLT5pcGVpciA9IEk5MTVfUkVBRChJ UEVJUik7Cj4+ICAJCWVlLT5pcGVociA9IEk5MTVfUkVBRChJUEVIUik7Cj4+IC0JCWVlLT5pbnN0 ZG9uZSA9IEk5MTVfUkVBRChHRU4yX0lOU1RET05FKTsKPj4gIAl9Cj4+ICAKPj4gKwlpOTE1X2dl dF9lbmdpbmVfaW5zdGRvbmUoZGV2X3ByaXYsIGVuZ2luZS0+aWQsICZlZS0+aW5zdGRvbmUpOwo+ PiArCj4+ICAJZWUtPndhaXRpbmcgPSBpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpOwo+ PiAgCWVlLT5pbnN0cG0gPSBJOTE1X1JFQUQoUklOR19JTlNUUE0oZW5naW5lLT5tbWlvX2Jhc2Up KTsKPj4gIAllZS0+YWN0aGQgPSBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7 Cj4+IEBAIC0xMzU3LDggKzEzNzcsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2NhcHR1cmVfcmVnX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAl9Cj4+ICAJZXJyb3It PmVpciA9IEk5MTVfUkVBRChFSVIpOwo+PiAgCWVycm9yLT5wZ3RibF9lciA9IEk5MTVfUkVBRChQ R1RCTF9FUik7Cj4+IC0KPj4gLQlpOTE1X2dldF9leHRyYV9pbnN0ZG9uZShkZXZfcHJpdiwgZXJy b3ItPmV4dHJhX2luc3Rkb25lKTsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQgaTkxNV9lcnJv cl9jYXB0dXJlX21zZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IEBAIC0x NTE3LDIwICsxNTM1LDM4IEBAIGNvbnN0IGNoYXIgKmk5MTVfY2FjaGVfbGV2ZWxfc3RyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnQgdHlwZSkKPj4gIH0KPj4gIAo+PiAgLyogTkI6 IHBsZWFzZSBub3RpY2UgdGhlIG1lbXNldCAqLwo+PiAtdm9pZCBpOTE1X2dldF9leHRyYV9pbnN0 ZG9uZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IC0JCQkgICAgIHVpbnQz Ml90ICppbnN0ZG9uZSkKPj4gK3ZvaWQgaTkxNV9nZXRfZW5naW5lX2luc3Rkb25lKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKwkJCSAgICAgIGVudW0gaW50ZWxfZW5naW5l X2lkIGVuZ2luZV9pZCwKPj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRv bmUpCj4+ICB7Cj4+IC0JbWVtc2V0KGluc3Rkb25lLCAwLCBzaXplb2YoKmluc3Rkb25lKSAqIEk5 MTVfTlVNX0lOU1RET05FX1JFRyk7Cj4+IC0KPj4gLQlpZiAoSVNfR0VOMihkZXZfcHJpdikgfHwg SVNfR0VOMyhkZXZfcHJpdikpCj4+IC0JCWluc3Rkb25lWzBdID0gSTkxNV9SRUFEKEdFTjJfSU5T VERPTkUpOwo+PiAtCWVsc2UgaWYgKElTX0dFTjQoZGV2X3ByaXYpIHx8IElTX0dFTjUoZGV2X3By aXYpIHx8IElTX0dFTjYoZGV2X3ByaXYpKSB7Cj4+IC0JCWluc3Rkb25lWzBdID0gSTkxNV9SRUFE KFJJTkdfSU5TVERPTkUoUkVOREVSX1JJTkdfQkFTRSkpOwo+PiAtCQlpbnN0ZG9uZVsxXSA9IEk5 MTVfUkVBRChHRU40X0lOU1RET05FMSk7Cj4+IC0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDcpIHsKPj4gLQkJaW5zdGRvbmVbMF0gPSBJOTE1X1JFQUQoUklOR19JTlNURE9ORShS RU5ERVJfUklOR19CQVNFKSk7Cj4+IC0JCWluc3Rkb25lWzFdID0gSTkxNV9SRUFEKEdFTjdfU0Nf SU5TVERPTkUpOwo+PiAtCQlpbnN0ZG9uZVsyXSA9IEk5MTVfUkVBRChHRU43X1NBTVBMRVJfSU5T VERPTkUpOwo+PiAtCQlpbnN0ZG9uZVszXSA9IEk5MTVfUkVBRChHRU43X1JPV19JTlNURE9ORSk7 Cj4+ICsJdTMyIG1taW9fYmFzZSA9IGRldl9wcml2LT5lbmdpbmVbZW5naW5lX2lkXS5tbWlvX2Jh c2U7Cj4+ICsKPj4gKwltZW1zZXQoaW5zdGRvbmUsIDAsIHNpemVvZigqaW5zdGRvbmUpKTsKPj4g Kwo+PiArCXN3aXRjaCAoSU5URUxfR0VOKGRldl9wcml2KSkgewo+PiArCWRlZmF1bHQ6Cj4+ICsJ CWluc3Rkb25lLT5pbnN0ZG9uZSA9IEk5MTVfUkVBRChSSU5HX0lOU1RET05FKG1taW9fYmFzZSkp Owo+PiArCj4+ICsJCWlmIChlbmdpbmVfaWQgIT0gUkNTKQo+PiArCQkJYnJlYWs7Cj4+ICsKPj4g KwkJaW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVBRChHRU43X1NDX0lOU1RET05FKTsK Pj4gKwkJaW5zdGRvbmUtPnNhbXBsZXIgPSBJOTE1X1JFQUQoR0VON19TQU1QTEVSX0lOU1RET05F KTsKPj4gKwkJaW5zdGRvbmUtPnJvdyA9IEk5MTVfUkVBRChHRU43X1JPV19JTlNURE9ORSk7Cj4+ ICsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSA2Ogo+PiArCWNhc2UgNToKPj4gKwljYXNlIDQ6Cj4+ ICsJCWluc3Rkb25lLT5pbnN0ZG9uZSA9IEk5MTVfUkVBRChSSU5HX0lOU1RET05FKG1taW9fYmFz ZSkpOwo+PiArCj4+ICsJCWlmIChlbmdpbmVfaWQgPT0gUkNTKQo+PiArCQkJLyogSEFDSzogVXNp bmcgdGhlIHdyb25nIHN0cnVjdCBtZW1iZXIgKi8KPj4gKwkJCWluc3Rkb25lLT5zbGljZV9jb21t b24gPSBJOTE1X1JFQUQoR0VONF9JTlNURE9ORTEpOwo+PiArCQlicmVhazsKPj4gKwljYXNlIDM6 Cj4+ICsJY2FzZSAyOgo+PiArCQlpbnN0ZG9uZS0+aW5zdGRvbmUgPSBJOTE1X1JFQUQoR0VOMl9J TlNURE9ORSk7Cj4+ICsJCWJyZWFrOwo+PiAgCX0KPj4gIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCj4+IGluZGV4IDgyMzU4ZDQuLjgyY2Y4MjMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+PiBAQCAtMjU1MCwxOCArMjU1MCwzNiBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2Fu ZF93YWtldXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgCX0KPj4gIH0K Pj4gIAo+PiArc3RhdGljIGlubGluZSB2b2lkCj4+ICtpOTE1X2Vycl9wcmludF9pbnN0ZG9uZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICsJCQlzdHJ1Y3QgaW50ZWxfaW5z dGRvbmUgKmluc3Rkb25lKQo+PiArewo+PiArCXByX2VycigiICBJTlNURE9ORTogMHglMDh4XG4i LCBpbnN0ZG9uZS0+aW5zdGRvbmUpOwo+PiArCj4+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PD0gMykKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJcHJfZXJyKCIgIFNDX0lOU1RET05FOiAweCUw OHhcbiIsIGluc3Rkb25lLT5zbGljZV9jb21tb24pOwo+PiArCj4+ICsJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPD0gNikKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJcHJfZXJyKCIgIFNBTVBMRVJf SU5TVERPTkU6IDB4JTA4eFxuIiwgaW5zdGRvbmUtPnNhbXBsZXIpOwo+PiArCXByX2VycigiICBS T1dfSU5TVERPTkU6IDB4JTA4eFxuIiwgaW5zdGRvbmUtPnJvdyk7Cj4+ICt9Cj4+ICsKPj4gIHN0 YXRpYyB2b2lkIGk5MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+PiAgewo+PiAtCXVpbnQzMl90IGluc3Rkb25lW0k5MTVfTlVNX0lOU1RE T05FX1JFR107Cj4+ICsJc3RydWN0IGludGVsX2luc3Rkb25lIGluc3Rkb25lOwo+PiAgCXUzMiBl aXIgPSBJOTE1X1JFQUQoRUlSKTsKPj4gLQlpbnQgcGlwZSwgaTsKPj4gKwlpbnQgcGlwZTsKPj4g IAo+PiAgCWlmICghZWlyKQo+PiAgCQlyZXR1cm47Cj4+ICAKPj4gIAlwcl9lcnIoInJlbmRlciBl cnJvciBkZXRlY3RlZCwgRUlSOiAweCUwOHhcbiIsIGVpcik7Cj4+ICAKPj4gLQlpOTE1X2dldF9l eHRyYV9pbnN0ZG9uZShkZXZfcHJpdiwgaW5zdGRvbmUpOwo+PiArCWk5MTVfZ2V0X2VuZ2luZV9p bnN0ZG9uZShkZXZfcHJpdiwgUkNTLCAmaW5zdGRvbmUpOwo+PiAgCj4+ICAJaWYgKElTX0c0WChk ZXZfcHJpdikpIHsKPj4gIAkJaWYgKGVpciAmIChHTTQ1X0VSUk9SX01FTV9QUklWIHwgR000NV9F UlJPUl9DUF9QUklWKSkgewo+PiBAQCAtMjU2OSw4ICsyNTg3LDcgQEAgc3RhdGljIHZvaWQgaTkx NV9yZXBvcnRfYW5kX2NsZWFyX2VpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4+ICAKPj4gIAkJCXByX2VycigiICBJUEVJUjogMHglMDh4XG4iLCBJOTE1X1JFQUQoSVBFSVJf STk2NSkpOwo+PiAgCQkJcHJfZXJyKCIgIElQRUhSOiAweCUwOHhcbiIsIEk5MTVfUkVBRChJUEVI Ul9JOTY1KSk7Cj4+IC0JCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnN0ZG9uZSk7IGkr KykKPj4gLQkJCQlwcl9lcnIoIiAgSU5TVERPTkVfJWQ6IDB4JTA4eFxuIiwgaSwgaW5zdGRvbmVb aV0pOwo+PiArCQkJaTkxNV9lcnJfcHJpbnRfaW5zdGRvbmUoZGV2X3ByaXYsICZpbnN0ZG9uZSk7 Cj4+ICAJCQlwcl9lcnIoIiAgSU5TVFBTOiAweCUwOHhcbiIsIEk5MTVfUkVBRChJTlNUUFMpKTsK Pj4gIAkJCXByX2VycigiICBBQ1RIRDogMHglMDh4XG4iLCBJOTE1X1JFQUQoQUNUSERfSTk2NSkp Owo+PiAgCQkJSTkxNV9XUklURShJUEVJUl9JOTY1LCBpcGVpcik7Cj4+IEBAIC0yNjA1LDggKzI2 MjIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcG9ydF9hbmRfY2xlYXJfZWlyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAlpZiAoZWlyICYgSTkxNV9FUlJPUl9JTlNUUlVD VElPTikgewo+PiAgCQlwcl9lcnIoImluc3RydWN0aW9uIGVycm9yXG4iKTsKPj4gIAkJcHJfZXJy KCIgIElOU1RQTTogMHglMDh4XG4iLCBJOTE1X1JFQUQoSU5TVFBNKSk7Cj4+IC0JCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGluc3Rkb25lKTsgaSsrKQo+PiAtCQkJcHJfZXJyKCIgIElOU1RE T05FXyVkOiAweCUwOHhcbiIsIGksIGluc3Rkb25lW2ldKTsKPj4gKwkJaTkxNV9lcnJfcHJpbnRf aW5zdGRvbmUoZGV2X3ByaXYsICZpbnN0ZG9uZSk7Cj4+ICAJCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpIDwgNCkgewo+PiAgCQkJdTMyIGlwZWlyID0gSTkxNV9SRUFEKElQRUlSKTsKPj4gIAo+PiBA QCAtMjk0OSwzMSArMjk2NSw0MiBAQCBzdGF0aWMgdm9pZCBzZW1hcGhvcmVfY2xlYXJfZGVhZGxv Y2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAkJZW5naW5lLT5oYW5n Y2hlY2suZGVhZGxvY2sgPSAwOwo+PiAgfQo+PiAgCj4+ICtzdGF0aWMgYm9vbCBpbnN0ZG9uZV91 bmNoYW5nZWQodTMyIGN1cnJlbnRfaW5zdGRvbmUsIHUzMiAqb2xkX2luc3Rkb25lKQo+PiArewo+ PiArCXUzMiB0bXAgPSBjdXJyZW50X2luc3Rkb25lIHwgKm9sZF9pbnN0ZG9uZTsKPj4gKwlib29s IHVuY2hhbmdlZDsKPj4gKwo+PiArCXVuY2hhbmdlZCA9IHRtcCA9PSAqb2xkX2luc3Rkb25lOwo+ PiArCSpvbGRfaW5zdGRvbmUgfD0gdG1wOwo+PiArCj4+ICsJcmV0dXJuIHVuY2hhbmdlZDsKPj4g K30KPj4gKwo+PiAgc3RhdGljIGJvb2wgc3VidW5pdHNfc3R1Y2soc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+PiAgewo+PiAtCXUzMiBpbnN0ZG9uZVtJOTE1X05VTV9JTlNURE9ORV9S RUddOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkx NTsKPj4gKwlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Cj4+ICsJc3RydWN0IGludGVs X2luc3Rkb25lICphY2N1X2luc3Rkb25lID0gJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lOwo+ PiAgCWJvb2wgc3R1Y2s7Cj4+IC0JaW50IGk7Cj4+ICAKPj4gIAlpZiAoZW5naW5lLT5pZCAhPSBS Q1MpCj4+ICAJCXJldHVybiB0cnVlOwo+PiAgCj4+IC0JaTkxNV9nZXRfZXh0cmFfaW5zdGRvbmUo ZW5naW5lLT5pOTE1LCBpbnN0ZG9uZSk7Cj4+ICsJaTkxNV9nZXRfZW5naW5lX2luc3Rkb25lKGRl dl9wcml2LCBSQ1MsICZpbnN0ZG9uZSk7Cj4+ICAKPj4gIAkvKiBUaGVyZSBtaWdodCBiZSB1bnN0 YWJsZSBzdWJ1bml0IHN0YXRlcyBldmVuIHdoZW4KPj4gIAkgKiBhY3R1YWwgaGVhZCBpcyBub3Qg bW92aW5nLiBGaWx0ZXIgb3V0IHRoZSB1bnN0YWJsZSBvbmVzIGJ5Cj4+ICAJICogYWNjdW11bGF0 aW5nIHRoZSB1bmRvbmUgLT4gZG9uZSB0cmFuc2l0aW9ucyBhbmQgb25seQo+PiAgCSAqIGNvbnNp ZGVyIHRob3NlIGFzIHByb2dyZXNzLgo+PiAgCSAqLwo+PiAtCXN0dWNrID0gdHJ1ZTsKPj4gLQlm b3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fSU5TVERPTkVfUkVHOyBpKyspIHsKPj4gLQkJY29uc3Qg dTMyIHRtcCA9IGluc3Rkb25lW2ldIHwgZW5naW5lLT5oYW5nY2hlY2suaW5zdGRvbmVbaV07Cj4+ IC0KPj4gLQkJaWYgKHRtcCAhPSBlbmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZVtpXSkKPj4gLQkJ CXN0dWNrID0gZmFsc2U7Cj4+IC0KPj4gLQkJZW5naW5lLT5oYW5nY2hlY2suaW5zdGRvbmVbaV0g fD0gdG1wOwo+PiAtCX0KPj4gKwlzdHVjayA9IGluc3Rkb25lX3VuY2hhbmdlZChpbnN0ZG9uZS5p bnN0ZG9uZSwKPj4gKwkJCQkgICAmYWNjdV9pbnN0ZG9uZS0+aW5zdGRvbmUpOwo+PiArCXN0dWNr ICY9IGluc3Rkb25lX3VuY2hhbmdlZChpbnN0ZG9uZS5zbGljZV9jb21tb24sCj4+ICsJCQkJICAg ICZhY2N1X2luc3Rkb25lLT5zbGljZV9jb21tb24pOwo+PiArCXN0dWNrICY9IGluc3Rkb25lX3Vu Y2hhbmdlZChpbnN0ZG9uZS5zYW1wbGVyLAo+PiArCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+c2Ft cGxlcik7Cj4+ICsJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnJvdywKPj4g KwkJCQkgICAgJmFjY3VfaW5zdGRvbmUtPnJvdyk7Cj4+ICAKPj4gIAlyZXR1cm4gc3R1Y2s7Cj4+ ICB9Cj4+IEBAIC0yOTg0LDcgKzMwMTEsNyBAQCBoZWFkX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQo+PiAgCWlmIChhY3RoZCAhPSBlbmdpbmUtPmhhbmdj aGVjay5hY3RoZCkgewo+PiAgCj4+ICAJCS8qIENsZWFyIHN1YnVuaXQgc3RhdGVzIG9uIGhlYWQg bW92ZW1lbnQgKi8KPj4gLQkJbWVtc2V0KGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lLCAwLAo+ PiArCQltZW1zZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lLCAwLAo+PiAgCQkgICAgICAg c2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lKSk7Cj4+ICAKPj4gIAkJcmV0dXJuIEhB TkdDSEVDS19BQ1RJVkU7Cj4+IEBAIC0zMTU4LDcgKzMxODUsNyBAQCBzdGF0aWMgdm9pZCBpOTE1 X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPj4gIAkJCS8qIENs ZWFyIGhlYWQgYW5kIHN1YnVuaXQgc3RhdGVzIG9uIHNlcW5vIG1vdmVtZW50ICovCj4+ICAJCQlh Y3RoZCA9IDA7Cj4+ICAKPj4gLQkJCW1lbXNldChlbmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZSwg MCwKPj4gKwkJCW1lbXNldCgmZW5naW5lLT5oYW5nY2hlY2suaW5zdGRvbmUsIDAsCj4+ICAJCQkg ICAgICAgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lKSk7Cj4+ICAJCX0KPj4gIAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gaW5kZXggYTI5ZDcwNy4uZTg0YmMyZSAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBAIC0xNzA4LDcgKzE3MDgsNiBAQCBlbnVtIHNr bF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4gICNkZWZpbmUgR0VON19TQ19JTlNURE9ORQlfTU1JTygw eDcxMDApCj4+ICAjZGVmaW5lIEdFTjdfU0FNUExFUl9JTlNURE9ORQlfTU1JTygweGUxNjApCj4+ ICAjZGVmaW5lIEdFTjdfUk9XX0lOU1RET05FCV9NTUlPKDB4ZTE2NCkKPj4gLSNkZWZpbmUgSTkx NV9OVU1fSU5TVERPTkVfUkVHCTQKPj4gICNkZWZpbmUgUklOR19JUEVJUihiYXNlKQlfTU1JTygo YmFzZSkrMHg2NCkKPj4gICNkZWZpbmUgUklOR19JUEVIUihiYXNlKQlfTU1JTygoYmFzZSkrMHg2 OCkKPj4gIC8qCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gaW5k ZXggODRhZWE1NC4uYWZjM2YxZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+PiBAQCAtNzMsMTMgKzczLDIxIEBAIGVudW0gaW50ZWxfZW5naW5lX2hhbmdj aGVja19hY3Rpb24gewo+PiAgCj4+ICAjZGVmaW5lIEhBTkdDSEVDS19TQ09SRV9SSU5HX0hVTkcg MzEKPj4gIAo+PiArc3RydWN0IGludGVsX2luc3Rkb25lIHsKPj4gKwl1MzIgaW5zdGRvbmU7Cj4+ ICsJLyogVGhlIGZvbGxvd2luZyBleGlzdCBvbmx5IGluIHRoZSBSQ1MgZW5naW5lICovCj4+ICsJ dTMyIHNsaWNlX2NvbW1vbjsKPj4gKwl1MzIgc2FtcGxlcjsKPj4gKwl1MzIgcm93Owo+PiArfTsK Pj4gKwo+PiAgc3RydWN0IGludGVsX2VuZ2luZV9oYW5nY2hlY2sgewo+PiAgCXU2NCBhY3RoZDsK Pj4gIAl1MzIgc2Vxbm87Cj4+ICAJaW50IHNjb3JlOwo+PiAgCWVudW0gaW50ZWxfZW5naW5lX2hh bmdjaGVja19hY3Rpb24gYWN0aW9uOwo+PiAgCWludCBkZWFkbG9jazsKPj4gLQl1MzIgaW5zdGRv bmVbSTkxNV9OVU1fSU5TVERPTkVfUkVHXTsKPj4gKwlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5z dGRvbmU7Cj4+ICB9Owo+PiAgCj4+ICBzdHJ1Y3QgaW50ZWxfcmluZyB7Cj4+IC0tIAo+PiAyLjUu MAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoK LS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK