Re: PATCH v12: Arla CVS Current on Linux 2.6.34 to 4.5
Bo Branten <[email protected]> Sat, 19 Mar 2016 02:29:14 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-1959661401-1458350954=:21643 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v12: Arla CVS Current on Linux 2.6.34 to 4.5 Bo Branten ---276651502-1959661401-1458350954=:21643 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v12-arla-cvs-for-linux-2.6.3x-to-4.5 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v12-arla-cvs-for-linux-2.6.3x-to-4.5 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2 cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0 IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7 DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5 ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5 IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2 LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA QCAtMzEzLDE5ICszMjQsMjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg bm5wZnNfbm9kZSAqbm9kZQ0KIAkJIHN0cnVjdCBmaWxlICoqZmlsZSkNCiB7 DQogICAgIGNoYXIgY2FjaGVuYW1lW05OUEZTX0NBQ0hFX1BBVEhfU0laRV07 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkNCisgICAgY2hhciBmdWxsX2NhY2hlbmFtZVtOTlBGU19DQUNIRV9Q QVRIX1NJWkVdOw0KKyNlbmRpZg0KICAgICB1aW50NjRfdCBibG9ja2luZGV4 ID0gbm5wZnNfYmxvY2tfaW5kZXgob2Zmc2V0KTsNCiAgICAgdWludDMyX3Qg aWQgPSBub2RlLT5pbmRleDsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag PSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFn cyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFt ZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qg c2F2ZWdpZDsNCi0gICAgaW50IHJldDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisjZWxzZQ0KICAgICBj b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVk ICpvdmVycmlkZV9jcmVkOw0KICNlbmRpZg0KKyAgICBpbnQgcmV0Ow0KIA0K ICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9f Q1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zMzQsMTIgKzM1MywyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog CXJldCA9IHNucHJpbnRmKGNhY2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSks DQogCQkgICAgICAgTk5QRlNfQ0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAg aWQgLyAweDEwMCwgaWQgJSAweDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmlu dGYoZnVsbF9jYWNoZW5hbWUsIHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAg ICAgICIvdXNyL2FybGEvY2FjaGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwN CisJCSAgICAgICBpZCAvIDB4MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYN CiAgICAgfSBlbHNlIHsNCiAJcmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBz aXplb2YoY2FjaGVuYW1lKSwNCiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxF X1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJ CSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywx LDApDQorCXJldCA9IHNucHJpbnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2Yo Y2FjaGVuYW1lKSwNCisJCSAgICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5Q RlNfQ0FDSEVfRklMRV9QQVRILA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlk ICUgMHgxMDAsDQorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9j a2luZGV4KTsNCisjZW5kaWYNCiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Ao bm9kZSwgb2Zmc2V0KSAmJiAoZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQog CSAgICBwcmludGsoS0VSTl9FTUVSRyAicmVhZGluZyBibG9jayAlczogbm90 IHRoZXJlXG4iLCBjYWNoZW5hbWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzUw LDE0ICszNzksMTIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf bm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwg IW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUg bmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KLSNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQog ICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9 IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZz cC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0K ICNlbHNlDQotICAgIHNhdmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQotICAg IHNhdmVnaWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQogICAgIG92ZXJyaWRlX2Ny ZWQgPSBwcmVwYXJlX2NyZWRzKCk7DQogICAgIGlmIChvdmVycmlkZV9jcmVk ID09IE5VTEwpDQogICAgICAgICByZXR1cm4gLUVOT01FTTsNCkBAIC0zNjYs MTEgKzM5MywyMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u b2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3Zl cnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JFQVQg PyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg ICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5w ZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZuZC5wYXRo KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h bWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogICAgIGlmIChyZXQpIHsN CisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEoZmxhZ3MgJiBPX0NSRUFUKSkg ew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t YXNrczsNCiAJdWludDMyX3QgbWFzazsNCiANCkBAIC0zOTYsMTcgKzQzNSwz NyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl DQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhY WCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEs MCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgm bmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtl cm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAmbmQu cGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAm cGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsN CiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lu b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor CSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19j cmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICBy ZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50 cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8qIFhY WCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9v bCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19j cmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxT X0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRlbnRy eSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu b2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50cnkp Ow0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50 cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQucGF0 aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3B1dCgmbmQu cGF0aCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNf YmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFt ZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDIx LDE0ICs0ODAsMjIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgICAgIHN0 cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJm5kLnBhdGgsIGZsYWdzLCBj dXJyZW50X2NyZWQoKSk7DQorI2Vsc2UNCisgICAgICAgIHN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4oJnBhdGgsIGZsYWdzLCBjdXJyZW50X2NyZWQo KSk7DQogI2VuZGlmDQogCWlmIChJU19FUlIoZikpIHsNCiAJICAgIHJldCA9 IFBUUl9FUlIoZik7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4o JXMpIG9wZW4gZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCiAJ ICAgIG5ucGZzX2RlYnVnX29vcHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgcGF0aF9wdXQo Jm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQor I2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBA IC00MzcsNyArNTA0LDcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5w ZnNfbm9kZSAqbm9kZQ0KICAgICAvKiBwYXRoX3JlbGVhc2UoKSBpcyB1c3Vh bGx5IGhhbmRsZWQgb24gY2xvc2UgKi8NCiANCiAgb3V0Og0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp DQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVu dC0+ZnNnaWQgPSBzYXZlZ2lkOw0KICNlbHNlDQpkaWZmIC11cHJOIC1Ybm9k aWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh cmxhL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS1jdnMt b2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTItMTEgMTc6 MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAwMCAr MDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFz ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg IHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQog ICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlm ICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBubnBm c19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJ YWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor CWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsN CisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHBy aW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQor CQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYg KG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJ CXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYN CiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcxLDEx IEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50cnkN CiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz KSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry dWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVjdCBk ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks IGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVwKSIs IChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ZF9u YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1j dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEvbm5wZnMvbGlu dXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv bm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODozMzozNi4wMDAwMDAwMDAgKzAy MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEt MTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5 IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMN CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k ZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihu bnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZz LT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9E RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAg LTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2Rl ICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVh ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQs IGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2 ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0K KyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAq bm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5w ZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7 DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYs ICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2 ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5w ZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAg ICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBm c3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1 MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNv bnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMg aW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w ZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm c19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAg ICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAg ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50 cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRp Zg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2ln bmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBv bGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRl diA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UN CisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg Km5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9 IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNf ZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAg cG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBm c19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5w ZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6 CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4s DQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2Rldmlj ZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2Fp dF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEp Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlp bml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01V VEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9p bml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQo Jm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9M SVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tp XS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFy bGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jIGFybGEv bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzLW9s ZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTAtMDgtMDggMjI6 NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u bnBmc19pbm9kZW9wcy5jCTIwMTYtMDMtMTkgMDI6MDM6MTAuMDAwMDAwMDAw ICswMTAwDQpAQCAtNDAsMTAgKzQwLDE0IEBADQogI2luY2x1ZGUgPG5ucGZz L25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQu aD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5j bHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMu aD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51 eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4N CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQs MSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250 bC5oPg0KIA0KQEAgLTU0LDExICs1OCwyMyBAQCBSQ1NJRCgiJElkOiBubnBm c19pbm9kZW9wcy5jLHYgMS4yMjYgMjAxDQogc3RhdGljIGludA0KIG5ucGZz X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxhZyk7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQotDQor I2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj dCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisjZW5k aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRlKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitpbnQN CitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxlYXNl KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMjE0LDggKzIzMCwxMyBA QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtNDA3LDcgKzQy OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDc0LDE1 ICs0OTksMTggQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxl LCB1X2ludA0KICAqDQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDM1KQ0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCi0jZWxzZQ0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KIHN0 YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50 IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5j KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQs IGludCBkYXRhc3luYykNCiAjZW5kaWYNCiB7DQotI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiAg ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRy eTsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRS WV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTQ5MCw2ICs1MTgsOCBAQCBubnBm c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzDQogICAgIHN0 cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiAN CisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lu b2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4g ZXJyb3I7DQpAQCAtNjIyLDExICs2NTIsMjUgQEAgY2hlY2tfcmlnaHRzIChu bnBmc19yaWdodHMgcmlnaHRzLCBpbnQgbQ0KICAqIFdlIGRvbid0IGhvbGQg aV9tdXRleC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgfHwgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiBzdGF0aWMgaW50DQogbm5w ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSkN CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVj dCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KLSAgICBubnBm c19wYWdfdCBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQorICAgIG5ucGZzX3Bh Z190IHBhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsMSwwKQ0KKyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0sp DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAo ZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNI SUxEOw0KKyNlbmRpZg0KKw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7 DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNj ZXNzICglcCkgbW9kZSA9IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7 DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTc4NCwx MSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICpp bm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICog ZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAg aW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5 LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9k ZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50 cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9w YXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmlu dF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAtODIzLDI4ICs4NzUsNTEg QEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIA0K ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0 cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAg ICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitu bnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92 X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN CiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92 LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJp Y19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0g JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAt ODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni ICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K IG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25z dCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0K IAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5w ZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf aXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7 DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkN CisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxz ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7 DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U T19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBw b3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9w b3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs ICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJ CSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAg bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJu IGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1 Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0 aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1 Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5u cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA IC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGlu ayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4N CiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVj dCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxk aXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1 Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNl bmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0 LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu b2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2Rl Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9E RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjgxLDYgKzE0MDMs NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq DQogDQogICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+ aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3Np emVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURE SVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVk IGlfc2l6ZTogJWRcbiIsDQpAQCAtMTI5Myw2ICsxNDE2LDIwIEBAIG5ucGZz X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGlu ZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZf cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxl LT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdo aWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0K KwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVh ZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQp IGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJl Z2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tT SVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVO VF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7 DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVn aW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCli ZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNr ZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdF X0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFH RV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJF QURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBw YWdlX251bTogJWx1XG4iLA0KQEAgLTEzMjgsNiArMTQ2NSw3IEBAIG5ucGZz X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAo aW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0 K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQt PmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRp ciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0x MzM5LDEyICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6 ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1F UkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBh dCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx LDApDQogCQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+ Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwg KGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hl X2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlu b2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9h bGlhc2VzKGlub2RlKTsNCkBAIC0xMzYyLDcgKzE1MTYsMTEgQEAgbm5wZnNf cmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zm c2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9 IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9w b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5w b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlm IChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0K IAkgICAgYnJlYWs7DQpAQCAtMTM5NSwxMiArMTU1MywyNSBAQCBubnBmc19y ZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9u J3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAq DQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN CiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDUsMCkNCitzdGF0aWMgY29u c3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkg KmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZWxzZQ0KK3N0YXRpYyBj b25zdCBjaGFyICoNCitubnBmc19nZXRfbGluayAoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LA0KKwkJIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQorCQkgc3RydWN0 IGRlbGF5ZWRfY2FsbCAqZG9uZSkNCisjZW5kaWYNCiB7DQogICAgIGludCBl cnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDQsNSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVO VFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorI2VuZGlmDQogDQogICAgIE5OUEZT REVCKFhERUJWTk9QUywgKCJubnBmc19mb2xsb3dfbGlua1xuIikpOw0KICAg ICANCkBAIC0xNDA4LDcgKzE1NzksMTMgQEAgbm5wZnNfZm9sbG93X2xpbmsg KHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICBpZiAoZXJyb3IpDQogICAg ICAgIHJldHVybiBFUlJfUFRSKGVycm9yKTsNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogICAgIHJldHVy biBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgbmQpOw0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K KyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50cnksIHBh Z2UpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2dldF9saW5rKGRlbnRy eSwgaW5vZGUsIGRvbmUpOw0KKyNlbmRpZg0KIH0NCiANCiAvKg0KQEAgLTE0 OTAsNiArMTY2Nyw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlu b2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAg ICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQog ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVc biIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9k ZSk7DQpAQCAtMTUyMyw4ICsxNzAyLDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVj dCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiB7DQogICAgIE5OUEZTREVCKFhE RUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIGlm IChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf ZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAgICBpZiAoZmls ZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZfcGF0aC5kZW50 cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUoZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2VuZGlmDQog ICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE1MzMsMTAgKzE3MTcs MjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVy Xw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0KLW5ucGZz X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu YW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0K K3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0K ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRl bnRyeSk7DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigzLDYsMCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkN CisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChu ZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJu IC1FQ0hJTEQ7DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw KVxuIiwNCiAJCSAgICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50 cnktPmRfbmFtZS5sZW4sDQpAQCAtMTU4Miw5ICsxNzgwLDE1IEBAIG5ucGZz X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0 dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9k ZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGlj DQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE2MTQsNyAr MTgxOCwxMSBAQCBubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmls ZSwgbG9mDQogCQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGlu dCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9E RV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVM TCkNCkBAIC0xNzA3LDYgKzE5MTUsOCBAQCBubnBmc193cml0ZV9iYWNrcGFn ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogDQogCWludCBlcnJvcjsNCiAJDQor CSh2b2lkKW9mZnNldDsNCisNCiAJZG8gew0KIAkJZXJyb3IgPSBwYWdlY2Fj aGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCiAJ CQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwNCkBAIC0xNzMw LDcgKzE5NDAsMTEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UsIA0KIAkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTog RUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9TWU5DDQogCWVsc2UNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMy KQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1hcHBpbmctPmhvc3QsIG1h cHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0KKwkJKHZvaWQpZmlsZW1h cF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5nLCBvZmZzZXQsIG9mZnNl dCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRpZg0KIAkNCiAJcmV0dXJu IGVycm9yOw0KQEAgLTE3NDcsNiArMTk2MSw4IEBAIG5ucGZzX3JlYWRfYmFj a3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJh Y2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQp b2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1h cHBpbmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2Up KSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0x ODk0LDExICsyMTEwLDE3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVh ZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQllcnJvciA9IHZt dHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQorCQllcnJvciA9 IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0KKwkJaWYoIWVy cm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUpOw0K KyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRrKCJubnBmc19w cmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxuIiwNCiAJCQkg ICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsgLyogWFhYIG5v dCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFggbm90IGNvcnJl Y3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5MjUsNyArMjE0Nyw2IEBAIG5u cGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiB9DQog DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3dyaXRlX2JlZ2luKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdz LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKQ0KQEAgLTE5 MzMsNTggKzIxNTQsNjcgQEAgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFn cywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFnZTsNCiAJcGdvZmZf dCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50IHJldCA9IDA7DQog DQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQogCWZyb20g PSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQogDQotI2lmZGVmIEFP UF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9i ZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNlbHNlDQotCXBhZ2Ug PSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7DQotI2VuZGlm DQotCWlmIChwYWdlID09IE5VTEwpDQorCWlmICghcGFnZSkNCiAJCXJldHVy biAtRU5PTUVNOw0KIA0KIAkqcGFnZXAgPSBwYWdlOw0KIA0KLQlyZXR1cm4g bm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsg bGVuKTsNCi19DQorCXJldCA9IG5ucGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwg cGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorCWlmIChyZXQpIHsNCisJCXVu bG9ja19wYWdlKHBhZ2UpOw0KKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2Up Ow0KKwl9DQogDQorCXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KKy8q IFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0 X3dyaXRlIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9y IG5vdyAqLw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5ucGZzX2NvbW1pdF93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQog CQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQotICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLSAg ICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9D QUNIRV9TSElGVCkgKyB0bzsNCisJc3RydWN0IGlub2RlICppbm9kZSA9IHBh Z2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBwb3MgPSAoKGxvZmZfdClw YWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRvOw0KIA0KLSAg ICBpZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlpX3NpemVfd3JpdGUo aW5vZGUsIHBvcyk7DQorCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQ0KKwkJ U2V0UGFnZVVwdG9kYXRlKHBhZ2UpOw0KIA0KLQlzcGluX2xvY2soJmlub2Rl LT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9CTE9D S1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5fdW5sb2Nr KCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFnZV9kaXJ0 eShwYWdlKTsNCisJaWYgKHBvcyA+IGlub2RlLT5pX3NpemUpIHsNCisJCWlf c2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJCXNwaW5fbG9jaygmaW5v ZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9C TE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQorCQlzcGluX3Vu bG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJc2V0X3BhZ2VfZGlydHko cGFnZSk7DQogDQogI2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlr bWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTog JXgleCV4JXhcbiIsDQorCXsNCisJICAgIGNoYXIgKmFkZHI7DQorCSAgICBr bWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsN CisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3Jp dGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUtPmZfbWFwcGlu Zy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFdLCBhZGRyWzJd LCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAgfQ0KKwkgICAg a3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0KLSAgICByZXR1 cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYNCiANCiAjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN Ci0NCisvKiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxl X3dyaXRlX2VuZCBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2Vk IGZvciBub3cgKi8NCisjaWYgMA0KIHN0YXRpYyBpbnQNCiBubnBmc193cml0 ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAkJdW5zaWduZWQgbGVuLCB1bnNp Z25lZCBjb3BpZWQsIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEp DQpAQCAtMTk5MywxMCArMjIyMywxOCBAQCBubnBmc193cml0ZV9lbmQoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8gdGhlIHN0YWxl IHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0K IAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBr bWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQg KmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQogCQltZW1z ZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0K IAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0 b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRv bWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBmc19jb21taXRf d3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQpAQCAt MjAwNiw3ICsyMjQ0LDcgQEAgbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Yw0KIA0KIAlyZXR1cm4gY29waWVkOw0KIH0NCi0NCisj ZW5kaWYNCiAjZW5kaWYNCiANCiBjb25zdA0KQEAgLTIwMTUsMTAgKzIyNTMs MTAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19h bw0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3JpdGVwYWdlLA0KICNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCS5w cmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFyZV93cml0ZSwNCi0JLmNvbW1p dF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0ZSwNCisJLmNvbW1pdF93cml0 ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQogI2Vsc2UNCiAJLndyaXRlX2Jl Z2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQotCS53cml0ZV9lbmQgPSBubnBm c193cml0ZV9lbmQsDQorCS53cml0ZV9lbmQgPSBzaW1wbGVfd3JpdGVfZW5k LA0KICNlbmRpZg0KIH07DQogDQpAQCAtMjAyNyw4ICsyMjY1LDEzIEBAIHN0 cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8N CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0 aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs NyArMjI4NCwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0g bm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5u cGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2Zs dXNoLA0KIH07DQogDQpAQCAtMjA3OCw2ICsyMzI1LDEwIEBAIHN0cnVjdCBp bm9kZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfaW5vZGUNCiANCiBzdHJ1Y3Qg aW5vZGVfb3BlcmF0aW9ucyBubnBmc19saW5rX2lub2RlX29wZXJhdGlvbnMg PSB7DQogICAgIC5yZWFkbGluayAJCT0gbm5wZnNfcmVhZGxpbmssDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K ICAgICAuZm9sbG93X2xpbmsgCT0gbm5wZnNfZm9sbG93X2xpbmssDQogICAg IC5wdXRfbGluayAJCT0gcGFnZV9wdXRfbGluaywNCisjZWxzZQ0KKyAgICAu Z2V0X2xpbmsJCT0gbm5wZnNfZ2V0X2xpbmssDQorI2VuZGlmDQogfTsNCmRp ZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX2xvYWQuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0t IGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0x MC0zMSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZz L2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAw MDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAg ICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAg ICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAg ICAgICBubnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjog ICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAg ICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYg YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxh L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9s ZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0 MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNf ZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5 KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAg IGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2Fj aGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRf bG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91 bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9w KGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcg KzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBu bnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAg c3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFz dHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsN CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRp Zg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNz YWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2 LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz ICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMg PSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZk aS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywg c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hl X2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9j aygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7 DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZk aS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2Fs aWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVf bG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5f dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2Nr KCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsN CisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYN CiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBG U0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k ZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkg QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0K IAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJ YWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQp Ow0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVz c2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAt MjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0 cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9U T19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5v ZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVu dHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0K KyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmly c3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAg ICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9p bnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9u YW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBmc19tZXNz YWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQN CiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGlu dCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAg c3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2Fp bjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz ZQ0KKyAgICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAg d2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0 IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFz KSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBo bGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnks IGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQg KnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQog CQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRl bnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVM TCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBk ZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFr Ow0KQEAgLTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1 YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9z dWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJk aXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3Rf ZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vs c2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0 bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAg c3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0cs ICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8l cCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAg LTQ0MiwxNCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0 IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5 ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl bHNlDQorCSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0K KyNlbmRpZg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBh Z2FpbjsNCiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4 dDsNCisjZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2soJmlub2Rl LT5pX2xvY2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAg LTcxOSwxMiArNzgzLDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1 Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNrIGJlZm9y ZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09IHNpemVvZigq bWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9O KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlz dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7DQogDQog CXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5kKTsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0K KyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0K KyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBC YWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDExICs4MDks MTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5w Zg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9s b29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBl bHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQo bmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQo bmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0K KyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRo Lm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRl bnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAg ICANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50LT5m c3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7DQog I2Vsc2UNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZz L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25v ZGUuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2Rl LmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTAxLTE0IDE2OjUx OjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3ICsxMzIsMTIgQEAgbm5w ZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0KIAlwcmlu dGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJ ICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2VuZGlmDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCww KQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJldHZhbCAq Lw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBzaXpl KSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUpOw0KKyNl bmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAg IH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRyMmlub2Rl KGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBu b3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN CiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lkICAgID0g MDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9JTklUKDAp Ow0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0KKyNlbmRp Zg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0KKwlzZXRf bmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9hdGltZSAg PSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsNCiAJaW5v ZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMsMTEgQEAg bm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KICAg ICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9naWQgICAg PSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElOSyhhdHRy KSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25saW5rOw0K KyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0K KyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikp IHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpA QCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3Ry dWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBv czsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAg IC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29t ZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+ aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaChwb3Ms ICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRy eSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5 ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFz KTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkN CiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhub2RpZmYg YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJs YS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMt b2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0wOC0wOCAy Mjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMi0yMCAxOTo0Mzo0Mi4wMDAwMDAw MDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUgPG5ucGZz L25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Nv bW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5j bHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8 bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiAN CkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0 eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExIQUNLDQor LyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qg d29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lzY2Fs bHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYg Q09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpA QCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3Byb2NkYXRh IHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJvY2Rh dGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3Rs KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJ ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNl bHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0 IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l ZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAg LmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51 bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYN CiB9Ow0KIA0KIA0KQEAgLTE2MCw4ICsxNzcsMTAgQEAgbm5wZnNfZ2V0X3Bh Z19zZWModm9pZCkNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVp ZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7 DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7 IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBAIC0xOTks NyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkN CiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdyb3VwcyA9 ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkgPSBnaS0+ bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lkX3QgZ3Jv dXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90IGtncm91 cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBrZ3JvdXAu dmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3VwID49IE5O UEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91cCA8IE5OUEZTX1BB R19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJICAgICAo ImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4iLCBncm91 cCwgaSkpOw0KQEAgLTIyMCw3ICsyNDQsMTIgQEAgbm5wZnNfZ2V0X3BhZ19n cm91cCh2b2lkKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50LT51 aWQ7DQogI2Vsc2UNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gZ2V0 X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgbm5wZnNfcGFnX3QgcmV0 ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qga3VpZCA9 IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9IGt1aWQu dmFsOw0KKyNlbmRpZg0KICNlbmRpZg0KICAgICBpbnQgaTsNCiANCkBAIC0y MzAsNyArMjU5LDExIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAN CiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNf UEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogCXJldCA9IEdST1VQX0FUKGdpLCBpKTsN CisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ksIGkpOyBy ZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAgICBwdXRfZ3JvdXBf aW5mbyhnaSk7DQogDQpAQCAtMjgwLDEwICszMTMsMTcgQEAgc3RvcmVfcGFn KG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQU19QRVJf QkxPQ0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQpDQogCUdS T1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJR1JP VVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251bTsN CisjZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtnaWQgPSBL R0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkgPSBrZ2lk OyB9DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAx KSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9jdXJyZW50 X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhuZXdfZ2kp Ow0KQEAgLTMyNSw4ICszNjUsMTAgQEAgbm5wZnNfZ2V0X3BhZygpDQogDQog I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp DQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsg a3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7 IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtNDMyLDcgKzQ3NCw3IEBAIG5ucGZz X3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xkX2cNCiAjZW5kaWYg LyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQog DQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qgbm5wZnNfZmlsZV9o YW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQogICAgIGlub190IGlu b2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTE5LDI2ICs1NjEsNTggQEAg bm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmljZUlvY3RsIA0KICAq IGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChz dHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9s bG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJf cGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3Bh dGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KICAgICBjaGFyICprbmFt ZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsN CiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisg ICAga25hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAg a25hbWUgPSBfX2dldG5hbWUoKTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElT X0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUp KTsNCiAgICAgaWYgKGZvbGxvdykNCiAJZmxhZ3MgfD0gTE9PS1VQX0ZPTExP VzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDMsNywwKQ0KKyAgICBlcnJvciA9IHN0cm5jcHlfZnJvbV91c2VyKGtu YW1lLCB1c2VyX3BhdGgsIFBBVEhfTUFYKTsNCisgICAgaWYgKGVycm9yIDwg MCB8fCBlcnJvciA9PSBQQVRIX01BWCkgew0KKwlfX3B1dG5hbWUoa25hbWUp Ow0KKwlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorICAgIH0NCisjZW5kaWYN CisNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBs b29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBlcnJv ciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQpOw0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisg ICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRo KSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZs YWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1dG5hbWUoa25hbWUp Ow0KKyNlbHNlDQorICAgIF9fcHV0bmFtZShrbmFtZSk7DQorI2VuZGlmDQog ICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAg cmV0dXJuIHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlu a2FnZSBsb25nDQpAQCAtNTUzLDEzICs2MjcsMjEgQEAgc3lzX2Fmc19pbnQg KGludCBvcGVyYXRpb24sDQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bp b2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf d2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBO VUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UN CisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAgICAgDQogICAg IG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiAg ICAgaWYgKG1zZyA9PSBOVUxMKQ0KICAgICAgIHJldHVybiAtRU5PTUVNOw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyog WFhYIGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5n IGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RF QihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0K QEAgLTU5Nyw3ICs2NzksMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp b24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFf cGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50 cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xs b3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0K IAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkz LDEzICs3NzksMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog ICAgIA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0 aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsN CisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19z eXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAg ICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tc biIpKTsNCiAgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2Vy bmVsKCk7DQorI2Vsc2UNCisgICAgLyogWFhYIHNlZSB0aGUgY29tbWVudCBh dCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQogICAgIHJl dHVybiBlcnJvcjsNCiB9DQpAQCAtNzQ4LDkgKzg0MiwxNSBAQCBzeXNfYWZz IChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3ltbGlua3Mp Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9j dGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQog CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBh cmdzOw0KICAgICBsb25nIHJldDsNCkBAIC04MDcsNyArOTA3LDExIEBAIHN0 YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAgICAgbm5wZnNf cHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCiAg ICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeShOTlBG U19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNlbHNl DQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUoTk5QRlNfUFJPQ19OT0RFLCAw NjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2ZvcHMpOw0KKyNlbmRpZg0KICAg ICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVCU1lTLCAo Im5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQogCXJlbW92ZV9w cm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCkBAIC04 MTcsNyArOTIxLDkgQEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2 b2lkKQ0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxFOw0K ICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNf cHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01Q QVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxB X1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCmRp ZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZz X3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9s aW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0wOCAyMjo0 MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjAw MDAwMDAwMCArMDEwMA0KQEAgLTUwLDggKzUwLDE3IEBADQogUkNTSUQoIiRJ ZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4 IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyog dGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29y ayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxM SEFDSw0KKyNlbmRpZg0KKw0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5o Pg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93 ZXJfYm91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYN CiANCiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3Rh YmxlKHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19z eXNfY2FsbF90YWJsZSA9DQpAQCAtNjYsNiArNzUsOCBAQCBjb25zdCBjaGFy ICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogI2lmZGVmIF9feDg2XzY0X18N CiBleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9f KCh3ZWFrKSk7DQogI2VuZGlmDQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQog c3RhdGljIHZvaWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lm ZGVmIF9feDg2XzY0X18NCkBAIC03NCw2ICs4NSw3IEBAIGdldF9zdGFydF9h ZGRyKHZvaWQpIHsNCiAgICAgcmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2Nr Ow0KICNlbmRpZg0KIH0NCisjZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGlu dCANCiBrYWxsc3ltX2lzX2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29u c3QgY2hhciAqbmFtZSkNCkBAIC0xNDIsNiArMTU0LDggQEAgdmVyaWZ5KHZv aWQgKipwKSB7DQogICAgIHJldHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lT Q0FMTEhBQ0sNCisNCiBzdGF0aWMgaW5saW5lIGludCBsb29rc19nb29kKHZv aWQgKipwKQ0KIHsNCiAgICAgaWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3Vu ZCB8fCAqcCA+PSAodm9pZCopcCkNCkBAIC0xOTEsMyArMjA1LDUgQEAgbm5w ZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVy biAwOw0KIH0NCisNCisjZW5kaWYNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEvbm5w ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5w ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4w MDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3Zm c29wcy5jCTIwMTYtMDItMTQgMDE6MzY6MDYuMDAwMDAwMDAwICswMTAwDQpA QCAtNTAsNyArNTAsOSBAQCBSQ1NJRCgiJElkOiBubnBmc192ZnNvcHMuYyx2 IDEuMTExIDIwMTAvDQogc3RydWN0IG5ucGZzIG5ucGZzW05OTlBGU107DQog DQogc3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQogDQogc3Rh dGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBz dHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCiANCkBAIC01OSw3ICs2MSw5IEBAIHN0 YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBmc19zb3ANCiAgICAg ZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwNCiAgICAgZHJvcF9p bm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAgICAgcHV0X3N1cGVy CQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdyaXRlX3N1cGVyCQk6 IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAgICBzdGF0ZnMJCTog bm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtODYsNyArOTAsMTEgQEAgbm5w ZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQogCSAqIHJvb3QncyBw cml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25lIGlzIG5lZWRlZCku DQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQgPSAwOw0KKyNlbHNl DQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7DQorI2VuZGlmDQog CW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA IC0xMjEsOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1Y3Qgbm5w ZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5vZGUuYXR0ciwgU19J RkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTksoJm5vZGUuYXR0ciwg MTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN CiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VU X0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfVUlE KCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAgICBYQV9TRVRfR0lE KCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNlbmRpZg0KICAgICBY QV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9NVElN RSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NUSU1FKCZub2RlLmF0 dHIsIDApOw0KQEAgLTE1MSw3ICsxNjQsMTEgQEAgbWFrZV9yb290IChzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+cm9vdCA9IGlub2Rl Ow0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcgKi8NCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDApDQogICAg IGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxzZQ0KKyAgICBkcCA9 IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAgICAgbm5wZnNfZF9p bml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0KICAgICByZXR1cm4g MDsNCkBAIC0xNzUsMTMgKzE5MiwyNyBAQCBubnBmc19yZWFkX3N1cGVyIChz dHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZTREVCKFhERUJWRk9Q UywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0aW5nIHZhcmlhYmxl c1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ c3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBw YXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3Vw KGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aChk YXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3Bh dGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpDQog CSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVsc2UNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkg ICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorCSAgICBkZGV2 ID0gcGF0aC5kZW50cnk7DQorI2VuZGlmDQogDQogCWlmICghSVNfRVJSKGRk ZXYpKSB7DQogCSAgICBtaW5vcmRldmljZSA9IE1JTk9SKGRkZXYtPmRfaW5v ZGUtPmlfcmRldik7DQpAQCAtMjI1LDYgKzI1Niw3IEBAIG5ucGZzX2ZpbGxf c3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2INCiAgICAgcmV0dXJuIDA7 DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzkpDQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxl X3N5c3RlbV90eXBlICpmc190eXBlLA0KIAkgICAgIGludCBmbGFncywgY29u c3QgY2hhciAqZGV2X25hbWUsDQpAQCAtMjMyLDEyICsyNjQsMjMgQEAgbm5w ZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcw0KIHsNCiAg ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQorI2Vsc2UNCitzdHJ1Y3Qg ZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl ICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2 X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQorew0KKyAgICByZXR1cm4g bW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxf c3VwZXIpOw0KK30NCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQNCiBu bnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYikNCiB7 DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYNCiANCiAvKg0K ICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3Niw3ICszMTksMTEgQEAg bm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KICAg ICB0bXAuZl9zcGFyZVsxXSA9IDA7DQogICAgIHRtcC5mX3NwYXJlWzJdID0g MDsNCiAgICAgdG1wLmZfc3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIHRtcC5m X3NwYXJlWzRdID0gMDsNCisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7 DQorI2VuZGlmDQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0K IH0NCg== ---276651502-1959661401-1458350954=:21643 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-1959661401-1458350954=:21643--