From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] xen: Improvements to domain_crash() Date: Thu, 30 Aug 2018 16:31:37 +0100 Message-ID: <1535643097-12059-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , Razvan Cojocaru , George Dunlap , Andrew Cooper , Tim Deegan , Dario Faggioli , Julien Grall , Paul Durrant , Tamas K Lengyel , Jan Beulich , Boris Ostrovsky , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlcmUgb3JpZ2luYWwgcmVhc29uIGZvciB0aGlzIHBhdGNoIHdhcyB0byBmaXggYSBsaXZlcGF0 Y2hpbmcgcHJvYmxlbTsKdW5uZWNlc3NlcmlseSBsYXJnZSBsaXZlcGF0Y2hzIGR1ZSB0byB0aGUg dXNlIG9mIF9fTElORV9fLgoKQSBzZWNvbmQgcHJvYmxlbSBpcyBvbmUgb2YgZGVidWdhYmlsaXR5 LiAgQSBudW1iZXIgb2YgZG9tYWluX2NyYXNoKCkKaW52b2NhdGlvbnMgaGF2ZSBubyBsb2dnaW5n IGF0IGFsbCwgYW5kIG51bWJlciBvZiBvdGhlcnMgb25seSBoYXZlIGxvZ2dpbmcKd2hlbiBjb21w aWxlZCB3aXRoIGEgZGVidWcgaHlwZXJ2aXNvci4KCkNoYW5nZSB0aGUgaW50ZXJmYWNlIHRvIHJl cXVpcmUgdGhlIGNhbGxlciB0byBwYXNzIGEgcHJpbnRrKCkgbWVzc2FnZSwgd2hpY2gKaXMgZW1p dHRlZCBhdCBndWVzdCBlcnJvciBsZXZlbC4gIFRoaXMgc2hvdWxkIGVuc3VyZSB0aGF0IGV2ZXJ5 IHRpbWUgYSBkb21haW4KaXMgY3Jhc2hlZCwgYW4gaW5mb3JtYXRpdmUgbG9nIG1lc3NhZ2UgaXMg YWxzbyBwcmVzZW50LgoKVXBkYXRlIGFsbCBjYWxsZXJzIHRvIGVpdGhlciBtZXJnZSB3aXRoIGEg cHJldmlvdXMgcHJpbnRrKCksIG9yIGludmVudCBhbgppbmZvcm1hdGl2ZSBsb2cgbWVzc2FnZS4g IEEgZmV3IHNlbGVjdCBjYWxsZXJzIGFyZSBzd2l0Y2hlZCB0byB0aGUKbm9uLXByaW50aW5nIHZl cnNpb24sIHdoZW4gdGhleSd2ZSBhbHJlYWR5IGVtaXR0ZWQgYSByZWxldmVudCBzdGF0ZSBkdW1w LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KLS0tCkNDOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkND OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBLb25yYWQgUnplc3p1dGVrIFdp bGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFi ZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IFdlaSBM aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBh cm0uY29tPgpDQzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDQzogS2V2 aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVl LnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ0M6IEJyaWFuIFdvb2RzIDxicmlhbi53b29kc0BhbWQu Y29tPgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBKdWVy Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkNDOiBEYXJpbyBGYWdnaW9saSA8ZGZhZ2dpb2xp QHN1c2UuY29tPgpDQzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ0M6 IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNvbT4KQ0M6IFRhbWFzIEsg TGVuZ3llbCA8dGFtYXNAdGtsZW5neWVsLmNvbT4KCkl0IGlzIHVuZm9ydHVuYXRlIHRoYXQgdGhp cyBpcyBvbmUgbW9ub2xpdGhpYyBwYXRjaCwgYnV0IEkgY2FuJ3QgZmluZCBhbnkKcmVhc29uYWJs ZSB3YXkgdG8gc3BsaXQgaXQgdXAuCi0tLQogeGVuL2FyY2gvYXJtL21lbV9hY2Nlc3MuYyAgICAg ICAgICAgICAgIHwgMTIgKystLS0tCiB4ZW4vYXJjaC9hcm0vdHJhcHMuYyAgICAgICAgICAgICAg ICAgICAgfCAgNiArLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMgICAgICB8 ICAyICstCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAgICAgfCAxMyArKy0t LS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICAgICAgICB8ICA5ICsrLS0KIHhl bi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgICAgICB8IDc0ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQuYyAgICAgICAg ICAgIHwgMjUgKysrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW8uYyAgICAgICAgICAgICAg ICAgICB8ICAzICstCiB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgICAgICAgICAgICAgICAgfCAx OSArKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICAgICAgICAgICAgICB8IDUz ICsrKysrKysrKystLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgICAg ICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyAgICAgICAgICAgICAg IHwgIDUgKy0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jICAgICAgICAgfCAgMiAr LQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9h cmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICAgICAgICB8IDU1ICsrKysrKysrKystLS0tLS0t LS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jICAgICAgICAgICAgIHwgIDQgKy0K IHhlbi9hcmNoL3g4Ni9odm0vdnB0LmMgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiB4ZW4v YXJjaC94ODYvbW0uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKy0tCiB4ZW4vYXJjaC94 ODYvbW0vaGFwL2hhcC5jICAgICAgICAgICAgICAgfCAgNyArLS0tCiB4ZW4vYXJjaC94ODYvbW0v aGFwL25lc3RlZF9oYXAuYyAgICAgICAgfCAgOSArKy0tCiB4ZW4vYXJjaC94ODYvbW0vbWVtX2Fj Y2Vzcy5jICAgICAgICAgICAgfCAgNSArLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMgICAg ICAgICAgICAgICB8IDE5ICsrKystLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAg ICAgICAgICAgIHwgMzUgKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9j b21tb24uYyAgICAgICAgIHwgNDIgKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21t L3NoYWRvdy9tdWx0aS5jICAgICAgICAgIHwgMTcgKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tc2ku YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYvaXJldC5jICAg ICAgICAgICAgICAgICAgfCAzMCArKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAg ICAgICAgICAgICAgICAgICAgfCAgOCArKy0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2 X2VtdWxhdGUuYyAgfCAgMiArLQogeGVuL2FyY2gveDg2L3hzdGF0ZS5jICAgICAgICAgICAgICAg ICAgIHwgMTQgKysrLS0tLQogeGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYyAgICAgICAg IHwgIDIgKy0KIHhlbi9jb21tb24vY29tcGF0L21lbW9yeS5jICAgICAgICAgICAgICB8ICA2ICst LQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9j b21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgICB8IDE3ICsrKy0tLS0tCiB4ZW4vY29t bW9uL21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi9wYWdl X2FsbG9jLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9jb21tb24vd2FpdC5jICAgICAg ICAgICAgICAgICAgICAgICB8IDEyICsrLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jIHwgMjUgKysrKystLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMgICAgICAgICB8ICA4ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAg ICAgICAgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyAgICAg fCAgMiArLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICAgIHwgMTAgKysr LS0KIDQyIGZpbGVzIGNoYW5nZWQsIDI1MyBpbnNlcnRpb25zKCspLCAzMzIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21lbV9hY2Nlc3MuYyBiL3hlbi9hcmNoL2FybS9t ZW1fYWNjZXNzLmMKaW5kZXggYmE0ZWM3OC4uYmU5OWZiZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv YXJtL21lbV9hY2Nlc3MuYworKysgYi94ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jCkBAIC0yOTMs MTIgKzI5Myw3IEBAIGJvb2wgcDJtX21lbV9hY2Nlc3NfY2hlY2socGFkZHJfdCBncGEsIHZhZGRy X3QgZ2xhLCBjb25zdCBzdHJ1Y3QgbnBmZWMgbnBmZWMpCiAgICAgewogICAgICAgICAvKiBObyBs aXN0ZW5lciAqLwogICAgICAgICBpZiAoIHAybS0+YWNjZXNzX3JlcXVpcmVkICkKLSAgICAgICAg ewotICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJNZW1vcnkgYWNjZXNzIHBlcm1p c3Npb25zIGZhaWx1cmUsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8g dm1fZXZlbnQgbGlzdGVuZXIgVkNQVSAlZCwgZG9tICVkXG4iLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYtPnZjcHVfaWQsIHYtPmRvbWFpbi0+ZG9tYWluX2lkKTsKLSAgICAg ICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwotICAgICAgICB9CisgICAgICAgICAgICBk b21haW5fY3Jhc2godi0+ZG9tYWluLCAiTm8gdm1fZXZlbnQgbGlzdGVuZXJcbiIpOwogICAgICAg ICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIG4ycnd4IHdhcyBhbHJlYWR5IGhhbmRs ZWQgKi8KQEAgLTMzNyw4ICszMzIsOSBAQCBib29sIHAybV9tZW1fYWNjZXNzX2NoZWNrKHBhZGRy X3QgZ3BhLCB2YWRkcl90IGdsYSwgY29uc3Qgc3RydWN0IG5wZmVjIG5wZmVjKQogICAgICAgICBy ZXEtPnUubWVtX2FjY2Vzcy5mbGFncyB8PSBucGZlYy53cml0ZV9hY2Nlc3MgICA/IE1FTV9BQ0NF U1NfVyA6IDA7CiAgICAgICAgIHJlcS0+dS5tZW1fYWNjZXNzLmZsYWdzIHw9IG5wZmVjLmluc25f ZmV0Y2ggICAgID8gTUVNX0FDQ0VTU19YIDogMDsKIAotICAgICAgICBpZiAoIG1vbml0b3JfdHJh cHModiwgKHhtYSAhPSBYRU5NRU1fYWNjZXNzX24ycnd4KSwgcmVxKSA8IDAgKQotICAgICAgICAg ICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CisgICAgICAgIHJjID0gbW9uaXRvcl90cmFwcyh2 LCAoeG1hICE9IFhFTk1FTV9hY2Nlc3NfbjJyd3gpLCByZXEpOworICAgICAgICBpZiAoIHJjIDwg MCApCisgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAibW9uaXRvcl90cmFwcygp IHJldHVybmVkICVkXG4iLCByYyk7CiAKICAgICAgICAgeGZyZWUocmVxKTsKICAgICB9CmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCmluZGV4 IDlhZTY0YWUuLjE1MTc5NGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCisrKyBi L3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0xNTMyLDkgKzE1MzIsOSBAQCBzdGF0aWMgYm9vbCBj aGVja19tdWx0aWNhbGxfMzJiaXRfY2xlYW4oc3RydWN0IG11bHRpY2FsbF9lbnRyeSAqbXVsdGkp CiAgICAgewogICAgICAgICBpZiAoIHVubGlrZWx5KG11bHRpLT5hcmdzW2ldICYgMHhmZmZmZmZm ZjAwMDAwMDAwVUxMKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHByaW50aygiJXB2OiBtdWx0 aWNhbGwgYXJndW1lbnQgJWQgaXMgbm90IDMyLWJpdCBjbGVhbiAlIlBSSXg2NCJcbiIsCi0gICAg ICAgICAgICAgICAgICAgY3VycmVudCwgaSwgbXVsdGktPmFyZ3NbaV0pOwotICAgICAgICAgICAg ZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2go Y3VycmVudC0+ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICJNdWx0aWNhbGwgYXJn ICVkIGlzIG5vdCAzMi1iaXQgY2xlYW46ICUiUFJJeDY0IlxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICBpLCBtdWx0aS0+YXJnc1tpXSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2Fj dGlvbi5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYwppbmRleCBlNDIyNjc0 Li5hOWIzNzcyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5j CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMKQEAgLTE0Miw3ICsxNDIs NyBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmluZm8sCiAgICAgICAg ICAgICAgICAgcmV0dXJuOwogdm1jZV9mYWlsZWQ6CiAgICAgICAgICAgICAgICAgcHV0X2RvbWFp bihkKTsKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICAgICAg ZG9tYWluX2NyYXNoKGQsICJGYWlsZWQgdG8gaW5qZWN0IHZNQ0VcbiIpOwogICAgICAgICAgICAg fQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIv eGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDY0YjQwYzcuLmY4NGNiZTMgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTEz ODAsMTEgKzEzODAsOCBAQCBzdGF0aWMgdm9pZCBsb2FkX3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICpu KQogICAgICAgICAgICAgICAgICBwdXRfdXNlcih1cmVncy0+ZnMsICAgICAgICAgICBlc3AtNSkg fAogICAgICAgICAgICAgICAgICBwdXRfdXNlcih1cmVncy0+ZXMsICAgICAgICAgICBlc3AtNikg fAogICAgICAgICAgICAgICAgICBwdXRfdXNlcih1cmVncy0+ZHMsICAgICAgICAgICBlc3AtNykg KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICJlcnJvciB3aGlsZSBjcmVhdGluZyBjb21wYXQgZmFpbHNh ZmUgY2FsbGJhY2sgZnJhbWVcbiIpOwotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChuLT5k b21haW4pOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChuLT5k b21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYXVsdCBjcmVhdGluZyBjb21w YXQgZmFpbHNhZmUgZnJhbWVcbiIpOwogCiAgICAgICAgICAgICBpZiAoIG4tPmFyY2gudmdjX2Zs YWdzICYgVkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgKQogICAgICAgICAgICAgICAgIHZj cHVfaW5mbyhuLCBldnRjaG5fdXBjYWxsX21hc2spID0gMTsKQEAgLTE0MTksMTEgKzE0MTYsNyBA QCBzdGF0aWMgdm9pZCBsb2FkX3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICpuKQogICAgICAgICAgICAg IHB1dF91c2VyKHVyZWdzLT5kcywgICAgICAgICAgIHJzcC0gOSkgfAogICAgICAgICAgICAgIHB1 dF91c2VyKHJlZ3MtPnIxMSwgICAgICAgICAgIHJzcC0xMCkgfAogICAgICAgICAgICAgIHB1dF91 c2VyKHJlZ3MtPnJjeCwgICAgICAgICAgIHJzcC0xMSkgKQotICAgICAgICB7Ci0gICAgICAgICAg ICBncHJpbnRrKFhFTkxPR19FUlIsCi0gICAgICAgICAgICAgICAgICAgICJlcnJvciB3aGlsZSBj cmVhdGluZyBmYWlsc2FmZSBjYWxsYmFjayBmcmFtZVxuIik7Ci0gICAgICAgICAgICBkb21haW5f Y3Jhc2gobi0+ZG9tYWluKTsKLSAgICAgICAgfQorICAgICAgICAgICAgZG9tYWluX2NyYXNoKG4t PmRvbWFpbiwgIkZhdWx0IGNyZWF0aW5nIGZhaWxzYWZlIGZyYW1lXG4iKTsKIAogICAgICAgICBp ZiAoIG4tPmFyY2gudmdjX2ZsYWdzICYgVkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgKQog ICAgICAgICAgICAgdmNwdV9pbmZvKG4sIGV2dGNobl91cGNhbGxfbWFzaykgPSAxOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxh dGUuYwppbmRleCAyMGQxZDViLi41ZTc4ZmQ4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtMTY1LDcgKzE2 NSw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19pbygKICAgICAgICAgICAgICAocC5kZiAhPSBk ZikgfHwKICAgICAgICAgICAgICAocC5kYXRhX2lzX3B0ciAhPSBkYXRhX2lzX2FkZHIpIHx8CiAg ICAgICAgICAgICAgKGRhdGFfaXNfYWRkciAmJiAocC5kYXRhICE9IGRhdGEpKSApCi0gICAgICAg ICAgICBkb21haW5fY3Jhc2goY3VycmQpOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJk LCAiQmFkIElPUkVRIHJlLWlzc3VlXG4iKTsKIAogICAgICAgICBpZiAoIGRhdGFfaXNfYWRkciAp CiAgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CkBAIC0zNzQsNyArMzc0 LDggQEAgc3RhdGljIGludCBodm1lbXVsX2FjcXVpcmVfcGFnZSh1bnNpZ25lZCBsb25nIGdtZm4s IHN0cnVjdCBwYWdlX2luZm8gKipwYWdlKQogICAgIC8qIFRoaXMgY29kZSBzaG91bGQgbm90IGJl IHJlYWNoZWQgaWYgdGhlIGdtZm4gaXMgbm90IFJBTSAqLwogICAgIGlmICggcDJtX2lzX21taW8o cDJtdCkgKQogICAgIHsKLSAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJfZCk7CisgICAgICAgIGRv bWFpbl9jcmFzaChjdXJyX2QsCisgICAgICAgICAgICAgICAgICAgICAiQXR0ZW1waW5nIHRvIGFj cXVpcmUgTU1JTyBnZm4gJSJQUklfZ2ZuIlxuIiwgZ21mbik7CiAKICAgICAgICAgcHV0X3BhZ2Uo KnBhZ2UpOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CkBAIC04ODUsNyAr ODg2LDcgQEAgc3RhdGljIGludCBodm1lbXVsX3BoeXNfbW1pb19hY2Nlc3MoCiAgICAgICAgICAg ICBpZiAoIGRpciA9PSBJT1JFUV9SRUFEICkKICAgICAgICAgICAgICAgICBtZW1jcHkoJmJ1ZmZl cltvZmZzZXRdLCAmY2FjaGUtPmJ1ZmZlcltvZmZzZXRdLCBjaHVuayk7CiAgICAgICAgICAgICBl bHNlIGlmICggbWVtY21wKCZidWZmZXJbb2Zmc2V0XSwgJmNhY2hlLT5idWZmZXJbb2Zmc2V0XSwg Y2h1bmspICE9IDAgKQotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21h aW4pOworICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4sICJFbXVs YXRpb24gY2FjaGUgbWlzbWF0Y2hcbiIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAg ICAgewpAQCAtOTQ1LDcgKzk0Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgaHZtX21taW9fY2FjaGUgKmh2 bWVtdWxfZmluZF9tbWlvX2NhY2hlKAogICAgIGkgPSB2aW8tPm1taW9fY2FjaGVfY291bnQrKzsK ICAgICBpZiggaSA9PSBBUlJBWV9TSVpFKHZpby0+bW1pb19jYWNoZSkgKQogICAgIHsKLSAgICAg ICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgICAgIGRvbWFpbl9jcmFzaChj dXJyZW50LT5kb21haW4sICJUb28gbWFueSBjYWNoZWQgZW50cmllc1xuIik7CiAgICAgICAgIHJl dHVybiBOVUxMOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggNzJjNTFmYS4uNjlmMTg3MyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBA IC0yMDc4LDE5ICsyMDc4LDE1IEBAIGludCBodm1fbW92X3RvX2NyKHVuc2lnbmVkIGludCBjciwg dW5zaWduZWQgaW50IGdwcikKICAgICAgICAgcmMgPSBYODZFTVVMX09LQVk7CiAgICAgICAgIGJy ZWFrOwogCi0gICAgZGVmYXVsdDoKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgImludmFs aWQgY3I6ICVkXG4iLCBjcik7Ci0gICAgICAgIGdvdG8gZXhpdF9hbmRfY3Jhc2g7CisgICAgZGVm YXVsdDogLyogVlQteC9TVk0gaW50ZXJjZXB0IG1hbGZ1bmN0aW9uPyAqLworICAgICAgICBkb21h aW5fY3Jhc2goY3Vyci0+ZG9tYWluLCAiSW52YWxpZCBjciAldVxuIiwgY3IpOworICAgICAgICBy YyA9IFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIH0KIAogICAgIGlmICggcmMgPT0gWDg2RU1V TF9FWENFUFRJT04gKQogICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dwX2Zh dWx0LCAwKTsKIAogICAgIHJldHVybiByYzsKLQotIGV4aXRfYW5kX2NyYXNoOgotICAgIGRvbWFp bl9jcmFzaChjdXJyLT5kb21haW4pOwotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsK IH0KIAogaW50IGh2bV9tb3ZfZnJvbV9jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBn cHIpCkBAIC0yMTA5LDkgKzIxMDUsMTAgQEAgaW50IGh2bV9tb3ZfZnJvbV9jcih1bnNpZ25lZCBp bnQgY3IsIHVuc2lnbmVkIGludCBncHIpCiAgICAgY2FzZSA4OgogICAgICAgICB2YWwgPSAodmxh cGljX2dldF9yZWcodmNwdV92bGFwaWMoY3VyciksIEFQSUNfVEFTS1BSSSkgJiAweGYwKSA+PiA0 OwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBnZHByaW50ayhYRU5MT0df RVJSLCAiaW52YWxpZCBjcjogJXVcbiIsIGNyKTsKLSAgICAgICAgZ290byBleGl0X2FuZF9jcmFz aDsKKworICAgIGRlZmF1bHQ6IC8qIFZULXgvU1ZNIGludGVyY2VwdCBtYWxmdW5jdGlvbj8gKi8K KyAgICAgICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbiwgIkludmFsaWQgY3IgJXVcbiIsIGNy KTsKKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIH0KIAogICAgICpy ZWcgPSB2YWw7CkBAIC0yMTE5LDEwICsyMTE2LDYgQEAgaW50IGh2bV9tb3ZfZnJvbV9jcih1bnNp Z25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBncHIpCiAgICAgSFZNX0RCR19MT0coREJHX0xFVkVM X1ZNTVUsICJDUiV1LCB2YWx1ZSA9ICVseCIsIGNyLCB2YWwpOwogCiAgICAgcmV0dXJuIFg4NkVN VUxfT0tBWTsKLQotIGV4aXRfYW5kX2NyYXNoOgotICAgIGRvbWFpbl9jcmFzaChjdXJyLT5kb21h aW4pOwotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKIH0KIAogdm9pZCBodm1fc2hh ZG93X2hhbmRsZV9jZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKQEAgLTIy MjksOSArMjIyMiw4IEBAIGludCBodm1fc2V0X2NyMCh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29s X3QgbWF5X2RlZmVyKQogICAgICAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdm biwgTlVMTCwgUDJNX0FMTE9DKTsKICAgICAgICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJJbnZhbGlkIENSMyB2 YWx1ZSA9ICVseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzNdKTsKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAg ICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJJbnZhbGlkIENSMyB2YWx1ZSAlbHhcbiIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbM10pOwog ICAgICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKICAgICAgICAgICAg IH0KIApAQCAtMjMxNSwxMiArMjMwNywxNyBAQCBpbnQgaHZtX3NldF9jcjModW5zaWduZWQgbG9u ZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKICAgICBpZiAoIGh2bV9wYWdpbmdfZW5hYmxlZCh2 KSAmJiAhcGFnaW5nX21vZGVfaGFwKHYtPmRvbWFpbikgJiYKICAgICAgICAgICh2YWx1ZSAhPSB2 LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdKSApCiAgICAgeworICAgICAgICB1bnNpZ25lZCBs b25nIGdmbiA9IHBhZGRyX3RvX3Bmbih2YWx1ZSk7CisKICAgICAgICAgLyogU2hhZG93LW1vZGUg Q1IzIGNoYW5nZS4gQ2hlY2sgUERCUiBhbmQgdXBkYXRlIHJlZmNvdW50cy4gKi8KICAgICAgICAg SFZNX0RCR19MT0coREJHX0xFVkVMX1ZNTVUsICJDUjMgdmFsdWUgPSAlbHgiLCB2YWx1ZSk7Ci0g ICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbih2LT5kb21haW4sIHZhbHVlID4+IFBBR0Vf U0hJRlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBQMk1fQUxMT0Mp OworICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4odi0+ZG9tYWluLCBnZm4sIE5VTEws IFAyTV9BTExPQyk7CiAgICAgICAgIGlmICggIXBhZ2UgKQotICAgICAgICAgICAgZ290byBiYWRf Y3IzOworICAgICAgICB7CisgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiQmFk IENSMyBnZm4gJSJQUklfZ2ZuIlxuIiwgZ2ZuKTsKKworICAgICAgICAgICAgcmV0dXJuIFg4NkVN VUxfVU5IQU5ETEVBQkxFOworICAgICAgICB9CiAKICAgICAgICAgcHV0X3BhZ2UocGFnZXRhYmxl X2dldF9wYWdlKHYtPmFyY2guZ3Vlc3RfdGFibGUpKTsKICAgICAgICAgdi0+YXJjaC5ndWVzdF90 YWJsZSA9IHBhZ2V0YWJsZV9mcm9tX3BhZ2UocGFnZSk7CkBAIC0yMzMxLDExICsyMzI4LDYgQEAg aW50IGh2bV9zZXRfY3IzKHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVmZXIpCiAg ICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSA9IHZhbHVlOwogICAgIHBhZ2luZ191cGRh dGVfY3IzKHYsIG5vZmx1c2gpOwogICAgIHJldHVybiBYODZFTVVMX09LQVk7Ci0KLSBiYWRfY3Iz OgotICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJJbnZhbGlkIENSM1xuIik7Ci0gICAgZG9tYWlu X2NyYXNoKHYtPmRvbWFpbik7Ci0gICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogfQog CiBpbnQgaHZtX3NldF9jcjQodW5zaWduZWQgbG9uZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikK QEAgLTI2NjksMTMgKzI2NjEsMTMgQEAgc3RhdGljIHZvaWQgKmh2bV9tYXBfZW50cnkodW5zaWdu ZWQgbG9uZyB2YSwgYm9vbF90ICp3cml0YWJsZSkKIHsKICAgICB1bnNpZ25lZCBsb25nIGdmbjsK ICAgICB1aW50MzJfdCBwZmVjOwotICAgIGNoYXIgKnY7CisgICAgdm9pZCAqdiA9IE5VTEw7CiAK ICAgICBpZiAoICgodmEgJiB+UEFHRV9NQVNLKSArIDgpID4gUEFHRV9TSVpFICkKICAgICB7Ci0g ICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJEZXNjcmlwdG9yIHRhYmxlIGVudHJ5ICIKLSAg ICAgICAgICAgICAgICAgInN0cmFkZGxlcyBwYWdlIGJvdW5kYXJ5XG4iKTsKLSAgICAgICAgZ290 byBmYWlsOworICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluLAorICAgICAgICAg ICAgICAgICAgICAgIkRlc2NyaXB0b3IgdGFibGUgZW50cnkgc3RyYWRkbGVzIHBhZ2UgYm91bmRh cnlcbiIpOworICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKICAgICAvKgpAQCAtMjY4NiwxNyAr MjY3OCwyMiBAQCBzdGF0aWMgdm9pZCAqaHZtX21hcF9lbnRyeSh1bnNpZ25lZCBsb25nIHZhLCBi b29sX3QgKndyaXRhYmxlKQogICAgIHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudDsKICAgICBnZm4g PSBwYWdpbmdfZ3ZhX3RvX2dmbihjdXJyZW50LCB2YSwgJnBmZWMpOwogICAgIGlmICggcGZlYyAm IChQRkVDX3BhZ2VfcGFnZWQgfCBQRkVDX3BhZ2Vfc2hhcmVkKSApCi0gICAgICAgIGdvdG8gZmFp bDsKKyAgICB7CisgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4sICJEZXNjcmlw dG9yIHRhYmxlIGlzIHBhZ2VkIG9yIHNoYXJlZFxuIik7CisgICAgICAgIGdvdG8gb3V0OworICAg IH0KIAogICAgIHYgPSBodm1fbWFwX2d1ZXN0X2ZyYW1lX3J3KGdmbiwgMCwgd3JpdGFibGUpOwog ICAgIGlmICggdiA9PSBOVUxMICkKLSAgICAgICAgZ290byBmYWlsOworICAgIHsKKyAgICAgICAg ZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbiwgIkZhaWxlZCB0byBtYXAgZGVzY3JpcHRvciB0 YWJsZVxuIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KIAotICAgIHJldHVybiB2ICsgKHZh ICYgflBBR0VfTUFTSyk7CisgICAgdiArPSAodmEgJiB+UEFHRV9NQVNLKTsKIAotIGZhaWw6Ci0g ICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7Ci0gICAgcmV0dXJuIE5VTEw7Cisgb3V0 OgorICAgIHJldHVybiB2OwogfQogCiBzdGF0aWMgdm9pZCBodm1fdW5tYXBfZW50cnkodm9pZCAq cCkKQEAgLTM3MTksNyArMzcxNiw3IEBAIGludCBodm1fZGVzY3JpcHRvcl9hY2Nlc3NfaW50ZXJj ZXB0KHVpbnQ2NF90IGV4aXRfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVzY3JpcHRvciwgaXNfd3JpdGUpOwogICAgIH0KICAgICBlbHNlIGlmICggIWh2bV9l bXVsYXRlX29uZV9pbnNuKGlzX3N5c2Rlc2NfYWNjZXNzLCAic3lzZGVzYyBhY2Nlc3MiKSApCi0g ICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZCk7CisgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZCwg InN5c2Rlc2MgZW11bGF0aW9uIGZhaWx1cmVcbiIpOwogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tB WTsKIH0KQEAgLTQzMDIsNyArNDI5OSw3IEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3BhcmFtKAog ICAgICAgICBpZiAoIGEudmFsdWUgIT0gKHVpbnQzMl90KWEudmFsdWUgKQogICAgICAgICB7CiAg ICAgICAgICAgICBpZiAoIGQgPT0gY3Vycl9kICkKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jh c2goZCk7CisgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJJbnZhbGlkIFZNODZfVFNT IHZhbHVlICUjbHhcbiIsIGEudmFsdWUpOwogICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAg ICAgICB9CiAgICAgICAgIC8qIE9sZCBodm1sb2FkZXIgYmluYXJpZXMgaGFyZGNvZGUgdGhlIHNp emUgdG8gMTI4IGJ5dGVzLiAqLwpAQCAtNDMxNSw3ICs0MzEyLDggQEAgc3RhdGljIGludCBodm1v cF9zZXRfcGFyYW0oCiAgICAgICAgIGlmICggKGEudmFsdWUgPj4gMzIpIDwgc2l6ZW9mKHN0cnVj dCB0c3MzMikgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIGQgPT0gY3Vycl9kICkKLSAg ICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICAgICAgZG9tYWluX2Ny YXNoKGQsICJJbnZhbGlkIFZNODZfVFNTX1NJWkVEIHZhbHVlICUjbHhcbiIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGEudmFsdWUgPj4gMzIpOwogICAgICAgICAgICAgcmMgPSAtRUlO VkFMOwogICAgICAgICB9CiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L2ludGVyY2VwdC5jIGIveGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQuYwppbmRleCAyYmMxNTZk Li5lZGFmNzVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGJv b2xfdCBodm1fbW1pb19hY2NlcHQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVy LAogICAgIGxhc3QgPSBodm1fbW1pb19sYXN0X2J5dGUocCk7CiAgICAgaWYgKCBsYXN0ICE9IGZp cnN0ICYmCiAgICAgICAgICAhaGFuZGxlci0+bW1pby5vcHMtPmNoZWNrKGN1cnJlbnQsIGxhc3Qp ICkKLSAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgICAgIGRvbWFp bl9jcmFzaChjdXJyZW50LT5kb21haW4sICJGYXRhbCBNTUlPIGVycm9yXG4iKTsKIAogICAgIHJl dHVybiAxOwogfQpAQCAtMTM0LDggKzEzNCwxMCBAQCBpbnQgaHZtX3Byb2Nlc3NfaW9faW50ZXJj ZXB0KGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwKIAogICAgICAgICAgICAg aWYgKCBwLT5kYXRhX2lzX3B0ciApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3dp dGNoICggaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhwLT5kYXRhICsgc3RlcCAqIGksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSwgcC0+c2l6ZSwg Y3VycmVudCkgKQorICAgICAgICAgICAgICAgIGVudW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCBy ZXMgPQorICAgICAgICAgICAgICAgICAgICBodm1fY29weV90b19ndWVzdF9waHlzKHAtPmRhdGEg KyBzdGVwICogaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm ZGF0YSwgcC0+c2l6ZSwgY3VycmVudCk7CisgICAgICAgICAgICAgICAgc3dpdGNoICggcmVzICkK ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2FzZSBIVk1UUkFOU19va2F5Ogog ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE0OCw3ICsxNTAsOSBAQCBpbnQgaHZtX3By b2Nlc3NfaW9faW50ZXJjZXB0KGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwK ICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CiAgICAgICAgICAgICAg ICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg ICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4pOworICAgICAgICAg ICAgICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkVycm9yIGNvcHlpbmcgJXUgYnl0ZXMgdG8gZ3BhICUiUFJJcGFk ZHIiOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPnNpemUsIHAt PmRhdGEgKyBzdGVwICogaSwgcmVzKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFg4NkVN VUxfVU5IQU5ETEVBQkxFOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTE2 Miw5ICsxNjYsMTIgQEAgaW50IGh2bV9wcm9jZXNzX2lvX2ludGVyY2VwdChjb25zdCBzdHJ1Y3Qg aHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggcC0+ ZGF0YV9pc19wdHIgKQogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVudW0gaHZtX3Ry YW5zbGF0aW9uX3Jlc3VsdCByZXM7CisKICAgICAgICAgICAgICAgICBkYXRhID0gMDsKLSAgICAg ICAgICAgICAgICBzd2l0Y2ggKCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoJmRhdGEsIHAtPmRh dGEgKyBzdGVwICogaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcC0+c2l6ZSkgKQorICAgICAgICAgICAgICAgIHJlcyA9IGh2bV9jb3B5X2Zyb21f Z3Vlc3RfcGh5cygmZGF0YSwgcC0+ZGF0YSArIHN0ZXAgKiBpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5zaXplKTsKKyAgICAgICAgICAgICAgICBz d2l0Y2ggKCByZXMgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjYXNlIEhW TVRSQU5TX29rYXk6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTc3LDcgKzE4NCw5 IEBAIGludCBodm1fcHJvY2Vzc19pb19pbnRlcmNlcHQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5k bGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsK ICAgICAgICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgICAgICAgICAgICAg ZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFp bik7CisgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgY29weWluZyAldSBieXRlcyBm cm9tIGdwYSAlIlBSSXBhZGRyIjogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwLT5zaXplLCBwLT5kYXRhICsgc3RlcCAqIGksIHJlcyk7CiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9CkBAIC0yNjMsNyArMjcyLDcgQEAgc3RydWN0IGh2bV9pb19oYW5kbGVyICpodm1f bmV4dF9pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBpZiAoIGkgPT0gTlJfSU9f SEFORExFUlMgKQogICAgIHsKLSAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICBkb21h aW5fY3Jhc2goZCwgIlRvbyBtYW55IElPIGhhbmRsZXJzXG4iKTsKICAgICAgICAgcmV0dXJuIE5V TEw7CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMgYi94ZW4vYXJj aC94ODYvaHZtL2lvLmMKaW5kZXggYmY0ZDg3NC4uMDNhZTNkZSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9pby5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8uYwpAQCAtMTY3LDggKzE2 Nyw3IEBAIGJvb2wgaGFuZGxlX3Bpbyh1aW50MTZfdCBwb3J0LCB1bnNpZ25lZCBpbnQgc2l6ZSwg aW50IGRpcikKICAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgotICAgICAgICBnZHByaW50 ayhYRU5MT0dfRVJSLCAiV2VpcmQgSFZNIGlvZW11bGF0aW9uIHN0YXR1cyAlZC5cbiIsIHJjKTsK LSAgICAgICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbik7CisgICAgICAgIGRvbWFpbl9jcmFz aChjdXJyLT5kb21haW4sICJVbmV4cGVjdGVkIFBJTyByZXN1bHQgJWRcbiIsIHJjKTsKICAgICAg ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9p b3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IDk0MGEyYzkuLjcwNTJkMjAg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysgYi94ZW4vYXJjaC94ODYv aHZtL2lvcmVxLmMKQEAgLTE1MCwxMCArMTUwLDEwIEBAIHN0YXRpYyBib29sIGh2bV93YWl0X2Zv cl9pbyhzdHJ1Y3QgaHZtX2lvcmVxX3ZjcHUgKnN2LCBpb3JlcV90ICpwKQogCiAgICAgICAgIGlm ICggdW5saWtlbHkoc3RhdGUgPCBwcmV2X3N0YXRlKSApCiAgICAgICAgIHsKLSAgICAgICAgICAg IGdkcHJpbnRrKFhFTkxPR19FUlIsICJXZWlyZCBIVk0gaW9yZXEgc3RhdGUgdHJhbnNpdGlvbiAl dSAtPiAldVxuIiwKLSAgICAgICAgICAgICAgICAgICAgIHByZXZfc3RhdGUsIHN0YXRlKTsKICAg ICAgICAgICAgIHN2LT5wZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2go c3YtPnZjcHUtPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2goc3YtPnZjcHUtPmRv bWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiV2VpcmQgSFZNIGlvcmVxIHN0YXRlIHRy YW5zaXRpb24gJXUgLT4gJXVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9zdGF0 ZSwgc3RhdGUpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBiYWlsICovCiAgICAgICAg IH0KIApAQCAtMTcxLDkgKzE3MSw5IEBAIHN0YXRpYyBib29sIGh2bV93YWl0X2Zvcl9pbyhzdHJ1 Y3QgaHZtX2lvcmVxX3ZjcHUgKnN2LCBpb3JlcV90ICpwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0ZSAhPSBwcmV2X3N0YXRlOyB9KSk7CiAgICAgICAgICAg ICBnb3RvIHJlY2hlY2s7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBnZHByaW50ayhY RU5MT0dfRVJSLCAiV2VpcmQgSFZNIGlvcmVxdWVzdCBzdGF0ZSAldVxuIiwgc3RhdGUpOwogICAg ICAgICAgICAgc3YtPnBlbmRpbmcgPSBmYWxzZTsKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChz di0+dmNwdS0+ZG9tYWluKTsKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaChzdi0+dmNwdS0+ZG9t YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICJXZWlyZCBIVk0gaW9yZXF1ZXN0IHN0YXRl ICV1XG4iLCBzdGF0ZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIGJhaWwgKi8KICAg ICAgICAgfQogICAgIH0KQEAgLTQxNSwxMyArNDE1LDE2IEBAIHN0YXRpYyB2b2lkIGh2bV9yZW1v dmVfaW9yZXFfZ2ZuKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLCBib29sIGJ1ZikKIHsKICAg ICBzdHJ1Y3QgZG9tYWluICpkID0gcy0+dGFyZ2V0OwogICAgIHN0cnVjdCBodm1faW9yZXFfcGFn ZSAqaW9ycCA9IGJ1ZiA/ICZzLT5idWZpb3JlcSA6ICZzLT5pb3JlcTsKKyAgICBpbnQgcmM7CiAK ICAgICBpZiAoIElTX0RFRkFVTFQocykgfHwgZ2ZuX2VxKGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4p ICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdl KGQsIGlvcnAtPmdmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV90 b19tZm4oaW9ycC0+cGFnZSksIDApICkKLSAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgIHJj ID0gZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBpb3JwLT5nZm4sIHBhZ2VfdG9fbWZuKGlv cnAtPnBhZ2UpLCAwKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgZG9tYWluX2NyYXNoKGQsICJF cnJvciByZW1vdmluZyBnZm4gJSJQUklfZ2ZuIiBmcm9tIHBoeXNtYXA6ICVkXG4iLAorICAgICAg ICAgICAgICAgICAgICAgZ2ZuX3goaW9ycC0+Z2ZuKSwgcmMpOworCiAgICAgY2xlYXJfcGFnZShp b3JwLT52YSk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggYTE2ZjM3Mi4uZGI0OTgwZCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9z dm0vc3ZtLmMKQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljIHZvaWQgc3ZtX2NyYXNoX29yX2ZhdWx0 KHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICggdm1jYl9nZXRfY3BsKHYtPmFyY2guaHZtX3N2bS52 bWNiKSApCiAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfaW52YWxpZF9vcCwg WDg2X0VWRU5UX05PX0VDKTsKICAgICBlbHNlCi0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4pOworICAgICAgICBfX2RvbWFpbl9jcmFzaCh2LT5kb21haW4pOwogfQogCiB2b2lkIF9fdXBk YXRlX2d1ZXN0X2VpcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5zaWduZWQgaW50IGlu c3RfbGVuKQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgX191cGRhdGVfZ3Vlc3RfZWlwKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgaW5zdF9sZW4pCiAKICAgICBpZiAo IHVubGlrZWx5KGluc3RfbGVuID4gTUFYX0lOU1RfTEVOKSApCiAgICAgewotICAgICAgICBnZHBy aW50ayhYRU5MT0dfRVJSLCAiQmFkIGluc3RydWN0aW9uIGxlbmd0aCAldVxuIiwgaW5zdF9sZW4p OworICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJCYWQgaW5zdHJ1Y3Rpb24gbGVuZ3RoICV1 XG4iLCBpbnN0X2xlbik7CiAgICAgICAgIHN2bV9jcmFzaF9vcl9mYXVsdChjdXJyKTsKICAgICAg ICAgcmV0dXJuOwogICAgIH0KQEAgLTQxMSw5ICs0MTEsMTAgQEAgc3RhdGljIHZvaWQgc3ZtX3Nh dmVfdm1jYl9jdHh0KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgaHZtX2h3X2NwdSAqY3R4dCkKIHN0 YXRpYyBpbnQgc3ZtX2xvYWRfdm1jYl9jdHh0KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgaHZtX2h3 X2NwdSAqY3R4dCkKIHsKICAgICBzdm1fbG9hZF9jcHVfc3RhdGUodiwgY3R4dCk7Ci0gICAgaWYg KHN2bV92bWNiX3Jlc3RvcmUodiwgY3R4dCkpIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VS UiwgInN2bV92bWNiIHJlc3RvcmUgZmFpbGVkIVxuIik7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2 LT5kb21haW4pOworCisgICAgaWYgKCBzdm1fdm1jYl9yZXN0b3JlKHYsIGN0eHQpICkKKyAgICB7 CisgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sICJzdm1fdm1jYiByZXN0b3JlIGZhaWxl ZCFcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKQEAgLTc0Nyw3ICs3NDgs NyBAQCBzdGF0aWMgdm9pZCBzdm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYs IGVudW0geDg2X3NlZ21lbnQgc2VnLAogCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX1VO UkVBQ0hBQkxFKCk7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOworICAgICAgICBk b21haW5fY3Jhc2godi0+ZG9tYWluLCAiQmFkIHNlZ21lbnQgJXVcbiIsIHNlZyk7CiAgICAgICAg ICpyZWcgPSAoc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIpe307CiAgICAgfQogfQpAQCAtNzgzLDcg Kzc4NCw3IEBAIHN0YXRpYyB2b2lkIHN2bV9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNw dSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF UlRfVU5SRUFDSEFCTEUoKTsKLSAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CisgICAg ICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sICJCYWQgc2VnbWVudCAldVxuIiwgc2VnKTsKICAg ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTc4MywxMCArMTc4NCwxMCBAQCBzdGF0aWMgdm9p ZCBzdm1fZG9fbmVzdGVkX3BnZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAgICAgIHAybSA9IHAy bV9nZXRfcDJtKHYpOwogICAgIC8qIEV2ZXJ5dGhpbmcgZWxzZSBpcyBhbiBlcnJvci4gKi8KICAg ICBtZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MocDJtLCBnZm4sICZwMm10LCAmcDJtYSwgMCwg TlVMTCwgMCk7Ci0gICAgZ2RwcmludGsoWEVOTE9HX0VSUiwKLSAgICAgICAgICJTVk0gdmlvbGF0 aW9uIGdwYSAlIyJQUklwYWRkciIsIG1mbiAlI2x4LCB0eXBlICVpXG4iLAotICAgICAgICAgZ3Bh LCBtZm5feChtZm4pLCBwMm10KTsKLSAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKworICAg IGRvbWFpbl9jcmFzaCh2LT5kb21haW4sCisgICAgICAgICAgICAgICAgICJTVk0gdmlvbGF0aW9u IGdwYSAlIyJQUklwYWRkciIsIG1mbiAlIlBSSV9tZm4iLCB0eXBlICV1XG4iLAorICAgICAgICAg ICAgICAgICBncGEsIG1mbl94KG1mbiksIHAybXQpOwogfQogCiBzdGF0aWMgdm9pZCBzdm1fZnB1 X2RpcnR5X2ludGVyY2VwdCh2b2lkKQpAQCAtMjQ2MSwxMCArMjQ2Miw3IEBAIHN0YXRpYyB2b2lk IHN2bV92bWV4aXRfbWNlX2ludGVyY2VwdCgKICAgICBzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAgICAgaWYgKCBzdm1faXNfZXJyYXR1bV8zODMocmVncykg KQotICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIlNWTSBoaXRzIEFNRCBlcnJh dHVtIDM4M1xuIik7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwotICAgIH0KKyAg ICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwgIlNWTSBoaXRzIEFNRCBlcnJhdHVtIDM4M1xu Iik7CiB9CiAKIHN0YXRpYyB2b2lkIHN2bV93YmludmRfaW50ZXJjZXB0KHZvaWQpCkBAIC0yNjc5 LDggKzI2NzcsOCBAQCB2b2lkIHN2bV92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKICAgICAgICAgICAgICAgICBuZXN0ZWRzdm1fdm1leGl0X2RlZmVyKHYsIGV4aXRf cmVhc29uLCBleGl0aW5mbzEsIGV4aXRpbmZvMik7CiAgICAgICAgICAgICAgICAgZ290byBvdXQ7 CiAgICAgICAgICAgICBjYXNlIE5FU1RFREhWTV9WTUVYSVRfRkFUQUxFUlJPUjoKLSAgICAgICAg ICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAidW5leHBlY3RlZCBuZXN0ZWRzdm1fdm1leGl0 KCkgZXJyb3JcbiIpOwotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwor ICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJuZXN0ZWRzdm1fdm1leGl0KCkgcmV0dXJuZWQgRkFUQUxFUlJPUlxuIik7 CiAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg ICAgICAgICAgIEJVRygpOwpAQCAtMjY5MywxNCArMjY5MSwxMiBAQCB2b2lkIHN2bV92bWV4aXRf aGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgICAgICAibmVz dGVkc3ZtX2NoZWNrX2ludGVyY2VwdHMoKSByZXR1cm5lZCBORVNURURIVk1fVk1FWElUX0VSUk9S XG4iKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICBjYXNlIE5FU1RFREhWTV9WTUVY SVRfRkFUQUxFUlJPUjoKLSAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsCi0gICAgICAg ICAgICAgICAgInVuZXhwZWN0ZWQgbmVzdGVkc3ZtX2NoZWNrX2ludGVyY2VwdHMoKSBlcnJvclxu Iik7Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgICAgIGRv bWFpbl9jcmFzaCh2LT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIm5lc3RlZHN2 bV9jaGVja19pbnRlcmNlcHRzKCkgcmV0dXJuZWQgRkFUQUxFUlJPUlxuIik7CiAgICAgICAgICAg ICBnb3RvIG91dDsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxP R19JTkZPLCAibmVzdGVkc3ZtX2NoZWNrX2ludGVyY2VwdHMoKSByZXR1cm5lZCAlaVxuIiwKLSAg ICAgICAgICAgICAgICBuc3JldCk7Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWlu KTsKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgIm5lc3RlZHN2bV9jaGVja19pbnRlcmNlcHRzKCkgcmV0dXJuZWQgJXVcbiIsIG5z cmV0KTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAgICAgfQpAQCAtMjcwOSw3 ICsyNzA1LDcgQEAgdm9pZCBzdm1fdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCiAgICAgewogICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiaW52YWxpZCBWTUNC IHN0YXRlOlxuIik7CiAgICAgICAgIHN2bV92bWNiX2R1bXAoX19mdW5jX18sIHZtY2IpOwotICAg ICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgX19kb21haW5fY3Jhc2godi0+ ZG9tYWluKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCkBAIC0zMDI4LDEyICszMDI0LDkg QEAgdm9pZCBzdm1fdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAg ICAgICAgIGlmICggcmMgPj0gMCApCiAgICAgICAgICAgICBzdm1fZG9fbmVzdGVkX3BnZmF1bHQo diwgcmVncywgdm1jYi0+ZXhpdGluZm8xLCB2bWNiLT5leGl0aW5mbzIpOwogICAgICAgICBlbHNl Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIKLSAgICAgICAgICAg ICAgICAgICAiJXB2OiBFcnJvciAlZCBoYW5kbGluZyBOUEYgKGdwYT0lMDhseCBlYz0lMDRseClc biIsCi0gICAgICAgICAgICAgICAgICAgdiwgcmMsIHZtY2ItPmV4aXRpbmZvMiwgdm1jYi0+ZXhp dGluZm8xKTsKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwotICAgICAgICB9 CisgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLAorICAgICAgICAgICAgICAgICAg ICAgICAgICIlcHY6IEVycm9yICVkIGhhbmRsaW5nIE5QRiAoZ3BhPSUwOGx4IGVjPSUwNGx4KVxu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2LCByYywgdm1jYi0+ZXhpdGluZm8yLCB2bWNi LT5leGl0aW5mbzEpOwogICAgICAgICB2LT5hcmNoLmh2bV9zdm0uY2FjaGVkX2luc25fbGVuID0g MDsKICAgICAgICAgYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRp YW4uYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwppbmRleCA0ODYwNjUxLi4xZDVkZjdm IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92aXJpZGlhbi5jCkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCB2aXJpZGlhbl9hcGlj X2Fzc2lzdF9zZXQoc3RydWN0IHZjcHUgKnYpCiAgICAgICogdG8gbWFrZSB0aGUgcHJvYmxlbSBj bGVhci4KICAgICAgKi8KICAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNz aXN0LnBlbmRpbmcgKQotICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAg ZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwgIkFzc2lzdCBhbHJlYWR5IHBlbmRpbmdcbiIpOwogCiAg ICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGluZyA9IHRydWU7CiAg ICAgKnZhIHw9IDF1OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyBiL3hl bi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKaW5kZXggZWMwODljYy4uZjAzMWVjZCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBp Yy5jCkBAIC0zNzksOSArMzc5LDggQEAgc3RhdGljIHZvaWQgdmxhcGljX2FjY2VwdF9pcnEoc3Ry dWN0IHZjcHUgKnYsIHVpbnQzMl90IGljcl9sb3cpCiAgICAgICAgIEJVRygpOyAvKiBIYW5kbGVk IGluIHZsYXBpY19pcGkoKS4gKi8KIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdkcHJpbnRrKFhF TkxPR19FUlIsICJUT0RPOiB1bnN1cHBvcnRlZCBkZWxpdmVyeSBtb2RlIGluIElDUiAleFxuIiwK LSAgICAgICAgICAgICAgICAgaWNyX2xvdyk7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4pOworICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiVW5zdXBwb3J0ZWQgZGVsaXZl cnkgbW9kZSBpbiBJQ1IgJXhcbiIsCisgICAgICAgICAgICAgICAgICAgICBpY3JfbG93KTsKICAg ICB9CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMgYi94 ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCmluZGV4IGIyMGQ4YzQuLjdjZjMzZWQgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bXgvcmVhbG1vZGUuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgdm14X3JlYWxt b2RlX2VtdWxhdGVfb25lKHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQpCiAK ICBmYWlsOgogICAgIGh2bV9kdW1wX2VtdWxhdGlvbl9zdGF0ZShYRU5MT0dfR19FUlIsICJSZWFs LW1vZGUiLCBodm1lbXVsX2N0eHQsIHJjKTsKLSAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWlu KTsKKyAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWluLCAiRW11bGF0aW9uIGZhaWx1cmVcbiIp OwogfQogCiB2b2lkIHZteF9yZWFsbW9kZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZtY3MuYwppbmRleCA2NjgxMDMyLi4xODZlMjJiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bWNzLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCkBAIC0x Nzg5LDcgKzE3ODksNyBAQCB2b2lkIHZteF92bWVudHJ5X2ZhaWx1cmUodm9pZCkKICAgICAgICAg IGVycm9yID09IFZNWF9JTlNOX0lOVkFMSURfSE9TVF9TVEFURSApCiAgICAgICAgIHZtY3NfZHVt cF92Y3B1KGN1cnIpOwogCi0gICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbik7CisgICAgX19k b21haW5fY3Jhc2goY3Vyci0+ZG9tYWluKTsKIH0KIAogdm9pZCB2bXhfZG9fcmVzdW1lKHN0cnVj dCB2Y3B1ICp2KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4v YXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRleCBmY2QzMjI1Li4wMzM1MjM5IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYwpAQCAtNzk5LDggKzc5OSw3IEBAIHN0YXRpYyBpbnQgdm14X2xvYWRfdm1jc19jdHh0KHN0 cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgaHZtX2h3X2NwdSAqY3R4dCkKIAogICAgIGlmICggdm14X3Zt Y3NfcmVzdG9yZSh2LCBjdHh0KSApCiAgICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJS LCAidm14X3ZtY3MgcmVzdG9yZSBmYWlsZWQhXG4iKTsKLSAgICAgICAgZG9tYWluX2NyYXNoKHYt PmRvbWFpbik7CisgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sICJ2bWNzX3ZtY3NfcmVz dG9yZSgpIGZhaWxlZFxuIik7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIApAQCAt MTM4MSwxOCArMTM4MCwyMSBAQCBzdGF0aWMgdm9pZCB2bXhfbG9hZF9wZHB0cnMoc3RydWN0IHZj cHUgKnYpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICggKGNyMyAmIDB4MWZVTCkgJiYgIWh2 bV9wY2lkX2VuYWJsZWQodikgKQotICAgICAgICBnb3RvIGNyYXNoOworICAgIHsKKyAgICAgICAg ZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwgIkJhZCBjcjMgJXBcbiIsIF9wKGNyMykpOworICAgICAg ICByZXR1cm47CisgICAgfQogCiAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFp biwgY3IzID4+IFBBR0VfU0hJRlQsICZwMm10LCBQMk1fVU5TSEFSRSk7CiAgICAgaWYgKCAhcGFn ZSApCiAgICAgewotICAgICAgICAvKiBJZGVhbGx5IHlvdSBkb24ndCB3YW50IHRvIGNyYXNoIGJ1 dCByYXRoZXIgZ28gaW50byBhIHdhaXQgCi0gICAgICAgICAqIHF1ZXVlLCBidXQgdGhpcyBpcyB0 aGUgd3JvbmcgcGxhY2UuIFdlJ3JlIGhvbGRpbmcgYXQgbGVhc3QKLSAgICAgICAgICogdGhlIHBh Z2luZyBsb2NrICovCi0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsCi0gICAgICAgICAgICAg ICAgICJCYWQgY3IzIG9uIGxvYWQgcGRwdHJzIGdmbiAlbHggdHlwZSAlZFxuIiwKLSAgICAgICAg ICAgICAgICAgY3IzID4+IFBBR0VfU0hJRlQsIChpbnQpIHAybXQpOwotICAgICAgICBnb3RvIGNy YXNoOworICAgICAgICAvKgorICAgICAgICAgKiBJZGVhbGx5IHdlIGRvbid0IHdhbnQgdG8gY3Jh c2ggYnV0IHJhdGhlciBnbyBpbnRvIGEgd2FpdCBxdWV1ZSwgYnV0CisgICAgICAgICAqIHRoaXMg aXMgdGhlIHdyb25nIHBsYWNlLiAgV2UncmUgaG9sZGluZyBhdCBsZWFzdCB0aGUgcGFnaW5nIGxv Y2suCisgICAgICAgICAqLworICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiQmFkIGNy MyBvbiBsb2FkIHBkcHRycyBnZm4gJWx4IHR5cGUgJWRcbiIsCisgICAgICAgICAgICAgICAgICAg ICBjcjMgPj4gUEFHRV9TSElGVCwgKGludCkgcDJtdCk7CisgICAgICAgIHJldHVybjsKICAgICB9 CiAKICAgICBwID0gX19tYXBfZG9tYWluX3BhZ2UocGFnZSk7CkBAIC0xNDE2LDEwICsxNDE4LDYg QEAgc3RhdGljIHZvaWQgdm14X2xvYWRfcGRwdHJzKHN0cnVjdCB2Y3B1ICp2KQogCiAgICAgdW5t YXBfZG9tYWluX3BhZ2UocCk7CiAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgcmV0dXJuOwotCi0g Y3Jhc2g6Ci0gICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CiB9CiAKIHN0YXRpYyB2b2lkIHZt eF91cGRhdGVfaG9zdF9jcjMoc3RydWN0IHZjcHUgKnYpCkBAIC0zMTk1LDggKzMxOTMsNyBAQCBz dGF0aWMgaW50IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2 NF90IG1zcl9jb250ZW50KQogCiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KCFsYnIpICkKICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJVbmtub3du IEhvc3QgTEJSIE1TUnNcbiIpOwotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4pOworICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sICJVbmtub3duIEhv c3QgTEJSIE1TUnNcbiIpOwogICAgICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CiAg ICAgICAgICAgICB9CiAKQEAgLTMyMTAsOSArMzIwNyw4IEBAIHN0YXRpYyBpbnQgdm14X21zcl93 cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQpCiAK ICAgICAgICAgICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgICAgICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHdWVzdCBsb2FkL3NhdmUgbGlzdCBlcnJvciAl ZFxuIiwgcmMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFp bik7CisgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHdWVzdCBsb2FkL3NhdmUgbGlzdCBl cnJvciAlZFxuIiwgcmMpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxf T0tBWTsKICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC0zMzkxLDcgKzMzODcsNyBAQCBzdGF0 aWMgdm9pZCBlcHRfaGFuZGxlX3Zpb2xhdGlvbihlcHRfcXVhbF90IHEsIHBhZGRyX3QgZ3BhKQog ICAgIGlmICggcS5nbGFfdmFsaWQgKQogICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsICIgLS0t IEdMQSAlI2x4XG4iLCBnbGEpOwogCi0gICAgZG9tYWluX2NyYXNoKGQpOworICAgIGRvbWFpbl9j cmFzaChkLCAiVW5oYW5kbGVkIEVQVCB2aW9sYXRpb25cbiIpOwogfQogCiBzdGF0aWMgdm9pZCB2 bXhfZmFpbGVkX3ZtZW50cnkodW5zaWduZWQgaW50IGV4aXRfcmVhc29uLApAQCAtMzQzOSwxMSAr MzQzNSw4IEBAIHN0YXRpYyB2b2lkIHZteF9mYWlsZWRfdm1lbnRyeSh1bnNpZ25lZCBpbnQgZXhp dF9yZWFzb24sCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHByaW50aygiKioqKioqKioq KioqKiBWTUNTIEFyZWEgKioqKioqKioqKioqKipcbiIpOwogICAgIHZtY3NfZHVtcF92Y3B1KGN1 cnIpOwotICAgIHByaW50aygiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipc biIpOwotCi0gICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbik7CisgICAgX19kb21haW5fY3Jh c2goY3Vyci0+ZG9tYWluKTsKIH0KIAogdm9pZCB2bXhfZW50ZXJfcmVhbG1vZGUoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCkBAIC0zNTUzLDE0ICszNTQ2LDEyIEBAIHN0YXRpYyB2b2lkIHZt eF9pZHR2X3JlaW5qZWN0KHVuc2lnbmVkIGxvbmcgaWR0dl9pbmZvKQogCiBzdGF0aWMgdm9pZCB2 bXhfaGFuZGxlX3hzYXZlcyh2b2lkKQogewotICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJ4c2F2 ZXMgc2hvdWxkIG5vdCBjYXVzZSB2bWV4aXRcbiIpOwotICAgIGRvbWFpbl9jcmFzaChjdXJyZW50 LT5kb21haW4pOworICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4sICJ4c2F2ZXMgc2hv dWxkbid0IHZtZXhpdFxuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHZteF9oYW5kbGVfeHJzdG9ycyh2 b2lkKQogewotICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJ4cnN0b3JzIHNob3VsZCBub3QgY2F1 c2Ugdm1leGl0XG4iKTsKLSAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluKTsKKyAgICBk b21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluLCAieHJzdG9ycyBzaG91bGRuJ3Qgdm1leGl0XG4i KTsKIH0KIAogc3RhdGljIHZvaWQgdm14X2hhbmRsZV9kZXNjcmlwdG9yX2FjY2Vzcyh1aW50MzJf dCBleGl0X3JlYXNvbikKQEAgLTM2ODksOCArMzY4MCw4IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5k bGVyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgaWYgKCAoaWR4ID0g cDJtX2ZpbmRfYWx0cDJtX2J5X2VwdHAodi0+ZG9tYWluLCBlcHRwKSkgPT0KICAgICAgICAgICAg ICAgICAgSU5WQUxJRF9BTFRQMk0gKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGdk cHJpbnRrKFhFTkxPR19FUlIsICJFUFRQIG5vdCBmb3VuZCBpbiBhbHRlcm5hdGUgcDJtIGxpc3Rc biIpOwotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOworICAgICAgICAg ICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJFUFRQIG5vdCBmb3VuZCBpbiBhbHRlcm5hdGUgcDJtIGxpc3RcbiIpOwogCiAgICAgICAg ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNDIyMiw3ICs0MjEzLDcgQEAgdm9p ZCB2bXhfdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAg ICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2ludmFsaWRfb3AsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBYODZfRVZFTlRfTk9fRUMpOwogICAgICAgICBlbHNl Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgICAgIF9fZG9t YWluX2NyYXNoKHYtPmRvbWFpbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtNDI1OSw3 ICs0MjUwLDcgQEAgdm9pZCB2bXhfdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCiAgICAgICAgICAgICAgICAgcmVncy0+cmlwID0gcmVncy0+ZWlwOwogICAgICAgICB9 CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOworICAg ICAgICAgICAgX19kb21haW5fY3Jhc2godi0+ZG9tYWluKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2 bXguYwppbmRleCBiN2Q5YTFhLi5iMjg0OWQyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L3ZteC92dm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCkBAIC0yMzMyLDgg KzIzMzIsOCBAQCBpbnQgbnZteF9uMl92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncywKICAgICAgICAgaWYgKCAhKGN0cmwgJiBDUFVfQkFTRURfQUNUSVZBVEVfTVNSX0JJ VE1BUCkgKQogICAgICAgICAgICAgbnZjcHUtPm52X3ZtZXhpdF9wZW5kaW5nID0gMTsKICAgICAg ICAgZWxzZSBpZiAoICFudm14LT5tc3JiaXRtYXAgKQotICAgICAgICAgICAgLyogQUNUSVZBVEVf TVNSX0JJVE1BUCBzZXQsIGJ1dCBMMiBiaXRtYXAgbm90IG1hcHBlZD8/PyAqLwotICAgICAgICAg ICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICJBQ1RJVkFURV9NU1JfQklUTUFQIHNl dCwgYnV0IEwyIGJpdG1hcCBub3QgbWFwcGVkXG4iKTsKICAgICAgICAgZWxzZQogICAgICAgICAg ICAgbnZjcHUtPm52X3ZtZXhpdF9wZW5kaW5nID0KICAgICAgICAgICAgICAgICB2bXhfbXNyX2lz X2ludGVyY2VwdGVkKG52bXgtPm1zcmJpdG1hcCwgcmVncy0+ZWN4LApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS92cHQuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMKaW5kZXggNmFjNGM5 MS4uOTZjODYzMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92cHQuYworKysgYi94ZW4v YXJjaC94ODYvaHZtL3ZwdC5jCkBAIC05NSw5ICs5NSw3IEBAIHN0YXRpYyBpbnQgcHRfaXJxX3Zl Y3RvcihzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQsIGVudW0gaHZtX2ludHNyYyBzcmMpCiAgICAg dmVjdG9yID0gdmlvYXBpY19nZXRfdmVjdG9yKHYtPmRvbWFpbiwgZ3NpKTsKICAgICBpZiAoIHZl Y3RvciA8IDAgKQogICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImQldTog aW52YWxpZCBHU0kgKCV1KSBmb3IgcGxhdGZvcm0gdGltZXJcbiIsCi0gICAgICAgICAgICAgICAg di0+ZG9tYWluLT5kb21haW5faWQsIGdzaSk7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4pOworICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiSW52YWxpZCBHU0kgKCV1KSBm b3IgcGxhdGZvcm0gdGltZXJcbiIsIGdzaSk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAK QEAgLTEzNywxMCArMTM1LDggQEAgc3RhdGljIGludCBwdF9pcnFfbWFza2VkKHN0cnVjdCBwZXJp b2RpY190aW1lICpwdCkKIAogICAgICAgICBpZiAoIG1hc2sgPCAwICkKICAgICAgICAgewotICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAgICAgImQl ZDogaW52YWxpZCBHU0kgKCV1KSBmb3IgcGxhdGZvcm0gdGltZXJcbiIsCi0gICAgICAgICAgICAg ICAgICAgIHYtPmRvbWFpbi0+ZG9tYWluX2lkLCBnc2kpOwotICAgICAgICAgICAgZG9tYWluX2Ny YXNoKHYtPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiSW52 YWxpZCBHU0kgKCV1KSBmb3IgcGxhdGZvcm0gdGltZXJcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgZ3NpKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDg0OTc5ZjIu LmMzYTIwYTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS5jCkBAIC0xMjAwLDEyICsxMjAwLDkgQEAgdm9pZCBwdXRfcGFnZV9mcm9tX2wxZShsMV9w Z2VudHJ5X3QgbDFlLCBzdHJ1Y3QgZG9tYWluICpsMWVfb3duZXIpCiAgICAgICovCiAgICAgaWYg KCBfUEFHRV9HTlRUQUIgJiYgKGwxZV9nZXRfZmxhZ3MobDFlKSAmIF9QQUdFX0dOVFRBQikgJiYK ICAgICAgICAgICFsMWVfb3duZXItPmlzX3NodXR0aW5nX2Rvd24gJiYgIWwxZV9vd25lci0+aXNf ZHlpbmcgKQotICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAg ICAgICAgICAgICJBdHRlbXB0IHRvIGltcGxpY2l0bHkgdW5tYXAgYSBncmFudGVkIFBURSAlIiBQ UklwdGUgIlxuIiwKLSAgICAgICAgICAgICAgICAgbDFlX2dldF9pbnRwdGUobDFlKSk7Ci0gICAg ICAgIGRvbWFpbl9jcmFzaChsMWVfb3duZXIpOwotICAgIH0KKyAgICAgICAgZG9tYWluX2NyYXNo KGwxZV9vd25lciwKKyAgICAgICAgICAgICAgICAgICAgICJBdHRlbXB0IHRvIGltcGxpY2l0bHkg dW5tYXAgYSBncmFudGVkIFBURSAlIiBQUklwdGUgIlxuIiwKKyAgICAgICAgICAgICAgICAgICAg IGwxZV9nZXRfaW50cHRlKGwxZSkpOwogCiAgICAgLyoKICAgICAgKiBSZW1lbWJlciB3ZSBkaWRu J3QgdGFrZSBhIHR5cGUtY291bnQgb2YgZm9yZWlnbiB3cml0YWJsZSBtYXBwaW5ncwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFw LmMKaW5kZXggOTQ2ZTMwMS4uMjdhZDQyMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hh cC9oYXAuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCkBAIC00MDgsOCArNDA4LDcg QEAgc3RhdGljIG1mbl90IGhhcF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZjcHUgKnYpCiAg ICAgcmV0dXJuIG00bWZuOwogCiAgb29tOgotICAgIHByaW50ayhYRU5MT0dfR19FUlIgIm91dCBv ZiBtZW1vcnkgYnVpbGRpbmcgbW9uaXRvciBwYWdldGFibGVcbiIpOwotICAgIGRvbWFpbl9jcmFz aChkKTsKKyAgICBkb21haW5fY3Jhc2goZCwgIm91dCBvZiBtZW1vcnkgYnVpbGRpbmcgbW9uaXRv ciBwYWdldGFibGVcbiIpOwogICAgIHJldHVybiBJTlZBTElEX01GTjsKIH0KIApAQCAtNjM5LDEw ICs2MzgsOCBAQCB2b2lkIGhhcF92Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYpCiBzdGF0aWMgaW50 IGhhcF9wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIHZhLAogICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKLSAgICBz dHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOworICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4s ICJJbnRlcmNlcHRlZCAjUEYgZnJvbSAlcHYgd2l0aCBIQVAgZW5hYmxlZFxuIiwgdik7CiAKLSAg ICBwcmludGsoWEVOTE9HX0dfRVJSICJJbnRlcmNlcHRlZCAjUEYgZnJvbSAlcHYgd2l0aCBIQVAg ZW5hYmxlZFxuIiwgdik7Ci0gICAgZG9tYWluX2NyYXNoKGQpOwogICAgIHJldHVybiAwOwogfQog CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vaGFwL25lc3RlZF9oYXAuYyBiL3hlbi9hcmNo L3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jCmluZGV4IGQyYTA3YTUuLjg1NmUxMDMgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9oYXAvbmVzdGVkX2hhcC5jCkBAIC0xMTYsMTIgKzExNiw5IEBAIG5lc3RlZGhhcF9maXhfcDJt KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAgIHJjID0gcDJtX3Nl dF9lbnRyeShwMm0sIF9nZm4oZ2ZuKSwgbWZuLCBwYWdlX29yZGVyLCBwMm10LCBwMm1hKTsKIAog ICAgIGlmICggcmMgKQotICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwKLSAgICAg ICAgICAgICAgICAgImZhaWxlZCB0byBzZXQgZW50cnkgZm9yICUjIlBSSXg2NCIgLT4gJSMiUFJJ eDY0IiByYzolZFxuIiwKLSAgICAgICAgICAgICAgICAgTDJfZ3BhLCBMMF9ncGEsIHJjKTsKLSAg ICAgICAgZG9tYWluX2NyYXNoKHAybS0+ZG9tYWluKTsKLSAgICB9CisgICAgICAgIGRvbWFpbl9j cmFzaChwMm0tPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gc2V0IGVu dHJ5IGZvciAlIyJQUkl4NjQiIC0+ICUjIlBSSXg2NCIgcmM6JWRcbiIsCisgICAgICAgICAgICAg ICAgICAgICBMMl9ncGEsIEwwX2dwYSwgcmMpOwogfQogCiAvKiBUaGlzIGZ1bmN0aW9uIHVzZXMg TDJfZ3BhIHRvIHdhbGsgdGhlIFAyTSBwYWdlIHRhYmxlIGluIEwxLiBJZiB0aGUKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2Fj Y2Vzcy5jCmluZGV4IDg0ZDI2MGUuLmVlODhkZTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9tZW1fYWNjZXNzLmMKKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYwpAQCAtMTg2 LDEwICsxODYsNyBAQCBib29sIHAybV9tZW1fYWNjZXNzX2NoZWNrKHBhZGRyX3QgZ3BhLCB1bnNp Z25lZCBsb25nIGdsYSwKICAgICAgICAgLyogTm8gbGlzdGVuZXIgKi8KICAgICAgICAgaWYgKCBw Mm0tPmFjY2Vzc19yZXF1aXJlZCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGdkcHJpbnRrKFhF TkxPR19JTkZPLCAiTWVtb3J5IGFjY2VzcyBwZXJtaXNzaW9ucyBmYWlsdXJlLCAiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIHZtX2V2ZW50IGxpc3RlbmVyIFZDUFUgJWQs IGRvbSAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52Y3B1X2lk LCBkLT5kb21haW5faWQpOwotICAgICAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7Cisg ICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiTm8gdm1fZXZlbnQgbGlzdGVuZXJc biIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGVsc2UK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMgYi94ZW4vYXJjaC94ODYvbW0v cDJtLXBvZC5jCmluZGV4IGJhMzczNDQuLmU0Mzc0NzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tcG9kLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYwpAQCAtNTY3LDcg KzU2Nyw3IEBAIHAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRvbWFpbiAqZCwg Z2ZuX3QgZ2ZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgICAgICAgICAgKiBpbXBvc3NpYmxl LgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAoIG9yZGVyICE9IDAgKQotICAgICAg ICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2go ZCwgIkZhdGFsIFBvRCBlcnJvclxuIik7CiAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7CiAg ICAgICAgIH0KICAgICAgICAgcmV0ID0gMVVMIDw8IG9yZGVyOwpAQCAtNjE3LDcgKzYxNyw3IEBA IHAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu LCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJt X2ludmFsaWQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpICkKICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jh c2goZCk7CisgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJGYXRhbCBQb0QgZXJyb3Jc biIpOwogICAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIHAybS0+cG9kLmVudHJ5X2NvdW50IC09IG47CkBAIC02NDYsNyArNjQ2LDcgQEAg cDJtX3BvZF9kZWNyZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4s IHVuc2lnbmVkIGludCBvcmRlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1f aW52YWxpZCwgcDJtLT5kZWZhdWx0X2FjY2VzcykgKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwotICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFz aChkKTsKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCwgIkZhdGFsIFBvRCBlcnJvclxu Iik7CiAgICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2NrOwogICAgICAgICAgICAgfQogICAg ICAgICAgICAgcDJtX3RsYl9mbHVzaF9zeW5jKHAybSk7CkBAIC04NTQsNyArODU0LDcgQEAgcDJt X3BvZF96ZXJvX2NoZWNrX3N1cGVycGFnZShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBn Zm4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUwLCBwMm0tPmRlZmF1bHRf YWNjZXNzKSApCiAgICAgewogICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKLSAgICAgICAg ZG9tYWluX2NyYXNoKGQpOworICAgICAgICBkb21haW5fY3Jhc2goZCwgIkZhdGFsIFBvRCBlcnJv clxuIik7CiAgICAgfQogCiBvdXQ6CkBAIC05MzksNyArOTM5LDcgQEAgcDJtX3BvZF96ZXJvX2No ZWNrKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGNvbnN0IGdmbl90ICpnZm5zLCBpbnQgY291bnQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXNbaV0sIHAybS0+ZGVmYXVsdF9h Y2Nlc3MpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVU5SRUFDSEFC TEUoKTsKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICAgICAg ZG9tYWluX2NyYXNoKGQsICJGYXRhbCBQb0QgZXJyb3JcbiIpOwogICAgICAgICAgICAgICAgIGdv dG8gb3V0X3VubWFwOwogICAgICAgICAgICAgfQogCkBAIC05ODEsNyArOTgxLDcgQEAgcDJtX3Bv ZF96ZXJvX2NoZWNrKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGNvbnN0IGdmbl90ICpnZm5zLCBp bnQgY291bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXNbaV0sIHAybS0+ ZGVmYXVsdF9hY2Nlc3MpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBBU1NFUlRf VU5SRUFDSEFCTEUoKTsKLSAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAg ICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJGYXRhbCBQb0QgZXJyb3JcbiIpOwogICAgICAgICAg ICAgICAgIGdvdG8gb3V0X3VubWFwOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMjM3 LDEwICsxMjM3LDkgQEAgcDJtX3BvZF9kZW1hbmRfcG9wdWxhdGUoc3RydWN0IHAybV9kb21haW4g KnAybSwgZ2ZuX3QgZ2ZuLAogb3V0X29mX21lbW9yeToKICAgICBwb2RfdW5sb2NrKHAybSk7CiAK LSAgICBwcmludGsoIiVzOiBEb20lZCBvdXQgb2YgUG9EIG1lbW9yeSEgKHRvdD0lIlBSSXUzMiIg ZW50cz0lbGQgZG9tJWQpXG4iLAotICAgICAgICAgICBfX2Z1bmNfXywgZC0+ZG9tYWluX2lkLCBk LT50b3RfcGFnZXMsIHAybS0+cG9kLmVudHJ5X2NvdW50LAotICAgICAgICAgICBjdXJyZW50LT5k b21haW4tPmRvbWFpbl9pZCk7Ci0gICAgZG9tYWluX2NyYXNoKGQpOworICAgIGRvbWFpbl9jcmFz aChkLCAiZCVkIG91dCBvZiBQb0QgbWVtb3J5ICh0b3Q9JSJQUkl1MzIiIGVudHM9JWxkIGRvbSVk KVxuIiwKKyAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBkLT50b3RfcGFnZXMsIHAybS0+ cG9kLmVudHJ5X2NvdW50LAorICAgICAgICAgICAgICAgICBjdXJyZW50LT5kb21haW4tPmRvbWFp bl9pZCk7CiAgICAgcmV0dXJuIGZhbHNlOwogb3V0X2ZhaWw6CiAgICAgcG9kX3VubG9jayhwMm0p OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3Ay bS5jCmluZGV4IDYwMjA1NTMuLjM3ZTQxMTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9w Mm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTQ1MSw3ICs0NTEsNyBAQCBtZm5f dCBfX2dldF9nZm5fdHlwZV9hY2Nlc3Moc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQg bG9uZyBnZm5fbCwKICAgICAgICAgLyogUmV0dXJuIGludmFsaWRfbWZuIHRvIGF2b2lkIGNhbGxl cidzIGFjY2VzcyAqLwogICAgICAgICBtZm4gPSBJTlZBTElEX01GTjsKICAgICAgICAgaWYgKCBx ICYgUDJNX0FMTE9DICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChwMm0tPmRvbWFpbik7Cisg ICAgICAgICAgICBkb21haW5fY3Jhc2gocDJtLT5kb21haW4sICJCcm9rZW4gcGFnZVxuIik7CiAg ICAgfQogCiAgICAgcmV0dXJuIG1mbjsKQEAgLTgzOSw3ICs4MzksNyBAQCBndWVzdF9waHlzbWFw X2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIG1mbl90IG1mbiwKICAgICAg ICAgaWYgKCBwMm1faXNfZ3JhbnQob3QpIHx8IHAybV9pc19mb3JlaWduKG90KSApCiAgICAgICAg IHsKICAgICAgICAgICAgIC8qIFJlYWxseSBzaG91bGRuJ3QgYmUgdW5tYXBwaW5nIGdyYW50L2Zv cmVpZ24gbWFwcyB0aGlzIHdheSAqLwotICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAg ICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJBdHRlbXB0aW5nIHRvIGltcGxpY2l0bHkgdW5tYXAg Z3JhbnQvZm9yZWlnbiBmcmFtZVxuIik7CiAgICAgICAgICAgICBwMm1fdW5sb2NrKHAybSk7CiAg ICAgICAgICAgICAKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpAQCAtOTkxLDExICs5OTEs OCBAQCB2b2lkIHAybV9jaGFuZ2VfdHlwZV9yYW5nZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIGlm ICggZ2ZuIDwgZW5kICkKICAgICAgICAgcmMgPSBwMm0tPmNoYW5nZV9lbnRyeV90eXBlX3Jhbmdl KHAybSwgb3QsIG50LCBnZm4sIGVuZCAtIDEpOwogICAgIGlmICggcmMgKQotICAgIHsKLSAgICAg ICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiRXJyb3IgJWQgY2hhbmdpbmcgRG9tJWQgR0ZOcyBbJWx4 LCVseF0gZnJvbSAlZCB0byAlZFxuIiwKLSAgICAgICAgICAgICAgIHJjLCBkLT5kb21haW5faWQs IHN0YXJ0LCBlbmQgLSAxLCBvdCwgbnQpOwotICAgICAgICBkb21haW5fY3Jhc2goZCk7Ci0gICAg fQorICAgICAgICBkb21haW5fY3Jhc2goZCwgIkVycm9yICVkIGNoYW5naW5nIGQlZCBHRk5zIFsl bHgsJWx4XSBmcm9tICVkIHRvICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgcmMsIGQtPmRv bWFpbl9pZCwgc3RhcnQsIGVuZCAtIDEsIG90LCBudCk7CiAKICAgICBzd2l0Y2ggKCBudCApCiAg ICAgewpAQCAtMTAxMSwxMSArMTAwOCw4IEBAIHZvaWQgcDJtX2NoYW5nZV90eXBlX3JhbmdlKHN0 cnVjdCBkb21haW4gKmQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoIHJjICkKLSAg ICB7Ci0gICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkVycm9yICVkIG1hbmlwdWxhdGluZyBE b20lZCdzIGxvZy1kaXJ0eSByYW5nZXNcbiIsCi0gICAgICAgICAgICAgICByYywgZC0+ZG9tYWlu X2lkKTsKLSAgICAgICAgZG9tYWluX2NyYXNoKGQpOwotICAgIH0KKyAgICAgICAgZG9tYWluX2Ny YXNoKGQsICJFcnJvciAlZCBtYW5pcHVsYXRpbmcgRG9tJWQncyBsb2ctZGlydHkgcmFuZ2VzXG4i LAorICAgICAgICAgICAgICAgICAgICAgcmMsIGQtPmRvbWFpbl9pZCk7CiAKICAgICBwMm0tPmRl ZmVyX25lc3RlZF9mbHVzaCA9IDA7CiAgICAgaWYgKCBuZXN0ZWRodm1fZW5hYmxlZChkKSApCkBA IC0xMDk1LDcgKzEwODksOCBAQCBzdGF0aWMgaW50IHNldF90eXBlZF9wMm1fZW50cnkoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCwKICAgICBpZiAoIHAybV9pc19ncmFudChv dCkgfHwgcDJtX2lzX2ZvcmVpZ24ob3QpICkKICAgICB7CiAgICAgICAgIGdmbl91bmxvY2socDJt LCBnZm4sIG9yZGVyKTsKLSAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICBkb21haW5f Y3Jhc2goZCwgIkF0dGVtcHRlZCB0byBzZXQgZ2ZuICUiUFJJX2dmbiIsIHR5cGUgJXVcbiIsCisg ICAgICAgICAgICAgICAgICAgICBnZm5feChnZm4pLCBvdCk7CiAgICAgICAgIHJldHVybiAtRU5P RU5UOwogICAgIH0KICAgICBlbHNlIGlmICggcDJtX2lzX3JhbShvdCkgKQpAQCAtMTUyMywxMiAr MTUxOCwxMCBAQCB2b2lkIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZ2ZuX2wpCiAgICAgaW50IHJjID0gdm1fZXZlbnRfY2xhaW1fc2xvdChk LCBkLT52bV9ldmVudF9wYWdpbmcpOwogICAgIGlmICggcmMgPT0gLUVOT1NZUyApCiAgICAgewot ICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiRG9tYWluICVodSBwYWdpbmcgZ2ZuICVseCB5 ZXQgbm8gcmluZyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbiBwbGFjZVxuIiwg ZC0+ZG9tYWluX2lkLCBnZm5fbCk7CiAgICAgICAgIC8qIFByZXZlbnQgdGhlIHZjcHUgZnJvbSBm YXVsdGluZyByZXBlYXRlZGx5IG9uIHRoZSBzYW1lIGdmbiAqLwogICAgICAgICBpZiAoIHYtPmRv bWFpbiA9PSBkICkKICAgICAgICAgICAgIHZjcHVfcGF1c2Vfbm9zeW5jKHYpOwotICAgICAgICBk b21haW5fY3Jhc2goZCk7CisgICAgICAgIGRvbWFpbl9jcmFzaChkLCAiUGFnaW5nIGdmbiAlIlBS SV9nZm4iIHdpdGggbm8gcmluZyBzZXQgdXBcbiIsIGdmbl9sKTsKICAgICAgICAgcmV0dXJuOwog ICAgIH0KICAgICBlbHNlIGlmICggcmMgPCAwICkKQEAgLTIyMzcsMTIgKzIyMzAsMTAgQEAgYm9v bF90IHAybV9hbHRwMm1fbGF6eV9jb3B5KHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGdwYSwKICAg ICBwMm1fdW5sb2NrKCphcDJtKTsKIAogICAgIGlmICggcnYgKQotICAgIHsKLSAgICAgICAgZ2Rw cmludGsoWEVOTE9HX0VSUiwKLQkgICAgImZhaWxlZCB0byBzZXQgZW50cnkgZm9yICUjIlBSSXg2 NCIgLT4gJSMiUFJJeDY0IiBwMm0gJSMiUFJJeDY0IlxuIiwKLQkgICAgZ2ZuX3goZ2ZuKSwgbWZu X3gobWZuKSwgKHVuc2lnbmVkIGxvbmcpKmFwMm0pOwotICAgICAgICBkb21haW5fY3Jhc2goaHAy bS0+ZG9tYWluKTsKLSAgICB9CisgICAgICAgIGRvbWFpbl9jcmFzaChocDJtLT5kb21haW4sCisg ICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHNldCBlbnRyeSBmb3IgJSMiUFJJeDY0IiAt PiAlIyJQUkl4NjQKKyAgICAgICAgICAgICAgICAgICAgICIgcDJtICUjIlBSSXg2NCJcbiIsCisg ICAgICAgICAgICAgICAgICAgICBnZm5feChnZm4pLCBtZm5feChtZm4pLCAodW5zaWduZWQgbG9u ZykqYXAybSk7CiAKICAgICByZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4 IGYyYjllOGYuLmE0YzUxYTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29t bW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMTk1NCwxMiAr MTk1NCw5IEBAIGludCBzaF9yZW1vdmVfd3JpdGVfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIG1m bl90IGdtZm4sCiAgICAgLyogSWYgdGhpcyBpc24ndCBhICJub3JtYWwiIHdyaXRlYWJsZSBwYWdl LCB0aGUgZG9tYWluIGlzIHRyeWluZyB0bwogICAgICAqIHB1dCBwYWdldGFibGVzIGluIHNwZWNp YWwgbWVtb3J5IG9mIHNvbWUga2luZC4gIFdlIGNhbid0IGFsbG93IHRoYXQuICovCiAgICAgaWYg KCAocGctPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzaykgIT0gUEdUX3dyaXRhYmxl X3BhZ2UgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiY2FuJ3QgcmVtb3Zl IHdyaXRlIGFjY2VzcyB0byBtZm4gJSJQUklfbWZuCi0gICAgICAgICAgICAgICAiLCB0eXBlX2lu Zm8gaXMgJSJQUnR5cGVfaW5mbyAiXG4iLAotICAgICAgICAgICAgICAgbWZuX3goZ21mbiksIG1m bl90b19wYWdlKGdtZm4pLT51LmludXNlLnR5cGVfaW5mbyk7Ci0gICAgICAgIGRvbWFpbl9jcmFz aChkKTsKLSAgICB9CisgICAgICAgIGRvbWFpbl9jcmFzaChkLCAiY2FuJ3QgcmVtb3ZlIHdyaXRl IGFjY2VzcyB0byBtZm4gJSJQUklfbWZuCisgICAgICAgICAgICAgICAgICAgICAiLCB0eXBlX2lu Zm8gaXMgJSJQUnR5cGVfaW5mbyJcbiIsCisgICAgICAgICAgICAgICAgICAgICBtZm5feChnbWZu KSwgbWZuX3RvX3BhZ2UoZ21mbiktPnUuaW51c2UudHlwZV9pbmZvKTsKIAogI2lmIFNIQURPV19P UFRJTUlaQVRJT05TICYgU0hPUFRfV1JJVEFCTEVfSEVVUklTVElDCiAgICAgaWYgKCBjdXJyLT5k b21haW4gPT0gZCApCkBAIC0yMTA0LDEwICsyMTAxLDkgQEAgaW50IHNoX3JlbW92ZV93cml0ZV9h Y2Nlc3Moc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgZ21mbiwKICAgICAgICAgaWYgKCBsZXZlbCA9 PSAwICkKICAgICAgICAgICAgIHJldHVybiAtMTsKIAotICAgICAgICBwcmludGsoWEVOTE9HX0df RVJSICJjYW4ndCByZW1vdmUgd3JpdGUgYWNjZXNzIHRvIG1mbiAlIlBSSV9tZm4KLSAgICAgICAg ICAgICAgICI6IGd1ZXN0IGhhcyAlbHUgc3BlY2lhbC11c2UgbWFwcGluZ3NcbiIsIG1mbl94KGdt Zm4pLAotICAgICAgICAgICAgICAgbWZuX3RvX3BhZ2UoZ21mbiktPnUuaW51c2UudHlwZV9pbmZv ICYgUEdUX2NvdW50X21hc2spOwotICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgIGRv bWFpbl9jcmFzaChkLCAiY2FuJ3QgcmVtb3ZlIHdyaXRlIGFjY2VzcyB0byBtZm4gJSJQUklfbWZu CisgICAgICAgICAgICAgICAgICAgICAiOiBndWVzdCBoYXMgJWx1IHNwZWNpYWwtdXNlIG1hcHBp bmdzXG4iLCBtZm5feChnbWZuKSwKKyAgICAgICAgICAgICAgICAgICAgIG1mbl90b19wYWdlKGdt Zm4pLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF9jb3VudF9tYXNrKTsKICAgICB9CiAKICAgICAv KiBXZSBraWxsZWQgYXQgbGVhc3Qgb25lIHdyaXRlYWJsZSBtYXBwaW5nLCBzbyBtdXN0IGZsdXNo IFRMQnMuICovCkBAIC0yMzk4LDExICsyMzk0LDggQEAgdm9pZCBzaF9yZW1vdmVfc2hhZG93cyhz dHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBnbWZuLCBpbnQgZmFzdCwgaW50IGFsbCkKIAogICAgIC8q IElmIHRoYXQgZGlkbid0IGNhdGNoIHRoZSBzaGFkb3dzLCBzb21ldGhpbmcgaXMgd3JvbmcgKi8K ICAgICBpZiAoICFmYXN0ICYmIGFsbCAmJiAocGctPmNvdW50X2luZm8gJiBQR0NfcGFnZV90YWJs ZSkgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiY2FuJ3QgZmluZCBhbGwg c2hhZG93cyBvZiBtZm4gJSJQUklfbWZuCi0gICAgICAgICAgICAgICAiIChzaGFkb3dfZmxhZ3M9 JTA4eClcbiIsIG1mbl94KGdtZm4pLCBwZy0+c2hhZG93X2ZsYWdzKTsKLSAgICAgICAgZG9tYWlu X2NyYXNoKGQpOwotICAgIH0KKyAgICAgICAgZG9tYWluX2NyYXNoKGQsICJjYW4ndCBmaW5kIGFs bCBzaGFkb3dzIG9mIG1mbiAlIlBSSV9tZm4KKyAgICAgICAgICAgICAgICAgICAgICIgKHNoYWRv d19mbGFncz0lMDh4KVxuIiwgbWZuX3goZ21mbiksIHBnLT5zaGFkb3dfZmxhZ3MpOwogCiAgICAg LyogTmVlZCB0byBmbHVzaCBUTEJzIG5vdywgc28gdGhhdCBsaW5lYXIgbWFwcyBhcmUgc2FmZSBu ZXh0IHRpbWUgd2UKICAgICAgKiB0YWtlIGEgZmF1bHQuICovCkBAIC0yNDgwLDggKzI0NzMsOCBA QCBzdGF0aWMgdm9pZCBzaF91cGRhdGVfcGFnaW5nX21vZGVzKHN0cnVjdCB2Y3B1ICp2KQogICAg ICAgICB2LT5hcmNoLnBhZ2luZy52dGxiID0geHphbGxvY19hcnJheShzdHJ1Y3Qgc2hhZG93X3Z0 bGIsIFZUTEJfRU5UUklFUyk7CiAgICAgICAgIGlmICggdW5saWtlbHkoIXYtPmFyY2gucGFnaW5n LnZ0bGIpICkKICAgICAgICAgewotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiQ291 bGQgbm90IGFsbG9jYXRlIHZUTEIgc3BhY2UgZm9yICVwdlxuIiwgdik7Ci0gICAgICAgICAgICBk b21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBhbGxvY2F0ZSB2VExCIHNw YWNlIGZvciAlcHZcbiIsIHYpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg ICAgIHNwaW5fbG9ja19pbml0KCZ2LT5hcmNoLnBhZ2luZy52dGxiX2xvY2spOwpAQCAtMjU4Mywx MyArMjU3NiwxMiBAQCBzdGF0aWMgdm9pZCBzaF91cGRhdGVfcGFnaW5nX21vZGVzKHN0cnVjdCB2 Y3B1ICp2KQogCiAgICAgICAgICAgICAgICAgaWYgKCB2ICE9IGN1cnJlbnQgJiYgdmNwdV9ydW5u YWJsZSh2KSApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBwcmludGso WEVOTE9HX0dfRVJSCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiU29tZSB0aGlyZCBwYXJ0 eSAoJXB2KSBpcyBjaGFuZ2luZyB0aGlzIEhWTSB2Y3B1J3MiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAiICglcHYpIHBhZ2luZyBtb2RlIHdoaWxlIGl0IGlzIHJ1bm5pbmdcbiIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LCB2KTsKICAgICAgICAgICAgICAgICAgICAg LyogSXQncyBub3Qgc2FmZSB0byBkbyB0aGF0IGJlY2F1c2Ugd2UgY2FuJ3QgY2hhbmdlCiAgICAg ICAgICAgICAgICAgICAgICAqIHRoZSBob3N0IENSMyBmb3IgYSBydW5uaW5nIGRvbWFpbiAqLwot ICAgICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgICAg ICAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJTb21lIHRoaXJkIHBhcnR5ICglcHYpIGlzIGNoYW5naW5nIHRoaXMgIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhWTSB2Y3B1J3MgKCVwdikgcGFnaW5nIG1v ZGUgd2hpbGUgaXQgaXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bm5p bmdcbiIsIGN1cnJlbnQsIHYpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg ICAgICAgICAgfQogCkBAIC0zNTYyLDExICszNTU0LDcgQEAgdm9pZCBwdl9sMXRmX3Rhc2tsZXQo dW5zaWduZWQgbG9uZyBkYXRhKQogICAgICAgICBpbnQgcmV0ID0gc2hhZG93X29uZV9iaXRfZW5h YmxlKGQsIFBHX1NIX2ZvcmNlZCk7CiAKICAgICAgICAgaWYgKCByZXQgKQotICAgICAgICB7Ci0g ICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJkJWQgRmFpbGVkIHRvIGVuYWJsZSBQR19T SF9mb3JjZWQ6ICVkXG4iLAotICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmV0KTsK LSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKLSAgICAgICAgfQorICAgICAgICAgICAgZG9t YWluX2NyYXNoKGQsICJGYWlsZWQgdG8gZW5hYmxlIFBHX1NIX2ZvcmNlZDogJWRcbiIsIHJldCk7 CiAgICAgfQogCiAgICAgcGFnaW5nX3VubG9jayhkKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwppbmRl eCBkZDg2YWExLi5lODUyOTNlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211 bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCkBAIC05NDAsNyArOTQw LDcgQEAgc3RhdGljIGludCBzaGFkb3dfc2V0X2w0ZShzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAg ICAgIGlmICggIXNoX2dldF9yZWYoZCwgc2wzbWZuLCBwYWRkcikgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICBkb21haW5fY3Jhc2goZCwgIkZh aWxlZCB0byBnZXQgcmVmXG4iKTsKICAgICAgICAgICAgIHJldHVybiBTSEFET1dfU0VUX0VSUk9S OwogICAgICAgICB9CiAKQEAgLTk5Myw3ICs5OTMsNyBAQCBzdGF0aWMgaW50IHNoYWRvd19zZXRf bDNlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgIC8qIEFib3V0IHRvIGluc3RhbGwgYSBuZXcg cmVmZXJlbmNlICovCiAgICAgICAgIGlmICggIXNoX2dldF9yZWYoZCwgc2hhZG93X2wzZV9nZXRf bWZuKG5ld19zbDNlKSwgcGFkZHIpICkKICAgICAgICAgewotICAgICAgICAgICAgZG9tYWluX2Ny YXNoKGQpOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQsICJGYWlsZWQgdG8gZ2V0IHJlZlxu Iik7CiAgICAgICAgICAgICByZXR1cm4gU0hBRE9XX1NFVF9FUlJPUjsKICAgICAgICAgfQogICAg IH0KQEAgLTEwNTUsNyArMTA1NSw3IEBAIHN0YXRpYyBpbnQgc2hhZG93X3NldF9sMmUoc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgLyogQWJvdXQgdG8gaW5zdGFsbCBhIG5ldyByZWZlcmVuY2Ug Ki8KICAgICAgICAgaWYgKCAhc2hfZ2V0X3JlZihkLCBzbDFtZm4sIHBhZGRyKSApCiAgICAgICAg IHsKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICAgICAgICAgIGRvbWFpbl9jcmFz aChkLCAiRmFpbGVkIHRvIGdldCByZWZcbiIpOwogICAgICAgICAgICAgcmV0dXJuIFNIQURPV19T RVRfRVJST1I7CiAgICAgICAgIH0KICNpZiAoU0hBRE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9P VVRfT0ZfU1lOQykKQEAgLTM5NDYsOSArMzk0Niw4IEBAIHNoX3NldF90b3BsZXZlbF9zaGFkb3co c3RydWN0IHZjcHUgKnYsCiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHByaW50ayhY RU5MT0dfR19FUlIgImNhbid0IGluc3RhbGwgJSJQUklfbWZuIiBhcyB0b3BsZXZlbCBzaGFkb3dc biIsCi0gICAgICAgICAgICAgICBtZm5feChzbWZuKSk7Ci0gICAgICAgIGRvbWFpbl9jcmFzaChk KTsKKyAgICAgICAgZG9tYWluX2NyYXNoKGQsICJjYW4ndCBpbnN0YWxsICUiUFJJX21mbiIgYXMg dG9wbGV2ZWwgc2hhZG93XG4iLAorICAgICAgICAgICAgICAgICAgICAgbWZuX3goc21mbikpOwog ICAgICAgICBuZXdfZW50cnkgPSBwYWdldGFibGVfbnVsbCgpOwogICAgIH0KIApAQCAtMzk2Niwx MCArMzk2NSw4IEBAIHNoX3NldF90b3BsZXZlbF9zaGFkb3coc3RydWN0IHZjcHUgKnYsCiAgICAg ICAgICAqIGJ5IHNoYWRvd19wcmVhbGxvYygpOiBpbiBQViBtb2RlIHdlJ3JlIHN0aWxsIHJ1bm5p bmcgb24gdGhpcwogICAgICAgICAgKiBzaGFkb3cgYW5kIGl0J3Mgbm90IHNhZmUgdG8gZnJlZSBp dCB5ZXQuICovCiAgICAgICAgIGlmICggIW1mbl90b19wYWdlKG9sZF9zbWZuKS0+dS5zaC5waW5u ZWQgJiYgIXNoX3BpbihkLCBvbGRfc21mbikgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfRVJSICJjYW4ndCByZS1waW4gJSJQUklfbWZuIlxuIiwgbWZuX3gob2xkX3Nt Zm4pKTsKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKLSAgICAgICAgfQorICAgICAgICAg ICAgZG9tYWluX2NyYXNoKGQsICJjYW4ndCByZS1waW4gJSJQUklfbWZuIlxuIiwgbWZuX3gob2xk X3NtZm4pKTsKKwogICAgICAgICBzaF9wdXRfcmVmKGQsIG9sZF9zbWZuLCAwKTsKICAgICB9CiB9 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXNpLmMgYi94ZW4vYXJjaC94ODYvbXNpLmMKaW5k ZXggNTU2Nzk5MC4uYjQxZDU0YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21zaS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tc2kuYwpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgc3RhdGljIGludCBtc2l4 X2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogICAgICAgICAgICAgaWYgKCAh aXNfaGFyZHdhcmVfZG9tYWluKGQpICYmCiAgICAgICAgICAgICAgICAgIC8qIEFzc3VtZSBhIGRv bWFpbiB3aXRob3V0IG1lbW9yeSBoYXMgbm8gbWFwcGluZ3MgeWV0LiAqLwogICAgICAgICAgICAg ICAgICAoIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZCkgfHwgZC0+dG90X3BhZ2VzKSApCi0gICAg ICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFz aChkLCAiRmF0YWwgTVNJLVggZXJyb3JcbiIpOwogICAgICAgICAgICAgLyogWFhYIEhvdyB0byBk ZWFsIHdpdGggZXhpc3RpbmcgbWFwcGluZ3M/ICovCiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvcHYvaXJldC5jIGIveGVuL2FyY2gveDg2L3B2L2lyZXQuYwppbmRl eCBjMzU5YTFkLi4wNzdmOWU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvaXJldC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9wdi9pcmV0LmMKQEAgLTMzLDkgKzMzLDkgQEAgdW5zaWduZWQgbG9u ZyBkb19pcmV0KHZvaWQpCiAgICAgaWYgKCB1bmxpa2VseShjb3B5X2Zyb21fdXNlcigmaXJldF9z YXZlZCwgKHZvaWQgKilyZWdzLT5yc3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoaXJldF9zYXZlZCkpKSApCiAgICAgewotICAgICAgICBncHJpbnRrKFhFTkxPR19F UlIsCi0gICAgICAgICAgICAgICAgIkZhdWx0IHdoaWxlIHJlYWRpbmcgSVJFVCBjb250ZXh0IGZy b20gZ3Vlc3Qgc3RhY2tcbiIpOwotICAgICAgICBnb3RvIGV4aXRfYW5kX2NyYXNoOworICAgICAg ICBkb21haW5fY3Jhc2godi0+ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgIkZhdWx0IHdo aWxlIHJlYWRpbmcgSVJFVCBjb250ZXh0IGZyb20gZ3Vlc3Qgc3RhY2tcbiIpOworICAgICAgICBy ZXR1cm4gMDsKICAgICB9CiAKICAgICAvKiBSZXR1cm5pbmcgdG8gdXNlciBtb2RlPyAqLwpAQCAt NDMsOSArNDMsOSBAQCB1bnNpZ25lZCBsb25nIGRvX2lyZXQodm9pZCkKICAgICB7CiAgICAgICAg IGlmICggdW5saWtlbHkocGFnZXRhYmxlX2lzX251bGwodi0+YXJjaC5ndWVzdF90YWJsZV91c2Vy KSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsCi0gICAgICAg ICAgICAgICAgICAgICJHdWVzdCBzd2l0Y2hpbmcgdG8gdXNlciBtb2RlIHdpdGggbm8gdXNlciBw YWdlIHRhYmxlc1xuIik7Ci0gICAgICAgICAgICBnb3RvIGV4aXRfYW5kX2NyYXNoOworICAgICAg ICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAi U3dpdGNoaW5nIHRvIHVzZXIgbW9kZSB3aXRoIG5vIHVzZXIgcGFnZSB0YWJsZXNcbiIpOworICAg ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgdG9nZ2xlX2d1ZXN0X21vZGUo dik7CiAgICAgfQpAQCAtNzQsMTAgKzc0LDYgQEAgdW5zaWduZWQgbG9uZyBkb19pcmV0KHZvaWQp CiAKICAgICAvKiBTYXZlZCAlcmF4IGdldHMgd3JpdHRlbiBiYWNrIHRvIHJlZ3MtPnJheCBpbiBl bnRyeS5TLiAqLwogICAgIHJldHVybiBpcmV0X3NhdmVkLnJheDsKLQotIGV4aXRfYW5kX2NyYXNo OgotICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwotICAgIHJldHVybiAwOwogfQogCiB1bnNp Z25lZCBpbnQgY29tcGF0X2lyZXQodm9pZCkKQEAgLTkyLDcgKzg4LDcgQEAgdW5zaWduZWQgaW50 IGNvbXBhdF9pcmV0KHZvaWQpCiAgICAgLyogUmVzdG9yZSBFQVggKGNsb2JiZXJlZCBieSBoeXBl cmNhbGwpLiAqLwogICAgIGlmICggdW5saWtlbHkoX19nZXRfdXNlcihyZWdzLT5lYXgsICh1MzIg KilyZWdzLT5yc3ApKSApCiAgICAgewotICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsK KyAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwgIkZhaWxlZCB0byByZWFkIGVheFxuIik7 CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTAwLDcgKzk2LDcgQEAgdW5zaWduZWQg aW50IGNvbXBhdF9pcmV0KHZvaWQpCiAgICAgaWYgKCB1bmxpa2VseShfX2dldF91c2VyKHJlZ3Mt PmVpcCwgKHUzMiAqKXJlZ3MtPnJzcCArIDEpKSB8fAogICAgICAgICB1bmxpa2VseShfX2dldF91 c2VyKHJlZ3MtPmNzLCAodTMyICopcmVncy0+cnNwICsgMikpICkKICAgICB7Ci0gICAgICAgIGRv bWFpbl9jcmFzaCh2LT5kb21haW4pOworICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAi RmFpbGVkIHRvIHJlYWQgY3MvZWlwXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBA IC0xMTAsNyArMTA2LDcgQEAgdW5zaWduZWQgaW50IGNvbXBhdF9pcmV0KHZvaWQpCiAgICAgICov CiAgICAgaWYgKCB1bmxpa2VseShfX2dldF91c2VyKGVmbGFncywgKHUzMiAqKXJlZ3MtPnJzcCAr IDMpKSApCiAgICAgewotICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAg ZG9tYWluX2NyYXNoKHYtPmRvbWFpbiwgIkZhaWxlZCB0byByZWFkIGVmbGFnc1xuIik7CiAgICAg ICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTU0LDcgKzE1MCw3IEBAIHVuc2lnbmVkIGludCBj b21wYXRfaXJldCh2b2lkKQogICAgICAgICB9CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKKyAgICAgICAgICAgIGRvbWFp bl9jcmFzaCh2LT5kb21haW4sICJGYWlsZWQgdG8gY29weSBleGNlcHRpb24gZnJhbWVcbiIpOwog ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmVncy0+ZXNwID0ga3Nw OwpAQCAtMTY3LDcgKzE2Myw3IEBAIHVuc2lnbmVkIGludCBjb21wYXRfaXJldCh2b2lkKQogICAg ICAgICAgICAgICAgICAgICAgICAgICBYODZfRUZMQUdTX05UfFg4Nl9FRkxBR1NfVEYpOwogICAg ICAgICBpZiAoIHVubGlrZWx5KF9fcHV0X3VzZXIoMCwgKHUzMiAqKXJlZ3MtPnJzcCkpICkKICAg ICAgICAgewotICAgICAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CisgICAgICAgICAg ICBkb21haW5fY3Jhc2godi0+ZG9tYWluLCAiRmFpbGVkIHRvIHdyaXRlIGVycm9yIGNvZGVcbiIp OwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmVncy0+ZWlwID0g dGktPmFkZHJlc3M7CkBAIC0xNzUsNyArMTcxLDcgQEAgdW5zaWduZWQgaW50IGNvbXBhdF9pcmV0 KHZvaWQpCiAgICAgfQogICAgIGVsc2UgaWYgKCB1bmxpa2VseShyaW5nXzAocmVncykpICkKICAg ICB7Ci0gICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOworICAgICAgICBkb21haW5fY3Jh c2godi0+ZG9tYWluLCAiVHJ5aW5nIHRvIGVudGVyIHJpbmcgMFxuIik7CiAgICAgICAgIHJldHVy biAwOwogICAgIH0KICAgICBlbHNlIGlmICggcmluZ18xKHJlZ3MpICkKQEAgLTE4NCw3ICsxODAs NyBAQCB1bnNpZ25lZCBpbnQgY29tcGF0X2lyZXQodm9pZCkKICAgICBlbHNlIGlmICggX19nZXRf dXNlcihyZWdzLT5zcywgKHUzMiAqKXJlZ3MtPnJzcCArIDUpIHx8CiAgICAgICAgICAgICAgIF9f Z2V0X3VzZXIocmVncy0+ZXNwLCAodTMyICopcmVncy0+cnNwICsgNCkgKQogICAgIHsKLSAgICAg ICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CisgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4sICJGYWlsZWQgdG8gcmVhZCBzcy9lc3BcbiIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9 CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBz LmMKaW5kZXggZDgzMjVhMy4uN2MxMTY4OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBz LmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTE0NDcsMTIgKzE0NDcsMTAgQEAgdm9p ZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHsKICAgICAg ICAgcGZfdHlwZSA9IHNwdXJpb3VzX3BhZ2VfZmF1bHQoYWRkciwgcmVncyk7CiAgICAgICAgIGlm ICggKHBmX3R5cGUgPT0gc21lcF9mYXVsdCkgfHwgKHBmX3R5cGUgPT0gc21hcF9mYXVsdCkpCi0g ICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIiVwdiBmYXRhbCBTTSVj UCB2aW9sYXRpb25cbiIsCi0gICAgICAgICAgICAgICAgICAgY3VycmVudCwgKHBmX3R5cGUgPT0g c21lcF9mYXVsdCkgPyAnRScgOiAnQScpOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJl bnQtPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRmF0YWwgU00lY1AgdmlvbGF0 aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIChwZl90eXBlID09IHNtZXBfZmF1bHQp ID8gJ0UnIDogJ0EnKTsKIAotICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFp bik7Ci0gICAgICAgIH0KICAgICAgICAgaWYgKCBwZl90eXBlICE9IHJlYWxfZmF1bHQgKQogICAg ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRl LmMKaW5kZXggZTM3MmM0Yi4uMTE1NTE1OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9l bXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9l bXVsYXRlLmMKQEAgLTg2ODYsNyArODY4Niw3IEBAIHg4Nl9lbXVsYXRlKAogICAgIGdwcmludGso WEVOTE9HX0lORk8sICIgIHN0dWI6ICUiX19zdHJpbmdpZnkoTUFYX0lOU1RfTEVOKSJwaFxuIiwK ICAgICAgICAgICAgIHN0dWIuZnVuYyk7CiAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHN0dWJf ZXhuLmluZm8uZmllbGRzLnRyYXBuciA9PSBFWENfVUQsIEVYQ19VRCk7Ci0gICAgZG9tYWluX2Ny YXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbiwg IkZhdGFsIGV4Y2VwdGlvbiBkdXJpbmcgZW11bGF0aW9uXG4iKTsKICAgICByYyA9IFg4NkVNVUxf VU5IQU5ETEVBQkxFOwogICAgIGdvdG8gZG9uZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3hzdGF0ZS5jIGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCmluZGV4IDE1ZWRkNWQuLmZm NjM1MmIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYworKysgYi94ZW4vYXJjaC94 ODYveHN0YXRlLmMKQEAgLTQ3Nyw3ICs0NzcsNyBAQCB2b2lkIHhyc3RvcihzdHJ1Y3QgdmNwdSAq diwgdWludDY0X3QgbWFzaykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAg ICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgICAgIGRvbWFpbl9jcmFz aChjdXJyZW50LT5kb21haW4sICJVbmFibGUgdG8gZml4IFhSU1RPUiBmYXVsdFxuIik7CiAgICAg ICAgIHJldHVybjsKICAgICB9CiB9CkBAIC03MTMsMTAgKzcxMyw5IEBAIGludCBoYW5kbGVfeHNl dGJ2KHUzMiBpbmRleCwgdTY0IG5ld19idikKICAgICAgKi8KICAgICBpZiAoIHVubGlrZWx5KHhj cjBfbWF4ICYgfnhmZWF0dXJlX21hc2spICkKICAgICB7Ci0gICAgICAgIGdwcmludGsoWEVOTE9H X0VSUiwKLSAgICAgICAgICAgICAgICAieGNyMF9tYXggJTAxNiIgUFJJeDY0ICIgZXhjZWVkcyBo YXJkd2FyZSBtYXggJTAxNiIgUFJJeDY0ICJcbiIsCi0gICAgICAgICAgICAgICAgeGNyMF9tYXgs IHhmZWF0dXJlX21hc2spOwotICAgICAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWluKTsKKyAg ICAgICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbiwgInhjcjBfbWF4ICUwMTYiIFBSSXg2NAor ICAgICAgICAgICAgICAgICAgICAgIiBleGNlZWRzIGhhcmR3YXJlIG1heCAlMDE2IiBQUkl4NjQg IlxuIiwKKyAgICAgICAgICAgICAgICAgICAgIHhjcjBfbWF4LCB4ZmVhdHVyZV9tYXNrKTsKIAog ICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CkBAIC03MjcsOSArNzI2LDggQEAgaW50IGhh bmRsZV94c2V0YnYodTMyIGluZGV4LCB1NjQgbmV3X2J2KQogICAgIC8qIEJ5IHRoaXMgcG9pbnQs IG5ld19idiByZWFsbHkgc2hvdWxkIGJlIGFjY2VwdGVkIGJ5IGhhcmR3YXJlLiAqLwogICAgIGlm ICggdW5saWtlbHkoIXNldF94Y3IwKG5ld19idikpICkKICAgICB7Ci0gICAgICAgIGdwcmludGso WEVOTE9HX0VSUiwgIm5ld19idiAlMDE2IiBQUkl4NjQgIiByZWplY3RlZCBieSBoYXJkd2FyZVxu IiwKLSAgICAgICAgICAgICAgICBuZXdfYnYpOwotICAgICAgICBkb21haW5fY3Jhc2goY3Vyci0+ ZG9tYWluKTsKKyAgICAgICAgZG9tYWluX2NyYXNoKGN1cnItPmRvbWFpbiwKKyAgICAgICAgICAg ICAgICAgICAgICJuZXdfYnYgJTAxNiIgUFJJeDY0ICIgcmVqZWN0ZWQgYnkgaGFyZHdhcmVcbiIs IG5ld19idik7CiAKICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vY29tcGF0L2dyYW50 X3RhYmxlLmMKaW5kZXggZmYxZDY3OC4uMGJlMmM1ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9j b21wYXQvZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5j CkBAIC0zMjMsNyArMzIzLDcgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBp bnQgY21kLAogICAgICAgICB9CiAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGRvbWFp bl9jcmFzaChjdXJyZW50LT5kb21haW4pOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJl bnQtPmRvbWFpbiwgIlVuaGFuZGxlZCBvcCAldSIsIGNtZF9vcCk7CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L21lbW9y eS5jIGIveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKaW5kZXggMTNmZDY0ZC4uNTA4ZGQzNyAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9j b21wYXQvbWVtb3J5LmMKQEAgLTU2MCw4ICs1NjAsOCBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1 bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAg ICAgICAgICAgIGlmICggcmMgPCAwICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBp ZiAoIHNwbGl0IDwgMCApCi0gICAgICAgICAgICAgICAgICAgIC8qIENhbm5vdCBjYW5jZWwgdGhl IGNvbnRpbnVhdGlvbi4uLiAqLwotICAgICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goY3Vy cmVudC0+ZG9tYWluKTsKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQt PmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gY2Fu Y2VsIGNvbnRpbnVhdGlvblxuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOwogICAgICAg ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC02MzYsNyArNjM2LDcgQEAgaW50IGNvbXBh dF9tZW1vcnlfb3AodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lk KSBjb21wYXQpCiAgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgZG9t YWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2goY3Vy cmVudC0+ZG9tYWluLCAiVW5oYW5kbGVkIG9wICV1Iiwgb3ApOwogICAgICAgICAgICAgc3BsaXQg PSAwOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCmluZGV4IDZmMjk0YzcuLjNhODU4MWIg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4u YwpAQCAtMTEyNCw3ICsxMTI0LDcgQEAgaW50IGRvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBkb21h aW4gKmQpCiAgICAgaWYgKCAhcmMgKQogICAgICAgICBkb21haW5fcmVzdW1lKGQpOwogICAgIGVs c2UKLSAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICBkb21haW5fY3Jhc2goZCwgIlNv ZnQgcmVzZXQgZmFpbHVyZTogJWRcbiIsIHJjKTsKIAogICAgIHJldHVybiByYzsKIH0KZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YwppbmRleCBhZDU1Y2ZhLi41MGZlMWUxIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC0xMjkxLDggKzEyOTEsNyBA QCB1bm1hcF9jb21tb24oCiAgICAgaWYgKCB1bmxpa2VseSgocmQgPSByY3VfbG9ja19kb21haW5f YnlfaWQoZG9tKSkgPT0gTlVMTCkgKQogICAgIHsKICAgICAgICAgLyogVGhpcyBjYW4gaGFwcGVu IHdoZW4gYSBncmFudCBpcyBpbXBsaWNpdGx5IHVubWFwcGVkLiAqLwotICAgICAgICBnZHByaW50 ayhYRU5MT0dfSU5GTywgIkNvdWxkIG5vdCBmaW5kIGRvbWFpbiAlZFxuIiwgZG9tKTsKLSAgICAg ICAgZG9tYWluX2NyYXNoKGxkKTsgLyogbmF1Z2h0eS4uLiAqLworICAgICAgICBkb21haW5fY3Jh c2gobGQsICJDb3VsZCBub3QgZmluZCBkJWRcbiIsIGRvbSk7CiAgICAgICAgIHJldHVybjsKICAg ICB9CiAKQEAgLTE2ODQsMTAgKzE2ODMsOCBAQCBnbnR0YWJfdW5wb3B1bGF0ZV9zdGF0dXNfZnJh bWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBncmFudF90YWJsZSAqZ3QpCiAKICAgICAgICAg ICAgIGlmICggcmMgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGdwcmludGsoWEVO TE9HX0VSUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgcmVtb3ZlIHN0YXR1 cyBmcmFtZSAldSAoR0ZOICUjbHgpIGZyb20gUDJNXG4iLAotICAgICAgICAgICAgICAgICAgICAg ICAgaSwgZ2ZuX3goZ2ZuKSk7Ci0gICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAg ICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkLCAiQ291bGQgbm90IHJlbW92ZSBzdGF0dXMgZnJh bWUgJXUgKEdGTiAlIlBSSV9nZm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgZnJv bSBQMk06ICVkXG4iLCBpLCBnZm5feChnZm4pLCByYyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu IHJjOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZ250dGFiX3NldF9mcmFtZV9nZm4oZ3Qs IHRydWUsIGksIElOVkFMSURfR0ZOKTsKQEAgLTE3MDAsMTIgKzE2OTcsOCBAQCBnbnR0YWJfdW5w b3B1bGF0ZV9zdGF0dXNfZnJhbWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBncmFudF90YWJs ZSAqZ3QpCiAgICAgICAgIGlmICggcGctPmNvdW50X2luZm8gJiB+UEdDX3hlbl9oZWFwICkKICAg ICAgICAgewogICAgICAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQotICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICJXcm9uZyBwYWdlIHN0YXRlICUjbHggb2Ygc3RhdHVzIGZyYW1lICV1 IChHRk4gJSNseClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwZy0+Y291bnRfaW5mbywg aSwgZ2ZuX3goZ2ZuKSk7Ci0gICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwotICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkLCAiQmFkIHBhZ2Ugc3RhdGUg JSNseCBvZiBzdGF0dXMgZnJhbWUgJXUgKEdGTiAlIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQUklfZ2ZuIilcbiIsIHBnLT5jb3VudF9pbmZvLCBpLCBnZm5feChnZm4pKTsKICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIGdldF9wYWdl KHBnLCBkKSApCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9t ZW1vcnkuYwppbmRleCA5OTZmOTRiLi40OGUyYWU4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21l bW9yeS5jCisrKyBiL3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTY4NCw3ICs2ODQsNyBAQCBzdGF0 aWMgbG9uZyBtZW1vcnlfZXhjaGFuZ2UoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWVtb3J5 X2V4Y2hhbmdlX3QpIGFyZykKICAgICAgICAgICAgIC8qIFBhZ2VzIHdlcmUgdW5zaGFyZWQgYWJv dmUgKi8KICAgICAgICAgICAgIEJVR19PTihTSEFSRURfTTJQKGdmbikpOwogICAgICAgICAgICAg aWYgKCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZ2ZuKSwgbWZuLCAwKSApCi0g ICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkLCAiVW5hYmxlIHRvIHJlbW92ZSBnZm4gJSJQUklfZ2ZuIlxuIiwgZ2ZuKTsKICAgICAg ICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vcGFnZV9hbGxvYy5jIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggMDJhZWVkNy4u M2MzMTQxMCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2Nv bW1vbi9wYWdlX2FsbG9jLmMKQEAgLTE1NjksNyArMTU2OSw3IEBAIGludCBvZmZsaW5lX3BhZ2Uo dW5zaWduZWQgbG9uZyBtZm4sIGludCBicm9rZW4sIHVpbnQzMl90ICpzdGF0dXMpCiAgICAgaWYg KCAocGctPmNvdW50X2luZm8gJiBQR0NfYnJva2VuKSAmJiAob3duZXIgPSBwYWdlX2dldF9vd25l cihwZykpICkKICAgICB7CiAgICAgICAgICpzdGF0dXMgPSBQR19PRkZMSU5FX0FHQUlOOwotICAg ICAgICBkb21haW5fY3Jhc2gob3duZXIpOworICAgICAgICBkb21haW5fY3Jhc2gob3duZXIsICJS ZXBlYXRlZCBicm9rZW4gcGFnZVxuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi93YWl0LmMgYi94ZW4vY29tbW9uL3dhaXQuYwppbmRleCA0Zjgz MGExLi4xZDRjZDdjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3dhaXQuYworKysgYi94ZW4vY29t bW9uL3dhaXQuYwpAQCAtMTM1LDggKzEzNSw3IEBAIHN0YXRpYyB2b2lkIF9fcHJlcGFyZV90b193 YWl0KHN0cnVjdCB3YWl0cXVldWVfdmNwdSAqd3F2KQogICAgIGNwdW1hc2tfY29weSgmd3F2LT5z YXZlZF9hZmZpbml0eSwgY3Vyci0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogICAgIGlmICggdmNwdV9z ZXRfaGFyZF9hZmZpbml0eShjdXJyLCBjcHVtYXNrX29mKHdxdi0+d2FrZXVwX2NwdSkpICkKICAg ICB7Ci0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJVbmFibGUgdG8gc2V0IHZjcHUgYWZm aW5pdHlcbiIpOwotICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9tYWluKTsKKyAgICAg ICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbiwgIlVuYWJsZSB0byBzZXQgdmNwdSBhZmZp bml0eVxuIik7CiAKICAgICAgICAgZm9yICggOyA7ICkKICAgICAgICAgICAgIGRvX3NvZnRpcnEo KTsKQEAgLTE2OSw4ICsxNjgsNyBAQCBzdGF0aWMgdm9pZCBfX3ByZXBhcmVfdG9fd2FpdChzdHJ1 Y3Qgd2FpdHF1ZXVlX3ZjcHUgKndxdikKIAogICAgIGlmICggdW5saWtlbHkod3F2LT5lc3AgPT0g MCkgKQogICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIlN0YWNrIHRvbyBsYXJn ZSBpbiAlc1xuIiwgX19mdW5jX18pOwotICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ZG9t YWluKTsKKyAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJlbnQtPmRvbWFpbiwgIlN0YWNrIHRvbyBs YXJnZVxuIik7CiAKICAgICAgICAgZm9yICggOyA7ICkKICAgICAgICAgICAgIGRvX3NvZnRpcnEo KTsKQEAgLTIwMSwxMCArMTk5LDggQEAgdm9pZCBjaGVja193YWtldXBfZnJvbV93YWl0KHZvaWQp CiAgICAgICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKICAgICAgICAgY3B1bWFza19j b3B5KCZ3cXYtPnNhdmVkX2FmZmluaXR5LCBjdXJyLT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAg ICAgIGlmICggdmNwdV9zZXRfaGFyZF9hZmZpbml0eShjdXJyLCBjcHVtYXNrX29mKHdxdi0+d2Fr ZXVwX2NwdSkpICkKLSAgICAgICAgewotICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwg IlVuYWJsZSB0byBzZXQgdmNwdSBhZmZpbml0eVxuIik7Ci0gICAgICAgICAgICBkb21haW5fY3Jh c2goY3VycmVudC0+ZG9tYWluKTsKLSAgICAgICAgfQorICAgICAgICAgICAgZG9tYWluX2NyYXNo KGN1cnJlbnQtPmRvbWFpbiwgIlVuYWJsZSB0byBzZXQgdmNwdSBhZmZpbml0eVxuIik7CisKICAg ICAgICAgd2FpdCgpOyAvKiB0YWtlcyB1cyBiYWNrIGludG8gdGhlIHNjaGVkdWxlciAqLwogICAg IH0KIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5j IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4IDcwYjQzNDUu LmJkZDEwMjIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9t YXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTY1 MSw4ICs2NTEsNyBAQCBpbnQgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAoIHJjICkKICAgICB7 CiAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwotICAgICAgICBB TURfSU9NTVVfREVCVUcoIlJvb3QgdGFibGUgYWxsb2MgZmFpbGVkLCBnZm4gPSAlbHhcbiIsIGdm bik7Ci0gICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICAgICAgZG9tYWluX2NyYXNoKGQsICJS b290IHRhYmxlIGFsbG9jIGZhaWxlZDogJWRcbiIsIHJjKTsKICAgICAgICAgcmV0dXJuIHJjOwog ICAgIH0KIApAQCAtNjYwLDIwICs2NTksMjAgQEAgaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAg ICogd2UgbWlnaHQgbmVlZCBhIGRlZXBlciBwYWdlIHRhYmxlIGZvciBsYWdlciBnZm4gbm93ICov CiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAgICB7Ci0gICAgICAgIGlmICggdXBkYXRl X3BhZ2luZ19tb2RlKGQsIGdmbikgKQorICAgICAgICByYyA9IHVwZGF0ZV9wYWdpbmdfbW9kZShk LCBnZm4pOworICAgICAgICBpZiAoIHJjICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgICAgICBBTURfSU9NTVVfREVC VUcoIlVwZGF0ZSBwYWdlIG1vZGUgZmFpbGVkIGdmbiA9ICVseFxuIiwgZ2ZuKTsKLSAgICAgICAg ICAgIGRvbWFpbl9jcmFzaChkKTsKLSAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgICAg ICAgICAgZG9tYWluX2NyYXNoKGQsICJVcGRhdGUgcGFnZSBtb2RlIGZhaWxlZCBmb3IgZ2ZuICUi UFJJX2dmbiI6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdmbiwgcmMpOworICAg ICAgICAgICAgcmV0dXJuIHJjOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBpb21tdV9w ZGVfZnJvbV9nZm4oZCwgZ2ZuLCBwdF9tZm4pIHx8IChwdF9tZm5bMV0gPT0gMCkgKQogICAgIHsK ICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgIEFN RF9JT01NVV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuID0gJWx4XG4iLCBn Zm4pOwotICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgIGRvbWFpbl9jcmFzaChkLCAi SW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuICUiUFJJX2dmbiJcbiIsIGdmbik7CiAgICAg ICAgIHJldHVybiAtRUZBVUxUOwogICAgIH0KIApAQCAtNzA1LDkgKzcwNCw4IEBAIGludCBhbWRf aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2ln bmVkIGxvbmcgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCBtZXJn ZV9sZXZlbCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gu bWFwcGluZ19sb2NrKTsKLSAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiTWVyZ2UgaW9tbXUg cGFnZSBmYWlsZWQgYXQgbGV2ZWwgJWQsICIKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkLCAi TWVyZ2UgaW9tbXUgcGFnZSBmYWlsZWQgYXQgbGV2ZWwgJWQsICIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ2ZuID0gJWx4IG1mbiA9ICVseFxuIiwgbWVyZ2VfbGV2ZWwsIGdmbiwgbWZu KTsKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgICAgIHJldHVybiAtRUZB VUxUOwogICAgICAgICB9CiAKQEAgLTc0Nyw5ICs3NDUsOSBAQCBpbnQgYW1kX2lvbW11X3VubWFw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgICAgIGlmICgg cmMgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGlu Z19sb2NrKTsKLSAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiVXBkYXRlIHBhZ2UgbW9kZSBm YWlsZWQgZ2ZuID0gJWx4XG4iLCBnZm4pOwogICAgICAgICAgICAgaWYgKCByYyAhPSAtRUFERFJO T1RBVkFJTCApCi0gICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICAgICAg ICAgIGRvbWFpbl9jcmFzaChkLCAiVXBkYXRlIHBhZ2UgbW9kZSBmYWlsZWQgZ2ZuICUiUFJJX2dm biI6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm4sIHJjKTsKICAgICAg ICAgICAgIHJldHVybiByYzsKICAgICAgICAgfQogICAgIH0KQEAgLTc1Nyw4ICs3NTUsNyBAQCBp bnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBn Zm4pCiAgICAgaWYgKCBpb21tdV9wZGVfZnJvbV9nZm4oZCwgZ2ZuLCBwdF9tZm4pIHx8IChwdF9t Zm5bMV0gPT0gMCkgKQogICAgIHsKICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBp bmdfbG9jayk7Ci0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiSW52YWxpZCBJTyBwYWdldGFibGUg ZW50cnkgZ2ZuID0gJWx4XG4iLCBnZm4pOwotICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAg ICAgIGRvbWFpbl9jcmFzaChkLCAiSW52YWxpZCBJTyBwYWdldGFibGUgZW50cnkgZ2ZuICUiUFJJ X2dmbiJcbiIsIGdmbik7CiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgIH0KIApkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMKaW5kZXggNzBkMjE4Zi4uNjE0OTlkZiAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9p b21tdS5jCkBAIC0yNzMsNyArMjczLDcgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICAgICAgICAg ICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNf aGFyZHdhcmVfZG9tYWluKGQpICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICAg ICAgICAgIGRvbWFpbl9jcmFzaChkLCAiRmF0YWwgSU9NTVUgZXJyb3JcbiIpOwogICAgIH0KIAog ICAgIHJldHVybiByYzsKQEAgLTI5Niw3ICsyOTYsNyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICAgICAgICAgICAgICAgICBk LT5kb21haW5faWQsIGdmbiwgcmMpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFp bihkKSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CisgICAgICAgICAgICBkb21haW5f Y3Jhc2goZCwgIkZhdGFsIElPTU1VIGVycm9yXG4iKTsKICAgICB9CiAKICAgICByZXR1cm4gcmM7 CkBAIC0zMzcsNyArMzM3LDcgQEAgaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwg cmMsIGdmbiwgcGFnZV9jb3VudCk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWlu KGQpICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKKyAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkLCAiRmF0YWwgSU9NTVUgZXJyb3JcbiIpOwogICAgIH0KIAogICAgIHJldHVybiByYzsK QEAgLTM2MCw3ICszNjAsNyBAQCBpbnQgaW9tbXVfaW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21h aW4gKmQpCiAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByYyk7CiAKICAgICAgICAg aWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKLSAgICAgICAgICAgIGRvbWFpbl9jcmFzaChk KTsKKyAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkLCAiRmF0YWwgSU9NTVUgZXJyb3JcbiIpOwog ICAgIH0KIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggZDFhZGZmYS4u YjAyODIzYyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTE1ODYsNyArMTU4Niw3IEBAIHZvaWQg aW9tbXVfZGV2X2lvdGxiX2ZsdXNoX3RpbWVvdXQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBj aV9kZXYgKnBkZXYpCiAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHBkZXYtPnNlZywgcGRl di0+YnVzLCBQQ0lfU0xPVChwZGV2LT5kZXZmbiksCiAgICAgICAgICAgICAgICBQQ0lfRlVOQyhw ZGV2LT5kZXZmbikpOwogICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAg IGRvbWFpbl9jcmFzaChkKTsKKyAgICAgICAgZG9tYWluX2NyYXNoKGQsICJGYXRhbCBJT01NVSBl cnJvclxuIik7CiAKICAgICBwY2lkZXZzX3VubG9jaygpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYwppbmRleCAxNzEwMjU2Li44OTE4OWU5IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYwpAQCAtMTg3Myw3ICsxODczLDcgQEAgaW50IGlvbW11X3B0ZV9mbHVzaChzdHJ1 Y3QgZG9tYWluICpkLCB1NjQgZ2ZuLCB1NjQgKnB0ZSwKICAgICAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQot ICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQs ICJGYXRhbCBJT01NVSBlcnJvclxuIik7CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApp bmRleCAwYmE4MGNiLi40NTJhZDM2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtNjExLDEwICs2MTEsMTIgQEAgdm9p ZCB2Y3B1X2VuZF9zaHV0ZG93bl9kZWZlcnJhbChzdHJ1Y3QgdmNwdSAqdik7CiAgKiBmcm9tIGFu eSBwcm9jZXNzb3IuCiAgKi8KIHZvaWQgX19kb21haW5fY3Jhc2goc3RydWN0IGRvbWFpbiAqZCk7 Ci0jZGVmaW5lIGRvbWFpbl9jcmFzaChkKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICBwcmludGsoImRvbWFpbl9jcmFzaCBjYWxsZWQgZnJv bSAlczolZFxuIiwgX19GSUxFX18sIF9fTElORV9fKTsgICAgICAgXAotICAgIF9fZG9tYWluX2Ny YXNoKGQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi19IHdoaWxlICgwKQorI2RlZmluZSBkb21haW5fY3Jhc2goZCwgZm10LCBhcmdzLi4uKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcHJp bnRrKFhFTkxPR19HX0VSUiAiZG9tYWluX2NyYXNoIGNhbGxlZCBmcm9tICVzOiAiIGZtdCwgICAg XAorICAgICAgICAgICAgICAgX19mdW5jX18sICMjIGFyZ3MpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgIF9fZG9tYWluX2NyYXNoKGQpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQogCiAvKgogICog Q2FsbGVkIGZyb20gYXNzZW1ibHkgY29kZSwgd2l0aCBhbiBvcHRpb25hbCBhZGRyZXNzIHRvIGhl bHAgaW5kaWNhdGUgd2h5Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=