Re: PATCH v14: Arla 0.90 on Linux 2.6.3x to 4.6
Bo Branten <[email protected]> Thu, 19 May 2016 17:36:35 +0200 (CEST)
| 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-947803959-1463672195=:15876 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v14: Arla 0.90 on Linux 2.6.3x to 4.6 Updated for the Linux kernel v4.6. Bo Branten ---276651502-947803959-1463672195=:15876 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v14-arla-0.90-for-linux-2.6.3x-to-4.6 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v14-arla-0.90-for-linux-2.6.3x-to-4.6 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50 MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90 CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6 MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0 czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6 IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291 cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0 OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0 X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45 MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45 MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0 MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0 OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAw MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM KTsNCkBAIC0zMTMsMTQgKzMyNCwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0 cnVjdCBubnBmc19ub2RlICpub2RlDQogCQkgc3RydWN0IGZpbGUgKipmaWxl KQ0KIHsNCiAgICAgY2hhciBjYWNoZW5hbWVbTk5QRlNfQ0FDSEVfUEFUSF9T SVpFXTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDMsMSwwKQ0KKyAgICBjaGFyIGZ1bGxfY2FjaGVuYW1lW05OUEZTX0NB Q0hFX1BBVEhfU0laRV07DQorI2VuZGlmDQogICAgIHVpbnQ2NF90IGJsb2Nr aW5kZXggPSBubnBmc19ibG9ja19pbmRleChvZmZzZXQpOw0KICAgICB1aW50 MzJfdCBpZCA9IG5vZGUtPmluZGV4Ow0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u cGZzcCA9IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50 IGZsYWdzID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj dCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0 aDsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBn aWRfdCBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIGNvbnN0IHN0cnVjdCBjcmVk ICpvbGRfY3JlZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7 DQorI2VuZGlmDQogICAgIGludCByZXQ7DQogDQogICAgIEJVR19PTighbm5w ZnNwKTsNCkBAIC0zMzAsMTIgKzM1MywyMiBAQCBubnBmc19ibG9ja19vcGVu KHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCXJldCA9IHNucHJpbnRmKGNh Y2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSksDQogCQkgICAgICAgTk5QRlNf Q0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAw eDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmludGYoZnVsbF9jYWNoZW5hbWUs IHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAgICAgICIvdXNyL2FybGEvY2Fj aGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwNCisJCSAgICAgICBpZCAvIDB4 MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsNCiAJ cmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwN CiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxFX1BBVEgsDQogCQkgICAgICAg aWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJCSAgICAgICAodW5zaWduZWQg bG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorCXJldCA9IHNucHJp bnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwNCisJCSAg ICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5QRlNfQ0FDSEVfRklMRV9QQVRI LA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlkICUgMHgxMDAsDQorCQkgICAg ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9ja2luZGV4KTsNCisjZW5kaWYN CiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Aobm9kZSwgb2Zmc2V0KSAmJiAo ZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQogCSAgICBwcmludGsoS0VSTl9F TUVSRyAicmVhZGluZyBibG9jayAlczogbm90IHRoZXJlXG4iLCBjYWNoZW5h bWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzQ2LDIyICszNzksMzcgQEAgbm5w ZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBC VUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290 KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZl IHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5m c3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBj dXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5m c2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0 KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5w ZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05P Uk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0K LSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3Mg PSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxr KGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVk ID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9 PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJy aWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRl X2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0g b3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSww KQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRp ciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJ ICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkg ICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5w ZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNo ZW5hbWUsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDAp DQogICAgIGlmIChyZXQpIHsNCisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEo ZmxhZ3MgJiBPX0NSRUFUKSkgew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFz a3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCiAN CkBAIC0zODcsMTcgKzQzNSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj dCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBP X0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNf SVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5 ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBk ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1 bGxfY2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVj dCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0Qs IGZ1bGxfY2FjaGVuYW1lLCAmcGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAo SVNfRVJSKGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5 KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJldCA9IHZmc19jcmVhdGUobmQuZGVu dHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZm c19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAg ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8q IFhYWCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm c19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVT UnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRl bnRyeSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5k X2lub2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsN CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50 cnkpOw0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBk ZW50cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQu ZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCi0JcGF0aF9yZWxlYXNlKCZu ZCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxv Y2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDEwLDEy ICs0NzgsMjQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9k ZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5wZnNfYmxvY2tfZXh0ZW5kKG5vZGUs IG9mZnNldCk7DQogCX0NCiAgICAgfSBlbHNlIHsNCi0Jc3RydWN0IGZpbGUg KmYgPSBkZW50cnlfb3BlbihuZC5kZW50cnksIG5kLm1udCwgZmxhZ3MpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MjkpDQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5k ZW50cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorICAgICAgICBz dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBu ZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor ICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZuZC5wYXRo LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBz dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3Vy cmVudF9jcmVkKCkpOw0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQog CSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19i bG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQotCSAgICBwYXRo X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgp Ow0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog CX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCAr NTA0LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUg Km5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5k bGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50 LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2 ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZlcnRfY3JlZHMob2xkX2NyZWQpOw0K KyAgICBwdXRfY3JlZChvdmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCiANCiAg ICAgcmV0dXJuIHJldDsNCiB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS0wLjkw L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS0wLjkwLW9s ZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMx OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAw MCArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2Fs aWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJp bnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAg c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEw MDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7 DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQog CWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBu bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0N CiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50 cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm DQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4i KTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAg IHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4s DQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAg aWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkN CisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5k aWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcx LDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50 cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJk aXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwg c3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVj dCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50 cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVw KSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19kZXYuYyBhcmxhLTAuOTAv bm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25u cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw MDAwMDAwICswMjAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpA QCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVj dCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJl ZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hy aW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRh dGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBO TlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25l XG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xv c2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90 DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVm LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg bm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf cmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5m X3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAg IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0K ICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQg PSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19k ZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5O UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAg DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf cmRldjsNCi0gICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNl bHNlDQorICAgIGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt PmlfcmRldjsNCisjZW5kaWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5P UihkZXYpXTsNCiANCiAgICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7 DQogICAgIGlmIChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7 DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICov DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNp Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0 YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZp bGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIo WERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAl ZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdz KSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3Mp KTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9m bGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQog DQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0 IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg IG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p X3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+ Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAg ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsN CiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEg QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAg ICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19k ZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAg ICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxv Y2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlm DQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJ CW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBu bnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFk KCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5w ZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xl ZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9z ZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQor I2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEp Ow0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisj ZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xp c3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf aW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv cHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0K KysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIw MTYtMDUtMDkgMTc6MTM6MDMuMDAwMDAwMDAwICswMjAwDQpAQCAtNDAsMjUg KzQwLDQ4IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+ DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxs aW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGVi YWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oNCw2LDApDQorI2Rl ZmluZSBQQUdFX0NBQ0hFX1NJWkUJCQlQQUdFX1NJWkUNCisjZGVmaW5lIFBB R0VfQ0FDSEVfU0hJRlQJCVBBR0VfU0hJRlQNCisjZGVmaW5lIHBhZ2VfY2Fj aGVfZ2V0KHBhZ2UpCQlnZXRfcGFnZShwYWdlKQ0KKyNkZWZpbmUgcGFnZV9j YWNoZV9yZWxlYXNlKHBhZ2UpCXB1dF9wYWdlKHBhZ2UpDQorI2VuZGlmDQor DQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMu Yyx2IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAkIik7DQor UkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMTAvMDgv MDggMjA6NDM6MDQgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGlj IGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9p bnQgZmxhZyk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFs aWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRh ICpuZCk7DQotDQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZh bGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZs YWdzKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZz X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitz dGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5w ZnNfZF9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1 LDcgKzEyOCw3IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFf c3RydWN0ICoNCiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25z X3N0cnVjdCBubnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9 IGZpbGVtYXBfbm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBf ZmF1bHQsDQogICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0K IA0KQEAgLTEzNCwxMiArMTU3LDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2 b2lkDQogbm5wZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBo b3JlICpzZW0pDQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2Nr OiAlcyBzZW06ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwg KGludClhdG9taWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlm DQogDQogLyoNCiAgKg0KQEAgLTE4NSw3ICsyMTAsNyBAQCBubnBmc19kX2lw dXQoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVC KFhERUJWTk9QUywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVw LCBpbm9kZSAlcFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAg aWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9j a2luZyAqLw0KKyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQ VVQpIC8qIFhYWCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2ly ZWxlKGlub2RlKTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0y MTIsOCArMjM3LDEzIEBAIG5ucGZzX2lub2RlX3ZhbGlkKHN0cnVjdCBpbm9k ZSAqaW5vZGUpDQogICogbm5wZnNfbG9va3VwIG5vdyByZXR1cm5zIGEgZGVu dHJ5Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQog bm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0 YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCitubnBmc19sb29rdXAgKHN0cnVjdCBp bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGlu dCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmc19tZXNz YWdlX2dldG5vZGUgbXNnOw0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsN CkBAIC0yNDAsNyArMjcwLDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlu b2RlICpkaXIsIHN0cnVjdCANCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBO TlBGU19NU0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUg PSBkLT5oYW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzQ0LDExIEBA IG5ucGZzX29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAg ICAgICB7DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAlt c2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAlt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1z Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9 IHhuLT5oYW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcg KzQzNSwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2Rl ICpub2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg Km5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQog ICAgIGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1 LDcgKzQ2NywxMSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZp bGUsIHVfaW50DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH X1BVVERBVEE7DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl bmRpZg0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcg ICA9IGZsYWc7DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs1 MDYsMjcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1 X2ludA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNf ZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgaW50IGRhdGFzeW5jKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19m c3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNl DQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxl LCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisj ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigyLDYsMzUpDQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IGZpbGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAg c3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2Rl ICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5w ZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2Rl KTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTEx LDcgKzU3MCwxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAq IHZwLCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf Z2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNv ZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K ICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAg ICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJv ciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNp emVvZihtc2cpKTsNCkBAIC01NTEsNyArNjE0LDExIEBAIG5ucGZzX3JpZ2h0 c192YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBz dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAg ICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl bnRfdWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFn ID0gcGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl Ow0KICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w ZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSAr NjU5LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywg aW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkpDQogc3RhdGljIGludA0KLW5ucGZzX3Blcm1pc3Npb24oc3RydWN0 IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5k KQ0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50 IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lv bihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50 IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0g ICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBu bnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9U X0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisg ICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1 cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0 X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u cGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwg bW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBA IC02MzYsNyArNzE3LDExIEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5u cGZzX25vZGUgKnhuLCANCiAgICAgaW50IGVycm9yOw0KIA0KICAgICBtc2cu aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAg bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBtc2cuaGFu ZGxlID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9IHRvazsNCkBA IC03NTAsMTEgKzgzNSwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3Qg ZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7 DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAg IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxu IiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUt PmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZp bGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihY REVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5w ZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTc4OSwzNyAr ODgyLDUwIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBm aWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBu bnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQotI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogCSAg ICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBu cl9zZWdzLA0KKwkgICAgICAgbG9mZl90IHBvcykNCiAjZWxzZQ0KLQkgICAg ICAgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LA0KK3N0YXRpYyBz c2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwg c3RydWN0IGlvdl9pdGVyICp0bykNCiAjZW5kaWYNCi0JICAgICAgIGxvZmZf dCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3Qg ZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAg c3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNz aXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAg c3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KHRvKTsNCiAjZW5kaWYN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50 cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQog ICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlu b2RlKTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KIAlOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9rZW5zOiAw eCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww KQ0KICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5OUEZT X0RBVEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisgICAgZXJy b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIGlv Y2ItPmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNlbmRpZg0K ICAgICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u cGZzX3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVycm9yKSk7 DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCi0jaWYgTElOVVhf VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K ICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3Ys IG5yX3NlZ3MsIHBvcyk7DQogI2Vsc2UNCi0gICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfYWlvX3JlYWQoaW9jYiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAg ZXJyb3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCiAj ZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRf ZmlsZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVy cm9yOw0KQEAgLTgyOSwyMyArOTM1LDM2IEBAIG5ucGZzX2Fpb19yZWFkKHN0 cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGlj IHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2Ni LA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o Miw2LDE5KQ0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVk IGxvbmcgbnJfc2VncywNCisJCWxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JCWNv bnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgDQorc3RhdGlj IHNzaXplX3QNCitubnBmc193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9j Yiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKQ0KICNlbmRpZg0KLQkJbG9mZl90 IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBm aWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBz c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3Np emVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBz c2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7DQogI2VuZGlm DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVu dHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0K ICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShp bm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vs c2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2Vu ZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf YWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwg eG4tPnRva2VucykpOw0KQEAgLTg1OSwxMCArOTc4LDEwIEBAIG5ucGZzX2Fp b193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsN CiAgICAgfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19m aWxlX2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQogI2Vs c2UNCi0gICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2Is IGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxl X3dyaXRlX2l0ZXIoaW9jYiwgZnJvbSk7DQogI2VuZGlmDQogICAgIGlmICgh SVNfRVJSX1ZBTFVFKGVycm9yKSkNCiAJeG4tPmZsYWdzIHw9IE5OUEZTX0RB VEFfRElSVFk7IC8qIFhYWCByYWNlICovDQpAQCAtODcxLDkgKzk5MCwxOSBA QCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KICAgICBy ZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNf Y3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksDQogCSAgICAgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2Rl ICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90 IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGlj IGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0 IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBl eGNsKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7 DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMsOSArMTAz MiwxNyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj dCBkDQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhBX1NFVF9N T0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBFKCZtc2cu YXR0ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9TRVRfR0lE KCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgIFhB X1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRp Zg0KICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1z Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1z Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBu bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo bXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3ICsxMDgz LDExIEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1 Y3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1l Lm5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0K IAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNy ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVk LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19t ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7 DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTMyLDExIEBA IG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAg ICAgaWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5LT5kX25h bWUubmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZTX01BWF9O QU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBt c2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0g bm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9m KG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4LDggKzEx NTMsMTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBvbGRfZGly LCBzdA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMg aW50DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAg ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25v ZGUgKnhuOw0KQEAgLTEwNDAsOSArMTE5MCwxNyBAQCBubnBmc19ta2Rpcihz dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cu YXR0cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhB X1NFVF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K IAlYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNl bHNlDQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9m c2dpZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0g Y3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQg PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBu bnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJy b3IgPT0gMCkNCkBAIC0xMDgzLDcgKzEyNDEsMTEgQEAgbm5wZnNfcm1kaXIo c3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50 X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5u YW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+ PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05H Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o Miw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor I2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj ZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o ZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpA QCAtMTEyOCw3ICsxMjkwLDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhz dHJ1Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5h bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkg ICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVk LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNy ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQu cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJ aWYgKGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTMyMyw0NyBAQCBzdGF0 aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogICAgIHhu ID0gVk5PREVfVE9fWE5PREUoZGlyKTsNCiANCiAgICAgew0KLQlzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9zeW1saW5rIG1zZzsNCisJc3RydWN0IG5ucGZzX21l c3NhZ2Vfc3ltbGluayAqbXNnID0gTlVMTDsNCiANCi0JbXNnLmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfU1lNTElOSzsNCi0JbXNnLnBhcmVudF9oYW5k bGUgPSB4bi0+aGFuZGxlOw0KLQlpZiAoc3RybGNweShtc2cubmFtZSwgbmFt ZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQotCSAg ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JaWYgKHN0cmxjcHkobXNnLmNv bnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLmNvbnRlbnRzKSkgPj0gTk5Q RlNfTUFYX1NZTUxJTktfQ09OVEVOVCkNCi0JICAgIHJldHVybiAtRU5BTUVU T09MT05HOw0KLQlYQV9DTEVBUigmbXNnLmF0dHIpOw0KLQlYQV9TRVRfTU9E RSgmbXNnLmF0dHIsIDA3NzcpOw0KLQlYQV9TRVRfVFlQRSgmbXNnLmF0dHIs IE5OUEZTX0ZJTEVfTE5LKTsNCi0JWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1 cnJlbnQtPmZzZ2lkKTsNCisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyks IEdGUF9LRVJORUwpOw0KIA0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51 aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCi0JZXJy b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz aXplb2YobXNnKSk7DQorCWlmIChtc2cgPT0gTlVMTCkNCisJICByZXR1cm4g LUVOT01FTTsNCisNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH X1NZTUxJTks7DQorCW1zZy0+cGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7 DQorCWlmIChzdHJsY3B5KG1zZy0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy0+ bmFtZSkpID49IE5OUEZTX01BWF9OQU1FKSB7DQorCSAga2ZyZWUobXNnKTsN CisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlpZiAoc3RybGNw eShtc2ctPmNvbnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLT5jb250ZW50 cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpIHsNCisJICBrZnJl ZShtc2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCVhB X0NMRUFSKCZtc2ctPmF0dHIpOw0KKwlYQV9TRVRfTU9ERSgmbXNnLT5hdHRy LCAwNzc3KTsNCisJWEFfU0VUX1RZUEUoJm1zZy0+YXR0ciwgTk5QRlNfRklM RV9MTkspOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KKwlYQV9TRVRfR0lEKCZtc2ctPmF0dHIsIGN1cnJl bnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNn LT5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KKw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K Kwltc2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg ICAgICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYN CisJbXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJZXJyb3Ig PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2ctPmhlYWRlciwgc2l6 ZW9mKCptc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQotCSAgICBlcnJvciA9 IE5OUEZTX01TR19XQUtFVVBfRVJST1IoJm1zZyk7DQorCSAgICBlcnJvciA9 IE5OUEZTX01TR19XQUtFVVBfRVJST1IobXNnKTsNCiANCiAJLyogWFhYIHNo b3VsZCB0aGlzIHJlYWxseSBiZSBoZXJlICovDQogCWlmIChERU5UUllfVE9f WERFTlRSWShkZW50cnkpLT54ZF9mbGFncyA9PSAwKSB7DQogCSAgICBwcmlu dGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IG5ucGZzX3N5bWxpbms6IGRl bnRyeSBub3QgdmFsaWRcbiIpOw0KIAl9DQorCWtmcmVlKG1zZyk7DQogICAg IH0NCiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTExODgsMTIgKzEzNzIs MjEgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAq ZA0KIC8qDQogICogV2UgaG9sZCBpX211dGV4Lg0KICAqLw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogc3Rh dGljIGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2 b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisjZWxzZQ0KK3N0 YXRpYyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxlICogZmlsZSwg c3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQogew0KICAgICBp bnQgZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2luX29mZnNldDsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50 cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQog ICAgIHN0cnVjdCBpbm9kZSAqY2FjaGVfaW5vZGU7DQogICAgIHN0cnVjdCBu bnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAg Y2hhciAqYnVmOw0KQEAgLTEyMTcsNiArMTQxMCw3IEBAIG5ucGZzX3JlYWRk aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiANCiAgICAgY2FjaGVf aW5vZGUgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nLT5ob3N0Ow0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQog ICAgIHdoaWxlIChmaWxlLT5mX3BvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lu b2RlKSkgew0KIAlOTlBGU0RFQihYREVCUkVBRERJUiwNCiAJICAgICAgICgi bm5wZnNfcmVhZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwN CkBAIC0xMjI5LDYgKzE0MjMsMjAgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3Qg ZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAltYXBwaW5nID0gYmFja2ZpbGUtPmZf bWFwcGluZzsNCiAJaW5wYWdlID0gZmlsZS0+Zl9wb3MgJiAoUEFHRV9DQUNI RV9TSVpFLTEpOw0KIAlwYWdlX251bSA9IGZpbGUtPmZfcG9zID4+IFBBR0Vf Q0FDSEVfU0hJRlQ7DQorI2Vsc2UNCisgICAgd2hpbGUgKGN0eC0+cG9zIDwg aV9zaXplX3JlYWQoY2FjaGVfaW5vZGUpKSB7DQorCU5OUEZTREVCKFhERUJS RUFERElSLA0KKwkgICAgICAgKCJubnBmc19yZWFkZGlyIGZpbGUtPmZfcG9z OiAlZCBpX3NpemU6ICVkXG4iLA0KKwkJKGludCkgY3R4LT5wb3MsIChpbnQp IGNhY2hlX2lub2RlLT5pX3NpemUpKTsNCisJYmVnaW5fb2Zmc2V0ID0gY3R4 LT5wb3MgJn4gKE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUgLSAxKTsNCisJb2Zm c2V0ID0gY3R4LT5wb3MgJiAoTk5QRlNfRElSRU5UX0JMT0NLU0laRSAtIDEp Ow0KKwljdHgtPnBvcyA9IGJlZ2luX29mZnNldDsNCisJTk5QRlNERUIoWERF QlJFQURESVIsICgibm5wZnNfcmVhZGRpciBiZWdpbl9vZmZzZXQ6ICVkIG9m ZnNldDogJWRcbiIsDQorCQkJICAgICAoaW50KWJlZ2luX29mZnNldCwgKGlu dClvZmZzZXQpKTsNCisJbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7 DQorCWlucGFnZSA9IGN0eC0+cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsN CisJcGFnZV9udW0gPSBjdHgtPnBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0K KyNlbmRpZg0KIA0KIAlOTlBGU0RFQihYREVCUkVBRERJUiwNCiAJICAgICAg ICgibm5wZnNfcmVhZGRpciBpbnBhZ2U6ICVkIHBhZ2VfbnVtOiAlbHVcbiIs DQpAQCAtMTI2NCw2ICsxNDcyLDcgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3Qg ZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQpIHhkaXJlbnQtPmRf bmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVnaW5fb2Zmc2V0KSkp Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0K IAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQsDQogCQkJ CSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEyNzUsMTIgKzE0ODQsMjgg QEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0K IAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJf ZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNlDQorCSAgICBp ZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZpbGxkaXJfZXJy b3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFt ZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJCQkJICAgICB4 ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktOT1dOKSkgPCAw KSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkgKCJubnBmc19y ZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQorCQli cmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNldCArPSB4ZGly ZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50LT5kX3JlY2xl biA9PSAwKSB7DQogCQlwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6 ICINCiAJCSAgICAgICAiZW1wdHkgZGlyZW50IGF0ICVsbGQgaW4gbm5wZnNf cmVhZGRpciwgcG9zICVkIHNpemUgJWRcbiIsDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJCSAgICAgICAo bG9uZyBsb25nKW9mZnNldCwgKGludClmaWxlLT5mX3BvcywNCisjZWxzZQ0K KwkJICAgICAgIChsb25nIGxvbmcpb2Zmc2V0LCAoaW50KWN0eC0+cG9zLA0K KyNlbmRpZg0KIAkJICAgICAgIChpbnQpY2FjaGVfaW5vZGUtPmlfc2l6ZSk7 DQogCQlOTlBGU0RFQihYREVCVk5PUFMsICgiaW5vZGU6ICVwIGFsaWFzZXM6 IiwgaW5vZGUpKTsNCiAJCW5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0K QEAgLTEyOTgsNyArMTUyMywxMSBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBm aWxlICogZmlsZSwgdm9pZCAqDQogCWlmIChvZmZzZXQgPiBOTlBGU19ESVJF TlRfQkxPQ0tTSVpFKQ0KIAkgICAgb2Zmc2V0ID0gTk5QRlNfRElSRU5UX0JM T0NLU0laRTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxMSwwKQ0KIAlmaWxlLT5mX3BvcyA9IGJlZ2luX29mZnNl dCArIG9mZnNldDsNCisjZWxzZQ0KKwljdHgtPnBvcyA9IGJlZ2luX29mZnNl dCArIG9mZnNldDsNCisjZW5kaWYNCiANCiAJaWYgKGVycm9yIHx8IG9mZnNl dCA8IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUpDQogCSAgICBicmVhazsNCkBA IC0xMzMxLDEyICsxNTYwLDI1IEBAIG5ucGZzX3JlYWRsaW5rIChzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu DQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lkICoNCiBubnBmc19mb2xsb3df bGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkJIHN0cnVjdCBuYW1l aWRhdGEgKm5kKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDQsNSwwKQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBm c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZv aWQgKipwYWdlKQ0KKyNlbHNlDQorc3RhdGljIGNvbnN0IGNoYXIgKg0KK25u cGZzX2dldF9saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCQkgc3Ry dWN0IGlub2RlICppbm9kZSwNCisJCSBzdHJ1Y3QgZGVsYXllZF9jYWxsICpk b25lKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCw1LDApDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu dHJ5KTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo Im5ucGZzX2ZvbGxvd19saW5rXG4iKSk7DQogICAgIA0KQEAgLTEzNDQsNyAr MTU4NiwxMyBAQCBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAq ZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9Q VFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xp bmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oNCw1LDApDQorICAgIHJldHVybiBwYWdl X2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2Vsc2UNCisg ICAgcmV0dXJuIHBhZ2VfZ2V0X2xpbmsoZGVudHJ5LCBpbm9kZSwgZG9uZSk7 DQorI2VuZGlmDQogfQ0KIA0KIC8qDQpAQCAtMTM5OCw3ICsxNjQ2LDExIEBA IG5ucGZzX3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAg ICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0K ICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRU UjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl bHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog ICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5u cGZzX2lhdHRyMmF0dHIoeG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTQy Miw2ICsxNjc0LDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5v ZGUgKmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlbGVhc2VfZmlsZVxu IikpOw0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2Rl KTsNCkBAIC0xNDUwLDE4ICsxNzA0LDE4IEBAIG5ucGZzX3JlbGVhc2VfZmls ZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0K IHN0YXRpYyBpbnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwg Zmxfb3duZXJfdCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBmc19m bHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIGlmIChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZf ZGVudHJ5LT5kX2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxl KGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAg ICBpZiAoZmlsZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZf cGF0aC5kZW50cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNl X2ZpbGUoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQor I2VuZGlmDQogICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE0NzAs MTAgKzE3MjQsMjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUp DQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90 aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNf ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5h bWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfZF9y ZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVp ZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu dHJ5KTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KKyAgICBpZiAoZmxhZ3MgJiBMT09LVVBfUkNVKQ0K KyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKG5k ICYmIG5kLT5mbGFncyAmIExPT0tVUF9SQ1UpDQorICAgICAgICByZXR1cm4g LUVDSElMRDsNCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BT LCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXAp XG4iLA0KIAkJICAgICAgIGRlbnRyeSwNCiAJCSAgICAgICAoaW50KWRlbnRy eS0+ZF9uYW1lLmxlbiwNCkBAIC0xNTE5LDkgKzE3ODcsMTUgQEAgbm5wZnNf ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1 cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2Rl bGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMN CitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSAr MTgyMCwxNiBAQCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkpDQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUo c3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50 LA0KLQkgICAgICAgcmVhZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQp DQorbm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZf dCAqcHBvcywNCisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwg c2l6ZV90IGNvdW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0K ICAgICBpbnQgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAq aW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAg ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhu ID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhu ICE9IE5VTEwpDQpAQCAtMTU2MSw4ICsxODQwLDcgQEAgbm5wZnNfc2VuZGZp bGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVC Vk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4i LCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAg ZXJyb3IgPSBnZW5lcmljX2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291 bnQsIGFjdG9yLCB0YXJnZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3At PnNwbGljZV9yZWFkKGZpbGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7 DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmls ZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9y Ow0KQEAgLTE2MzksNDAgKzE5MTcsNDEgQEAgbm5wZnNfd3JpdGVfYmFja3Bh Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIA0KIAlzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCXVuc2lnbmVk IGxlbiA9IFBBR0VfQ0FDSEVfU0laRTsNCiAJc3RydWN0IHBhZ2UgKmJhY2tw YWdlOw0KKwl2b2lkICpmc2RhdGE7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0 Ow0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KLQlkbyB7DQotCQliYWNrcGFnZSA9 IGdyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBubnBmc19nZXRfYmFja2luZGV4 KHBhZ2UpKTsNCi0JCWlmICghYmFja3BhZ2UpIHsNCi0JCQlwcmludGsoIm5u cGZzX3dyaXRlX2JhY2twYWdlOiBubyBwYWdlXG4iKTsNCi0JCQlyZXR1cm4g LUVJTzsNCi0JCX0NCisJKHZvaWQpb2Zmc2V0Ow0KIA0KLQkJZXJyb3IgPSBt YXBwaW5nLT5hX29wcy0+cHJlcGFyZV93cml0ZShiYWNrZmlsZSwgYmFja3Bh Z2UsDQotCQkJCQkJICAgICAgMCwgbGVuKTsNCisJZG8gew0KKwkJZXJyb3Ig PSBwYWdlY2FjaGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAs IGxlbiwNCisJCQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwN CisJCQkJCSAgICAgICZiYWNrcGFnZSwgJmZzZGF0YSk7DQogCQlpZiAoIWVy cm9yKSB7DQogCQkJY29weV9oaWdocGFnZShiYWNrcGFnZSwgcGFnZSk7DQog CQkJZmx1c2hfZGNhY2hlX3BhZ2UoYmFja3BhZ2UpOw0KLQkJCWVycm9yID0g bWFwcGluZy0+YV9vcHMtPmNvbW1pdF93cml0ZShiYWNrZmlsZSwgYmFja3Bh Z2UsDQotCQkJCQkJCSAgICAgMCwgbGVuKTsNCisJCQllcnJvciA9IHBhZ2Vj YWNoZV93cml0ZV9lbmQoYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJ CQkJCWxlbiwgYmFja3BhZ2UsIGZzZGF0YSk7DQorCQkJaWYgKGVycm9yID4g MCkNCisJCQkJZXJyb3IgPSAwOw0KIAkJfQ0KIAkJaWYgKGVycm9yID09IEFP UF9UUlVOQ0FURURfUEFHRSkgew0KLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShi YWNrcGFnZSk7DQogCQkJY29udGludWU7DQogCQl9DQogCX0gd2hpbGUgKDAp Ow0KIA0KIAlvZmZzZXQgPSBwYWdlX29mZnNldChiYWNrcGFnZSk7DQotCXVu bG9ja19wYWdlKGJhY2twYWdlKTsNCi0JcGFnZV9jYWNoZV9yZWxlYXNlKGJh Y2twYWdlKTsNCiANCiAJaWYgKGVycm9yKQ0KIAkJcHJpbnRrKCJubnBmc193 cml0ZV9iYWNrcGFnZTogRUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9T WU5DDQogCWVsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDMyKQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1h cHBpbmctPmhvc3QsIG1hcHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0K KwkJKHZvaWQpZmlsZW1hcF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5n LCBvZmZzZXQsIG9mZnNldCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRp Zg0KIAkNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTE2ODksMTMgKzE5NjgsOSBA QCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzDQog CXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9uZyBvZmZz ZXQ7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFja3BhZ2Ug PSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmlsZSk7DQot I2Vsc2UNCi0JYmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFwcGluZywg biwNCi0JCQkJICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMtPnJlYWRw YWdlLA0KLQkJCQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlmICghSVNf RVJSKGJhY2twYWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tlZChiYWNr cGFnZSk7DQogDQpAQCAtMTg0MiwxMSArMjExNywxNyBAQCBubnBmc19wcmVw YXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlmIChtb2Rz aXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJyb3I7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCww KQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisj ZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2Rz aXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRzaXplKGlu b2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikgew0KIAkJ CXByaW50aygibm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUoJWxsdSkg LT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7DQotCQkJ QlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVHKCk7Ki8g LyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBAIC0xODcy LDQ0ICsyMTUzLDExOCBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLCBzDQogCXJldHVybiByZXQ7DQogfQ0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIHN0 YXRpYyBpbnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZp bGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l ZCB0bykNCitubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQor dW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZ2UgKipw YWdlcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQotICAgIHN0cnVjdCBpbm9kZSAq aW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLSAgICBsb2ZmX3QgcG9z ID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkg KyB0bzsNCisJc3RydWN0IHBhZ2UgKnBhZ2U7DQorCXBnb2ZmX3QgaW5kZXg7 DQorCXVuc2lnbmVkIGZyb207DQorCWludCByZXQgPSAwOw0KIA0KLSAgICBp ZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlpX3NpemVfd3JpdGUoaW5v ZGUsIHBvcyk7DQorCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7 DQorCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQogDQot CXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQotCWlub2RlLT5pX2Jsb2Nr cyA9IChwb3MgKyBJX0JMT0NLU19VTklUIC0gMSkgPj4gSV9CTE9DS1NfQklU UzsNCi0Jc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KLSAgICB9DQot ICAgIHNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KKwlwYWdlID0gZ3JhYl9jYWNo ZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQor CWlmICghcGFnZSkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAg PSBwYWdlOw0KKw0KKwlyZXQgPSBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUs IHBhZ2UsIGZyb20sIGZyb20gKyBsZW4pOw0KKwlpZiAocmV0KSB7DQorCQl1 bmxvY2tfcGFnZShwYWdlKTsNCisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdl KTsNCisJfQ0KIA0KKwlyZXR1cm4gcmV0Ow0KK30NCisjZW5kaWYNCisNCisv KiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxlX2NvbW1p dF93cml0ZSBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGZv ciBub3cgKi8NCiAjaWYgMA0KLSAgICB7DQotCWNoYXIgKmFkZHI7DQotCWtt YXAocGFnZSk7DQotCWFkZHIgPSBwYWdlX2FkZHJlc3MocGFnZSk7DQotCU5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3JpdGUoJXApOiAl eCV4JXgleFxuIiwNCitzdGF0aWMgaW50DQorbm5wZnNfY29tbWl0X3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAg IHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0KK3sNCisJc3RydWN0IGlu b2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBw b3MgPSAoKGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZU KSArIHRvOw0KKw0KKwlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkNCisJCVNl dFBhZ2VVcHRvZGF0ZShwYWdlKTsNCisNCisJaWYgKHBvcyA+IGlub2RlLT5p X3NpemUpIHsNCisJCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJ CXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9j a3MgPSAocG9zICsgSV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJ VFM7DQorCQlzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJ c2V0X3BhZ2VfZGlydHkocGFnZSk7DQorDQorI2lmIDANCisJew0KKwkgICAg Y2hhciAqYWRkcjsNCisJICAgIGttYXAocGFnZSk7DQorCSAgICBhZGRyID0g cGFnZV9hZGRyZXNzKHBhZ2UpOw0KKwkgICAgTk5QRlNERUIoWERFQlZOT1BT LCAoIm5ucGZzX2NvbW1pdF93cml0ZSglcCk6ICV4JXgleCV4XG4iLA0KIAkJ CSAgICAgZmlsZS0+Zl9tYXBwaW5nLT5ob3N0LCANCiAJCQkgICAgIGFkZHJb MF0sIGFkZHJbMV0sIGFkZHJbMl0sIGFkZHJbM10pKTsNCi0Ja3VubWFwKHBh Z2UpOw0KLSAgICB9DQorCSAgICBrdW5tYXAocGFnZSk7DQorCX0NCiAjZW5k aWYNCi0gICAgDQotICAgIHJldHVybiAwOw0KKyANCisJcmV0dXJuIDA7DQog fQ0KKyNlbmRpZg0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorLyogWFhYIHdl IHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV93cml0ZV9lbmQgaW5z dGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQor I2lmIDANCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9m Zl90IHBvcywNCisJCXVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLCBz dHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQ0KK3sNCisJdW5zaWdu ZWQgZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisJ LyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0aGUgcGFnZSBpZiB3ZSBkaWQg YSBzaG9ydCBjb3B5ICovDQorCWlmIChjb3BpZWQgPCBsZW4pIHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQor CQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsN CisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlKTsN CisjZW5kaWYNCisJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAs IGxlbiAtIGNvcGllZCk7DQorCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQorCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7DQorI2Vs c2UNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIpOw0KKyNlbmRpZg0KKwl9DQor DQorCW5ucGZzX2NvbW1pdF93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9t ICsgY29waWVkKTsNCisNCisJdW5sb2NrX3BhZ2UocGFnZSk7DQorCXBhZ2Vf Y2FjaGVfcmVsZWFzZShwYWdlKTsNCisNCisJcmV0dXJuIGNvcGllZDsNCit9 DQorI2VuZGlmDQogI2VuZGlmDQorDQorY29uc3QNCiBzdHJ1Y3QgYWRkcmVz c19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHMgPSB7DQogCS5yZWFkcGFn ZSA9IG5ucGZzX3JlYWRwYWdlLA0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3Jp dGVwYWdlLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogCS5wcmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFy ZV93cml0ZSwNCi0JLmNvbW1pdF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0 ZSwNCisJLmNvbW1pdF93cml0ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQor I2Vsc2UNCisJLndyaXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQor CS53cml0ZV9lbmQgPSBzaW1wbGVfd3JpdGVfZW5kLA0KKyNlbmRpZg0KIH07 DQogDQogLyoNCkBAIC0xOTE3LDIxICsyMjcyLDMwIEBAIHN0cnVjdCBhZGRy ZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8NCiANCiBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVhZCwNCiAgICAg LmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxzZQ0KKyAgICAu cmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAud3JpdGVfaXRl cgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAgIC5tbWFwCT0g bm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZzX29wZW4sDQog ICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KICAgICAucmVsZWFzZQk9IG5u cGZzX3JlbGVhc2VfZmlsZSwNCiAgICAgLmZzeW5jCT0gbm5wZnNfZnN5bmMs DQotICAgIC5zZW5kZmlsZQk9IG5ucGZzX3NlbmRmaWxlLA0KKyAgICAuc3Bs aWNlX3JlYWQgPSBubnBmc19zcGxpY2VfcmVhZCwNCiB9Ow0KIA0KIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGVhZF9vcGVyYXRpb25zID0gew0K IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJfb3Bl cmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3JlYWRk aXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVyYXRl LA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0K IA0KQEAgLTE5NjgsNiArMjMzMiwxMCBAQCBzdHJ1Y3QgaW5vZGVfb3BlcmF0 aW9ucyBubnBmc19kZWFkX2lub2RlDQogDQogc3RydWN0IGlub2RlX29wZXJh dGlvbnMgbm5wZnNfbGlua19pbm9kZV9vcGVyYXRpb25zID0gew0KICAgICAu cmVhZGxpbmsgCQk9IG5ucGZzX3JlYWRsaW5rLA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDUsMCkNCiAgICAgLmZvbGxv d19saW5rIAk9IG5ucGZzX2ZvbGxvd19saW5rLA0KICAgICAucHV0X2xpbmsg CQk9IHBhZ2VfcHV0X2xpbmssDQorI2Vsc2UNCisgICAgLmdldF9saW5rCQk9 IG5ucGZzX2dldF9saW5rLA0KKyNlbmRpZg0KIH07DQpkaWZmIC11cHJOIC1Y bm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMx IDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi4wMDAw MDAwMDAgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVf c3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTog ICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAg ICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAg ICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6 ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAg ICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZm IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDA3LTAx LTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0yNCAxODo1Mjoy OC4wMDAwMDAwMDAgKzAxMDANCkBAIC00NSw3ICs0NSw3IEBADQogI2luY2x1 ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQo IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4xIDIwMDcvMDEvMDkg MTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfbWVz c2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQi KTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAgLTU1LDkgKzU1LDE1 IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRy eSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9s b2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7 DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisg ICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxv Y2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2Nr KTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQo ZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNz YWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBp bm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50 ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNE RUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7 DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2Vf aW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICov DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsN CiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFy ZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh cyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tl ZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAm ZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQs ICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN CisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9j a2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQor ICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBh cmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAo cGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgi bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAl cFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0K IAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN CisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZT REVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9u ZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBm c19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0N CiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg IGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0 cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0g aGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVu dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9l bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf dS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4i LA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYs MTcgKzQyOCwzNSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVj dCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4g KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBz dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFs aWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xv Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmlu b2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9k ZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9k ZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAm aW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlz dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRf YWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2Vu ZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBu bnBmc19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlz dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vu ZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtF Uk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBp cyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzIsMTEg QEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0K IAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUg KHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1 Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1 Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVu dHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50 cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRf Y2hpbGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsN CiAJICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVu IGNoaWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJkY291 bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk2LDI0IEBAIGNs ZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJ ICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNf ZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3Vu bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCSAgICAgICAgc3Bpbl91 bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9y ZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzgpDQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UN CisgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0K IH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwxMiArNjY5LDEwIEBAIGdj X2Jsb2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAg IGlmICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lm IDAgICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVz c2FnZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcg Ik5OUEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwl ZCwlZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4t PmhhbmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAg ICAgICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQog CXJldHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODMs MjIgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5w Zg0KIA0KICAgICAvKiBzYW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQg aXQgKi8NCiAgICAgaWYgKHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBt ZXNzYWdlLT52ZXJzaW9uID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlz dHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBh dGg7DQorI2VuZGlmDQogCWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxv Y2tzaXplID0gbWVzc2FnZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9y ID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3Ig PSBrZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJy b3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlm IChlcnJvcikgew0KIAkgICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290 LCBqdXN0IHJldHVybi4NCkBAIC03MzcsMTIgKzgwOSwyMyBAQCBubnBmc19t ZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5w ZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJ ICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAg bm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5u cGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRo X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3Qg PSBtbnRnZXQobmQucGF0aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRp ciA9IGRnZXQobmQucGF0aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5k LnBhdGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1u dGdldChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdl dChwYXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2Vu ZGlmDQogCSAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50 LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7 DQorI2Vsc2UNCisgICAgICAgICAgICBubnBmc3AtPnVpZCA9IGN1cnJlbnRf ZnN1aWQoKTsNCisgICAgICAgICAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnRf ZnNnaWQoKTsNCisjZW5kaWYNCiANCiAJICAgIC8qIFhYWCB3ZSBzaG91bGQg dmFsaWRhdGUgdGhlc2UgdmFsdWVzICovDQogCSAgICBubnBmc19ibG9ja3Np emUgPSBibG9ja3NpemU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45 MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jIGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZz L2xpbnV4L25ucGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19u b2RlLmMJMjAxNi0wNS0wNiAxNzowMToxMC4wMDAwMDAwMDAgKzAyMDANCkBA 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 ZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTI2Niw2ICsyODQsOSBAQCBubnBm c19maWxsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0DQogCWlub2Rl LT5pX29wICA9ICZubnBmc19saW5rX2lub2RlX29wZXJhdGlvbnM7DQogCWlu b2RlLT5pX2ZvcCA9ICZubnBmc19saW5rX29wZXJhdGlvbnM7DQogCWlub2Rl LT5pX21hcHBpbmctPmFfb3BzID0gJm5ucGZzX2FvcHM7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDUsMCkNCisJaW5v ZGVfbm9oaWdobWVtKGlub2RlKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsN CiAJaW5vZGUtPmlfb3AgID0gJm5ucGZzX2RlYWRfaW5vZGVfb3BlcmF0aW9u czsNCiAJaW5vZGUtPmlfZm9wID0gJm5ucGZzX2RlYWRfb3BlcmF0aW9uczsN CkBAIC01MTAsMTIgKzUzMSwyNCBAQCBubnBmc19oYXNfcGFnKGNvbnN0IHN0 cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91c2Vycyhz dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0 X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAq cG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAgICANCiAg ICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3RlY3RlZCBz b21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2Rl LT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoKHBv cywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVj dCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVu dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxp YXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRyeSkgPiAx KQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlm ZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMg YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBh cmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAw Ny0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAyLTIwIDE5 OjQzOjQyLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAj aW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8 bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUu aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRp Zg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgv cHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUg PGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYg U1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2Jv dW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBz ZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAj aWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4 L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVmIE5FRURf VklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu bnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoyNjoyNyB0 b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy5jLHYg MS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5k aWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpubnBmc19w cm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVj dCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsN CiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZz X3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv bmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50 IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRp YyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0g ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj ZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9j dGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2NCw0OCBA QCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsNCiAjZGVm aW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBsb25nKShz KQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25lZCBsb25n KShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19hbGxvYyhz dHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBw YWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBh ZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAgIHJldHVy biAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190YXNrX2Zy ZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFn X3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcp DQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGljIG5ucGZz X3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJp dHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUco Y3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYgKHBhZykN CiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQt PnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1 cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGludA0K IG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0aWMgbm5w ZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorICAg IHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBpZiAocGFn bnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAg ICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAgIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsN CisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1cnJlbnQt PmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0p Ow0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJuIDA7DQog fQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBubnBm c19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0eSA9IG5u cGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3NlY3VyaXR5 ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19yZXBhcmVu dF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQsDQotfTsN Ci0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQogI2lmZGVm IEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3Ry dWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAo ImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQog DQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0p IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisj ZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwln aWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5w ZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3Bh Z190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVC KFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAl dSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1ICsyMzks MzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRp YyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1cnJlbnQt Pmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBn ZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19wYWdfdCBy ZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlk ID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3Vp ZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQogDQogICAg IGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19O T1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vs c2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0g a2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8o Z2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dldF9wYWdf Z3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5ucGZzX3Bh Z190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZv ICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNlDQorICAg c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50X2dyb3Vw cygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dp Ow0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2lnbmVkIGlu dCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsNCiAgICAg aW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g S0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dyb3VwX2lu Zm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKG9s ZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCkBA IC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFn bnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAgICAgfQ0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3X2dpLCBp KSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdfZ2ksIG5l d19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQorICAgIGlm IChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVt KTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAgZWxzZQ0K Kwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9B VChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsgfQ0KKyNl bmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7 DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3LDcgKzM2 MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5ucGZzX2dl dF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBy ZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBr dWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2Vu ZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIyLDcgKzQ3 NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xk X2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JP VVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qg bm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQog ICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTA5LDI2 ICs1NjEsNTggQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmlj ZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAg Ki8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3Bh dGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9w YXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50 cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBj aGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KICAg ICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50 IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3Bh dGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDcsMCkNCisgICAga25hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQor I2Vsc2UNCisgICAga25hbWUgPSBfX2dldG5hbWUoKTsNCisjZW5kaWYNCisN CiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBU Ul9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCiAJZmxhZ3MgfD0g TE9PS1VQX0ZPTExPVzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49 IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyAgICBlcnJvciA9IHN0cm5jcHlf ZnJvbV91c2VyKGtuYW1lLCB1c2VyX3BhdGgsIFBBVEhfTUFYKTsNCisgICAg aWYgKGVycm9yIDwgMCB8fCBlcnJvciA9PSBQQVRIX01BWCkgew0KKwlfX3B1 dG5hbWUoa25hbWUpOw0KKwlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorICAg IH0NCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQp Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz LCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh dGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1 dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIF9fcHV0bmFtZShrbmFtZSk7 DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIo ZXJyb3IpOw0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBy ZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBw YXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9u Zw0KQEAgLTU0MCwxMiArNjI0LDI0IEBAIHN5c19hZnNfaW50IChpbnQgb3Bl cmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVj dCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5w ZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVz c2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19t ZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVu dHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0K KyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAg IA0KKyAgICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5F TCk7DQorICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICByZXR1cm4gLUVO T01FTTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQor ICAgIC8qIFhYWCBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVy IGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAg Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIp KTsNCiANCkBAIC01NzUsNyArNjcxLDcgQEAgc3lzX2Fmc19pbnQgKGludCBv cGVyYXRpb24sDQogCSAgICBnb3RvIHVubG9jazsNCiAJfQ0KIAlpZiAodmlj ZV9pb2N0bC5pbl9zaXplICE9IDApIHsNCi0JICAgIGlmKGNvcHlfZnJvbV91 c2VyKCZtc2cubXNnLA0KKwkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy0+ bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJICAgICAgdmlj ZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7DQogCQllcnJvciA9IC1FRkFVTFQ7 DQpAQCAtNTgzLDcgKzY3OSwxMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJh dGlvbiwNCiAJICAgIH0NCiAJfQ0KIAlpZiAoYV9wYXRoUCAhPSBOVUxMKSB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAJICAgIGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZuZCwg YV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vsc2UNCisJICAgIGRl bnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZwYXRoLCBhX3BhdGhQLCBhX2Zv bGxvd1N5bWxpbmtzKTsNCisjZW5kaWYNCiAJICAgIGlmICghZGVudHJ5KSB7 DQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCkBAIC02 MjgsMTkgKzcyOCwyMyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwN CiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KIAkgICAg fQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQorCSAgICBtc2ct PmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiANCi0JbXNnLmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQltc2cub3Bjb2RlID0gYV9v cGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9D VEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7DQogCQ0KLQltc2cuaW5z aXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQotCW1zZy5vdXRzaXplICA9 IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJl bnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K Kwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KKwltc2ct Pm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6ZTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNn LT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg bXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1z Zy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCQ0KLQllcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy5oZWFkZXIsIHNp emVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIgPSAoc3RydWN0IG5ucGZz X21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNn KSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdl X3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9PSAwKQ0KIAkgICAgZXJy b3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUsMTIgKzc3OSwyMSBAQCBz eXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAgDQogIHVubG9jazoN CiAgICAgaWYgKGRlbnRyeSkNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CisJcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZw YXRoKTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJu bnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsN CiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1 bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxv Y2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogWFhYIHNlZSB0aGUgY29t bWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQog ICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzg0MiwxNSBAQCBz eXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3lt bGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9j ZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy ZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3Rs KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9j ZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEgKzg5OSwz MSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogew0K ICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAgICANCi0g ICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNfUFJPQ19E SVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBw cm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAgICAg aWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJuIC1FTk9N RU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVy ID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVu dHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2 LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRyeSA9IHBy b2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZz X3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5ID09IE5V TEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nm czogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShOTlBGU19Q Uk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2NfZW50cnko ImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4gLUVOT01F TTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBU SElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19m b3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRl ZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2Nv bnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lv Y3RsMzIpKSB7DQpAQCAtODE1LDcgKzk0NCw3IEBAIHN0YXRpYyB2b2lkIG5u cGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYgLyogU1lT Q0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19Q Uk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1vdmVfcHJv Y19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisgICAg cmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwp Ow0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0ICs5Njgs NiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBpbnN0YWxs X2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdfU0VDVVJJ VFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19zZWNfb3Bz KSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxfYWZzX3N5 c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAgICBlbHNl DQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYNCi0NCiAg ICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lTQ0FMTEhB Q0sNCkBAIC04ODcsMTIgKzEwMDgsNiBAQCByZXN0b3JlX2Fmc19zeXNjYWxs ICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0K IA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5ucGZzX3Nl Y19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0eSgmbm5w ZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAibm5wZnNf ZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNlbmRpZiAv KiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQUEFHUw0K ICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdyb3Vwcykg ew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAvbm5wZnMv bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS0wLjkw LW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAw Ni0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTYt MDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcsMTEgKzQ3 LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0KICNpZmRl ZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2Uu Yyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQiKTsNCitS Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE5IDIw MTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlmDQorDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcs MCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQorI3VuZGVm IFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxpbnV4L2th bGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0YXRpYyB2 b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNlbmRpZg0K KyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgc3lz X2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVuY3Rpb24g Km5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3MiwxMSBAQCBj b25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkgICAgdW5z aWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2RuYW1lLCBj aGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0KK2V4dGVy biByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18oKHdlYWsp KTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBzdGF0aWMg dm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZkZWYgX194 ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2FkZHIodm9p ZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7DQogI2Vu ZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IA0KIGth bGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFy ICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9pZCAqKnAp IHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVNDQUxMSEFD Sw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9pZCAqKnAp DQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5kIHx8ICpw ID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBmc19maXh1 cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJuIDA7DQog fQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAt b2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5w ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0MzozNS4w MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAxNi0wMi0xNCAwMTozNjowNi4wMDAwMDAwMDAgKzAx MDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGludXgvbW0u aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNv cHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7 DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4 LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVj dCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZz X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZv aWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0K LXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIoc3Ry dWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIHN0 YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg c3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMgaW50IG5u cGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qga3N0 YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHN1cGVy X29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRfaW5vZGUJ CTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6IG5ucGZz X3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNfbm9kZV9h bGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwN CiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAg ICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdy aXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAg ICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtOTQsNyAr OTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQog CSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25l IGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQg PSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7 DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv Zihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9k ZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5v ZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTkso Jm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0 ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsN CiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAg ICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAg ICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNl bmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAg IFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NU SU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEgQEAgbWFr ZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+ cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcg Ki8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxz ZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAg ICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0K ICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBubnBmc19y ZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZT REVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0 aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxM KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlz dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9 IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9 IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJy b3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlp ZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVs c2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIGRkZXYg PSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9IHBhdGgu ZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0K IAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3Jk ZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1cGVyIChz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0KIH0NCiAN Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs NiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0 IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBAIG5ucGZz X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAgICAgcmV0 dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNf ZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJf YmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5 cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3QgY2hhciAq ZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkqDQorbm5w ZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQor CSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAg ICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jfbm9kZXYo ZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KKyAg ICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u cGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGlj IHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg KiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYN CiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3Myw3MyAr Mjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19wdXRfc3Vw ZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0KLW5ucGZz X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQotICAgIE5O UEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3RhcnRpbmcg aW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhERUJWRk9Q UywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRcbiIsaW5v ZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6ZSA9IDEw MjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0KLSAgICBp bm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywo Im5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0gDQotLyoN Ci0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5jZWQsIGll IHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGljIHZvaWQN Ci1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot ICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlu b2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9N X1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAgTk5QRlNE RUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTogJXAgY291 bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNvdW50KGlu b2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCi0g ICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi0NCi0g ICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4pID09IDAp IHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAgICBpZiAo aW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9pbm9kZShp bm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBubnBmc19u b2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3MgfD0gTk5Q RlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwgcmVhbGx5 ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9kZShpbm9k ZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5OUEZTX1NU QUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4bi0+Zmxh Z3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAqLw0KLSAg CW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5mbGFncyAm PSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAgICBpZiAo YmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEpDQotCSAg ICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlmIChubnBm c19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRoZSBsYXN0 IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBvbmx5IHRo ZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxlZnQuIFRp bWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9kZSBwcm9w ZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNfTElNQk8p ID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0KLQkgICAg bm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0NCi0NCi0g ICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQogc3RhdGlj IGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpz Yiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1ICszMTEs MjUgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi LA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7DQogICAg IHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5mX2ZmcmVl ICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZhbFswXSA9 IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAgdG1wLmZf bmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUgID0gMDsN CisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsx XSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAgdG1wLmZf c3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzYpDQorICAgIHRtcC5mX3NwYXJlWzRdID0gMDsN CisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7DQorI2VuZGlmDQogICAg ICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCi0N CiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJldHVybiBu bnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9DQotDQot I2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQotew0KLSAg ICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19DQotDQot I2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvYXJs YWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQotLS0gYXJs YS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3OjIzOjI0 LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9mY2FjaGUu YwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0KQEAgLTcx Myw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hlRW50cnkg KmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2FjaGVFbnRy eSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1 cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5kZXggLyAw eDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBOTlBGU19D QUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsNCiB9DQog DQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9uYW1lIChG Q2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBmY2FjaGVf ZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVf dCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUw MlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBOTlBG U19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+aW5kZXgg LyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiANCkBAIC04 MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxlbmFtZSwg ZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1ZlsxMDI0 XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8lMDJYIiwg JmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBGU19DQUNI RV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9IDIpDQog CSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQsNyBAQCBm Y2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2FjDQogCQ0K IAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNfaGFuZGxl LCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5kbGUpLA0K LQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7DQorCQkg ICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgsIGJ1Ziwg YSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVvZihoYW5k bGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlkID0gMTsN Cg== ---276651502-947803959-1463672195=:15876 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-947803959-1463672195=:15876--