Re: PATCH: Arla CVS Current on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Fri, 15 Jan 2016 03:13:44 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-387345283-1452824024=:11672 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH: Arla CVS Current on Linux 2.6.34 to 4.4 The latest patch to keep nnpfs uptodate with the Linux kernel. Bo Branten ---276651502-387345283-1452824024=:11672 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-cvs-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-cvs-for-linux-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oDQotLS0gYXJsYS1jdnMvbm5w ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODoz MzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQv bm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0xMiAx OToyOTo1MC41MjIwNzIwODQgKzAxMDANCkBAIC0xMTMsOCArMTEzLDEzIEBA IHN0cnVjdCBubnBmc19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5r Ow0KICAgICB1aW50MzJfdAkJeGFfdHlwZTsNCiANCisjaWYgKGRlZmluZWQo X19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdAkJeGFfdWlkOw0KKyAgICBr Z2lkX3QJCXhhX2dpZDsNCisjZWxzZQ0KICAgICB1aW50MzJfdAkJeGFfdWlk Ow0KICAgICB1aW50MzJfdAkJeGFfZ2lkOw0KKyNlbmRpZg0KIA0KICAgICB1 aW50MzJfdAkJeGFfYXRpbWU7DQogICAgIHVpbnQzMl90CQl4YV9tdGltZTsN CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oIGFybGEtZm9yLWxpbnV4LTQuNC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFybGEt Y3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDkt MDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3It bGludXgtNC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5o CTIwMTYtMDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtNTIs NyArNTIsMTEgQEAgdHlwZWRlZiB1aW50MTZfdCBubnBmc19yaWdodHM7DQog ICogVGhlIG5ucGZzX2NyZWQsIGlmIHBhZyA9PSAwLCB1c2UgdWlkIA0KICAq Lw0KIHR5cGVkZWYgc3RydWN0IG5ucGZzX2NyZWQgew0KKyNpZiAoZGVmaW5l ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90IHVpZDsNCisjZWxzZQ0K ICAgICB1aW50MzJfdCB1aWQ7DQorI2VuZGlmDQogICAgIG5ucGZzX3BhZ190 IHBhZzsNCiB9IG5ucGZzX2NyZWQ7DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZm LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFy bGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5o DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAky MDA2LTEwLTI0IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEt Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oCTIw MTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAtODQsOCAr ODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZmc21vdW50 ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUgYmxvY2tz ICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog ICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVu dGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90 IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0K KyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0K IAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt Y3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1s aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0g YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMTAt MDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3It bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2 LTAxLTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTUxLDcgKzUx LDkgQEANCiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPg0KICNpbmNsdWRlIDxs aW51eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4NCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNp bmNsdWRlIDxsaW51eC93YWl0Lmg+DQogDQogLyoNCkBAIC0xMzgsMTAgKzE0 MCwxNyBAQCB0eXBlZGVmIF9fdTMyICB1aW50MzJfdDsNCiBpbnQNCiBubnBm c19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSk7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQN CiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5 cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN CiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7DQor I2Vsc2UNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBm aWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywg Y29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQor I2VuZGlmDQogDQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBu bnBmc19kZW50cnlfb3BlcmF0aW9uczsNCiANCkBAIC0xOTQsMTAgKzIwMywy MSBAQCBubnBmc19pd3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkN CiAgKiBIZWxwIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3Vu dCBhIHBvcnRhYmxlIHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBp bmxpbmUgaW50DQogbm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnkpDQorLyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5w ZnNfZGNvdW50IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8N CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRf Y291bnQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTEsMCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25z dCBhdG9taWNfdCopJmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAg cmV0dXJuIGRfY291bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4 dGVybiANCkBAIC0yMjksNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2Nh bGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZz X2Rldl90IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlf dW5oYXNoZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZp bmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hl ZChkKQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdo aWxlKDApe30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3Zz L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTQu NC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFybGEtY3ZzL25u cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQu MDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZz L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTQgMDE6MDE6MTkuODA3 MTQyNjg1ICswMTAwDQpAQCAtNDMsNiArNDMsMzYgQEANCiAjaW5jbHVkZSA8 bGludXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIs MCkNCisvKiBUT0RPOiBpbXBsZW1lbnQgYSByZXBsYWNlbWVudCBmb3IgdmZz X3BhdGhfbG9va3VwIG9uIGtlcm5lbCAzLjEyIGFuZCBsYXRlciAqLw0KKy8q Kg0KKyAqIHZmc19wYXRoX2xvb2t1cCAtIGxvb2t1cCBhIGZpbGUgcGF0aCBy ZWxhdGl2ZSB0byBhIGRlbnRyeS12ZnNtb3VudCBwYWlyDQorICogQGRlbnRy eTogIHBvaW50ZXIgdG8gZGVudHJ5IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0K KyAqIEBtbnQ6IHBvaW50ZXIgdG8gdmZzIG1vdW50IG9mIHRoZSBiYXNlIGRp cmVjdG9yeQ0KKyAqIEBuYW1lOiBwb2ludGVyIHRvIGZpbGUgbmFtZQ0KKyAq IEBmbGFnczogbG9va3VwIGZsYWdzDQorICogQHBhdGg6IHBvaW50ZXIgdG8g c3RydWN0IHBhdGggdG8gZmlsbA0KKyAqLw0KK2ludCBubnBmc19wYXRoX2xv b2t1cChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCB2ZnNtb3VudCAq bW50LA0KKwkJICAgIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBm bGFncywNCisJCSAgICBzdHJ1Y3QgcGF0aCAqcGF0aCkNCit7DQorI2lmIDAN CisJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisJaW50IGVycjsNCisJbmQucm9v dC5kZW50cnkgPSBkZW50cnk7DQorCW5kLnJvb3QubW50ID0gbW50Ow0KKwlC VUdfT04oZmxhZ3MgJiBMT09LVVBfUEFSRU5UKTsNCisJLyogdGhlIGZpcnN0 IGFyZ3VtZW50IG9mIGRvX3BhdGhfbG9va3VwKCkgaXMgaWdub3JlZCB3aXRo IExPT0tVUF9ST09UICovDQorCWVyciA9IGRvX3BhdGhfbG9va3VwKEFUX0ZE Q1dELCBuYW1lLCBmbGFncyB8IExPT0tVUF9ST09ULCAmbmQpOw0KKwlpZiAo IWVycikNCisJCSpwYXRoID0gbmQucGF0aDsNCisJcmV0dXJuIGVycjsNCisj ZW5kaWYNCisJcmV0dXJuIC0xOw0KK30NCisjZW5kaWYNCisNCiAvKg0KICAq IHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAt MjkwLDcgKzMyMCwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5u cGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFw cGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlf bXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9u ZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBp ZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2Nr KCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3Nl KGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTUgKzM1NCwyNyBAQCBubnBm c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0 cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsN CiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5v ZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBz dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNh dmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3Vp ZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0K ICAgICBpbnQgcmV0Ow0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq b2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K ICNlbmRpZg0KIA0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClz YXZlZ2lkOw0KKw0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19P TihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCiANCkBAIC0z NjYsMTAgKzQxNCwyNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm c19ub2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo b3ZlcnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2 ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo ZXJvb3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JF QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0K KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu ZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorICAgIHJldCA9IG5ucGZzX3BhdGhfbG9va3Vw KG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAg Y2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BB UkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UNCisgICAgcmV0 ID0gbm5wZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw LT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAm IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsN CisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3Mg PSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0z OTYsMTYgKzQ2MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm c19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFU KSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8 U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9v a3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNr IHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29u ZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVu dHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBh dGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0 byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQg b3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5f cGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2Vu ZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRS X0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJICAgIHJldCA9IHZm c19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19J UlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86IHNo b3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdh bnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0 ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNf SVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQgdGhl IGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2ws IGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5k ZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsN CisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0 ZXgpOw0KIAlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhf dW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBh dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkg ICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVk OiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MjEsMTQgKzUwNywy MyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl DQogICAgIH0gZWxzZSB7DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAJc3RydWN0IGZpbGUgKmYgPSBkZW50 cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzKTsN Ci0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KICAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50 cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzLCBj dXJyZW50X2NyZWQoKSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwlzdHJ1Y3QgcGF0aCB0bXBfcGF0 aCA9IHsgLm1udCA9IG5kLnBhdGgubW50LCAuZGVudHJ5ID0gbmQucGF0aC5k ZW50cnkgfTsNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29w ZW4oJnRtcF9wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNl DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRo LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNf RVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJp bnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIs IGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkg ICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkg ICAgKmZpbGUgPSBmOw0KIAl9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1s aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxh LWN2cy9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3 OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQu NC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1 OjAwLjM0NzQ0NzY1NyArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5u cGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lk DQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9k ZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp YXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisj ZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQg YmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlf ZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlf ZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYg KzEzNiwyNiBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3Ry dWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0K KyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks IGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k ZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj aF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFz KSB7DQorI2VuZGlmDQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBw cmludGsoIiAuLi4iKTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50 cnkpIHsNCisJICAgIHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnkt PmRfbmFtZS5sZW4sDQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50 cnkpOw0KKwkgICAgaWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRy eS0+ZF9oYXNoKSkNCisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQor ICAgIH0NCisjZW5kaWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBA IC0xNDYsNyArMTcxLDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0 IHN0cnVjdCBkZW50cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRl bnRyeS0+ZF9zdWJkaXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9 IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0 X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNl bHNlDQorCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAs IHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmlu dGsoIiAlLipzKCVwKSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAg ICAgICBjaGlsZC0+ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4g LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5j IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0K LS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAt MjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGlu dXgtNC40L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6 Mjg6MTkuMjUwNDk1ODIwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5u cGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAg Tk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3Rh cnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+ c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7 DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJm cmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3 ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5v ZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1 Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZf dCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmls ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBu bnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl LT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw ID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGlu ayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAt NDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgY29uc3QNCiANCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm c19kZXZ3cml0ZVxuIikpOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxl LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAm bm5wZnNbTUlOT1IoZGV2KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+ Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAg ICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3du KCZubnBmc3AtPmNoYW5uZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3Rh dHVzICYgTk5QRlNfREVWV1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBA QCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAv Kg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5u cGZzX2RldmlvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxlLA0KIAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg bG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9j a2VkX2RldmlvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzYpDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9j dGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUt PmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNE RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+ aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNE RUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3Mg PSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAg cmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQN CiBubnBmc19kZXZwb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxl ICp3YWl0KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxl LT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5u cGZzX2Rldl90IGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt PmlfcmRldjsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag PSAmbm5wZnNbTUlOT1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAg ICANCkBAIC05NTMsNyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgbm5wZnNfZm9wcyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQs DQogICAgIHdyaXRlOgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlu bnBmc19kZXZwb2xsLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9j dGwsDQorI2Vsc2UNCisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9j a2VkX2RldmlvY3RsLA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNf ZGV2Y2xvc2UsDQogICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpA QCAtOTY4LDggKzEwMDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkN CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUp KTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5w ZnNfaW5pdHEoJm5ucGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRF WCgmbm5wZnNbaV0uaW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5w ZnNbaV0uY2hhbm5lbF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5w ZnNbaV0uaW5hY3RpdmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tp XS5jaGFubmVsX3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFE KCZubnBmc1tpXS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVz ID0gMDsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1j dnMvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51 eC00LjQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEt Y3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxMC0wOC0wOCAy Mjo0MzowNC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00 LjQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAxLTE0IDE5 OjIwOjE5LjMyMjExNzk4OCArMDEwMA0KQEAgLTQwLDEwICs0MCwxNCBAQA0K ICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5jbHVkZSA8bm5w ZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5 c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNpbmNsdWRl IDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4N CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNsdWRlIDxsaW51 eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGludXgvdWlvLmg+ DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPg0KICNp bmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSArNTgsMjMgQEAg UkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0 YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs IHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9y ZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVp ZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2Rf cmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGlu dCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBu bnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNl DQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0 IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0K IG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAg LTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlu b2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBk ZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN CiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQor c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAoc3RydWN0 IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQg aW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzX21l c3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw Ow0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1 Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3lu Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAg c3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2Rl KTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5P REUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5v ZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5jX2ludChz dHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KLSNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5bmMpDQot I2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0 IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBp bnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0 YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2VuZGlmDQogew0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwg NiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZp bGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC00OTAs NiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGlu dCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGlu dCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAg ZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlmIChl cnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSArNjUyLDI1IEBA IGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAg KiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQog c3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICpp bm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNf cGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5z aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9y ID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUg JiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs NiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAg ICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0g bm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoi LCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlu b2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlk KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1h cChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq IHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7 DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlu b2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9w YXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmlu dF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsN CiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAg LTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0 IGZpbGUgKiBmaWxlLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3Np emVfdA0KIG5ucGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJ ICAgICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25n IG5yX3NlZ3MsDQogCSAgICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3Rh dGljIHNzaXplX3QNCitubnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICpp b2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAg aW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2Ni LT5raV9maWxwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r aV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDQsMiwwKQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lf bmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRl cl9jb3VudCh0byk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5 LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAo eG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Jl YWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2Rl LCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19k YXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291 bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChp bm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3Bv cyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90 IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAg IH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlv X3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAg IGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQor I2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFk X2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBl cnJvcjsNCiB9DQpAQCAtODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3Jl YWQoc3RydWN0IGtpb2NiICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBz dGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogCQljb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQg bG9uZyBucl9zZWdzLA0KIAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRp YyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAg IGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9j Yi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+ a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTig0LDIsMCkNCisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp X25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0 ZXJfY291bnQoZnJvbSk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9m Zl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxw b3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBG U0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5z OiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3 Nyw3ICs5NzEsMTEgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAq aW9jYiwNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAg ZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJf c2VncywgcG9zKTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmls ZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAo IUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19E QVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMs MTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAg ICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5u cGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq ZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBp bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1v ZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0 YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJv b2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5w ZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4 ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xk X2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3Rh dGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRp YyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVj dCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsN CiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBm c19ub2RlICp4bjsNCkBAIC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBp bnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdl IGhvbGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBm c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwg ZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5w ZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29u dGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAg ICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3Ry dWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0K KyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3Bh dGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5v ZGUgKmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4g PSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBA IC0xMzI4LDYgKzE0NTAsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl ICogZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1s ZW4sDQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTEsMCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkm JiAoZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAg ICB4ZGlyZW50LT5kX25hbWUsDQpAQCAtMTMzOSw2ICsxNDYyLDE4IEBAIG5u cGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkg KCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9y KSk7DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhk aXJlbnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0g ZGlyX2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQor CQkJCSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVu dC0+ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0K KwkJTk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRp ciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7 DQorCSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ ZF9yZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0g MCkgew0KQEAgLTEzOTUsOSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBp X211dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNf Zm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1 Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFy ICoNCitubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5 LA0KKwkJIHZvaWQgKipwYWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVy cm9yID0gMDsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9U T19JTk9ERShkZW50cnkpOw0KQEAgLTE0MDgsNyArMTU0OSwxMSBAQCBubnBm c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlm IChlcnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIs MCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5 LCBuZCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtf bGlnaHQoZGVudHJ5LCBwYWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBA IC0xNDkwLDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVj dCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsN CiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0K Kw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9m aWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQo aW5vZGUpOw0KQEAgLTE1MjMsOCArMTY3MCwxMyBAQCBubnBmc19mbHVzaChz dHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg ICBpZiAoZmlsZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxl LT5mX2RlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYg KGZpbGUgJiYgZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGgu ZGVudHJ5LT5kX2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxl KGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRp Zg0KICAgICBlbHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDggKzE2 ODUsMTMgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293 bmVyXw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlk LCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25u cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVj dCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZz X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu YW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl bnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQog ew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RF KGRlbnRyeSk7DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19k X3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCkBAIC0x NTgyLDkgKzE3MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBz dGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0 ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0K ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNf bm9kZSAqeG47DQpAQCAtMTYxNCw3ICsxNzc3LDExIEBAIG5ucGZzX3NwbGlj ZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQg aW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5v ZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVj dCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAg ICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg3NCw4 IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLA0K IA0KIAlpbnQgZXJyb3I7DQogCQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWRv IHsNCiAJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxl LCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJCQkgICAgICBBT1BfRkxBR19VTklO VEVSUlVQVElCTEUsDQpAQCAtMTc0Nyw2ICsxOTE2LDggQEAgbm5wZnNfcmVh ZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFn ZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KKwko dm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3Bh Z2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VSUihiYWNr cGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0K QEAgLTE4OTQsMTEgKzIwNjUsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6 ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9y ID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVy cm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlp ZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6 ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5u cGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0K IAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBY WFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3Qg Y29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTk5MywxMCArMjE3MCwx OCBAQCBubnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj DQogDQogCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYg d2UgZGlkIGEgc2hvcnQgY29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9V U0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMo cGFnZSk7DQorI2VuZGlmDQogCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29w aWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KIAkJZmx1c2hfZGNhY2hlX3BhZ2Uo cGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjAp Ow0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYN CiAJfQ0KIA0KIAlubnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJv bSwgZnJvbSArIGNvcGllZCk7DQpAQCAtMjAyNyw4ICsyMjEyLDEzIEBAIHN0 cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8N CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0 aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs NyArMjIzMSwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0g bm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5u cGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2Zs dXNoLA0KIH07DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2 cy9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS1mb3ItbGludXgtNC40 L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25ucGZz L2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51 eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcg KzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVt X3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAg ICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5u cGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAg bm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAg ICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAg IFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3It bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFy bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4 IDIyOjQzOjA1LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4 LTQuNC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAx Njo1MDoxNS4xMzk1NzUxNTEgKzAxMDANCkBAIC01NSw5ICs1NSwxNSBAQCBz dGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRl bnRyeSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9y ZW1vdmUgJXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygm ZGNhY2hlX2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAg ICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNw aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRl bnRyeSk7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQor I2VuZGlmDQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRy eSk7DQogfQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9p bnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUg KmRpLCAqaW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5V TEw7DQogICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0 IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9u b2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAg ICANCkBAIC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3Rh bGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAg ICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAg IHdoaWxlIChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9 IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K LQlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFy ZW50KTsNCi0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisg ICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5p X2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2Vh Y2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGkt PmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAg IHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChw YXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl bHNlDQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBk Z2V0X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQt PmRfbG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVu dCwgJnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZz X21lc3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIs DQpAQCAtMjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v ZGUoc3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVu dHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2Vu ZGlmDQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihY REVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5z dGFsbGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVz c2FnZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQog ICAgIGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50 cnkgPSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3Qg ZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0 X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwg ZF9hbGlhcyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnko aW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9h bGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNH LCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJ CSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0 MjgsMzYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5w ZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0 IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAq YWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsN CisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUg ZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+ aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+ aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50 cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm DQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBm c19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9l bnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlm DQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5f RU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBu dWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzMsMTEgQEAg Y2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlz dWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1 YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3Qg bGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3Qg ZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5 LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkg KmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hp bGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJ ICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNo aWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6 ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk3LDI2IEBAIGNsZWFy X2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAg IC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNv dW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9j aygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sg dGhlIGRlbnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xv Y2spOyovDQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQog CQlnb3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFs aWFzLT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91 bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1 bmxvY2sgdGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50 cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQN CkBAIC03MTksMTIgKzc4NiwyMiBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24o c3RydWN0IG5ucGZzICpubnBmDQogDQogICAgIC8qIHNhbml0eSBjaGVjayBi ZWZvcmUgd2UgbG9vayBhdCBpdCAqLw0KICAgICBpZiAoc2l6ZSA9PSBzaXpl b2YoKm1lc3NhZ2UpICYmIG1lc3NhZ2UtPnZlcnNpb24gPT0gTk5QRlNfVkVS U0lPTikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UN CisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJaW50IGVycm9yOw0K IA0KIAl1aW50NjRfdCBibG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7 DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5wYXRo KTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRo KTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkgICAg ICogQmFkIGNhY2hlIHJvb3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNSw5ICs4 MTIsMTUgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAq bm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0 aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJ fSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRn ZXQobmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRn ZXQobmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgp Ow0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChw YXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRo LmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog CSAgICANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1 aWQ7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s aW51eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp bnV4L25ucGZzX25vZGUuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25u cGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19u b2RlLmMJMjAxNi0wMS0xNCAxNjo1MToxMS40MjA1Nzg1NDQgKzAxMDANCkBA IC0xMzIsNyArMTMyLDEyIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2Rl ICppbm9kZSwgdWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVu Y2F0aW5nIEAweCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBs b25nKXNpemUpOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwg c2l6ZSk7IC8qIFhYWCByZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVf bmV3c2l6ZV9vayhpbm9kZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRz aXplKGlub2RlLCBzaXplKTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1 bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUs MTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0 cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9k ZS0+aV9tb2RlICAgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7 DQogCWlub2RlLT5pX2dpZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlf dWlkICAgID0gS1VJRFRfSU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0g S0dJRFRfSU5JVCgwKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5r ICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5k aWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9t dGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsN CkBAIC0xNjksNyArMTgzLDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qg c3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRy KSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBp ZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGlu ayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5v ZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlm IChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5v ZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwxMiArNTI4LDI0IEBAIG5u cGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBpbnQN CiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQorICAg IHN0cnVjdCBobGlzdF9ub2RlICpwb3M7DQorI2VuZGlmDQogICAgIGludCB1 c2VycyA9IDA7DQogICAgIA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQgcHJv YmFibHkgYmUgcHJvdGVjdGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxpc3Rf Zm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UNCisg ICAgaGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9l bnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQor CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1 Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChubnBm c19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAgICB9 DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51 eC9ubnBmc19zeXNjYWxscy5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9s aW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGlu dXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51 eC9ubnBmc19zeXNjYWxscy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuNjQxNjEx NjU1ICswMTAwDQpAQCAtNDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBm cy9ubnBmc19zeXNjYWxscy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19j b21tb24uaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2lu Y2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg PGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQog DQpAQCAtNTAsNiArNTIsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJp dHkuaD4NCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49 IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0K Ky8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90 IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2Nh bGxzLWxvc3NhZ2UuYyAqLw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVm IENPTkZJR19DT01QQVQNCiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0K QEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0 YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsNCiB9IGFmc3Byb2Nk YXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0 bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisj ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAg IC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZWxzZQ0KKyAgICAu dW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2VuZGlm DQogfTsNCiANCiANCkBAIC0xNjAsOCArMTc3LDEwIEBAIG5ucGZzX2dldF9w YWdfc2VjKHZvaWQpDQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51 aWQ7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgp Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp OyByZXR1cm4ga3VpZC52YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5 LDcgKzIxOCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kp DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMg PSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2kt Pm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdy b3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3Jv dXAgPSBHUk9VUF9BVChnaSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3Vw LnZhbDsNCisjZW5kaWYNCiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBO TlBGU19QQUdfTExJTSAmJiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19Q QUdfVUxJTSkgew0KIAkgICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAg KCJmaW5kX3BhZzogRXhpc3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3Jv dXAsIGkpKTsNCkBAIC0yMjAsNyArMjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdf Z3JvdXAodm9pZCkNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+ dWlkOw0KICNlbHNlDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdl dF9jdXJyZW50X2dyb3VwcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIG5ucGZzX3BhZ190IHJl dCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQg PSBjdXJyZW50X3VpZCgpOw0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlk LnZhbDsNCisjZW5kaWYNCiAjZW5kaWYNCiAgICAgaW50IGk7DQogDQpAQCAt MjMwLDcgKzI1OSwxMSBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQog DQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZT X1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7 DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsg cmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3Vw X2luZm8oZ2kpOw0KIA0KQEAgLTI4MCwxMCArMzEzLDE3IEBAIHN0b3JlX3Bh ZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVS X0JMT0NLOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlH Uk9VUF9BVChuZXdfZ2ksIGkpID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdS T1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07 DQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0g S0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dp ZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklU KHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0g MSkgPSBrZ2lkOyB9DQorI2VuZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVu dF9ncm91cHMobmV3X2dpKTsNCiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dp KTsNCkBAIC0zMjUsOCArMzY1LDEwIEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0K ICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KLSNlbHNlDQorI2Vs aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KICAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7 IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFs OyB9DQogI2VuZGlmDQogfQ0KIA0KQEAgLTQzMiw3ICs0NzQsNyBAQCBubnBm c19zZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlm IC8qIFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0K IA0KLXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVf aGFuZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBp bm9kZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUxOSwxNCArNTYxLDI3IEBA IG5ucGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KICAq IGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChz dHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9s bG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJf cGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3Bh dGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KLSAgICBjaGFyICprbmFt ZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsN CiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisg ICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3Bh dGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0KKyAgICBz dHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAgICBmbmFtZSA9IGdldG5hbWUo dXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBmbmFtZS0+bmFtZTsNCisjZW5k aWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJf UFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCkBAIC01 MzQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFt ZWlkYXRhICpuZCwNCiANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQp Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz LCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh dGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1 dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJlZShu YW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAgICBp ZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAg ICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVy biBwYXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2Ug bG9uZw0KQEAgLTU1MywxMyArNjIyLDIxIEBAIHN5c19hZnNfaW50IChpbnQg b3BlcmF0aW9uLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwg Km1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1 cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAg IHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cg PSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlm IChtc2cgPT0gTlVMTCkNCiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86 IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5nIGFu IHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihY REVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0KQEAg LTU5Nyw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24s DQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0 aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkg PSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dT eW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJ ZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkzLDEz ICs3NzQsMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAg IA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0aF9w dXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsNCisj ZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNj YWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAg Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIp KTsNCiAgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVs KCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0 IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0 dXJuIGVycm9yOw0KIH0NCkBAIC03NDgsOSArODM3LDE1IEBAIHN5c19hZnMg KGludCBvcGVyYXRpb24sDQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7 DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0 bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNl bHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0 IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFy Z3M7DQogICAgIGxvbmcgcmV0Ow0KQEAgLTgwNyw3ICs5MDIsMTEgQEAgc3Rh dGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICAgICBubnBmc19w cm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KICAg ICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxMCwwKQ0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZT X1BST0NfTk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UN CisgICAgZW50cnkgPSBwcm9jX2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2 NjYsIE5VTEwsICZubnBmc19wcm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAg IGlmIChlbnRyeSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgi bm5wZnNfaW5pdF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCiAJcmVtb3ZlX3By b2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KQEAgLTgx Nyw3ICs5MTYsOSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZv aWQpDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQog I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19w cm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBB VA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFSTEFf VklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkgew0KZGlm ZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5w ZnNfc3lzY2FsbHMtbG9zc2FnZS5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBm cy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLWN2 cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0w OC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1s aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j CTIwMTYtMDEtMTMgMjE6NTE6NDkuNjgyNDU3MjEzICswMTAwDQpAQCAtNTAs OCArNTAsMTcgQEANCiBSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3Nz YWdlLmMsdiAxLjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7 DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xv d2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxh dGVyICovDQorI3VuZGVmIFNZU0NBTExIQUNLDQorI2VuZGlmDQorDQogI2lu Y2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNL DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NywwKQ0KIHN0YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhy ZWFkOw0KKyNlbmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0 ZV9fKCh3ZWFrKSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lz X2NhbGxfZnVuY3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02 Niw2ICs3NSw4IEBAIGNvbnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr KSkNCiAjaWZkZWYgX194ODZfNjRfXw0KIGV4dGVybiByd2xvY2tfdCB0YXNr bGlzdF9sb2NrIF9fYXR0cmlidXRlX18oKHdlYWspKTsNCiAjZW5kaWYNCisN CisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9z dGFydF9hZGRyKHZvaWQpIHsNCiAjaWZkZWYgX194ODZfNjRfXw0KQEAgLTc0 LDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICAgICByZXR1 cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7DQogI2VuZGlmDQogfQ0KKyNlbmRp Zg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IA0KIGthbGxzeW1faXNfZXF1YWwo dW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFyICpuYW1lKQ0KQEAgLTE0 Miw2ICsxNTQsOCBAQCB2ZXJpZnkodm9pZCAqKnApIHsNCiAgICAgcmV0dXJu IDE7DQogfQ0KIA0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBp bmxpbmUgaW50IGxvb2tzX2dvb2Qodm9pZCAqKnApDQogew0KICAgICBpZiAo KnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5kIHx8ICpwID49ICh2b2lkKilwKQ0K QEAgLTE5MSwzICsyMDUsNSBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xvc3Nh Z2Uodm9pZCkNCiANCiAgICAgcmV0dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0K ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnNfdmZzb3BzLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4 L25ucGZzX3Zmc29wcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAy MDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNf dmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4yNjM2NTg1MzYgKzAxMDAN CkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5j LHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsN CiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVy X2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1 cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCiBz dGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkgQEAg c3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0KICAg ICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9w X2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3Vw ZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJ CTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJ OiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBAQCBu bnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdz IHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVk KS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vs c2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYN CiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K QEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBu bnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBT X0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRy LCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9T RVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9V SUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9H SUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAg IFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01U SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUu YXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5v ZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAg ICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRw ID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19k X2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVy biAwOw0KQEAgLTE3NSwxMyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIg KHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZG T1BTLCAoIm5ucGZzX3JlYWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFi bGVzXG4iKSk7DQogDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K IAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRo IHBhdGg7DQorI2VuZGlmDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29r dXAoZGF0YSwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo KGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5f cGF0aChkYXRhLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikN CiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRk ZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIo ZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9p bm9kZS0+aV9yZGV2KTsNCkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNfZmls bF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4g MDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZp bGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBj b25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBAQCBu bnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogew0K ICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRh LCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0cnVj dCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5 cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpk ZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCit7DQorICAgIHJldHVy biBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmls bF9zdXBlcik7DQorfQ0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0K IG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0K IHsNCiAgICAgc2ItPnNfZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8q DQogICogWFhYIGlzIHRoaXMgZ29vZD8gDQo= ---276651502-387345283-1452824024=:11672 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---276651502-387345283-1452824024=:11672--