Re: PATCH: Arla CVS Current on Linux 2.6.34 to 3.18
Bo Branten <[email protected]> Wed, 13 Jan 2016 03:01:05 +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-1479828704-1452650465=:13035 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH: Arla CVS Current on Linux 2.6.34 to 3.18 ---276651502-1479828704-1452650465=:13035 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-cvs-for-linux-3.18 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-cvs-for-linux-3.18 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfZnMuaCBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xp bnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51 eC9ubnBmcy9ubnBmc19mcy5oCTIwMDYtMTAtMjQgMTg6MzM6NDguMDAwMDAw MDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51 eC9ubnBmcy9ubnBmc19mcy5oCTIwMTYtMDEtMTIgMTk6MDY6MzQuNTE4MDI1 NjA5ICswMTAwDQpAQCAtODQsOCArODQsMTMgQEAgc3RydWN0IG5ucGZzIHsN CiAgICAgc3RydWN0IHZmc21vdW50ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5 IG9wZW4gb2YgY2FjaGUgYmxvY2tzICovDQogICAgIHN0cnVjdCBkZW50cnkg KmNhY2hlZGlyOw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKSkNCiAgICAgdWlkX3QgdWlkOyAvKiBrZWVw IHRyYWNrIG9mIGRhZW1vbidzIGlkZW50aXR5ICovDQogICAgIGdpZF90IGdp ZDsNCisjZWxzZQ0KKyAgICBrdWlkX3QgdWlkOyAvKiBrZWVwIHRyYWNrIG9m IGRhZW1vbidzIGlkZW50aXR5ICovDQorICAgIGtnaWRfdCBnaWQ7DQorI2Vu ZGlmDQogDQogICAgIHN0cnVjdCB7DQogCWludCByZWN1cnNlOw0KZGlmZiAt dXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMv bm5wZnNfbG9jbC5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfbG9jbC5oDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfbG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAw MDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51 eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0wMS0xMSAyMToxNzo0Mi44Nzgz MjYxMjQgKzAxMDANCkBAIC01MSw3ICs1MSw5IEBADQogI2luY2x1ZGUgPGxp bnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lmIChMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KICNpbmNsdWRlIDxsaW51 eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC93YWl0 Lmg+DQogDQogLyoNCkBAIC0xMzgsMTAgKzE0MCwxNyBAQCB0eXBlZGVmIF9f dTMyICB1aW50MzJfdDsNCiBpbnQNCiBubnBmc19mZXRjaF9yb290KHN0cnVj dCBpbm9kZSAqaSk7DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KIGludA0KIG5ucGZzX2dldF9zYihz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQg ZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KIAkgICAgIHZvaWQgKmRh dGEsIHN0cnVjdCB2ZnNtb3VudCAqbW50KTsNCisjZWxzZQ0KK3N0cnVjdCBk ZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg KmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZf bmFtZSwNCisJICAgICB2b2lkICpkYXRhKTsNCisjZW5kaWYNCiANCiBleHRl cm4gc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZzX2RlbnRyeV9vcGVy YXRpb25zOw0KIA0KQEAgLTE5NCwxMCArMjAzLDIzIEBAIG5ucGZzX2l3cml0 ZWNvdW50IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhlbHAgZnVuY3Rp b24gdG8gcmVhZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9ydGFibGUgd2F5 DQogICovDQogDQorLyojaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkpKi8NCiBzdGF0aWMgaW5saW5lIGludA0KIG5u cGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKy8q I2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rjb3VudCAoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiAg ICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291bnQpOw0KKyNl bHNlDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDExLDApKQ0KKyAgICByZXR1cm4gYXRvbWljX3JlYWQoKGNvbnN0IGF0 b21pY190KikmZGVudHJ5LT5kX2NvdW50KTsNCisjZWxzZQ0KKyAgICByZXR1 cm4gZF9jb3VudChkZW50cnkpOzsNCisjZW5kaWYNCisjZW5kaWYNCiB9DQog DQogZXh0ZXJuIA0KQEAgLTIyOSw3ICsyNTEsMTIgQEAgbm5wZnNfZml4dXBf c3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRpZg0KIA0KICNkZWZpbmUg bm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQogI2RlZmluZSBubnBmc19k X2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UN CisjZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxf dW5oYXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1Ag ICAgICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhLWZvci1s aW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJs YS1jdnMvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAxMC0wOC0wOCAy Mjo0MzowNC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0z LjE4L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTMgMDE6 MTk6MTguNTE0NzcwMTQzICswMTAwDQpAQCAtNDMsNiArNDMsMzYgQEANCiAj aW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0u aD4NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigzLDEyLDApKQ0KKy8qIFRPRE86IGltcGxlbWVudCBhIHJlcGxhY2Vt ZW50IGZvciB2ZnNfcGF0aF9sb29rdXAgb24ga2VybmVscyBsYXRlciB0aGFu IDMuMTIgKi8NCisvKioNCisgKiB2ZnNfcGF0aF9sb29rdXAgLSBsb29rdXAg YSBmaWxlIHBhdGggcmVsYXRpdmUgdG8gYSBkZW50cnktdmZzbW91bnQgcGFp cg0KKyAqIEBkZW50cnk6ICBwb2ludGVyIHRvIGRlbnRyeSBvZiB0aGUgYmFz ZSBkaXJlY3RvcnkNCisgKiBAbW50OiBwb2ludGVyIHRvIHZmcyBtb3VudCBv ZiB0aGUgYmFzZSBkaXJlY3RvcnkNCisgKiBAbmFtZTogcG9pbnRlciB0byBm aWxlIG5hbWUNCisgKiBAZmxhZ3M6IGxvb2t1cCBmbGFncw0KKyAqIEBwYXRo OiBwb2ludGVyIHRvIHN0cnVjdCBwYXRoIHRvIGZpbGwNCisgKi8NCitpbnQg dmZzX3BhdGhfbG9va3VwKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IHZmc21vdW50ICptbnQsDQorCQkgICAgY29uc3QgY2hhciAqbmFtZSwgdW5z aWduZWQgaW50IGZsYWdzLA0KKwkJICAgIHN0cnVjdCBwYXRoICpwYXRoKQ0K K3sNCisjaWYgMA0KKwlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKwlpbnQgZXJy Ow0KKwluZC5yb290LmRlbnRyeSA9IGRlbnRyeTsNCisJbmQucm9vdC5tbnQg PSBtbnQ7DQorCUJVR19PTihmbGFncyAmIExPT0tVUF9QQVJFTlQpOw0KKwkv KiB0aGUgZmlyc3QgYXJndW1lbnQgb2YgZG9fcGF0aF9sb29rdXAoKSBpcyBp Z25vcmVkIHdpdGggTE9PS1VQX1JPT1QgKi8NCisJZXJyID0gZG9fcGF0aF9s b29rdXAoQVRfRkRDV0QsIG5hbWUsIGZsYWdzIHwgTE9PS1VQX1JPT1QsICZu ZCk7DQorCWlmICghZXJyKQ0KKwkJKnBhdGggPSBuZC5wYXRoOw0KKwlyZXR1 cm4gZXJyOw0KKyNlbmRpZg0KKwlyZXR1cm4gLTE7DQorfQ0KKyNlbmRpZg0K Kw0KIC8qDQogICogcmV0dXJuIHRydWUgaWYgYmxvY2sgaXMgaW4gY2FjaGUN CiAgKi8NCkBAIC0yOTAsNyArMzIwLDEzIEBAIG5ucGZzX2Jsb2NrX2V4dGVu ZChzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm8NCiAgICAgYmFja25vZGUgPSBiYWNr ZmlsZS0+Zl9tYXBwaW5nLT5ob3N0Ow0KIA0KICAgICBtdXRleF9sb2NrKCZi YWNrbm9kZS0+aV9tdXRleCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDgsMCkpDQogICAgIHJldCA9IHZtdHJ1bmNh dGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2Vsc2UNCisgICAg aWYoIWlub2RlX25ld3NpemVfb2soYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6 ZSkpIHsNCisgICAgICAgIHRydW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5u cGZzX2Jsb2Nrc2l6ZSk7DQorICAgIH0NCisjZW5kaWYNCiAgICAgbXV0ZXhf dW5sb2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxw X2Nsb3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTksMTQgKzM1NSwyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2Rl KTsNCiAgICAgaW50IGZsYWdzID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KICAg ICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKSkNCiAgICAgdWlkX3Qgc2F2 ZXVpZDsNCiAgICAgZ2lkX3Qgc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICBrdWlk X3Qgc2F2ZXVpZDsNCisgICAga2dpZF90IHNhdmVnaWQ7DQorI2VuZGlmDQog ICAgIGludCByZXQ7DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMjkpDQogICAgIGNvbnN0IHN0cnVjdCBjcmVkICpv bGRfY3JlZDsNCiAgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7DQog I2VuZGlmDQogDQorICAgICh2b2lkKXNhdmV1aWQ7DQorICAgICh2b2lkKXNh dmVnaWQ7DQorDQogICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09O KGZsYWdzICYgT19DUkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KIA0KQEAgLTM2 NiwxMSArNDEwLDE4IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZz X25vZGUgKm5vZGUNCiAgICAgb2xkX2NyZWQgPSBvdmVycmlkZV9jcmVkcyhv dmVycmlkZV9jcmVkKTsNCiAjZW5kaWYNCiANCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiAgICAgcmV0ID0g dmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2Fj aGVyb290LA0KIAkJCSAgY2FjaGVuYW1lLA0KIAkJCSAgZmxhZ3MgJiBPX0NS RUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQogCQkJICAmbmQpOw0KLSAgICBp ZiAocmV0KSB7DQorI2Vsc2UNCisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3Vw KG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAg Y2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BB UkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2VuZGlmDQorICAgICBp ZiAocmV0KSB7DQogCXVpbnQzMl90IG5tYXNrcyA9IG5vZGUtPmRhdGEubm1h c2tzOw0KIAl1aW50MzJfdCBtYXNrOw0KIA0KQEAgLTM5NiwxMSArNDQ3LDIx IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUN CiAgICAgDQogICAgIGlmIChmbGFncyAmIE9fQ1JFQVQpIHsNCiAJLyogWFhY IG1vZGUgYml0cyBvbiBjcmVhdGUgLS0gU19JUlVTUnxTX0lXVVNSICovDQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEs MCkpDQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxvb2t1cF9jcmVhdGUo Jm5kLCAwKTsJDQorI2Vsc2UNCisJLyogVE9ETzogY2hlY2sgdGhlIGNhbGwg dG8ga2Vybl9wYXRoX2NyZWF0ZSgpLCBpcyB0aGUgc2Vjb25kIGFyZ3VtZW50 IG9wdGlvbmFsPyAqLw0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBrZXJu X3BhdGhfY3JlYXRlKEFUX0ZEQ1dELCBOVUxMLCAmbmQucGF0aCwgMCk7CQ0K KyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAgIHJldCA9 IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiAJICAgIHJl dCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRy eSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbHNlDQorCSAgICAvKiBU T0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm c19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19J UlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5 KTsNCiAJfQ0KIA0KQEAgLTQxOSwxMCArNDgwLDE1IEBAIG5ucGZzX2Jsb2Nr X29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAJICAgIHJldCA9IG5u cGZzX2Jsb2NrX2V4dGVuZChub2RlLCBvZmZzZXQpOw0KIAl9DQogICAgIH0g ZWxzZSB7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwyOSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwyOSkpDQogCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5 X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQog I2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNiwwKSkNCiAgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5 X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFncywgY3Vy cmVudF9jcmVkKCkpOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGggPSB7 IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9IG5kLnBhdGguZGVudHJ5 IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZw YXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0KICNlbmRp Zg0KIAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYp Ow0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGlu dXgvbm5wZnNfY29tbW9uLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9s aW51eC9ubnBmc19jb21tb24uYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4 L25ucGZzX2NvbW1vbi5jCTIwMDYtMTItMTEgMTc6MzE6NDYuMDAwMDAwMDAw ICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9u bnBmc19jb21tb24uYwkyMDE2LTAxLTExIDIwOjQ3OjIyLjg3NDQwNjE3NCAr MDEwMA0KQEAgLTExMiwxMCArMTEyLDE3IEBAIG5ucGZzX3ByaW50X2FsaWFz ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxzZQ0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5 LDApKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlm DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAgICAg aW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIGFsaWFzID0gaW5v ZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5v ZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAt MTMxLDYgKzEzOCwyNCBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29u c3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAg ICAgfQ0KKyNlbHNlDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDksMCkpDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5 KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsN CisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZp bm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZW5kaWYNCisJaWYgKC0t YmFpbG91dCA8IDApIHsNCisJICAgIHByaW50aygiIC4uLiIpOw0KKwkgICAg YnJlYWs7DQorCX0NCisJaWYgKGRlbnRyeSkgew0KKwkgICAgcHJpbnRrKCIg JS4qcyglcCkiLCAoaW50KWRlbnRyeS0+ZF9uYW1lLmxlbiwNCisJCSAgIGRl bnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeSk7DQorCSAgICBpZiAobm5wZnNf ZF9lbnRyeV91bmhhc2hlZCgmZGVudHJ5LT5kX2hhc2gpKQ0KKwkJcHJpbnRr KCIodW5oYXNoZWQpIik7DQorCX0NCisgICAgfQ0KKyNlbmRpZg0KICAgICBw cmludGsoIlxuIik7DQogfQ0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMgYXJsYS1mb3ItbGlu dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtY3Zz L25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYu MDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBm cy9saW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTEzIDAxOjAwOjUxLjQ4Njcz MzI4OCArMDEwMA0KQEAgLTMwMCw4ICszMDAsMTAgQEAgbm5wZnNfaW52YWxp ZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RFQihY REVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikp Ow0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcp KQ0KICAgICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KLSAgICAN CisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9h bGxfbm5wZnNfbm9kZXMgZG9uZVxuIikpOw0KIH0NCiANCkBAIC01MDUsMTIg KzUwNywyMyBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg Y29uc3QNCiAvKg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiAoTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiBzdGF0 aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21k LCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQor bm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQor CSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykN CisjZW5kaWYNCiB7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzYpKQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAo Im5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJ ICAgICAgIGlub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxz ZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRl diA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVu dHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5k aWYNCiAgICAgcmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5 NjYsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0g ew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlu bnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzYpKQ0KICAgICBpb2N0bDoJCW5ucGZzX2RldmlvY3RsLA0KKyNlbHNlDQor ICAgIHVubG9ja2VkX2lvY3RsOglubnBmc191bmxvY2tlZF9kZXZpb2N0bCwN CisjZW5kaWYNCiAgICAgcmVsZWFzZToJCW5ucGZzX2RldmNsb3NlLA0KICAg ICBvcGVuOgkJbm5wZnNfZGV2b3BlbiwNCiB9Ow0KQEAgLTk2OCw4ICs5ODUs MTYgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVl dWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5p dHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZz W2ldLnNsZWVwcSk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzcpKQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5p bmFjdGl2ZV9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0u aW5hY3RpdmVfc2VtLCAxKTsNCisjZW5kaWYNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykpDQogCWluaXRfTVVU RVgoJm5ucGZzW2ldLmNoYW5uZWxfc2VtKTsNCisjZWxzZQ0KKwlzZW1hX2lu aXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5J VF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBm c1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZm LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jIGFy bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMu Yw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJ MjAxMC0wOC0wOCAyMjo0MzowNC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxh LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJ MjAxNi0wMS0xMyAwMDo1MzoyMS43NTQ3MTgzMTYgKzAxMDANCkBAIC00MCw2 ICs0MCw3IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+ DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQpAQCAt NTQsMTEgKzU1LDIzIEBAIFJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMs diAxLjIyNiAyMDENCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmNfaW50KHN0 cnVjdCBmaWxlICpmaWxlLCB1X2ludCBmbGFnKTsNCiANCisjaWYgKExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiBzdGF0 aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3Rh dGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19k X2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbmRp Zg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxlYXNlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSk7DQpAQCAtMjE0LDggKzIyNywxMyBAQCBubnBmc19p bm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZzX2xv b2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiBz dGF0aWMgc3RydWN0IGRlbnRyeSAqDQogbm5wZnNfbG9va3VwIChzdHJ1Y3Qg aW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFt ZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoN CitubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7 DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldG5vZGUgbXNnOw0KICAg ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCkBAIC00NzQsMTIgKzQ5MiwxNyBA QCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQog ICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzUpKQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgZGF0YXN5bmMpDQogI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiBzdGF0aWMgaW50 DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0 YXN5bmMpDQorI2VuZGlmDQogI2VuZGlmDQogew0KICNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQpAQCAtNDkw LDYgKzUxMyw4IEBAIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBp bnQgZGF0YXMNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBp bnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAg IGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KICAgICBpZiAo ZXJyb3IpDQogCXJldHVybiBlcnJvcjsNCkBAIC02MjIsMTEgKzY0NywyOCBA QCBjaGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQog ICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0K IHN0YXRpYyBpbnQNCiBubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAq aW5vZGUsIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZz X3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHVu c2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv ciA9IDA7DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWco KTsNCisgICAgbm5wZnNfcGFnX3QgcGFnOw0KKyAgICAvKiBUT0RPOiB2ZXJp ZnkgdGhlIHVzZSBvZiBJUEVSTV9GTEFHX1JDVSBhbmQgTUFZX05PVF9CTE9D SyAqLw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkpDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDEsMCkpDQorICAgIGlmIChmbGFncyAmIElQRVJNX0ZM QUdfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2Vsc2UNCisg ICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJu IC1FQ0hJTEQ7DQorI2VuZGlmDQorI2VuZGlmDQorDQorICAgIHBhZyA9IG5u cGZzX2dldF9wYWcoKTsNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19hY2Nlc3MgKCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6Iiwg aW5vZGUsIG1vZGUpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9k ZSk7DQpAQCAtODIzLDE0ICs4NjUsMjMgQEAgaW50IG5ucGZzX2ZpbGVfbW1h cChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogICoNCiAgKi8NCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkpDQog c3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5z aWduZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisj ZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVj dCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYN CiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpm aWxlID0gaW9jYi0+a2lfZmlscDsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkpDQogICAgIHNzaXplX3QgY291 bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbHNlDQorICAgIHNzaXplX3QgY291 bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCiAgICAg c3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUp Ow0KICAgICANCkBAIC04MzgsMTMgKzg4OSwyMSBAQCBubnBmc19haW9fcmVh ZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCU5OUEZTREVCKFhERUJWTk9QUywg KCJubnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJ ICAgICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiAoTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAgICAgZXJy b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBv cywgcG9zICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNf ZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3Ms IGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVy cm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2Zp bGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4g ZXJyb3I7DQogICAgIH0NCi0gICAgDQorDQorI2lmIChMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApKQ0KICAgICBlcnJvciA9 IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3YsIG5yX3NlZ3MsIHBv cyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9p dGVyKGlvY2IsIHRvKTsNCisjZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX3JlYWRfZmlsZTogZXJyb3IgPSAlZFxuIiwgZXJyb3Ip KTsNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC04NTMsMTcgKzkxMiwz MCBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoN CiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTYsMCkpDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9f d3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlv dmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBw b3MpDQorI2Vsc2UNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0 ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20p DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1 Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApKQ0KICAgICBz c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxzZQ0KKyAgICBz c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbmRpZg0KICAg ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5v ZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hO T0RFKGlub2RlKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTYsMCkpDQogICAgIGxvZmZfdCByZWFscG9zID0gcG9z Ow0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9z Ow0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo Im5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkg aW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NzcsNyArOTQ5LDExIEBAIG5u cGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBl cnJvcjsNCiAgICAgfQ0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAgICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5NjEsMjEgQEAgbm5wZnNfYWlv X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y Ow0KIH0NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMywwKSkNCiBzdGF0aWMgaW50DQogbm5wZnNfY3JlYXRlKHN0 cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQogCSAg ICAgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkpDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUg KmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3Qg bW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMg aW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBib29sIGV4 Y2wpDQorI2VuZGlmDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMg Km5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTEw MzgsOCArMTEyNiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAq IG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDMsMCkp DQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRp ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0K K3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRp Zg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj dCBubnBmc19ub2RlICp4bjsNCkBAIC0xMjUyLDggKzEzNDUsMTMgQEAgc3Rh dGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0KIC8qDQog ICogV2UgaG9sZCBpX211dGV4Lg0KICAqLw0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKSkNCiBzdGF0aWMgaW50 DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKiBk aXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qg ZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv cjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KQEAgLTEz MjgsNiArMTQyNiw3IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBm aWxlLCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGlyZW50LT5kX25hbWxlbiwN CiAJCSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29mZnNldCkpKTsNCiANCisj aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs MCkpDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KIAkJJiYg KGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQsDQogCQkJCSAgICAg eGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEzMzksNiArMTQzOCwxOCBAQCBubnBm c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkJICgi bm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikp Ow0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJICAgIGlmICh4ZGly ZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRpcl9lcnJvciA9IGRp cl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KKwkJ CQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkgICAgIHhkaXJlbnQt PmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04pKSA8IDApIHsNCisJ CU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5ucGZzX3JlYWRkaXIg ZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsNCisJCWJyZWFrOw0K KwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9IHhkaXJlbnQtPmRf cmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRfcmVjbGVuID09IDAp IHsNCkBAIC0xNDkwLDYgKzE2MDEsOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUg KHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBmc19ub2Rl ICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5w ZnNwOw0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVs ZWFzZV9maWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNfaW5vZGVf dmFsaWQoaW5vZGUpOw0KQEAgLTE1MzMsOCArMTY0NiwxMyBAQCBubnBmc19m bHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJfDQogICogUmV0dXJu IDEgaWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90aGVyd2lzZSAwLg0K ICAqLw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw2LDApKQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRh dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCkNCisjZWxzZQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19kX3JldmFsaWRhdGUo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkg DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KICAg ICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfZF9yZXZhbGlkYXRlICVw IFwiJS4qc1wiIChpbm9kZSAlcClcbiIsDQpAQCAtMTU4Miw5ICsxNzAwLDE1 IEBAIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkN CiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiBzdGF0aWMNCiBpbnQN CiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vs c2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpA QCAtMTcwNiw3ICsxODMwLDkgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3Ry dWN0IHBhZ2UgKnBhZ2UsDQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0K IAlpbnQgZXJyb3I7DQotCQ0KKw0KKwkodm9pZClvZmZzZXQ7DQorDQogCWRv IHsNCiAJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxl LCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJCQkgICAgICBBT1BfRkxBR19VTklO VEVSUlVQVElCTEUsDQpAQCAtMTc0Nyw2ICsxODczLDggQEAgbm5wZnNfcmVh ZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFn ZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KKwko dm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3Bh Z2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VSUihiYWNr cGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0K QEAgLTE4OTMsMTIgKzIwMjEsMTggQEAgbm5wZnNfcHJlcGFyZV93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAkJbW9kc2l6ZSA9IG5ucGZzX2Jsb2Nr c2l6ZTsNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVhZChpbm9kZSkp IHsNCi0JCWludCBlcnJvcjsNCisJCWludCBlcnJvcj0wOw0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApKQ0KIAkJ ZXJyb3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisjZWxzZQ0K KwkJaWYoIWlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpKSB7DQor CQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorCQl9DQor I2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3By ZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAg ICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90 IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVj dCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTk5MywxMCArMjEyNywxOCBAQCBu bnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQog CS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlk IGEgc2hvcnQgY29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkp DQogCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIw KTsNCisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdl KTsNCisjZW5kaWYNCiAJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQs IDAsIGxlbiAtIGNvcGllZCk7DQogCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdl KTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKSkNCiAJCWt1bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsN CisjZWxzZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7DQorI2VuZGlmDQog CX0NCiANCiAJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20s IGZyb20gKyBjb3BpZWQpOw0KQEAgLTIwMjcsOCArMjE2OSwxMyBAQCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQog DQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlv bnMgPSB7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE2LDApKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs NyArMjE4OCwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiAoTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKSkNCiAgICAgLnJlYWRkaXIJ PSBubnBmc19yZWFkZGlyLA0KKyNlbHNlDQorICAgIC5pdGVyYXRlICAgID0g bm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNoCT0gbm5wZnNf Zmx1c2gsDQogfTsNCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt Y3ZzL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhLWZvci1saW51eC0z LjE4L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25u cGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAw MDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMv bGludXgvbm5wZnNfbG9hZC5jCTIwMTYtMDEtMTAgMjA6MzM6MTYuMDYyOTAx OTU3ICswMTAwDQpAQCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0cnVjdCBm aWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBmaWxlX3N5 c3RlbV90eXBlIG5ucGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5hbWU6ICAg ICAgICAgICAibm5wZnMiLA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiAgICAgICAgZ2V0X3NiOiAgICAg ICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAg ICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6 ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAg ICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZm LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJs YS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMN Ci0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAx MC0wOC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZv ci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2 LTAxLTExIDIwOjQ4OjE4Ljc3MDQwMzcxNSArMDEwMA0KQEAgLTU1LDkgKzU1 LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRl bnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJu bnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KICAgICBz cGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCiAgICAgZGdldF9sb2NrZWQoZGVu dHJ5KTsNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz ZQ0KKyAgICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisgICAgZGdl dF9kbG9jayhkZW50cnkpOw0KKyAgICBzcGluX3VubG9jaygmZGVudHJ5LT5k X2xvY2spOw0KKyNlbmRpZg0KICAgICBkX2Ryb3AoZGVudHJ5KTsNCiAgICAg ZHB1dChkZW50cnkpOw0KIH0NCkBAIC0xMjEsOCArMTI3LDE0IEBAIG5ucGZz X21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgc3Ry dWN0IGlub2RlICpkaSwgKmlub2RlOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpw YXJlbnQgPSBOVUxMOw0KICAgICBzdHJ1Y3QgcXN0ciBzcXN0cjsNCisjaWYg KExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkN CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQotICAgIA0KKyNlbHNl DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDksMCkpDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5k aWYNCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KICAgICBlcnJv ciA9IG5ucGZzX25vZGVfZmluZChubnBmc3AsICZtZXNzYWdlLT5wYXJlbnRf aGFuZGxlLCAmZHApOw0KQEAgLTE3NiwxMiArMTg4LDI2IEBAIG5ucGZzX21l c3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAg ICAgICovDQogICAgIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApKQ0KICAgICBhbGlhcyA9IGRpLT5pX2RlbnRy eS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmRpLT5pX2RlbnRyeSkg ew0KIAlwYXJlbnQgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5 LCBkX2FsaWFzKTsNCi0Jc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQotCWRn ZXRfbG9ja2VkKHBhcmVudCk7DQotCXNwaW5fdW5sb2NrKCZkY2FjaGVfbG9j ayk7DQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsOSwwKSkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko cGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNl bHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5p X2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKyNlbmRpZg0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkN CisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9j a2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQor ICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBh cmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAo cGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgi bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAl cFxuIiwNCkBAIC0yMzMsNyArMjU5LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0K IAlkZW50cnkgPSBOVUxMOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0 Ow0KKyNlbmRpZg0KIAlkcHV0KHBhcmVudCk7DQogICAgIH0NCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlOiBk b25lIGluc3RhbGxpbmdcbiIpKTsNCkBAIC0yNjgsNyArMjk2LDExIEBAIG5u cGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIoc3RydWN0IG5ucGZzICoNCiAgICAg fQ0KIA0KICAgICBpbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKHQpOw0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0K ICAgICBkZW50cnkgPSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0 LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50 cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVj dCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyIG5h bWU6JXNcbiIsDQogCQkgICAgICAgZGVudHJ5LT5kX25hbWUubmFtZSkpOw0K QEAgLTM5NiwxNyArNDI4LDM4IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGRh dGEoc3RydWN0IG5ucGZzICoNCiBzdGF0aWMgdm9pZA0KIGNsZWFyX2FsbF9j aGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHBhcmVudCkNCiB7 DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiAgICAgc3Ry dWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2Vsc2UNCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKSkNCisgICAgc3Ry dWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KKyNlbmRpZg0KIA0K ICBhZ2FpbjoNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOCkpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2sp Ow0KKyNlbHNlDQorICAgIC8qIFRPRE86IGZpbmQgdGhlIGRlbnRyeSB0byBs b2NrICovDQorICAgIC8qc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8N CisjZW5kaWYNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKSkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnku bmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkp IHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbHNlDQorI2lmIChM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkpDQor ICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9k ZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp YXMpIHsNCisjZW5kaWYNCisjZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAq c3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJ DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkpDQogCWRlbnRyeSA9IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBk ZW50cnksIGRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAoZGVudHJ5ID09IE5V TEwpIHsNCiAJICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzog ZGVudHJ5IGluIGFsaWFzIGxpc3QgaXMgbnVsbFxuIik7DQogCSAgICBicmVh azsNCkBAIC00NDIsMTQgKzQ5NSwyNiBAQCBjbGVhcl9hbGxfY2hpbGRyZW4g KHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogDQogCSAgICAvKiBUaHJvdyBpbW1l ZGlhdGVseSAqLw0KIAkgICAgaWYgKG5ucGZzX2Rjb3VudChjaGlsZCkgPT0g MCkgew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM4KSkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xv Y2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAq Lw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2Vu ZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3RvIGFnYWlu Ow0KIAkgICAgfQ0KIAl9DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkpDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7 DQorI2VuZGlmDQogICAgIH0NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQogICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogdW5sb2NrIHRo ZSBkZW50cnkgKi8NCisgICAgLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xv Y2spOyovDQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNzI0 LDcgKzc4OSwxMSBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5u cGZzICpubnBmDQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2Ut PmJsb2Nrc2l6ZTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogCWVycm9yID0gcGF0aF9sb29rdXAo Ii4iLCAwLCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIu IiwgMCwgJm5kLnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJ ICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4u DQpAQCAtNzM4LDcgKzgwNyw2IEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihz dHJ1Y3Qgbm5wZnMgKm5ucGYNCiAJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0g bW50Z2V0KG5kLnBhdGgubW50KTsNCiAJICAgIG5ucGZzcC0+Y2FjaGVkaXIg PSBkZ2V0KG5kLnBhdGguZGVudHJ5KTsNCiAJICAgIHBhdGhfcHV0KCZuZC5w YXRoKTsNCi0JICAgIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJy ZW50LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNn aWQ7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s aW51eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9s aW51eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9u bnBmc19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAx MDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZz X25vZGUuYwkyMDE2LTAxLTEyIDE5OjM1OjIxLjcxNDA4MzExMCArMDEwMA0K QEAgLTEzMiw3ICsxMzIsMTMgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5v ZGUgKmlub2RlLCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRy dW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25n IGxvbmcpc2l6ZSk7DQogI2VuZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkpDQogCXZtdHJ1bmNhdGUoaW5v ZGUsIHNpemUpOyAvKiBYWFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlu b2RlX25ld3NpemVfb2soaW5vZGUsIHNpemUpKSB7DQorCSAgICB0cnVuY2F0 ZV9zZXRzaXplKGlub2RlLCBzaXplKTsNCisJfQ0KKyNlbmRpZg0KIAlubnBm c19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAt MTUwLDkgKzE1NiwxOCBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVj dCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07 DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lmIChMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KIAlpbm9kZS0+ aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9naWQgICAgPSAwOw0KKyNlbHNl DQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURUX0lOSVQoMCk7DQorCWlub2Rl LT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7DQorI2VuZGlmDQorI2lmIChM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkpDQog CWlub2RlLT5pX25saW5rICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlu b2RlLCAxKTsNCisjZW5kaWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1l Ow0KIAlpbm9kZS0+aV9tdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0 aW1lICA9IG5vdGltZTsNCkBAIC0xNjksNyArMTg0LDExIEBAIG5ucGZzX2F0 dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhB X1ZBTElEX0dJRChhdHRyKSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+ eGFfZ2lkOw0KICAgICBpZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkp DQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25saW5rOw0KKyNlbHNl DQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0KKyNlbmRp Zg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikpIHsNCiAJ bm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpAQCAtNTEw LDExICs1MjksMTkgQEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5w ZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlu b2RlICppbm9kZSkNCiB7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIHN0cnVjdCBsaXN0X2hlYWQg KnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqcG9zOw0K KyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAgICANCiAgICAgLyog WFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3RlY3RlZCBzb21laG93 ICovDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkpDQogICAgIGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlf ZGVudHJ5KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2gocG9zLCAm aW5vZGUtPmlfZGVudHJ5KSB7DQorI2VuZGlmDQogCXN0cnVjdCBkZW50cnkg KmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBkX2Fs aWFzKTsNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkNCiAJICAg IHVzZXJzKys7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9u bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEtZm9yLWxpbnV4LTMu MTgvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYw0KLS0tIGFybGEtY3Zz L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0wOC0wOCAyMjo0 MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4 L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMS0xMiAyMjow NDowNy4zMDIzODAyNTggKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2lu Y2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5u cGZzL25ucGZzX2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+ DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzkpKQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRp Zg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgv cHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUg PGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApKQ0KKyN1bmRl ZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJf Ym91bmQnIGRvZXMgbm90IHdvcmsgb24gbGF0ZXIga2VybmVscywgc2Ugbm5w ZnNfc3lzY2FsbHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDAN CiAjaWZkZWYgQ09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0 bDMyLmg+DQpAQCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFm c3Byb2NkYXRhIHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0g YWZzcHJvY2RhdGE7DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzYpKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19w cm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg KmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZyk7DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19p b2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBj bWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMg c3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsN CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwzNikpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj ZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9j dGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNTgsMTAgKzE3NSwxNCBA QCBubnBmc19nZXRfcGFnX3NlYyh2b2lkKQ0KICAgICBpZiAocGFnKQ0KIAly ZXR1cm4gcGFnOw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkpDQogICAgIHJldHVybiBjdXJy ZW50LT51aWQ7DQogI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogICAgIHJldHVybiBjdXJyZW50 X3VpZCgpOw0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50 X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiAjZW5kaWYN CiB9DQogDQpAQCAtMTk5LDcgKzIyMCwxMiBAQCBmaW5kX3BhZyhzdHJ1Y3Qg Z3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgiZmlu ZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5ncm91cHMpKTsNCiANCiAg ICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBpID49IDA7IGktLSkgew0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NCwwKSkNCiAJZ2lkX3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vs c2UNCisJa2dpZF90IGtncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lk X3QgZ3JvdXAgPSBrZ3JvdXAudmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZz X3BhZ190KWdyb3VwID49IE5OUEZTX1BBR19MTElNICYmIChubnBmc19wYWdf dClncm91cCA8IE5OUEZTX1BBR19VTElNKSB7DQogCSAgICBOTlBGU0RFQihY REVCU1lTLA0KIAkJICAgICAoImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUg YXQgcG9zICV1XG4iLCBncm91cCwgaSkpOw0KQEAgLTIxNSwxMiArMjQxLDE3 IEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiBzdGF0aWMg bm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogew0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1 cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1 cnJlbnQtPnVpZDsNCiAjZWxzZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq Z2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogICAgIG5ucGZz X3BhZ190IHJldCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAga3Vp ZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOw0KKyAgICBubnBmc19wYWdfdCBy ZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYNCiAjZW5kaWYNCiAgICAgaW50IGk7 DQogDQpAQCAtMjMwLDcgKzI2MSwxMSBAQCBubnBmc19nZXRfcGFnX2dyb3Vw KHZvaWQpDQogDQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChp ICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCisjaWYgKExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogCXJldCA9IEdST1VQ X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBf QVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAg ICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjgwLDExICszMTUsMTgg QEAgc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0g TkdST1VQU19QRVJfQkxPQ0s7DQogICAgIH0NCiANCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogICAgIGlm IChmb3VuZCkNCiAJR1JPVVBfQVQobmV3X2dpLCBpKSA9IHBhZ251bTsNCiAg ICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAt IDEpID0gcGFnbnVtOw0KLSAgICANCisjZWxzZQ0KKyAgICBpZiAoZm91bmQp DQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQ X0FUKG5ld19naSwgaSkgPSBrZ2lkOyB9DQorICAgIGVsc2UNCisJeyBrZ2lk X3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dp LCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5kaWYNCisg ICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsNCiAgICAg cHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCiAgICAgcHV0X2dyb3VwX2luZm8o b2xkX2dpKTsNCkBAIC0zMjMsMTAgKzM2NSwxNCBAQCBubnBmc19nZXRfcGFn KCkNCiAgICAgcmV0dXJuIG5ucGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5k aWYgLyogR1JPVVBQQUdTICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorI2lmIChMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KSkNCiAgICAgcmV0 dXJuIGN1cnJlbnQtPnVpZDsNCiAjZWxzZQ0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKSkNCiAgICAgcmV0dXJu IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9 IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0K ICNlbmRpZg0KIH0NCiANCkBAIC00MzIsNyArNDc4LDcgQEAgbm5wZnNfc2V0 Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBT WVNDQUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1z dHJ1Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRs ZSB7DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7 DQogICAgIF9fdTMyIGdlbjsNCkBAIC01MjIsMTEgKzU2OCwxOSBAQCBubnBm c19kZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiBzdGF0aWMg c3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5h bWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCiB7 DQotICAgIGNoYXIgKmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAg ICBpbnQgZXJyb3IgPSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVz ZXJfcGF0aCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDcsMCkpDQorICAgIGNoYXIgKmtuYW1lOw0KKyAgICBrbmFt ZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisjZWxzZQ0KKyAgICBjb25zdCBj aGFyICprbmFtZTsNCisgICAgc3RydWN0IGZpbGVuYW1lICpmbmFtZTsNCisg ICAgZm5hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQorICAgIGtuYW1lID0g Zm5hbWUtPm5hbWU7DQorI2VuZGlmDQorDQogICAgIGlmIChJU19FUlIoa25h bWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7DQogICAg IGlmIChmb2xsb3cpDQpAQCAtNTM0LDggKzU4OCwxNiBAQCB1c2VyX3BhdGgy ZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiANCiAgICAgTk5QRlNE RUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xu Iiwga25hbWUpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgIGVycm9yID0gcGF0aF9sb29r dXAoa25hbWUsIGZsYWdzLCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBr ZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2VuZGlm DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDcsMCkpDQogICAgIHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGtt ZW1fY2FjaGVfZnJlZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0K KyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVy cm9yKTsNCiAgICAgcmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCkBAIC01NTks NyArNjIxLDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAg ICBpZiAobXNnID09IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07DQog DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzkpKQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8q IFRPRE86IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRk aW5nIGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBG U0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0K IA0KQEAgLTY5OSw3ICs3NjUsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVy YXRpb24sDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBr ZXJuZWwgdW5sb2NrXG4iKSk7DQogICAgIGtmcmVlKG1zZyk7DQorI2lmIChM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0K ICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzog c2VlIHRoZSBjb21tZW50IGF0IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8NCisj ZW5kaWYNCiANCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC03NDgsOSAr ODE4LDE1IEBAIHN5c19hZnMgKGludCBvcGVyYXRpb24sDQogCQkgICAgICAg YV9mb2xsb3dTeW1saW5rcyk7DQogfQ0KIA0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiBzdGF0aWMgaW50 DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5z aWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZz X3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2ln bmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsN CiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAt ODA3LDcgKzg4MywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2Zz KHZvaWQpDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVyID0gVEhJU19N T0RVTEU7DQogI2VuZGlmDQogICAgIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKSkNCiAgICAgZW50cnkgPSBj cmVhdGVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUsIDA2NjYsIG5ucGZz X3Byb2Nmc19kaXIpOw0KKyNlbHNlDQorICAgIGVudHJ5ID0gcHJvY19jcmVh dGUoTk5QRlNfUFJPQ19OT0RFLCAwLCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2Zv cHMpOw0KKyNlbmRpZg0KICAgICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlO TlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2Rl XG4iKSk7DQogCXJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0Nf RElSLCBOVUxMKTsNCkBAIC04MTcsNyArODk3LDkgQEAgc3RhdGljIGludCBu bnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIGVudHJ5LT5vd25l ciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKSkNCiAgICAgZW50cnkt PnByb2NfZm9wcyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiAN CiAjaWZkZWYgU1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9j dGwzMl9jb252ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3By b2Nmc19pb2N0bDMyKSkgew0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJs YS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jIGFy bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMt bG9zc2FnZS5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lz Y2FsbHMtbG9zc2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAw ICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9u bnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMiAxMzozNzowNS42 NTczNjc0NzEgKzAxMDANCkBAIC01MCw4ICs1MCwxNyBAQA0KIFJDU0lEKCIk SWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8w OCAyMDo0MzowNSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkpDQor LyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qg d29yayBvbiBsYXRlciBrZXJuZWxzICovDQorI3VuZGVmIFNZU0NBTExIQUNL DQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQor I2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDcsMCkpDQogc3RhdGljIHZvaWQgKmxvd2Vy X2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQog DQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJs ZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lz X2NhbGxfdGFibGUgPQ0KQEAgLTY2LDYgKzc1LDggQEAgY29uc3QgY2hhciAq IF9fYXR0cmlidXRlX18oKHdlYWspKQ0KICNpZmRlZiBfX3g4Nl82NF9fDQog ZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygo d2VhaykpOw0KICNlbmRpZg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0 YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRl ZiBfX3g4Nl82NF9fDQpAQCAtNzQsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRk cih2b2lkKSB7DQogICAgIHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsN CiAjZW5kaWYNCiB9DQorI2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQg DQoga2FsbHN5bV9pc19lcXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0 IGNoYXIgKm5hbWUpDQpAQCAtMTQyLDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lk ICoqcCkgew0KICAgICByZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NB TExIQUNLDQorDQogc3RhdGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lk ICoqcCkNCiB7DQogICAgIGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQg fHwgKnAgPj0gKHZvaWQqKXApDQpAQCAtMTkxLDMgKzIwNSw1IEBAIG5ucGZz X2ZpeHVwX3N5c2NhbGxfbG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4g MDsNCiB9DQorDQorI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYyBhcmxhLWZvci1s aW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jDQotLS0gYXJs YS1jdnMvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAy Mjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0z LjE4L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEtMTIgMjA6 MjM6MDguNzM4MTc4NTU4ICswMTAwDQpAQCAtNTAsNyArNTAsOSBAQCBSQ1NJ RCgiJElkOiBubnBmc192ZnNvcHMuYyx2IDEuMTExIDIwMTAvDQogc3RydWN0 IG5ucGZzIG5ucGZzW05OTlBGU107DQogDQogc3RhdGljIHZvaWQgbm5wZnNf cHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KIHN0 YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9j ayAqIHNiKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRm cyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYp Ow0KIA0KQEAgLTU5LDcgKzYxLDkgQEAgc3RhdGljIHN0cnVjdCBzdXBlcl9v cGVyYXRpb25zIG5ucGZzX3NvcA0KICAgICBkZXN0cm95X2lub2RlCTogbm5w ZnNfbm9kZV9mcmVlLA0KICAgICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVs ZXRlX2lub2RlLA0KICAgICBwdXRfc3VwZXIJCTogbm5wZnNfcHV0X3N1cGVy LA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBl ciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9 Ow0KIA0KQEAgLTg2LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3Ry dWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxs eSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp KQ0KIAltc2cuY3JlZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVp ZCA9IEtVSURUX0lOSVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9 IDA7DQogCQ0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwg Jm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC0xMjEsOCArMTI5LDEz IEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAg ICAgWEFfU0VUX01PREUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0K ICAgICBYQV9TRVRfTkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFf U0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7DQorI2lmIChMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KICAgICBYQV9TRVRf VUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfR0lEKCZub2RlLmF0 dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwg S1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwg S0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAgIFhBX1NFVF9BVElNRSgm bm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01USU1FKCZub2RlLmF0dHIs IDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUuYXR0ciwgMCk7DQpAQCAt MTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5vZGU7DQogDQogICAgIC8q IFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiAoTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDApKQ0KICAgICBkcCA9IGRfYWxs b2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9v dChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQog ICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTc3 LDcgKzE5NCwxMSBAQCBubnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJf YmxvY2sgKiBzDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCiAJc3RydWN0 IG5hbWVpZGF0YSBuZDsNCiAJDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KIAllcnJvciA9IHBhdGhfbG9v a3VwKGRhdGEsIDAsICZuZCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3Bh dGgoZGF0YSwgMCwgJm5kLnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3Ip DQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVsc2UNCkBAIC0y MjUsNiArMjQ2LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVy X2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIChMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KIGlu dA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNf dHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1l LA0KQEAgLTIzMiwxMiArMjU0LDIzIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3Qg ZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAgIHJldHVybiBnZXRfc2Jf bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIs IG1udCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19t b3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAg ICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZv aWQgKmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5 cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCit9DQorI2Vu ZGlmDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkpDQogc3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2Rp cnQgPSAwOw0KIH0NCisjZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlz IGdvb2Q/IA0K ---276651502-1479828704-1452650465=:13035 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-1479828704-1452650465=:13035--