PATCH: Arla 0.90 on Linux 2.6.34 to 3.5
Bo Branten <[email protected]> Mon, 11 Jan 2016 03:19:26 +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-1678162708-1452478766=:17625 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Hello, I have done some work to update arla for Linux, the changes in the kernel are so big that it must be done stepwise so to begin with I try on Ubuntu 12.04 LTS and I have created an patch for the kernels 2.6.34 (witch is were we stopped working in 2010!) to 3.5. (Note that if you try arla on Linux use arlad from the 0.90 distribution and the latest nnpfs) Bo Branten ---276651502-1678162708-1452478766=:17625 Content-Type: TEXT/plain; name=patch-arla-0.90-for-linux-3.5.txt Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-3.5.txt ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzL25ubnBmcy5oIGFybGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51 eC9ubnBmcy9ubm5wZnMuaA0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9u bnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCAr MDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBm cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6 IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291 cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkw L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1saW51 eC0zLjUvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0gYXJs YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDA3LTAx LTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxp bnV4LTMuNS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMCAyMDozOTo0My43NjY5MjA4MTcgKzAxMDANCkBAIC0zNCw3ICszNCw3 IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0 cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiAj aW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVk ZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYg QEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0 Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiBp bnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZz X3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFt ZSwNCiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7 DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9z YiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAg IGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEp Ow0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVf c3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25z dCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKTsNCiAjZW5k aWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZz X2RlbnRyeV9vcGVyYXRpb25zOw0KQEAgLTIwMCwxNiArMjAzLDI5IEBAIG5u cGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhl bHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9y dGFibGUgd2F5DQogICovDQogDQorLyojaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpKi8NCiBzdGF0aWMgaW5saW5l IGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVu dHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rj b3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM4KSkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291 bnQpOw0KKyNlbHNlDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyAgICAvKiBUT0RPOiB0 aGUgbWV0aG9kIGJlbG93IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYSBjb25z dCBkZW50cnkgYXJndW1lbnQgKi8NCisgICAgLyppbnQgcnZhbDsNCisgICAg c3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIHJ2YWwgPSBkZW50 cnktPmRfY291bnQ7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9j ayk7DQorICAgIHJldHVybiBydmFsOyovDQorI2VuZGlmDQogfQ0KIA0KIGV4 dGVybiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwxOCkNCiBjb25zdA0KLSNlbmRpZg0KIHN0cnVjdCBhZGRyZXNz X3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wczsNCiANCiAjaWZuZGVmIGxp c3RfZm9yX2VhY2gNCkBAIC0yMzcsNyArMjUzLDEyIEBAIG5ucGZzX2ZpeHVw X3N5c2NhbGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5l IG5ucGZzX2Rldl90IGRldl90DQorDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KICNkZWZpbmUgbm5wZnNf ZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF91bmhhc2hlZChkKQ0KKyNlbHNl DQorI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X2Js X3VuaGFzaGVkKGQpDQorI2VuZGlmDQogDQogI2RlZmluZSBOTlBGU19OT09Q ICAgICAgd2hpbGUoMCl7fQ0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaCBhcmxh LWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5o DQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUu aAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy bGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2Rl LmgJMjAxMC0wOC0wOCAyMjo0MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01 NCw3ICs1NCw3IEBAIGV4dGVybiB1aW50MzJfdCBubnBmc19ibG9ja3NpemVi aXRzOw0KICAqIGZsYWdzLg0KICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9E RV9JUFVUCTB4MDAwMTAwMDAgICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZv aWQgZGVhZGxvY2sgKi8NCisjZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAw MDEwMDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2Nr LiBDYW4gYmUgcmVtb3ZlZD8gKi8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpF IDEwMDkNCiAjZGVmaW5lIFhOX0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11 cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf YmxvY2tzLmMgYXJsYS1mb3ItbGludXgtMy41L25ucGZzL2xpbnV4L25ucGZz X2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Js b2Nrcy5jCTIwMDctMDEtMDggMTQ6MjQ6MjQuMDAwMDAwMDAwICswMTAwDQor KysgYXJsYS1mb3ItbGludXgtMy41L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nr cy5jCTIwMTYtMDEtMTEgMDA6MTg6NTkuMjY3NTYwNzYyICswMTAwDQpAQCAt MzQsNyArMzQsNyBAQA0KICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF Lg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tzLmMsdiAxLjMgMjAw Ny8wMS8wOCAxMzoyNDoyNCB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZz X2Jsb2Nrcy5jLHYgMS42IDIwMTAvMDgvMDggMjA6NDM6MDQgdG9sIEV4cCAk ICovDQogDQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2xvY2wuaD4NCiAjaW5j bHVkZSA8bm5wZnMvbm5wZnNfZnMuaD4NCkBAIC0zMjIsNiArMzIyLDEzIEBA IG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAg ICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qgc2F2ZWdpZDsNCiAgICAg aW50IHJldDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsNiwyOSkNCisgICAgY29uc3Qgc3RydWN0IGNyZWQgKm9sZF9j cmVkOw0KKyAgICBzdHJ1Y3QgY3JlZCAqb3ZlcnJpZGVfY3JlZDsNCisjZW5k aWYNCisNCisgICAgKHZvaWQpc2F2ZXVpZDsNCisgICAgKHZvaWQpc2F2ZWdp ZDsNCiANCiAgICAgQlVHX09OKCFubnBmc3ApOw0KICAgICBCVUdfT04oZmxh Z3MgJiBPX0NSRUFUICYmIGZpbGUgIT0gTlVMTCk7DQpAQCAtMzQ2LDIyICsz NTMsMzQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAq bm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZz cC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0 cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzYXZldWlk ID0gY3VycmVudC0+ZnN1aWQ7DQogICAgIHNhdmVnaWQgPSBjdXJyZW50LT5m c2dpZDsNCiAgICAgY3VycmVudC0+ZnN1aWQgPSBubnBmc3AtPnVpZDsNCiAg ICAgY3VycmVudC0+ZnNnaWQgPSBubnBmc3AtPmdpZDsNCi0NCi0gICAgbmQu ZGVudHJ5ID0gZGdldChubnBmc3AtPmNhY2hlZGlyKTsNCi0gICAgbmQubW50 ID0gbW50Z2V0KG5ucGZzcC0+Y2FjaGVyb290KTsNCi0gICAgbmQubGFzdF90 eXBlID0gTEFTVF9OT1JNOw0KLSAgICBuZC5kZXB0aCA9IDA7DQotICAgIG5k LmZsYWdzID0gMDsNCi0gICAgDQotICAgIGlmIChmbGFncyAmIE9fQ1JFQVQp DQotCW5kLmZsYWdzID0gTE9PS1VQX1BBUkVOVDsNCi0gICAgDQotICAgIHJl dCA9IHBhdGhfd2FsayhjYWNoZW5hbWUsICZuZCk7DQotICAgIGlmIChyZXQp IHsNCisjZWxzZQ0KKyAgICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0K KyAgICBzYXZlZ2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlk ZV9jcmVkID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVf Y3JlZCA9PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAg IG92ZXJyaWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92 ZXJyaWRlX2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9j cmVkID0gb3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlm DQorDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDEsMCkpDQorICAgIHJldCA9IHZmc19wYXRoX2xvb2t1cChubnBmc3At PmNhY2hlZGlyLCBubnBmc3AtPmNhY2hlcm9vdCwNCisJCQkgIGNhY2hlbmFt ZSwNCisJCQkgIGZsYWdzICYgT19DUkVBVCA/IExPT0tVUF9QQVJFTlQgOiAw LA0KKwkJCSAgJm5kKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9s b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L VVBfUEFSRU5UIDogMCwNCisJCQkgICZuZC5wYXRoKTsNCisjZW5kaWYNCisg ICAgIGlmIChyZXQpIHsNCiAJdWludDMyX3Qgbm1hc2tzID0gbm9kZS0+ZGF0 YS5ubWFza3M7DQogCXVpbnQzMl90IG1hc2s7DQogDQpAQCAtMzg3LDE2ICs0 MDYsMjEgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAq bm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdzICYgT19DUkVBVCkgew0KIAkv KiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAtLSBTX0lSVVNSfFNfSVdVU1Ig Ki8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMSwwKSkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2Ny ZWF0ZSgmbmQsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUg Y2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCkgKi8NCisJc3RydWN0IGRlbnRy eSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwg Jm5kLnBhdGgsIDApOwkNCisjZW5kaWYNCiAJaWYgKElTX0VSUihkZW50cnkp KSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRlbnRyeSk7DQogCX0gZWxzZSB7 DQotCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLmRlbnRyeS0+ZF9pbm9kZSwg ZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsICZuZCk7DQorCSAgICByZXQgPSB2 ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNf SVJVU1J8U19JV1VTUiwgJm5kKTsNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJ fQ0KIA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9t dXRleCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKwltdXRleF91bmxvY2so Jm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJcGF0aF9w dXQoJm5kLnBhdGgpOw0KIA0KIAlpZiAocmV0KSB7DQogCSAgICBwcmludGso Im5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0ZSBmYWlsZWQ6ICVkXG4iLCBj YWNoZW5hbWUsIC1yZXQpOw0KQEAgLTQxMCwxMiArNDM0LDE2IEBAIG5ucGZz X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAJICAgIHJl dCA9IG5ucGZzX2Jsb2NrX2V4dGVuZChub2RlLCBvZmZzZXQpOw0KIAl9DQog ICAgIH0gZWxzZSB7DQotCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4o bmQuZGVudHJ5LCBuZC5tbnQsIGZsYWdzKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKwlzdHJ1Y3QgZmls ZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1u dCwgZmxhZ3MpOw0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9 IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxh Z3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElTX0VSUihm KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHByaW50aygi bm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4iLCBjYWNo ZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygpOw0KLQkg ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0 aCk7DQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00 MjQsOCArNDUyLDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZz X25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxs eSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg Y3VycmVudC0+ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50LT5mc2dp ZCA9IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRzKG9sZF9j cmVkKTsNCisgICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlm DQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiAtWG5vZGlm Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEt Zm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4 OjMzOjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMu NS9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTEwIDE2OjUxOjI1 LjQ2MjI1NDQ2OCArMDEwMA0KQEAgLTMwMCw4ICszMDAsMTAgQEAgbm5wZnNf aW52YWxpZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBG U0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGlu Z1xuIikpOw0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7 DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzcpKQ0KICAgICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0K LSAgICANCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgi ZnJlZV9hbGxfbm5wZnNfbm9kZXMgZG9uZVxuIikpOw0KIH0NCiANCkBAIC01 MDUsMTIgKzUwNywyMyBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgY29uc3QNCiAvKg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkN CiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBs b25nDQorbm5wZnNfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj ZW5kaWYNCiB7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzYpKQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJICAg ICAgIGlub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0K KyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9 ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5 LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYN CiAgICAgcmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5NjYs MTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0K ICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBm c19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYp KQ0KICAgICBpb2N0bDoJCW5ucGZzX2RldmlvY3RsLA0KKyNlbHNlDQorICAg IHVubG9ja2VkX2lvY3RsOglubnBmc19kZXZpb2N0bCwNCisjZW5kaWYNCiAg ICAgcmVsZWFzZToJCW5ucGZzX2RldmNsb3NlLA0KICAgICBvcGVuOgkJbm5w ZnNfZGV2b3BlbiwNCiB9Ow0KQEAgLTk2OCw4ICs5ODUsMTYgQEAgbm5wZnNf aW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmKG5u cGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ld Lm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ldLnNsZWVwcSk7 DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzcpKQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0p Ow0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVfc2Vt LCAxKTsNCisjZW5kaWYNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzNykpDQogCWluaXRfTVVURVgoJm5ucGZzW2ld LmNoYW5uZWxfc2VtKTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ld LmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQo Jm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMg PSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAu OTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51 eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEt MC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMDYtMTItMTEg MTc6MzU6MjYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgt My41L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxNi0wMS0xMSAw MTozODoyMi4zMTU3OTI0NTkgKzAxMDANCkBAIC00OCw3ICs0OCw3IEBADQog I2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJD U0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzEx IDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lu b2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAg JCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCkBAIC01Nyw4ICs1Nywx NSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50 DQogc3RhdGljIGludA0KIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKTsNCiANCi1zdGF0 aWMgaW50DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzgpKQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRl KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitp bnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxl YXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1LDcgKzExMiw3 IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICoN CiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBu bnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9IGZpbGVtYXBf bm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBfZmF1bHQsDQog ICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0KIA0KQEAgLTEz NCwxMiArMTQxLDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3RydWN0IGRlbnRy eSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2b2lkDQogbm5w ZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBob3JlICpzZW0p DQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2NrOiAlcyBzZW06 ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwgKGludClhdG9t aWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlmDQogDQogLyoN CiAgKg0KQEAgLTE4NSw3ICsxOTQsNyBAQCBubnBmc19kX2lwdXQoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVwLCBpbm9kZSAl cFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAgaWYgKG5vZGUt PmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZyAqLw0K KyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQpIC8qIFhY WCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2lyZWxlKGlub2Rl KTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0yNDAsNyArMjQ5 LDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj dA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVROT0RF Ow0KICAgICAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO RUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0 X3BhZygpOw0KIAltc2cucGFyZW50X2hhbmRsZSA9IGQtPmhhbmRsZTsNCiAg ICAgICAgIA0KQEAgLTMxMCw3ICszMjMsMTEgQEAgbm5wZnNfb3Blbl92YWxp ZChzdHJ1Y3QgaW5vZGUgKnZwLCB1X2ludA0KICAgICAgIHsNCiAJc3RydWN0 IG5ucGZzX21lc3NhZ2Vfb3BlbiBtc2c7DQogCW1zZy5oZWFkZXIub3Bjb2Rl ID0gTk5QRlNfTVNHX09QRU47DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1 cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0g Y3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJ bXNnLnRva2VucyA9IHRvazsNCkBAIC00MjUsNyArNDQyLDExIEBAIG5ucGZz X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiANCiAJbXNn LmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUREFUQTsNCiAJbXNnLmNy ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51 aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5oYW5kbGUg PSB4bi0+aGFuZGxlOw0KIAltc2cuZmxhZyAgID0gZmxhZzsNCiAJbXNnLm9m ZnNldCA9IG9mZjsNCkBAIC00NjAsMTQgKzQ4MSwyNyBAQCBubnBmc19mc3lu Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQogICoNCiAgKi8NCiAN CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwzNSkpDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRhc3luYykN CisjZWxzZWlmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDEsMCkpDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBm aWxlICpmaWxlLCBpbnQgZGF0YXN5bmMpDQorI2Vsc2UNCitzdGF0aWMgaW50 DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFy dCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeW5jKQ0KKyNlbmRpZg0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsIDYs IDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxlLT5mX3Bh dGguZGVudHJ5Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIHN0cnVjdCBubnBm cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlm IChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTUxMSw3ICs1NDUsMTEg QEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0K ICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNn Ow0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf TVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO RUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlk ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNy ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAg ICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRs ZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19t ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7 DQpAQCAtNTUxLDcgKzU4OSwxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3Ry dWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIsMTEgKzYzNCwyNiBAQCBj aGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQogICog V2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KIHN0 YXRpYyBpbnQNCi1ubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCitubnBmc19w ZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlKQ0KKyNl bHNlDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBmbGFncykNCisj ZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQotICAgIG5ucGZzX3Bh Z190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisgICAgbm5wZnNfcGFnX3Qg cGFnOw0KKyAgICAvKiBUT0RPOiB2ZXJpZnkgdGhpcyAqLw0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgJiYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0K KyAgICBpZiAoZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJl dHVybiAtRUNISUxEOw0KKyNlbHNlDQorICAgIGlmIChtb2RlICYgTUFZX05P VF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbmRpZg0K Kw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIA0KICAgICBO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNjZXNzICglcCkgbW9kZSA9 IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7DQogICAgIG5ucGZzX3By aW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTYzNiw3ICs2OTMsMTEgQEAgbm5w ZnNfZG9fZ2V0ZGF0YShzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4sDQogICAgIGlu dCBlcnJvcjsNCiANCiAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N U0dfR0VUREFUQTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf dWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl dF9wYWcoKTsNCiAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAg IG1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNzkxLDE4ICs4NTIsMTIgQEAgaW50 IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogDQogc3Rh dGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigyLDYsMTkpDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwg dW5zaWduZWQgbG9uZyBucl9zZWdzLA0KLSNlbHNlDQotCSAgICAgICBjaGFy IF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsDQotI2VuZGlmDQogCSAgICAg ICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg c3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KICAg ICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCi0jZW5kaWYNCiAg ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQogICAgIA0KQEAgLTgxNiwxMSArODcxLDcgQEAgbm5w ZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4gZXJy b3I7DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogICAgIGVycm9yID0gZ2VuZXJp Y19maWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCi0j ZWxzZQ0KLSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2Ni LCBidWYsIGNvdW50LCBwb3MpOw0KLSNlbmRpZg0KICAgICBOTlBGU0RFQihY REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBl cnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTgzMSwxOCAr ODgyLDEyIEBAIG5ucGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwN CiANCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMTkpDQogCQljb25zdCBzdHJ1Y3QgaW92ZWMgKmlv diwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KLSNlbHNlDQotCQljb25zdCBj aGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0KLSNlbmRpZg0KIAkJ bG9mZl90IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0 cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhf VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAgICAg c3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQotI2VuZGlmDQogICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5P REUoaW5vZGUpOw0KICAgICBsb2ZmX3QgcmVhbHBvcyA9IHBvczsNCkBAIC04 NTksMTEgKzkwNCw3IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KICAg ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBu cl9zZWdzLCBwb3MpOw0KLSNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19m aWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KLSNlbmRp Zg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFn cyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KIA0KQEAg LTg3MSw5ICs5MTIsMTUgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9j YiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKSkNCiBz dGF0aWMgaW50DQogbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBz dHJ1Y3QgZGVudHJ5ICpkZW50cnksDQogCSAgICAgaW50IG1vZGUsIHN0cnVj dCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZz X2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAq bmQpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsN CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTkwMyw5ICs5NTAs MTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg ZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9E RSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0 dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgm bXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9T RVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYN CiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1z Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cu Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cu Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z ZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTAwMSwx MSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0 DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5u YW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJ cmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51 aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5w YWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K ICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTA1MCwxMSBAQCBu bnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAg IGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1l Lm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFN RSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNn LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNn LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5u cGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZiht c2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMDcx LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwg c3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKSkNCiBzdGF0aWMg aW50DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAg ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25v ZGUgKnhuOw0KQEAgLTEwNDAsOSArMTEwOCwxNyBAQCBubnBmc19ta2Rpcihz dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cu YXR0cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhB X1NFVF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K IAlYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNl bHNlDQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9m c2dpZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0g Y3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQg PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBu bnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJy b3IgPT0gMCkNCkBAIC0xMDgzLDcgKzExNTksMTEgQEAgbm5wZnNfcm1kaXIo c3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50 X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5u YW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+ PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05H Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o Miw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor I2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj ZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o ZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpA QCAtMTEyOCw3ICsxMjA4LDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhz dHJ1Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5h bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkg ICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVk LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNy ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQu cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJ aWYgKGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTI0MSw0NyBAQCBzdGF0 aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogICAgIHhu ID0gVk5PREVfVE9fWE5PREUoZGlyKTsNCiANCiAgICAgew0KLQlzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9zeW1saW5rIG1zZzsNCisJc3RydWN0IG5ucGZzX21l c3NhZ2Vfc3ltbGluayAqbXNnID0gTlVMTDsNCiANCi0JbXNnLmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfU1lNTElOSzsNCi0JbXNnLnBhcmVudF9oYW5k bGUgPSB4bi0+aGFuZGxlOw0KLQlpZiAoc3RybGNweShtc2cubmFtZSwgbmFt ZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQotCSAg ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JaWYgKHN0cmxjcHkobXNnLmNv bnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLmNvbnRlbnRzKSkgPj0gTk5Q RlNfTUFYX1NZTUxJTktfQ09OVEVOVCkNCi0JICAgIHJldHVybiAtRU5BTUVU T09MT05HOw0KLQlYQV9DTEVBUigmbXNnLmF0dHIpOw0KLQlYQV9TRVRfTU9E RSgmbXNnLmF0dHIsIDA3NzcpOw0KLQlYQV9TRVRfVFlQRSgmbXNnLmF0dHIs IE5OUEZTX0ZJTEVfTE5LKTsNCi0JWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1 cnJlbnQtPmZzZ2lkKTsNCisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyks IEdGUF9LRVJORUwpOw0KIA0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51 aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCi0JZXJy b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz aXplb2YobXNnKSk7DQorCWlmIChtc2cgPT0gTlVMTCkNCisJICByZXR1cm4g LUVOT01FTTsNCisNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH X1NZTUxJTks7DQorCW1zZy0+cGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7 DQorCWlmIChzdHJsY3B5KG1zZy0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy0+ bmFtZSkpID49IE5OUEZTX01BWF9OQU1FKSB7DQorCSAga2ZyZWUobXNnKTsN CisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlpZiAoc3RybGNw eShtc2ctPmNvbnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLT5jb250ZW50 cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpIHsNCisJICBrZnJl ZShtc2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCVhB X0NMRUFSKCZtc2ctPmF0dHIpOw0KKwlYQV9TRVRfTU9ERSgmbXNnLT5hdHRy LCAwNzc3KTsNCisJWEFfU0VUX1RZUEUoJm1zZy0+YXR0ciwgTk5QRlNfRklM RV9MTkspOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KKwlYQV9TRVRfR0lEKCZtc2ctPmF0dHIsIGN1cnJl bnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNn LT5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KKw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K Kwltc2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg ICAgICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYN CisJbXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJZXJyb3Ig PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2ctPmhlYWRlciwgc2l6 ZW9mKCptc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQotCSAgICBlcnJvciA9 IE5OUEZTX01TR19XQUtFVVBfRVJST1IoJm1zZyk7DQorCSAgICBlcnJvciA9 IE5OUEZTX01TR19XQUtFVVBfRVJST1IobXNnKTsNCiANCiAJLyogWFhYIHNo b3VsZCB0aGlzIHJlYWxseSBiZSBoZXJlICovDQogCWlmIChERU5UUllfVE9f WERFTlRSWShkZW50cnkpLT54ZF9mbGFncyA9PSAwKSB7DQogCSAgICBwcmlu dGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IG5ucGZzX3N5bWxpbms6IGRl bnRyeSBub3QgdmFsaWRcbiIpOw0KIAl9DQorCWtmcmVlKG1zZyk7DQogICAg IH0NCiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTEzOTgsNyArMTUwMCwx MSBAQCBubnBmc19zZXRhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0 DQogICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsN CiANCiAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BV VEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN CisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQo KTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg ICBubnBmc19pYXR0cjJhdHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAg LTE0MjIsNiArMTUyOCw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0 IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K ICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQor DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2Zp bGVcbiIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChp bm9kZSk7DQpAQCAtMTQ1MCwxMyArMTU1OCw4IEBAIG5ucGZzX3JlbGVhc2Vf ZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4 KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls ZSwgZmxfb3duZXJfdCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBm c19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAg IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0K QEAgLTE1MTksOSArMTYyMiwxNSBAQCBubnBmc19kX3JldmFsaWRhdGUoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiANCisj aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRl bnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNf ZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRp Zg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0 IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE1NDYsOCArMTY1NSw5IEBAIG5ucGZz X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB9DQogDQogc3Rh dGljIHNzaXplX3QNCi1ubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmls ZSwgbG9mZl90ICpwcG9zLCBzaXplX3QgY291bnQsDQotCSAgICAgICByZWFk X2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRhcmdldCkNCitubnBmc19zcGxpY2Vf cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBz dHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQor CQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGludCBlcnJvciA9 IDA7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZTsNCkBAIC0xNTYxLDggKzE2NzEsNyBAQCBubnBmc19zZW5k ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhE RUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRc biIsIGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAg ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBj b3VudCwgYWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9v cC0+c3BsaWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdz KTsNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRm aWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJy b3I7DQpAQCAtMTYzOSwzNCArMTc0OCwzMSBAQCBubnBmc193cml0ZV9iYWNr cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwNCiAJc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25l ZCBsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNr cGFnZTsNCisJdm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl dDsNCiANCiAJaW50IGVycm9yOw0KLQkNCi0JZG8gew0KLQkJYmFja3BhZ2Ug PSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRl eChwYWdlKSk7DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJu bnBmc193cml0ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJu IC1FSU87DQotCQl9DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5w cmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAg ICAwLCBsZW4pOw0KKwkodm9pZClvZmZzZXQ7DQorDQorCWRvIHsNCisJCWVy cm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5n LCAwLCBsZW4sDQorCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElC TEUsDQorCQkJCQkgICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYg KCFlcnJvcikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2Up Ow0KIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJv ciA9IG1hcHBpbmctPmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJh Y2twYWdlLA0KLQkJCQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBw YWdlY2FjaGVfd3JpdGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4s DQorCQkJCQlsZW4sIGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJv ciA+IDApDQorCQkJCWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9 PSBBT1BfVFJVTkNBVEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVh c2UoYmFja3BhZ2UpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxl ICgwKTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0K LQl1bmxvY2tfcGFnZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFz ZShiYWNrcGFnZSk7DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5w ZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7DQpAQCAtMTY4OSwxMyArMTc5 NSw5IEBAIG5ucGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2Us IHMNCiAJc3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25n IG9mZnNldDsNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F TF9WRVJTSU9OKDIsNiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNr cGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxl KTsNCi0jZWxzZQ0KLQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBw aW5nLCBuLA0KLQkJCQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+ cmVhZHBhZ2UsDQotCQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYg KCFJU19FUlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2Vk KGJhY2twYWdlKTsNCiANCkBAIC0xODcyLDggKzE5NzQsMzcgQEAgbm5wZnNf cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4g cmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNfd3Jp dGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5z aWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2Rh dGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRl eDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFH RV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJ WkUgLSAxKTsNCisNCisjaWZkZWYgQU9QX0ZMQUdfTk9GUw0KKwlwYWdlID0g Z3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBm bGFncyk7DQorI2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1h cHBpbmcsIGluZGV4KTsNCisjZW5kaWYNCisJaWYgKHBhZ2UgPT0gTlVMTCkN CisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0K KwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9t LCBmcm9tICsgbGVuKTsNCit9DQorDQorI2VuZGlmDQorDQogc3RhdGljIGlu dA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0K K25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0 bykNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBw aW5nLT5ob3N0Ow0KICAgICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+ aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCkBAIC0xOTAyLDE0 ICsyMDMzLDQzIEBAIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3QNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs IGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll ZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVu c2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQor DQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2Ug ZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQor CQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsN CisJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAsIGxlbiAtIGNv cGllZCk7DQorCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsNCisJCWt1bm1h cF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisJfQ0KKw0KKwlubnBmc19j b21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7 DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVh c2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KICNlbmRp Zg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9u cyBubnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFn ZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAku cHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21t aXRfd3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndy aXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQg PSBubnBmc193cml0ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAg LTE5MjQsNyArMjA4NCw3IEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5w ZnNfZmlsZV9vcGVyYXQNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQog ICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5 bmMJPSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2Vu ZGZpbGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFk LA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFk X29wZXJhdGlvbnMgPSB7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4 LTMuNS9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxhLTAuOTAv bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEu MDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy41L25ucGZz L2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEwIDIwOjMzOjE2LjA2Mjkw MTk1NyArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAg ICAgICAgICAgIm5ucGZzIiwNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgICAgIGdldF9zYjogICAg ICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6ICAg ICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxsX3Ni OiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVyOiAg ICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlm Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBh cmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j DQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwky MDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEt Zm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAx Ni0wMS0xMCAyMTo1MTo0NC4yMzExMzA5ODQgKzAxMDANCkBAIC00NSw3ICs0 NSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVm IFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMu Mi4xIDIwMDcvMDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQo IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0 MzowNSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0K QEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1v dmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIo WERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzgpKQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCiAgICAgZGdl dF9sb2NrZWQoZGVudHJ5KTsNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s b2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2Nr KTsNCisgICAgZGdldF9kbG9jayhkZW50cnkpOw0KKyAgICBzcGluX3VubG9j aygmZGVudHJ5LT5kX2xvY2spOw0KKyNlbmRpZg0KICAgICBkX2Ryb3AoZGVu dHJ5KTsNCiAgICAgZHB1dChkZW50cnkpOw0KIH0NCkBAIC0xNzksOSArMTg1 LDE1IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz ICoNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hp bGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlz dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNw aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQp Ow0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNpZiAoTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCisgICAg c3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBh cmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vs c2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRn ZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50 LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNf bWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwN CkBAIC0zOTksNyArNDExLDEyIEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3Ry dWN0IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp YXM7DQogDQogIGFnYWluOg0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiAgICAgc3Bpbl9sb2NrKCZkY2Fj aGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUgZGVu dHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ZF9s b2NrKTsqLw0KKyNlbmRpZg0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRy eS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRy eSkgew0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQpAQCAtNDQyLDE0ICs0 NTksMjQgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlu b2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAg IGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgKExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQogCSAg ICAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKwkJ LyogVE9ETzogdW5sb2NrIHRoZSBkZW50cnkgKi8NCisJCS8qc3Bpbl91bmxv Y2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9y ZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0K IAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KICAgICBz cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIC8qIFRP RE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8qc3Bpbl91bmxvY2so JmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMg dm9pZA0KQEAgLTYwNSwxMiArNjMyLDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBu bnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxv Y2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5z IHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUg YmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2Nr OiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4i LCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+ aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQg bG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5U Ow0KICAgICB9DQogDQpAQCAtNzI2LDcgKzc1MSwxMSBAQCBubnBmc19tZXNz YWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogDQogCXVpbnQ2NF90 IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQog CWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbHNlDQor CWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbmRp Zg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2Fj aGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM3LDEyICs3NjYsMTYgQEAg bm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJ ICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAs ICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsN Ci0JICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5kLm1udCk7DQot CSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5kZW50cnkpOw0KLQkg ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQotCSAgICANCisJICAgIG5ucGZzcC0+ Y2FjaGVyb290ID0gbW50Z2V0KG5kLnBhdGgubW50KTsNCisJICAgIG5ucGZz cC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLnBhdGguZGVudHJ5KTsNCisJICAgIHBh dGhfcHV0KCZuZC5wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0g Y3VycmVudC0+ZnN1aWQ7DQogCSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQt PmZzZ2lkOw0KKyNlbHNlDQorICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBj dXJyZW50X2ZzdWlkKCk7DQorICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBj dXJyZW50X2ZzZ2lkKCk7DQorI2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ug c2hvdWxkIHZhbGlkYXRlIHRoZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNf YmxvY2tzaXplID0gYmxvY2tzaXplOw0KZGlmZiAtdXByTiAtWG5vZGlmZi50 eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLWZv ci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jDQotLS0gYXJs YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0 OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMu NS9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0wMS0xMSAwMToxMzox Ny40Nzk3MTkyNTYgKzAxMDANCkBAIC0xNTIsNyArMTUyLDExIEBAIG5ucGZz X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJaW5vZGUt PmlfbW9kZSAgID0gMDsNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5v ZGUtPmlfZ2lkICAgID0gMDsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMiwwKSkNCiAJaW5vZGUtPmlfbmxpbmsgID0g MTsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0K IAlpbm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1l ICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAg LTE2OSw3ICsxNzMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1 Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0K IAlpbm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChY QV9WQUxJRF9OTElOSyhhdHRyKSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKSkNCiAJaW5vZGUtPmlfbmxpbmsg ID0gYXR0ci0+eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2Rl LCBhdHRyLT54YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAo WEFfVkFMSURfU0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2Rl LCBhdHRyLT54YV9zaXplKTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEtZm9y LWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0g YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAwNy0w MS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1s aW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAx LTEwIDIxOjUyOjQ3LjM3MTEzNDA1NiArMDEwMA0KQEAgLTQyLDcgKzQyLDkg QEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5j bHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4 L2ZpbGUuaD4NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+ DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRl IDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNjQsNyArNjYsNyBAQA0KICN1 bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQogDQogI2lmZGVmIFJDU0lEDQotUkNT SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTIyIDIwMDcvMDEvMDMg MTQ6MjY6MjcgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lz Y2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAk Iik7DQogI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRy eSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBAIC04MiwxMiArODQsMjIgQEAgdHlw ZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1bnNpZ25lZCBsb25n IHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikpDQogc3RhdGlj IGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQor bm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAg dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRp Zg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3By b2Nmc19mb3BzID0gew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAgICAgLmlvY3RsID0gbm5wZnNfcHJv Y2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51bmxvY2tlZF9pb2N0bCA9IG5u cGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE0 Nyw1MyArMTU5LDQ2IEBAIHN0YXRpYyBpbnQgbm5wZnNfc2VjX3JlZ2lzdGVy ZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBBRyhzKSAobm5wZnNfcGFnX3QpKHVu c2lnbmVkIGxvbmcpKHMpDQogI2RlZmluZSBQQUcyU0VDKHApICh2b2lkICop KHVuc2lnbmVkIGxvbmcpKHApDQogDQotc3RhdGljIGludA0KLW5ucGZzX3Nl Y190YXNrX2FsbG9jKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCi17DQotICAg IG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJpdHkp Ow0KLSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9IFBBRzJTRUMocGFn KTsNCi0gICAgcmV0dXJuIDA7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkDQotbm5w ZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0K LSAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKHAtPnNlY3VyaXR5KTsN Ci0gICAgaWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBOVUxMOw0KLX0NCi0N CiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX3NlYyh2b2lk KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhj dXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcGFnX3Qg cGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRpZg0K ICAgICBpZiAocGFnKQ0KIAlyZXR1cm4gcGFnOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBy ZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHJldHVybiBjdXJy ZW50X3VpZCgpOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5w ZnNfc2V0X3BhZ19zZWModm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19w YWdfdCBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3Ry dWN0IGNyZWQgKmNyZWQ7DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0g PT0gTk5QRlNfUEFHX1VMSU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAv KiBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog ICAgIGN1cnJlbnQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNl bHNlDQorICAgIGNyZWQgPSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3Jl ZDsNCisgICAgY3JlZC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQor I2VuZGlmDQogICAgIHBhZ251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQog DQotc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIG5ucGZzX3Nl Y19vcHMgPSB7DQotICAgIC50YXNrX2FsbG9jX3NlY3VyaXR5ID0gbm5wZnNf c2VjX3Rhc2tfYWxsb2MsDQotICAgIC50YXNrX2ZyZWVfc2VjdXJpdHkgPSBu bnBmc19zZWNfdGFza19mcmVlLA0KLS8vICAgIC50YXNrX3JlcGFyZW50X3Rv X2luaXQgPSBubnBmc19zZWNfcmVwYXJlbnRfdG9faW5pdCwNCi19Ow0KLQ0K ICNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFkgKi8NCiANCiAjaWZkZWYgR1JP VVBQQUdTDQpAQCAtMjIyLDExICsyMjcsMTggQEAgZmluZF9wYWcoc3RydWN0 IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZz X2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBn cm91cF9pbmZvICpnaSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5u cGZzX3BhZ190IHJldCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBz dHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsN CisgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZW5k aWYNCiAgICAgaW50IGk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGdldF9ncm91cF9pbmZv KGdpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAg ICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI0MiwxMyAr MjU0LDE5IEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMg aW50DQogc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQogICAgIHN0cnVjdCBncm91cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5n cm91cF9pbmZvOw0KKyNlbHNlDQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9s ZF9naSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBz dHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dpOw0KLSAgICBpbnQgbmJsb2Nrcywg Y291bnQ7DQorICAgIHVuc2lnbmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAg ICAgaW50IGZvdW5kID0gMDsNCiAgICAgaW50IGksIGs7DQogICAgIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KSAgICANCiAgICAgZ2V0X2dyb3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYN CiANCiAgICAgaSA9IGZpbmRfcGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9 IE5OUEZTX1BBR19OT1RGT1VORCkNCkBAIC0zMTcsNyArMzM1LDExIEBAIG5u cGZzX2dldF9wYWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19ncm91 cCgpOw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg cmV0dXJuIGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICByZXR1cm4gY3Vy cmVudF91aWQoKTsNCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGlubGluZSBp bnQNCkBAIC00MjIsNyArNDQ0LDcgQEAgbm5wZnNfc2V0Z3JvdXBzMTYgKGlu dCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAq Lw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1Y3QgZmlsZV9o YW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7DQogICAgIG5u cGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQogICAgIF9fdTMy IGdlbjsNCkBAIC01MjQsMTEgKzU0NiwxNSBAQCB1c2VyX3BhdGgyZGVudHJ5 IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiANCiAgICAgTk5QRlNERUIoWERF Qk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25h bWUpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkpDQogICAgIGVycm9yID0gcGF0aF9sb29rdXAoa25h bWUsIGZsYWdzLCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh dGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2VuZGlmDQogICAg IHB1dG5hbWUoa25hbWUpOw0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBF UlJfUFRSKGVycm9yKTsNCi0gICAgcmV0dXJuIG5kLT5kZW50cnk7DQorICAg IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQogfQ0KIA0KIGFzbWxpbmthZ2Ug bG9uZw0KQEAgLTU0MCwxMiArNTY2LDIwIEBAIHN5c19hZnNfaW50IChpbnQg b3BlcmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0 cnVjdCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNf bWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBm c19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAq ZGVudHJ5ID0gTlVMTDsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCiAg ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt RU5PTUVNOw0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM5KSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxz ZQ0KKyAgICAvKiBUT0RPOiBsb2NrIHNvbWV0aGluZyAqLw0KKyNlbmRpZg0K IA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxv Y2tlZFxuIikpOw0KIA0KQEAgLTU3NSw3ICs2MDksNyBAQCBzeXNfYWZzX2lu dCAoaW50IG9wZXJhdGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9DQog CWlmICh2aWNlX2lvY3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYoY29w eV9mcm9tX3VzZXIoJm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21fdXNl cigmbXNnLT5tc2csDQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJCQkg ICAgICB2aWNlX2lvY3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVycm9yID0g LUVGQVVMVDsNCkBAIC02MjgsMTkgKzY2MiwyMyBAQCBzeXNfYWZzX2ludCAo aW50IG9wZXJhdGlvbiwNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8g dW5sb2NrOw0KIAkgICAgfQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5k bGU7DQorCSAgICBtc2ctPmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiAN Ci0JbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQlt c2cub3Bjb2RlID0gYV9vcGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9 IE5OUEZTX01TR19QSU9DVEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7 DQogCQ0KLQltc2cuaW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQot CW1zZy5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5j cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KKwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5p bl9zaXplOw0KKwltc2ctPm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6 ZTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj ZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7 DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7 DQogCQ0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwg Jm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIg PSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVy cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFk ZXIsIHNpemVvZigqbXNnKSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVj dCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9 PSAwKQ0KIAkgICAgZXJyb3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUs MTIgKzcxMywxNyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAg ICAgDQogIHVubG9jazoNCiAgICAgaWYgKGRlbnRyeSkNCi0JcGF0aF9yZWxl YXNlKCZuZCk7DQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCiANCiAgICAgTk5Q RlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6 ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg KCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNn KTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkpDQogICAgIHVubG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAg ICAvKiBUT0RPOiB1bmxvY2sgdGhlIHRoaW5nIGxvY2tlZCBhYm92ZSAqLw0K KyNlbmRpZg0KIA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5 ICs3NzIsMTUgQEAgc3lzX2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAg ICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9DQogDQorI2lmIChMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpKQ0KIHN0YXRpYyBp bnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w ZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog ew0KICAgICBhZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBA IC03ODAsMjAgKzgyOSwyNCBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJv Y2ZzKHZvaWQpDQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVu dHJ5Ow0KICAgICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtk aXIoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZz X3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElS LCBOVUxMKTsNCiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkN CiAJcmV0dXJuIC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3By b2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAg IA0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0Nf Tk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQogICAgIGlmIChlbnRy eSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5p dF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnko Tk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9j X2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJu IC1FTk9NRU07DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93 bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIGVudHJ5LT5wcm9j X2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQogDQogI2lmZGVmIFNZU0NB TExDT01QQVQNCkBAIC04MTUsNyArODY4LDcgQEAgc3RhdGljIHZvaWQgbm5w ZnNfZXhpdF9wcm9jZnModm9pZCkNCiAgICAgfQ0KICNlbmRpZiAvKiBTWVND QUxMQ09NUEFUICovDQogICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BS T0NfTk9ERSwgbm5wZnNfcHJvY2ZzX2Rpcik7DQotICAgIHJlbW92ZV9wcm9j X2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBy ZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7 DQogfQ0KIA0KICNpZmRlZiBHUk9VUFBBR1MNCkBAIC04MzksMTQgKzg5Miw2 IEBAIGluc3RhbGxfc2V0Z3JvdXBzKHZvaWQpDQogdm9pZA0KIGluc3RhbGxf YWZzX3N5c2NhbGwodm9pZCkNCiB7DQotI2lmZGVmIENPTkZJR19TRUNVUklU WQ0KLSAgICBpZiAocmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMp KQ0KLQlOTlBGU0RFQihYREVCU1lTLA0KLQkJICgiaW5zdGFsbF9hZnNfc3lz Y2FsbDogbm5wZnNfaW5pdF9zZWMgZmFpbGVkXG4iKSk7DQotICAgIGVsc2UN Ci0Jbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAxOw0KLSNlbmRpZg0KLQ0KICAg ICBubnBmc19pbml0X3Byb2NmcygpOw0KIA0KICNpZmRlZiBTWVNDQUxMSEFD Sw0KQEAgLTg4NywxMiArOTMyLDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAo dm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAN Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNf cmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZz X3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4 aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyog IUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAj aWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsN CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS1mb3ItbGludXgtMy41 L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJ MjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxh LWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9z c2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICswMjAwDQpA QCAtNDcsNyArNDcsNyBAQA0KICNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4N CiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19zeXNjYWxs cy1sb3NzYWdlLmMsdiAxLjE3IDIwMDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4 cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j LHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNl bmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KQEAgLTYz LDYgKzYzLDkgQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdlYWsp KQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwNCiAJCSAgICBjaGFy ICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1Zik7DQogDQorI2lmZGVmIF9feDg2 XzY0X18NCitleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp YnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlmDQogc3RhdGljIHZvaWQgKioNCiBn ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCmRp ZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9u bnBmc192ZnNvcHMuYyBhcmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgv bm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0MzozNS4wMDAwMDAwMDAgKzAx MDANCisrKyBhcmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNf dmZzb3BzLmMJMjAxNi0wMS0xMSAwMTo0NjowMC45MTE4MTQ3NjcgKzAxMDAN CkBAIC00NCwyNSArNDQsMTcgQEANCiAjaW5jbHVkZSA8bGludXgvbW0uaD4N CiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNvcHMu Yyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7DQor UkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4LzA4 IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVjdCBu bnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZzX3Jl YWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZvaWQg bm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0KLXN0 YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2Rl KTsNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKiBzYik7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3RhdGljIGludCBubnBmc19z dGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAq YnVmKTsNCi0jZWxzZQ0KLXN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KLSNl bmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBm c19zb3BzID0geyANCi0gICAgcmVhZF9pbm9kZQkJOiBubnBmc19yZWFkX2lu b2RlLA0KLSAgICBwdXRfaW5vZGUJCTogbm5wZnNfcHV0X2lub2RlLA0KICAg ICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2RlX2FsbG9jLA0KICAgICBkZXN0 cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9wX2lub2Rl CQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KQEAgLTE1OSw3ICsxNTEsMTEg QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu ZGxpbmcgKi8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNCwwKSkNCiAgICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUp Ow0KKyNlbHNlDQorICAgIGRwID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNl bmRpZg0KICAgICBubnBmc19kX2luaXQoZHApOw0KICAgICBzYi0+c19yb290 ID0gZHA7DQogICAgIHJldHVybiAwOw0KQEAgLTE4NSwxMSArMTgxLDE1IEBA IG5ucGZzX3JlYWRfc3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAg ICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5k Ow0KIAkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOSkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwg Jm5kKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAm bmQucGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYg PSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KLQkgICAgZGRldiA9IG5kLmRl bnRyeTsNCisJICAgIGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCiANCiAJaWYg KCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1Io ZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjMzLDcgQEAg bm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAg ICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIChMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KIGludA0KIG5ucGZz X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJ ICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0 MiwxMSArMjQyLDEyIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0 ZW1fdHlwZSAqZnMNCiAgICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBl LCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQog I2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAo c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGlu dCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0K K3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lz dGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBj aGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAg IHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u cGZzX2ZpbGxfc3VwZXIpOw0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNf dHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAj ZW5kaWYNCiANCkBAIC0yNzMsNzMgKzI3NCw2IEBAIG5ucGZzX3B1dF9zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVC VkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQog DQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9k ZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBm c19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkpOw0K LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGlu b2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQotICAg IGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBpbm9k ZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0KLSAg ICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4aXRp bmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlub2Rl JyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVkLg0K LSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0cnVj dCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBubnBm cyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAgIGlu dCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3B1 dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQotCQkJ aW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNfcHJp bnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBmc3At PmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0dXMg JiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lub2Rl KGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9vdCkg ew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJlbGUo aW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAgfQ0K LQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJhZCA9 IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0KLQli YWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAgIGlm ICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91c2Vy cyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBVVDsg LyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlkX25v ZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsNCi0g ICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNfaWNv dW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7 DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAyKSB7 DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2UgaXMg YmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5wZnNf bm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVsZWFz ZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAoKHhu LT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBmc19u b2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZlKHhu KTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0aXZl X3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50 KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYp DQogew0KQEAgLTM1MiwyNSArMjg2LDIxIEBAIG5ucGZzX3N0YXRmc19pbnQo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWlsICA9 IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAyNCox MDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsNCisg ICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lkLnZh bFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsNCisg ICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBdID0g MDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9zcGFy ZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAgdG1w LmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1 cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0 YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpi dWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50cnkt PmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGludA0K LW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qg a3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRmc19p bnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K ---276651502-1678162708-1452478766=:17625 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-1678162708-1452478766=:17625--