From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Fix `GDB cannot access struct member whose offset is larger than 256MB' Date: Thu, 23 Jul 2026 18:30:41 GMT Message-ID: <178483144115.1.5045090923881859576.rpms-gdb-92b52c5e6f3f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 92b52c5e6f3f527cb692aa30b9c28a8fc4b23944 ICAgICAgICAgIEEgbmV3IGNvbW1pdCBoYXMgYmVlbiBwdXNoZWQuCgogICAgICAgICAgUmVwbyAg IDogcnBtcy9nZGIKICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAgICAgIENv bW1pdCA6IDkyYjUyYzVlNmYzZjUyN2NiNjkyYWEzMGI5YzI4YThmYzRiMjM5NDQKICAgICAgICAg IEF1dGhvciA6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgogICAg ICAgICAgRGF0ZSAgIDogMjAxMi0xMS0wOVQxOTowMzoxMCswMTowMAogICAgICAgICAgU3RhdHMg IDogKzk5NjcvLTEgaW4gMjMgZmlsZShzKQogICAgICAgICAgVVJMICAgIDogaHR0cHM6Ly9zcmMu ZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy85MmI1MmM1ZTZmM2Y1MjdjYjY5MmFhMzBiOWMy OGE4ZmM0YjIzOTQ0P2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAgICAgICAgTG9nOgogICAgICAg ICAgRml4IGBHREIgY2Fubm90IGFjY2VzcyBzdHJ1Y3QgbWVtYmVyIHdob3NlIG9mZnNldCBpcyBs YXJnZXIgdGhhbiAyNTZNQicKCihSSCBCWiA4NzEwNjYpLgoKLS0tCmRpZmYgLS1naXQgYS9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMDZvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTA2 b2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzViYTlkCi0t LSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTA2b2YyNS5wYXRjaApAQCAt MCwwICsxLDIzIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA3L21z ZzAwMTczLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjAgMTc6NTQ6MDUJ MS4xNDUwNworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjIgMTY6NTI6MzkJMS4xNDUw OAorIyMgLTEsMyArMSw3IEBACisrMjAxMi0wNy0yMiAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lk ZGhlc2hAcmVkaGF0LmNvbT4KKysKKysJKiBzaC10ZGVwLmMgKHNoX3RyZWF0X2FzX2ZsdF9wKTog UmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBMRU4uCisrCisgMjAxMi0wNy0yMCAgSmVmZiBLZW50b24g IDxqa2VudG9uQHRpbGVyYS5jb20+CisgCisgCSogdGlsZWd4LWxpbnV4LXRkZXAuYyAodGlsZWd4 X2xpbnV4X3NpZ2ZyYW1lX2luaXQpOiBGaXgKKy0tLSBzcmMvZ2RiL3NoLXRkZXAuYwkyMDEyLzA2 LzA4IDE0OjI0OjU3CTEuMjQ1CisrKysgc3JjL2dkYi9zaC10ZGVwLmMJMjAxMi8wNy8yMiAxNjo1 Mjo0MQkxLjI0NgorQEAgLTEwMzIsOCArMTAzMiw2IEBACisgc3RhdGljIGludAorIHNoX3RyZWF0 X2FzX2ZsdF9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5H VEggKHR5cGUpOworLQorICAgLyogT3JkaW5hcnkgZmxvYXQgdHlwZXMgYXJlIG9idmlvdXNseSB0 cmVhdGVkIGFzIGZsb2F0LiAgKi8KKyAgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9GTFQpCisgICAgIHJldHVybiAxOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0wN29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDdvZjI1LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOWI2ZmQKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDdvZjI1LnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK2h0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDcvbXNnMDAxODIuaHRtbAorCisj IyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wNy8yMyAxNToyNToxMQkxLjE0NTE0CisjIyMgc3Jj L2dkYi9DaGFuZ2VMb2cJMjAxMi8wNy8yMyAxODowODoyNwkxLjE0NTE1CisjIyAtMSwzICsxLDkg QEAKKysyMDEyLTA3LTIzICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29t PgorKworKwkqIHAtdmFscHJpbnQuYyAocGFzY2FsX29iamVjdF9wcmludF92YWx1ZSk6IFJlcGxh Y2UgcG90ZW50aWFsbHkKKysJdW5zYWZlIGFsbG9jYSB3aXRoIHhtYWxsb2MveGZyZWUuCisrCSog dmFsb3BzLmMgKHNlYXJjaF9zdHJ1Y3RfbWV0aG9kKTogTGlrZXdpc2UuCisrCisgMjAxMi0wNy0y MyAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorIAorIAkqIHNvbGliLXN2cjQuYyAo ZW5hYmxlX2JyZWFrKTogVXBkYXRlLgorLS0tIHNyYy9nZGIvcC12YWxwcmludC5jCTIwMTIvMDUv MTggMjE6MDI6NDkJMS4xMDAKKysrKyBzcmMvZ2RiL3AtdmFscHJpbnQuYwkyMDEyLzA3LzIzIDE4 OjA4OjI5CTEuMTAxCitAQCAtNzk3LDggKzc5NywxMSBAQAorIAorIAkgIGlmIChib2Zmc2V0IDwg MCB8fCBib2Zmc2V0ID49IFRZUEVfTEVOR1RIICh0eXBlKSkKKyAJICAgIHsKKy0JICAgICAgLyog RklYTUUgKGFsbG9jKTogbm90IHNhZmUgaXMgYmFzZWNsYXNzIGlzIHJlYWxseSByZWFsbHkgYmln LiAqLworLQkgICAgICBnZGJfYnl0ZSAqYnVmID0gYWxsb2NhIChUWVBFX0xFTkdUSCAoYmFzZWNs YXNzKSk7CisrCSAgICAgIGdkYl9ieXRlICpidWY7CisrCSAgICAgIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOworKworKwkgICAgICBidWYgPSB4bWFsbG9jIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNz KSk7CisrCSAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBidWYpOworIAorIAkg ICAgICBiYXNlX3ZhbGFkZHIgPSBidWY7CisgCSAgICAgIGlmICh0YXJnZXRfcmVhZF9tZW1vcnkg KGFkZHJlc3MgKyBib2Zmc2V0LCBidWYsCitAQCAtODA3LDYgKzgxMCw3IEBACisgCSAgICAgIGFk ZHJlc3MgPSBhZGRyZXNzICsgYm9mZnNldDsKKyAJICAgICAgdGhpc29mZnNldCA9IDA7CisgCSAg ICAgIGJvZmZzZXQgPSAwOworKwkgICAgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgCSAgICB9 CisgCSAgZWxzZQorIAkgICAgYmFzZV92YWxhZGRyID0gdmFsYWRkcjsKKy0tLSBzcmMvZ2RiL3Zh bG9wcy5jCTIwMTIvMDYvMjQgMDc6Mjg6MTAJMS4yOTcKKysrKyBzcmMvZ2RiL3ZhbG9wcy5jCTIw MTIvMDcvMjMgMTg6MDg6MjkJMS4yOTgKK0BAIC0yMjgxLDggKzIyODEsMTMgQEAKKyAKKyAJICBp ZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gVFlQRV9MRU5HVEggKHR5cGUpKQorIAkgICAgewor LQkgICAgICBnZGJfYnl0ZSAqdG1wID0gYWxsb2NhIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7 CistCSAgICAgIENPUkVfQUREUiBhZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAoKmFyZzFwKTsKKysJ ICAgICAgZ2RiX2J5dGUgKnRtcDsKKysJICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87Cisr CSAgICAgIENPUkVfQUREUiBhZGRyZXNzOworKworKwkgICAgICB0bXAgPSB4bWFsbG9jIChUWVBF X0xFTkdUSCAoYmFzZWNsYXNzKSk7CisrCSAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhm cmVlLCB0bXApOworKwkgICAgICBhZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAoKmFyZzFwKTsKKyAK KyAJICAgICAgaWYgKHRhcmdldF9yZWFkX21lbW9yeSAoYWRkcmVzcyArIG9mZnNldCwKKyAJCQkJ ICAgICAgdG1wLCBUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSkgIT0gMCkKK0BAIC0yMjkzLDYgKzIy OTgsNyBAQAorIAkJCQkJCQkgIGFkZHJlc3MgKyBvZmZzZXQpOworIAkgICAgICBiYXNlX3ZhbGFk ZHIgPSB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGJhc2VfdmFsKTsKKyAJICAgICAgdGhp c19vZmZzZXQgPSAwOworKwkgICAgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgCSAgICB9Cisg CSAgZWxzZQorIAkgICAgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0wOG9m MjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDhvZjI1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMmY2OTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMDhvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMTM5IEBACitodHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA3L21zZzAwMjEzLmh0bWwKKworIyMjIHNy Yy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjUgMjA6MTQ6MTcJMS4xNDUzMQorIyMjIHNyYy9nZGIv Q2hhbmdlTG9nCTIwMTIvMDcvMjYgMDI6MDM6MTQJMS4xNDUzMgorIyMgLTEsMyArMSwxNyBAQAor KzIwMTItMDctMjYgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+Cisr CisrCSogZHdhcmYybG9jLmMgKGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsKTogRXhwYW5k IHBhcmFtZXRlcgorKwlTSVpFIHRvIHNpemVfdC4KKysJKGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVz Yyk6IExpa2V3aXNlLgorKwkoZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lKTogTGlrZXdpc2Uu CisrCShsb2NleHByX2Rlc2NyaWJlX2xvY2F0aW9uXzEpOiBMaWtld2lzZS4KKysJKiBkd2FyZjJs b2MuaCAoc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uKTogTWFrZSBTSVpFIGFzCisrCXNpemVf dC4KKysJKHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbik6IExpa2V3aXNlLgorKwkqIGR3YXJm MnJlYWQuYyAoc3RydWN0IGR3YXJmX2Jsb2NrKTogTGlrZXdpc2UuCisrCShkdW1wX2RpZV9zaGFs bG93KTogVXNlIHB1bG9uZ2VzdCB0byBwcmludCBkd2FyZl9ibG9jay5zaXplLgorKwkoZGVjb2Rl X2xvY2Rlc2MpOiBFeHBhbmQgU0laRSBhbmQgSSB0byBzaXplX3QuCisrCisgMjAxMi0wNy0yNSAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorIAorIAkqIGNvbnRy aWIvY2Mtd2l0aC10d2Vha3Muc2g6IFB1dCBpbnRvIGNvbW1lbnQgcGF0aCBnZGIvY29udHJpYi8u CistLS0gc3JjL2dkYi9kd2FyZjJsb2MuYwkyMDEyLzA3LzEzIDIwOjE1OjUwCTEuMTUyCisrKysg c3JjL2dkYi9kd2FyZjJsb2MuYwkyMDEyLzA3LzI2IDAyOjAzOjE2CTEuMTUzCitAQCAtNTQsOCAr NTQsOCBAQAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19m dWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAJCQkJCQkgICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLAorIAkJCQkJCSAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwKKy0JCQkJCQkgICAgdW5zaWdu ZWQgc2hvcnQgc2l6ZSwKKy0JCQkJCSAgICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBl cl9jdSwKKysJCQkJCQkgICAgc2l6ZV90IHNpemUsCisrCQkJCQkJICAgIHN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKnBlcl9jdSwKKyAJCQkJCQkgICAgTE9OR0VTVCBieXRlX29mZnNldCk7Cisg CisgLyogVW50aWwgdGhlc2UgaGF2ZSBmb3JtYWwgbmFtZXMsIHdlIGRlZmluZSB0aGVzZSBoZXJl LgorQEAgLTIxMTEsNyArMjExMSw3IEBACisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCisgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUsCistCQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhLCB1bnNpZ25l ZCBzaG9ydCBzaXplLAorKwkJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwgc2l6ZV90IHNp emUsCisgCQkJICAgICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSwKKyAJCQkg ICAgICAgTE9OR0VTVCBieXRlX29mZnNldCkKKyB7CitAQCAtMjMxMiw3ICsyMzEyLDcgQEAKKyAK KyBzdHJ1Y3QgdmFsdWUgKgorIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUg KnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKy0JCQkgIGNvbnN0IGdkYl9ieXRlICpk YXRhLCB1bnNpZ25lZCBzaG9ydCBzaXplLAorKwkJCSAgY29uc3QgZ2RiX2J5dGUgKmRhdGEsIHNp emVfdCBzaXplLAorIAkJCSAgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorIHsK KyAgIHJldHVybiBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAodHlwZSwgZnJhbWUsIGRh dGEsIHNpemUsIHBlcl9jdSwgMCk7CitAQCAtMjQzMyw3ICsyNDMzLDcgQEAKKyAgICByZXF1aXJl cyBhIGZyYW1lIHRvIGV2YWx1YXRlLiAgKi8KKyAKKyBzdGF0aWMgaW50CistZHdhcmYyX2xvY19k ZXNjX25lZWRzX2ZyYW1lIChjb25zdCBnZGJfYnl0ZSAqZGF0YSwgdW5zaWduZWQgc2hvcnQgc2l6 ZSwKKytkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGNvbnN0IGdkYl9ieXRlICpkYXRhLCBz aXplX3Qgc2l6ZSwKKyAJCQkgICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkK KyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gYmF0b247CitAQCAtMzgyNyw3ICszODI3 LDcgQEAKKyBzdGF0aWMgdm9pZAorIGxvY2V4cHJfZGVzY3JpYmVfbG9jYXRpb25fMSAoc3RydWN0 IHN5bWJvbCAqc3ltYm9sLCBDT1JFX0FERFIgYWRkciwKKyAJCQkgICAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sCistCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwgaW50IHNpemUsCisrCQkJ ICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwgc2l6ZV90IHNpemUsCisgCQkJICAgICBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgdW5zaWduZWQgaW50IGFkZHJfc2l6ZSwKKyAJCQkgICAgIGludCBv ZmZzZXRfc2l6ZSwgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorIHsKKy0tLSBz cmMvZ2RiL2R3YXJmMmxvYy5oCTIwMTIvMDUvMjIgMTg6NDU6MjIJMS4zMworKysrIHNyYy9nZGIv ZHdhcmYybG9jLmgJMjAxMi8wNy8yNiAwMjowMzoxNgkxLjM0CitAQCAtNzcsNyArNzcsNyBAQAor IHN0cnVjdCB2YWx1ZSAqZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3QgdHlwZSAqdHlw ZSwKKyAJCQkJCXN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKyAJCQkJCWNvbnN0IGdkYl9ieXRl ICpkYXRhLAorLQkJCQkJdW5zaWduZWQgc2hvcnQgc2l6ZSwKKysJCQkJCXNpemVfdCBzaXplLAor IAkJCQkJc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KTsKKyAKKyBDT1JFX0FERFIg ZHdhcmYyX3JlYWRfYWRkcl9pbmRleCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1 LAorQEAgLTk3LDcgKzk3LDcgQEAKKyAKKyAgIC8qIExlbmd0aCBvZiB0aGUgbG9jYXRpb24gZXhw cmVzc2lvbi4gIEZvciBvcHRpbWl6ZWQgb3V0IGV4cHJlc3Npb25zIGl0IGlzCisgICAgICB6ZXJv LiAgKi8KKy0gIHVuc2lnbmVkIGxvbmcgc2l6ZTsKKysgIHNpemVfdCBzaXplOworIAorICAgLyog VGhlIGNvbXBpbGF0aW9uIHVuaXQgY29udGFpbmluZyB0aGUgc3ltYm9sIHdob3NlIGxvY2F0aW9u CisgICAgICB3ZSdyZSBjb21wdXRpbmcuICAqLworQEAgLTExNCw3ICsxMTQsNyBAQAorICAgY29u c3QgZ2RiX2J5dGUgKmRhdGE7CisgCisgICAvKiBMZW5ndGggb2YgdGhlIGxvY2F0aW9uIGxpc3Qu ICAqLworLSAgdW5zaWduZWQgbG9uZyBzaXplOworKyAgc2l6ZV90IHNpemU7CisgCisgICAvKiBU aGUgY29tcGlsYXRpb24gdW5pdCBjb250YWluaW5nIHRoZSBzeW1ib2wgd2hvc2UgbG9jYXRpb24K KyAgICAgIHdlJ3JlIGNvbXB1dGluZy4gICovCistLS0gc3JjL2dkYi9kd2FyZjJyZWFkLmMJMjAx Mi8wNy8yMCAxNzozODowNAkxLjY5NworKysrIHNyYy9nZGIvZHdhcmYycmVhZC5jCTIwMTIvMDcv MjYgMDI6MDM6MTYJMS42OTgKK0BAIC05OTAsNyArOTkwLDcgQEAKKyAvKiBCbG9ja3MgYXJlIGEg YnVuY2ggb2YgdW50eXBlZCBieXRlcy4gICovCisgc3RydWN0IGR3YXJmX2Jsb2NrCisgICB7Cist ICAgIHVuc2lnbmVkIGludCBzaXplOworKyAgICBzaXplX3Qgc2l6ZTsKKyAKKyAgICAgLyogVmFs aWQgb25seSBpZiBTSVpFIGlzIG5vdCB6ZXJvLiAgKi8KKyAgICAgZ2RiX2J5dGUgKmRhdGE7CitA QCAtMTYxOTcsMTIgKzE2MTk3LDEyIEBACisgCWNhc2UgRFdfRk9STV9ibG9jazQ6CisgCWNhc2Ug RFdfRk9STV9ibG9jazoKKyAJY2FzZSBEV19GT1JNX2Jsb2NrMToKKy0JICBmcHJpbnRmX3VuZmls dGVyZWQgKGYsICJibG9jazogc2l6ZSAlZCIsCistCQkJICAgICAgRFdfQkxPQ0sgKCZkaWUtPmF0 dHJzW2ldKS0+c2l6ZSk7CisrCSAgZnByaW50Zl91bmZpbHRlcmVkIChmLCAiYmxvY2s6IHNpemUg JXMiLAorKwkJCSAgICAgIHB1bG9uZ2VzdCAoRFdfQkxPQ0sgKCZkaWUtPmF0dHJzW2ldKS0+c2l6 ZSkpOworIAkgIGJyZWFrOworIAljYXNlIERXX0ZPUk1fZXhwcmxvYzoKKy0JICBmcHJpbnRmX3Vu ZmlsdGVyZWQgKGYsICJleHByZXNzaW9uOiBzaXplICV1IiwKKy0JCQkgICAgICBEV19CTE9DSyAo JmRpZS0+YXR0cnNbaV0pLT5zaXplKTsKKysJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJleHBy ZXNzaW9uOiBzaXplICVzIiwKKysJCQkgICAgICBwdWxvbmdlc3QgKERXX0JMT0NLICgmZGllLT5h dHRyc1tpXSktPnNpemUpKTsKKyAJICBicmVhazsKKyAJY2FzZSBEV19GT1JNX3JlZl9hZGRyOgor IAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgInJlZiBhZGRyZXNzOiAiKTsKK0BAIC0xNjc0Niw4 ICsxNjc0Niw4IEBACisgZGVjb2RlX2xvY2Rlc2MgKHN0cnVjdCBkd2FyZl9ibG9jayAqYmxrLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CisgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1 LT5vYmpmaWxlOworLSAgaW50IGk7CistICBpbnQgc2l6ZSA9IGJsay0+c2l6ZTsKKysgIHNpemVf dCBpOworKyAgc2l6ZV90IHNpemUgPSBibGstPnNpemU7CisgICBnZGJfYnl0ZSAqZGF0YSA9IGJs ay0+ZGF0YTsKKyAgIENPUkVfQUREUiBzdGFja1s2NF07CisgICBpbnQgc3RhY2tpOwoKZGlmZiAt LWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0wOW9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQy NC1iaXRwb3MtMDlvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjRiMTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDlvZjI1 LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3Zz LzIwMTItMDgvbXNnMDAwODUuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8x MCAwNTowMzowNwkxLjE0NTc0CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8xMCAxODo1 NToxNgkxLjE0NTc1CisjIyAtMSwzICsxLDkgQEAKKysyMDEyLTA4LTEwICBTaWRkaGVzaCBQb3lh cmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkqIHB5dGhvbi9weS10eXBlLmMgKGNv bnZlcnRfZmllbGQpOiBVc2UgZ2RiX3B5X2xvbmdfZnJvbV9sb25nZXN0CisrCWZvciBUWVBFX0ZJ RUxEX0JJVFBPUy4KKysJKHR5cHlfZ2V0X3NpemVvZik6IExpa2V3aXNlIGZvciBUWVBFX0xFTkdU SC4KKysKKyAyMDEyLTA4LTEwICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgor IAorIAlQUiBjbGkvMTA0MzY6CistLS0gc3JjL2dkYi9weXRob24vcHktdHlwZS5jCTIwMTIvMDUv MTggMjE6MDI6NTIJMS4zOQorKysrIHNyYy9nZGIvcHl0aG9uL3B5LXR5cGUuYwkyMDEyLzA4LzEw IDE4OjU1OjE4CTEuNDAKK0BAIC0xNzYsNyArMTc2LDcgQEAKKyAJfQorICAgICAgIGVsc2UKKyAJ eworLQkgIGFyZyA9IFB5TG9uZ19Gcm9tTG9uZyAoVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZp ZWxkKSk7CisrCSAgYXJnID0gZ2RiX3B5X2xvbmdfZnJvbV9sb25nZXN0IChUWVBFX0ZJRUxEX0JJ VFBPUyAodHlwZSwgZmllbGQpKTsKKyAJICBhdHRyc3RyaW5nID0gImJpdHBvcyI7CisgCX0KKyAK K0BAIC02ODMsNyArNjgzLDcgQEAKKyAgICAgfQorICAgLyogSWdub3JlIGV4Y2VwdGlvbnMuICAq LworIAorLSAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyAoVFlQRV9MRU5HVEggKHR5cGUpKTsKKysg IHJldHVybiBnZGJfcHlfbG9uZ19mcm9tX2xvbmdlc3QgKFRZUEVfTEVOR1RIICh0eXBlKSk7Cisg fQorIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTEwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMG9mMjUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcwMTQ1YQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMG9mMjUucGF0Y2gKQEAgLTAsMCArMSwxMTkg QEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDgvbXNnMDAxODcuaHRt bAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8yNCAwMzoxNzoxMgkxLjE0NjI4Cisj IyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8yNCAwMzo1NzoyMgkxLjE0NjI5CisjIyAtMSwz ICsxLDExIEBACisrMjAxMi0wOC0yNCAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVk aGF0LmNvbT4KKysKKysJKiBoODMwMC10ZGVwLmMgKGg4MzAwX3B1c2hfZHVtbXlfY2FsbCk6IFJl cGxhY2UgdW5zYWZlIGFsbG9jYQorKwl3aXRoIHhtYWxsb2MvY2xlYW51cC4KKysJKiBtdC10ZGVw LmMgKG10X3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3aXNlLgorKwkqIHRpbGVneC10ZGVwLmMgKHRp bGVneF9wdXNoX2R1bW15X2NhbGwpOiBMaWtld2lzZS4KKysJKiB4c3Rvcm15MTYtdGRlcC5jICh4 c3Rvcm15MTZfcHVzaF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCisgMjAxMi0wOC0yNCAgWWFv IFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSoganYtZXhwLnkgKHB1c2hfZXhwcmVz c2lvbl9uYW1lKTogQWRkICIuIiBhdCB0aGUgZW5kIG9mIGVycm9yCistLS0gc3JjL2dkYi9oODMw MC10ZGVwLmMJMjAxMi8wNS8xOCAyMTowMjo0NwkxLjEzMworKysrIHNyYy9nZGIvaDgzMDAtdGRl cC5jCTIwMTIvMDgvMjQgMDM6NTc6MjIJMS4xMzQKK0BAIC02NjYsMTMgKzY2NiwxNSBAQAorIAor ICAgZm9yIChhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgbmFyZ3M7IGFyZ3VtZW50KyspCisgICAg IHsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKyAgICAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbYXJndW1lbnRdKTsKKyAgICAgICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHR5cGUpOworICAgICAgIGNoYXIgKmNvbnRlbnRzID0gKGNoYXIgKikgdmFsdWVf Y29udGVudHMgKGFyZ3NbYXJndW1lbnRdKTsKKyAKKyAgICAgICAvKiBQYWQgdGhlIGFyZ3VtZW50 IGFwcHJvcHJpYXRlbHkuICAqLworICAgICAgIGludCBwYWRkZWRfbGVuID0gYWxpZ25fdXAgKGxl biwgd29yZHNpemUpOworLSAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSBhbGxvY2EgKHBhZGRlZF9s ZW4pOworKyAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSB4bWFsbG9jIChwYWRkZWRfbGVuKTsKKysg ICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsKKyAKKyAgICAgICBt ZW1zZXQgKHBhZGRlZCwgMCwgcGFkZGVkX2xlbik7CisgICAgICAgbWVtY3B5IChsZW4gPCB3b3Jk c2l6ZSA/IHBhZGRlZCArIHBhZGRlZF9sZW4gLSBsZW4gOiBwYWRkZWQsCitAQCAtNzIwLDYgKzcy Miw4IEBACisgCSAgICAgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gb24gdGhlIHN0YWNrLiAgKi8K KyAJICByZWcgPSBFX0FSR0xBU1RfUkVHTlVNICsgMTsKKyAJfQorKworKyAgICAgIGRvX2NsZWFu dXBzIChiYWNrX3RvKTsKKyAgICAgfQorIAorICAgLyogU3RvcmUgcmV0dXJuIGFkZHJlc3MuICAq LworLS0tIHNyYy9nZGIvbXQtdGRlcC5jCTIwMTIvMDUvMTYgMTQ6MzU6MDYJMS40MAorKysrIHNy Yy9nZGIvbXQtdGRlcC5jCTIwMTIvMDgvMjQgMDM6NTc6MjIJMS40MQorQEAgLTg0NSwxNiArODQ1 LDIwIEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQorICAgICB7CisgICAg ICAgZ2RiX2J5dGUgKnZhbDsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgICAg ICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAoYXJnc1tqXSk7Cisg ICAgICAgCisgICAgICAgLyogUmlnaHQtanVzdGlmeSB0aGUgdmFsdWUgaW4gYW4gYWxpZ25lZC1s ZW5ndGggYnVmZmVyLiAgKi8KKyAgICAgICB0eXBlbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5 cGUgKGFyZ3Nbal0pKTsKKyAgICAgICBzbGFja2xlbiA9ICh3b3Jkc2l6ZSAtICh0eXBlbGVuICUg d29yZHNpemUpKSAlIHdvcmRzaXplOworLSAgICAgIHZhbCA9IGFsbG9jYSAodHlwZWxlbiArIHNs YWNrbGVuKTsKKy0gICAgICBtZW1jcHkgKHZhbCwgdmFsdWVfY29udGVudHMgKGFyZ3Nbal0pLCB0 eXBlbGVuKTsKKysgICAgICB2YWwgPSB4bWFsbG9jICh0eXBlbGVuICsgc2xhY2tsZW4pOworKyAg ICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCB2YWwpOworKyAgICAgIG1lbWNweSAo dmFsLCBjb250ZW50cywgdHlwZWxlbik7CisgICAgICAgbWVtc2V0ICh2YWwgKyB0eXBlbGVuLCAw LCBzbGFja2xlbik7CisgICAgICAgLyogTm93IHdyaXRlIHRoaXMgZGF0YSB0byB0aGUgc3RhY2su ICAqLworICAgICAgIHN0YWNrX2Rlc3QgLT0gdHlwZWxlbiArIHNsYWNrbGVuOworICAgICAgIHdy aXRlX21lbW9yeSAoc3RhY2tfZGVzdCwgdmFsLCB0eXBlbGVuICsgc2xhY2tsZW4pOworKyAgICAg IGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyAgICAgfQorIAorICAgLyogRmluYWxseSwgaWYgYSBw YXJhbSBuZWVkcyB0byBiZSBzcGxpdCBiZXR3ZWVuIHJlZ2lzdGVycyBhbmQgc3RhY2ssIAorLS0t IHNyYy9nZGIvdGlsZWd4LXRkZXAuYwkyMDEyLzA1LzMwIDE5OjMxOjQ0CTEuMQorKysrIHNyYy9n ZGIvdGlsZWd4LXRkZXAuYwkyMDEyLzA4LzI0IDAzOjU3OjIyCTEuMgorQEAgLTM0MywxNiArMzQz LDIwIEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQorICAgICB7CisgICAg ICAgZ2RiX2J5dGUgKnZhbDsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgICAg ICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAoYXJnc1tqXSk7Cisg CisgICAgICAgdHlwZWxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJn c1tqXSkpOworICAgICAgIHNsYWNrbGVuID0gKCh0eXBlbGVuICsgMykgJiAofjMpKSAtIHR5cGVs ZW47CistICAgICAgdmFsID0gYWxsb2NhICh0eXBlbGVuICsgc2xhY2tsZW4pOworLSAgICAgIG1l bWNweSAodmFsLCB2YWx1ZV9jb250ZW50cyAoYXJnc1tqXSksIHR5cGVsZW4pOworKyAgICAgIHZh bCA9IHhtYWxsb2MgKHR5cGVsZW4gKyBzbGFja2xlbik7CisrICAgICAgYmFja190byA9IG1ha2Vf Y2xlYW51cCAoeGZyZWUsIHZhbCk7CisrICAgICAgbWVtY3B5ICh2YWwsIGNvbnRlbnRzLCB0eXBl bGVuKTsKKyAgICAgICBtZW1zZXQgKHZhbCArIHR5cGVsZW4sIDAsIHNsYWNrbGVuKTsKKyAKKyAg ICAgICAvKiBOb3cgd3JpdGUgZGF0YSB0byB0aGUgc3RhY2suICBUaGUgc3RhY2sgZ3Jvd3MgZG93 bndhcmRzLiAgKi8KKyAgICAgICBzdGFja19kZXN0IC09IHR5cGVsZW4gKyBzbGFja2xlbjsKKyAg ICAgICB3cml0ZV9tZW1vcnkgKHN0YWNrX2Rlc3QsIHZhbCwgdHlwZWxlbiArIHNsYWNrbGVuKTsK KysgICAgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgICAgIH0KKyAKKyAgIC8qIEFkZCAyIHdv cmRzIGZvciBsaW5rYWdlIHNwYWNlIHRvIHRoZSBzdGFjay4gICovCistLS0gc3JjL2dkYi94c3Rv cm15MTYtdGRlcC5jCTIwMTIvMDUvMTYgMTQ6MzU6MDgJMS4xMTgKKysrKyBzcmMvZ2RiL3hzdG9y bXkxNi10ZGVwLmMJMjAxMi8wOC8yNCAwMzo1NzoyMgkxLjExOQorQEAgLTI3OSwxNiArMjc5LDIw IEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQorICAgICB7CisgICAgICAg Y2hhciAqdmFsOworKyAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOworKyAgICAgIGNvbnN0 IGdkYl9ieXRlICpieXRlcyA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2pdKTsKKyAKKyAgICAgICB0 eXBlbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2pdKSk7Cisg ICAgICAgc2xhY2tsZW4gPSB0eXBlbGVuICYgMTsKKy0gICAgICB2YWwgPSBhbGxvY2EgKHR5cGVs ZW4gKyBzbGFja2xlbik7CistICAgICAgbWVtY3B5ICh2YWwsIHZhbHVlX2NvbnRlbnRzIChhcmdz W2pdKSwgdHlwZWxlbik7CisrICAgICAgdmFsID0geG1hbGxvYyAodHlwZWxlbiArIHNsYWNrbGVu KTsKKysgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdmFsKTsKKysgICAgICBt ZW1jcHkgKHZhbCwgYnl0ZXMsIHR5cGVsZW4pOworICAgICAgIG1lbXNldCAodmFsICsgdHlwZWxl biwgMCwgc2xhY2tsZW4pOworIAorICAgICAgIC8qIE5vdyB3cml0ZSB0aGlzIGRhdGEgdG8gdGhl IHN0YWNrLiAgVGhlIHN0YWNrIGdyb3dzIHVwd2FyZHMuICAqLworICAgICAgIHdyaXRlX21lbW9y eSAoc3RhY2tfZGVzdCwgdmFsLCB0eXBlbGVuICsgc2xhY2tsZW4pOworICAgICAgIHN0YWNrX2Rl c3QgKz0gdHlwZWxlbiArIHNsYWNrbGVuOworKyAgICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsK KyAgICAgfQorIAorICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnVmLCB4c3Rvcm15MTZfcGNf c2l6ZSwgYnl0ZV9vcmRlciwgYnBfYWRkcik7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTExb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMW9mMjUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4YTVhOAotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMW9mMjUucGF0Y2gKQEAgLTAsMCArMSwzNCBA QAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wOS9tc2cwMDA2NS5odG1s CisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE0IDAwOjU0OjU3CTEuMTQ2NTYKKyMj IyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE0IDA3OjAwOjM3CTEuMTQ2NTcKKyMjIC0xLDMg KzEsOCBAQAorKzIwMTItMDktMTQgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhh dC5jb20+CisrCisrCSogcHJpbnRjbWQuYyAodWlfcHJpbnRmKTogRWxpbWluYXRlIHNpbmdsZS11 c2UgdmFyaWFibGUKKysJUEFSQU1fTEVOLgorKworIDIwMTItMDktMTQgIFlhbyBRaSAgPHlhb0Bj b2Rlc291cmNlcnkuY29tPgorIAkgICAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4K KyAKKy0tLSBzcmMvZ2RiL3ByaW50Y21kLmMJMjAxMi8wOS8xMSAyMToyNjoxNgkxLjIxMQorKysr IHNyYy9nZGIvcHJpbnRjbWQuYwkyMDEyLzA5LzE0IDA3OjAwOjQyCTEuMjEyCitAQCAtMjI2Nyw3 ICsyMjY3LDYgQEAKKyAKKyAJICAgICAgLyogUGFyYW1ldGVyIGRhdGEuICAqLworIAkgICAgICBz dHJ1Y3QgdHlwZSAqcGFyYW1fdHlwZSA9IHZhbHVlX3R5cGUgKHZhbF9hcmdzW2ldKTsKKy0JICAg ICAgdW5zaWduZWQgaW50IHBhcmFtX2xlbiA9IFRZUEVfTEVOR1RIIChwYXJhbV90eXBlKTsKKyAJ ICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoIChwYXJhbV90eXBl KTsKKyAJICAgICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdkYmFyY2gpOworIAorQEAgLTIzMjksOCArMjMyOCw4IEBACisgCisgCSAgICAgIC8qIENv bnZlcnNpb24gYmV0d2VlbiBkaWZmZXJlbnQgREZQIHR5cGVzLiAgKi8KKyAJICAgICAgaWYgKFRZ UEVfQ09ERSAocGFyYW1fdHlwZSkgPT0gVFlQRV9DT0RFX0RFQ0ZMT0FUKQorLQkJZGVjaW1hbF9j b252ZXJ0IChwYXJhbV9wdHIsIHBhcmFtX2xlbiwgYnl0ZV9vcmRlciwKKy0JCQkJIGRlYywgZGZw X2xlbiwgYnl0ZV9vcmRlcik7CisrCQlkZWNpbWFsX2NvbnZlcnQgKHBhcmFtX3B0ciwgVFlQRV9M RU5HVEggKHBhcmFtX3R5cGUpLAorKwkJCQkgYnl0ZV9vcmRlciwgZGVjLCBkZnBfbGVuLCBieXRl X29yZGVyKTsKKyAJICAgICAgZWxzZQorIAkJLyogSWYgdGhpcyBpcyBhIG5vbi10cml2aWFsIGNv bnZlcnNpb24sIGp1c3Qgb3V0cHV0IDAuCisgCQkgICBBIGNvcnJlY3QgY29udmVydGVkIHZhbHVl IGNhbiBiZSBkaXNwbGF5ZWQgYnkgZXhwbGljaXRseQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0xMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTJvZjI1LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwYjE5YTEKLS0tIC9kZXYv bnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTJvZjI1LnBhdGNoCkBAIC0wLDAgKzEs NjYgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDkvbXNnMDAwNjgu aHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNCAxMjoxMDoyMQkxLjE0NjU5 CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNCAxMjo0Njo1NQkxLjE0NjYwCisjIyAt MSwzICsxLDggQEAKKysyMDEyLTA5LTE0ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEBy ZWRoYXQuY29tPgorKworKwkqIHZhbGFyaXRoLmMgKHZhbHVlX2NvbmNhdCk6IFJlcGxhY2UgdW5z YWZlIEFMTE9DQSB3aXRoCisrCVhNQUxMT0MvWEZSRUUuCisrCisgMjAxMi0wOS0xNCAgUGVkcm8g QWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKyAKKyAJKiBnZGIuMSAoU0VFIEFMU08pOiBFeHBh bmQgcG9pbnRlciB0byBHREIncyBUZXhpbmZvIG1hbnVhbC4KK0luZGV4OiBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL3ZhbGFyaXRoLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvdmFsYXJpdGguYwkyMDEyLTExLTA3IDIyOjAwOjQxLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsYXJpdGguYwkyMDEyLTExLTA3IDIyOjAyOjE4 LjY2MTc2NzI4MSArMDEwMAorQEAgLTcxNiw5ICs3MTYsMTIgQEAgdmFsdWVfY29uY2F0IChzdHJ1 Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorICAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUyKSA9PSBU WVBFX0NPREVfU1RSSU5HCisgCSAgfHwgVFlQRV9DT0RFICh0eXBlMikgPT0gVFlQRV9DT0RFX0NI QVIpCisgCXsKKysJICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysKKyAJICBjb3VudCA9IGxv bmdlc3RfdG9faW50ICh2YWx1ZV9hc19sb25nIChpbnZhbDEpKTsKKyAJICBpbnZhbDJsZW4gPSBU WVBFX0xFTkdUSCAodHlwZTIpOworLQkgIHB0ciA9IChjaGFyICopIGFsbG9jYSAoY291bnQgKiBp bnZhbDJsZW4pOworKwkgIHB0ciA9IChjaGFyICopIHhtYWxsb2MgKGNvdW50ICogaW52YWwybGVu KTsKKysJICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcHRyKTsKKyAJICBpZiAoVFlQ RV9DT0RFICh0eXBlMikgPT0gVFlQRV9DT0RFX0NIQVIpCisgCSAgICB7CisgCSAgICAgIGNoYXJf dHlwZSA9IHR5cGUyOworQEAgLTc0MSw2ICs3NDQsNyBAQCB2YWx1ZV9jb25jYXQgKHN0cnVjdCB2 YWx1ZSAqYXJnMSwgc3RydWN0CisgCQl9CisgCSAgICB9CisgCSAgb3V0dmFsID0gdmFsdWVfc3Ry aW5nIChwdHIsIGNvdW50ICogaW52YWwybGVuLCBjaGFyX3R5cGUpOworKwkgIGRvX2NsZWFudXBz IChiYWNrX3RvKTsKKyAJfQorICAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAodHlwZTIpID09IFRZ UEVfQ09ERV9CSVRTVFJJTkcKKyAJICAgICAgIHx8IFRZUEVfQ09ERSAodHlwZTIpID09IFRZUEVf Q09ERV9CT09MKQorQEAgLTc1NSw2ICs3NTksOCBAQCB2YWx1ZV9jb25jYXQgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgc3RydWN0CisgICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUxKSA9PSBUWVBFX0NP REVfU1RSSU5HCisgCSAgIHx8IFRZUEVfQ09ERSAodHlwZTEpID09IFRZUEVfQ09ERV9DSEFSKQor ICAgICB7CisrICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisrCisgICAgICAgLyogV2Ug aGF2ZSB0d28gY2hhcmFjdGVyIHN0cmluZ3MgdG8gY29uY2F0ZW5hdGUuICAqLworICAgICAgIGlm IChUWVBFX0NPREUgKHR5cGUyKSAhPSBUWVBFX0NPREVfU1RSSU5HCisgCSAgJiYgVFlQRV9DT0RF ICh0eXBlMikgIT0gVFlQRV9DT0RFX0NIQVIpCitAQCAtNzYzLDcgKzc2OSw4IEBAIHZhbHVlX2Nv bmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKKyAJfQorICAgICAgIGludmFsMWxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlMSk7CisgICAgICAgaW52YWwybGVuID0gVFlQRV9MRU5HVEggKHR5 cGUyKTsKKy0gICAgICBwdHIgPSAoY2hhciAqKSBhbGxvY2EgKGludmFsMWxlbiArIGludmFsMmxl bik7CisrICAgICAgcHRyID0gKGNoYXIgKikgeG1hbGxvYyAoaW52YWwxbGVuICsgaW52YWwybGVu KTsKKysgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcHRyKTsKKyAgICAgICBp ZiAoVFlQRV9DT0RFICh0eXBlMSkgPT0gVFlQRV9DT0RFX0NIQVIpCisgCXsKKyAJICBjaGFyX3R5 cGUgPSB0eXBlMTsKK0BAIC03ODYsNiArNzkzLDcgQEAgdmFsdWVfY29uY2F0IChzdHJ1Y3QgdmFs dWUgKmFyZzEsIHN0cnVjdAorIAkgIG1lbWNweSAocHRyICsgaW52YWwxbGVuLCB2YWx1ZV9jb250 ZW50cyAoaW52YWwyKSwgaW52YWwybGVuKTsKKyAJfQorICAgICAgIG91dHZhbCA9IHZhbHVlX3N0 cmluZyAocHRyLCBpbnZhbDFsZW4gKyBpbnZhbDJsZW4sIGNoYXJfdHlwZSk7CisrICAgICAgZG9f Y2xlYW51cHMgKGJhY2tfdG8pOworICAgICB9CisgICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUx KSA9PSBUWVBFX0NPREVfQklUU1RSSU5HCisgCSAgIHx8IFRZUEVfQ09ERSAodHlwZTEpID09IFRZ UEVfQ09ERV9CT09MKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xM29mMjUu cGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTNvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZTIwOTgKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMTNvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMjggQEAKK2h0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDkvbXNnMDAwODIuaHRtbAorCisjIyMgc3JjL2dk Yi9DaGFuZ2VMb2cJMjAxMi8wOS8xNyAwNzoxNTo0NwkxLjE0NjY0CisjIyMgc3JjL2dkYi9DaGFu Z2VMb2cJMjAxMi8wOS8xNyAwNzoyNjo1NAkxLjE0NjY1CisjIyAtMSwzICsxLDggQEAKKysyMDEy LTA5LTE3ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkq IGluZnJ1bi5jIChyZXN0b3JlX2luZmNhbGxfc3VzcGVuZF9zdGF0ZSk6IEVsaW1pbmF0ZSBzaW5n bGUtdXNlCisrCXZhcmlhYmxlIExFTi4KKysKKyAyMDEyLTA5LTE3ICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisgCisgCVBSIDE0MTE5CistLS0gc3JjL2dkYi9p bmZydW4uYwkyMDEyLzA5LzE3IDA3OjA5OjM0CTEuNTU4CisrKysgc3JjL2dkYi9pbmZydW4uYwky MDEyLzA5LzE3IDA3OjI2OjU1CTEuNTU5CitAQCAtNjc3NywxMSArNjc3NywxMCBAQAorICAgaWYg KGluZl9zdGF0ZS0+c2lnaW5mb19nZGJhcmNoID09IGdkYmFyY2gpCisgICAgIHsKKyAgICAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IGdkYmFyY2hfZ2V0X3NpZ2luZm9fdHlwZSAoZ2RiYXJjaCk7Cist ICAgICAgc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgICAgICAvKiBFcnJv cnMgaWdub3JlZC4gICovCisgICAgICAgdGFyZ2V0X3dyaXRlICgmY3VycmVudF90YXJnZXQsIFRB UkdFVF9PQkpFQ1RfU0lHTkFMX0lORk8sIE5VTEwsCistCQkgICAgaW5mX3N0YXRlLT5zaWdpbmZv X2RhdGEsIDAsIGxlbik7CisrCQkgICAgaW5mX3N0YXRlLT5zaWdpbmZvX2RhdGEsIDAsIFRZUEVf TEVOR1RIICh0eXBlKSk7CisgICAgIH0KKyAKKyAgIC8qIFRoZSBpbmZlcmlvciBjYW4gYmUgZ29u ZSBpZiB0aGUgdXNlciB0eXBlcyAicHJpbnQgZXhpdCgwKSIKCmRpZmYgLS1naXQgYS9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMTRvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE0b2Yy NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDlhZDVlCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE0b2YyNS5wYXRjaApAQCAtMCww ICsxLDIwOSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wOS9tc2cw MDA4NC5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE3IDA4OjQyOjA3CTEu MTQ2NjYKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE3IDA4OjUyOjE3CTEuMTQ2NjcK KyMjIC0xLDMgKzEsMjMgQEAKKysyMDEyLTA5LTE3ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRk aGVzaEByZWRoYXQuY29tPgorKworKwkqIG0yLXZhbHByaW50LmMgKG0yX3ByaW50X2FycmF5X2Nv bnRlbnRzKTogRWxpbWluYXRlIHZhcmlhYmxlCisrCUVMVExFTiBhbmQgdXNlIFRZUEVfTEVOR1RI IGRpcmVjdGx5LgorKwkobTJfdmFsX3ByaW50KTogTGlrZXdpc2UuCisrCSogbTY4ay10ZGVwLmMg KG02OGtfc3ZyNF9leHRyYWN0X3JldHVybl92YWx1ZSk6IEVsaW1pbmF0ZQorKwl2YXJpYWJsZSBM RU4gYW5kIHVzZSBUWVBFX0xFTkdUSCBkaXJlY3RseS4KKysJKG02OGtfc3ZyNF9zdG9yZV9yZXR1 cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKiBtaXBzLXRkZXAuYyAobWlwc19vMzJfcHVzaF9kdW1t eV9jYWxsKTogRWxpbWluYXRlIHZhcmlhYmxlCisrCUFSR0xFTiBhbmQgdXNlIFRZUEVfTEVOR1RI IGRpcmVjdGx5LgorKwkobWlwc19vNjRfcHVzaF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCSog czM5MC10ZGVwIChzMzkwX2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSk6IEVsaW1pbmF0 ZQorKwl2YXJpYWJsZSBMRU5HVEggYW5kIHVzZSBUWVBFX0xFTkdUSCBkaXJlY3RseS4KKysJKHMz OTBfZnVuY3Rpb25fYXJnX2Zsb2F0KTogTGlrZXdpc2UuCisrCShzMzkwX2Z1bmN0aW9uX2FyZ19p bnRlZ2VyKTogTGlrZXdpc2UuCisrCShzMzkwX3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3aXNlLgor KwkoczM5MF9yZXR1cm5fdmFsdWVfY29udmVudGlvbik6IExpa2V3aXNlLgorKwkqIHNwdS10ZGVw LmMgKHNwdV9wdXNoX2R1bW15X2NhbGwpOiBFbGltaW5hdGUgTEVOIGFuZCB1c2UKKysJVFlQRV9M RU5HVEggZGlyZWN0bHkuCisrCisgMjAxMi0wOS0xNyAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2Vy eS5jb20+CisgCisgCSogY2xpL2NsaS1kZWNvZGUuYyAoYWRkX3NldHNob3dfenVpbnRlZ2VyX3Vu bGltaXRlZF9jbWQpOiBOZXcuCistLS0gc3JjL2dkYi9tMi12YWxwcmludC5jCTIwMTIvMDgvMTYg MDc6MzY6MjAJMS40NQorKysrIHNyYy9nZGIvbTItdmFscHJpbnQuYwkyMDEyLzA5LzE3IDA4OjUy OjE4CTEuNDYKK0BAIC0yNjksMTYgKzI2OSwxNCBAQAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKyAJCQkgaW50IGxlbikKKyB7CistICBpbnQgZWx0bGVu OworICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CisgCisgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUp ID4gMCkKKyAgICAgeworLSAgICAgIGVsdGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgICAg ICBpZiAob3B0aW9ucy0+cHJldHR5cHJpbnRfYXJyYXlzKQorIAlwcmludF9zcGFjZXNfZmlsdGVy ZWQgKDIgKyAyICogcmVjdXJzZSwgc3RyZWFtKTsKKyAgICAgICAvKiBGb3IgYW4gYXJyYXkgb2Yg Y2hhcnMsIHByaW50IHdpdGggc3RyaW5nIHN5bnRheC4gICovCistICAgICAgaWYgKGVsdGxlbiA9 PSAxICYmCisrICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA9PSAxICYmCisgCSAgKChUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCisgCSAgIHx8ICgoY3VycmVudF9sYW5ndWFn ZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfbTIpCisgCSAgICAgICAmJiAoVFlQRV9DT0RFICh0 eXBlKSA9PSBUWVBFX0NPREVfQ0hBUikpKQorQEAgLTMyMCw3ICszMTgsNiBAQAorICAgdW5zaWdu ZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KKyAgIHVu c2lnbmVkIGxlbjsKKyAgIHN0cnVjdCB0eXBlICplbHR0eXBlOworLSAgdW5zaWduZWQgZWx0bGVu OworICAgQ09SRV9BRERSIGFkZHI7CisgCisgICBDSEVDS19UWVBFREVGICh0eXBlKTsKK0BAIC0z MzAsMTIgKzMyNywxMSBAQAorICAgICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAwICYmIFRZ UEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPiAwKQorIAl7CisgCSAgZWx0dHlw ZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsKKy0JICBlbHRsZW4g PSBUWVBFX0xFTkdUSCAoZWx0dHlwZSk7CistCSAgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpIC8g ZWx0bGVuOworKwkgIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKSAvIFRZUEVfTEVOR1RIIChlbHR0 eXBlKTsKKyAJICBpZiAob3B0aW9ucy0+cHJldHR5cHJpbnRfYXJyYXlzKQorIAkgICAgcHJpbnRf c3BhY2VzX2ZpbHRlcmVkICgyICsgMiAqIHJlY3Vyc2UsIHN0cmVhbSk7CisgCSAgLyogRm9yIGFu IGFycmF5IG9mIGNoYXJzLCBwcmludCB3aXRoIHN0cmluZyBzeW50YXguICAqLworLQkgIGlmIChl bHRsZW4gPT0gMSAmJgorKwkgIGlmIChUWVBFX0xFTkdUSCAoZWx0dHlwZSkgPT0gMSAmJgorIAkg ICAgICAoKFRZUEVfQ09ERSAoZWx0dHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkKKyAJICAgICAgIHx8 ICgoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfbTIpCisgCQkgICAm JiAoVFlQRV9DT0RFIChlbHR0eXBlKSA9PSBUWVBFX0NPREVfQ0hBUikpKQorLS0tIHNyYy9nZGIv bTY4ay10ZGVwLmMJMjAxMi8wNy8yNCAxNjozNzoyNAkxLjE1OQorKysrIHNyYy9nZGIvbTY4ay10 ZGVwLmMJMjAxMi8wOS8xNyAwODo1MjoxOAkxLjE2MAorQEAgLTMxNSw3ICszMTUsNiBAQAorIG02 OGtfc3ZyNF9leHRyYWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJCWdkYl9ieXRlICp2YWxidWYpCisgeworLSAgaW50IGxl biA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIGdkYl9ieXRlIGJ1ZltNNjhLX01BWF9SRUdJU1RF Ul9TSVpFXTsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2gg KHJlZ2NhY2hlKTsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAg KGdkYmFyY2gpOworQEAgLTMyNiw3ICszMjUsNyBAQAorICAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgTTY4S19GUDBfUkVHTlVNLCBidWYpOworICAgICAgIGNvbnZlcnRfdHlwZWRf ZmxvYXRpbmcgKGJ1ZiwgZnByZWdfdHlwZSwgdmFsYnVmLCB0eXBlKTsKKyAgICAgfQorLSAgZWxz ZSBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSICYmIGxlbiA9PSA0KQorKyAg ZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSICYmIFRZUEVfTEVOR1RI ICh0eXBlKSA9PSA0KQorICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIE02OEtfQTBf UkVHTlVNLCB2YWxidWYpOworICAgZWxzZQorICAgICBtNjhrX2V4dHJhY3RfcmV0dXJuX3ZhbHVl ICh0eXBlLCByZWdjYWNoZSwgdmFsYnVmKTsKK0BAIC0zNTcsNyArMzU2LDYgQEAKKyBtNjhrX3N2 cjRfc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwKKyAJCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVmKQorIHsKKy0gIGlu dCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAKK0BAIC0zNjgsNyArMzY2LDcgQEAKKyAg ICAgICBjb252ZXJ0X3R5cGVkX2Zsb2F0aW5nICh2YWxidWYsIHR5cGUsIGJ1ZiwgZnByZWdfdHlw ZSk7CisgICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgTTY4S19GUDBfUkVHTlVN LCBidWYpOworICAgICB9CistICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9QVFIgJiYgbGVuID09IDQpCisrICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVf Q09ERV9QVFIgJiYgVFlQRV9MRU5HVEggKHR5cGUpID09IDQpCisgICAgIHsKKyAgICAgICByZWdj YWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBNNjhLX0EwX1JFR05VTSwgdmFsYnVmKTsKKyAgICAg ICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBNNjhLX0QwX1JFR05VTSwgdmFsYnVmKTsK Ky0tLSBzcmMvZ2RiL21pcHMtdGRlcC5jCTIwMTIvMDgvMTkgMjI6MjI6NDkJMS41NjEKKysrKyBz cmMvZ2RiL21pcHMtdGRlcC5jCTIwMTIvMDkvMTcgMDg6NTI6MTgJMS41NjIKK0BAIC01MTc0LDEz ICs1MTc0LDEyIEBACisgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0r KykKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGFyZ3NbYXJnbnVtXSkpOworLSAgICAgIGludCBhcmdsZW4gPSBUWVBFX0xF TkdUSCAoYXJnX3R5cGUpOworIAorICAgICAgIC8qIEFsaWduIHRvIGRvdWJsZS13b3JkIGlmIG5l Y2Vzc2FyeS4gICovCisgICAgICAgaWYgKG1pcHNfdHlwZV9uZWVkc19kb3VibGVfYWxpZ24gKGFy Z190eXBlKSkKKyAJbGVuID0gYWxpZ25fdXAgKGxlbiwgTUlQUzMyX1JFR1NJWkUgKiAyKTsKKyAg ICAgICAvKiBBbGxvY2F0ZSBzcGFjZSBvbiB0aGUgc3RhY2suICAqLworLSAgICAgIGxlbiArPSBh bGlnbl91cCAoYXJnbGVuLCBNSVBTMzJfUkVHU0laRSk7CisrICAgICAgbGVuICs9IGFsaWduX3Vw IChUWVBFX0xFTkdUSCAoYXJnX3R5cGUpLCBNSVBTMzJfUkVHU0laRSk7CisgICAgIH0KKyAgIHNw IC09IGFsaWduX3VwIChsZW4sIDE2KTsKKyAKK0BAIC01NzAzLDEwICs1NzAyLDkgQEAKKyAgIGZv ciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQorICAgICB7CisgICAgICAg c3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnc1th cmdudW1dKSk7CistICAgICAgaW50IGFyZ2xlbiA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7Cisg CisgICAgICAgLyogQWxsb2NhdGUgc3BhY2Ugb24gdGhlIHN0YWNrLiAgKi8KKy0gICAgICBsZW4g Kz0gYWxpZ25fdXAgKGFyZ2xlbiwgTUlQUzY0X1JFR1NJWkUpOworKyAgICAgIGxlbiArPSBhbGln bl91cCAoVFlQRV9MRU5HVEggKGFyZ190eXBlKSwgTUlQUzY0X1JFR1NJWkUpOworICAgICB9Cisg ICBzcCAtPSBhbGlnbl91cCAobGVuLCAxNik7CisgCistLS0gc3JjL2dkYi9zMzkwLXRkZXAuYwky MDEyLzA1LzE4IDIxOjAyOjUwCTEuMjA2CisrKysgc3JjL2dkYi9zMzkwLXRkZXAuYwkyMDEyLzA5 LzE3IDA4OjUyOjE4CTEuMjA3CitAQCAtMjQ4OSw4ICsyNDg5LDcgQEAKKyBzdGF0aWMgaW50Cisg czM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICp0eXBlKQor IHsKKy0gIHVuc2lnbmVkIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKy0gIGlmIChsZW5n dGggPiA4KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA+IDgpCisgICAgIHJldHVybiAxOwor IAorICAgcmV0dXJuIChpc19zdHJ1Y3RfbGlrZSAodHlwZSkgJiYgIWlzX3Bvd2VyX29mX3R3byAo VFlQRV9MRU5HVEggKHR5cGUpKSkKK0BAIC0yNTAzLDggKzI1MDIsNyBAQAorIHN0YXRpYyBpbnQK KyBzMzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAoc3RydWN0IHR5cGUgKnR5cGUpCisgeworLSAgdW5z aWduZWQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOworLSAgaWYgKGxlbmd0aCA+IDgpCisr ICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gOCkKKyAgICAgcmV0dXJuIDA7CisgCisgICByZXR1 cm4gaXNfZmxvYXRfbGlrZSAodHlwZSk7CitAQCAtMjUxNSwxMyArMjUxMywxMiBAQAorIHN0YXRp YyBpbnQKKyBzMzkwX2Z1bmN0aW9uX2FyZ19pbnRlZ2VyIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7 CistICB1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CistICBpZiAobGVuZ3Ro ID4gOCkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiA4KQorICAgICByZXR1cm4gMDsKKyAK KyAgICByZXR1cm4gaXNfaW50ZWdlcl9saWtlICh0eXBlKQorIAkgIHx8IGlzX3BvaW50ZXJfbGlr ZSAodHlwZSkKKy0JICB8fCAoaXNfc3RydWN0X2xpa2UgKHR5cGUpICYmIGlzX3Bvd2VyX29mX3R3 byAobGVuZ3RoKSk7CisrCSAgfHwgKGlzX3N0cnVjdF9saWtlICh0eXBlKSAmJiBpc19wb3dlcl9v Zl90d28gKFRZUEVfTEVOR1RIICh0eXBlKSkpOworIH0KKyAKKyAvKiBSZXR1cm4gQVJHLCBhIGBT SU1QTEVfQVJHJywgc2lnbi1leHRlbmRlZCBvciB6ZXJvLWV4dGVuZGVkIHRvIGEgZnVsbAorQEAg LTI2MTYsMTEgKzI2MTMsMTAgQEAKKyAgICAgeworICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0g YXJnc1tpXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZykpOworLSAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBl KTsKKyAKKyAgICAgICBpZiAoczM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UgKHR5 cGUpKQorICAgICAgICAgeworLSAgICAgICAgICBzcCAtPSBsZW5ndGg7CisrICAgICAgICAgIHNw IC09IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgICAgICAgICAgc3AgPSBhbGlnbl9kb3duIChzcCwg YWxpZ25tZW50X29mICh0eXBlKSk7CisgICAgICAgICAgIGNvcHlfYWRkcltpXSA9IHNwOworICAg ICAgICAgfQorQEAgLTI3OTksOCArMjc5NSw3IEBACisgc3RhdGljIGVudW0gcmV0dXJuX3ZhbHVl X2NvbnZlbnRpb24KKyBzMzkwX3JldHVybl92YWx1ZV9jb252ZW50aW9uIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworLSAgaW50IGxlbmd0aCA9IFRZUEVf TEVOR1RIICh0eXBlKTsKKy0gIGlmIChsZW5ndGggPiA4KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0 eXBlKSA+IDgpCisgICAgIHJldHVybiBSRVRVUk5fVkFMVUVfU1RSVUNUX0NPTlZFTlRJT047Cisg CisgICBzd2l0Y2ggKFRZUEVfQ09ERSAodHlwZSkpCistLS0gc3JjL2dkYi9zcHUtdGRlcC5jCTIw MTIvMDUvMTggMjE6MDI6NTAJMS44MQorKysrIHNyYy9nZGIvc3B1LXRkZXAuYwkyMDEyLzA5LzE3 IDA4OjUyOjE4CTEuODIKK0BAIC0xMzczLDggKzEzNzMsNyBAQAorICAgICAgIHN0cnVjdCB2YWx1 ZSAqYXJnID0gYXJnc1tpXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKGFyZykpOworICAgICAgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cyA9 IHZhbHVlX2NvbnRlbnRzIChhcmcpOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlw ZSk7CistICAgICAgaW50IG5fcmVncyA9IGFsaWduX3VwIChsZW4sIDE2KSAvIDE2OworKyAgICAg IGludCBuX3JlZ3MgPSBhbGlnbl91cCAoVFlQRV9MRU5HVEggKHR5cGUpLCAxNikgLyAxNjsKKyAK KyAgICAgICAvKiBJZiB0aGUgYXJndW1lbnQgZG9lc24ndCB3aG9sbHkgZml0IGludG8gcmVnaXN0 ZXJzLCBpdCBhbmQKKyAJIGFsbCBzdWJzZXF1ZW50IGFyZ3VtZW50cyBnbyB0byB0aGUgc3RhY2su ICAqLwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNW9mMjUucGF0Y2ggYi9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMTVvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJmY2JhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMTVvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItY3ZzLzIwMTItMDkvbXNnMDAxMzIuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VM b2cJMjAxMi8wOS8yMiAxMzowNDo1NAkxLjE0NjkxCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAx Mi8wOS8yNCAxMDoyNTowNwkxLjE0NjkyCisjIyAtMSwzICsxLDggQEAKKysyMDEyLTA5LTI0ICBT aWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkqIG0yLXR5cGVw cmludC5jIChtMl9lbnVtKTogRXhwYW5kIExBU1RWQUwgdG8gTE9OR0VTVC4KKysJKiBwLXZhbHBy aW50LmMgKHBhc2NhbF90eXBlX3ByaW50X2Jhc2UpOiBMaWtld2lzZS4KKysKKyAyMDEyLTA5LTIy ICBZYW8gUWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiByZW1vdGUuYyAocmVtb3Rl X2dldF90cmFjZV9zdGF0dXMpOiBSZW1vdmUgc2V0dGluZyBkZWZhdWx0CistLS0gc3JjL2dkYi9t Mi10eXBlcHJpbnQuYwkyMDEyLzA0LzE4IDA2OjQ2OjQ2CTEuMzAKKysrKyBzcmMvZ2RiL20yLXR5 cGVwcmludC5jCTIwMTIvMDkvMjQgMTA6MjU6MDkJMS4zMQorQEAgLTU4Nyw3ICs1ODcsOCBAQAor IHZvaWQKKyBtMl9lbnVtIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHNob3csIGludCBsZXZlbCkKKyB7CistICBpbnQgbGFzdHZhbCwgaSwgbGVuOworKyAg TE9OR0VTVCBsYXN0dmFsOworKyAgaW50IGksIGxlbjsKKyAKKyAgIGlmIChzaG93IDwgMCkKKyAg ICAgeworLS0tIHNyYy9nZGIvcC10eXBlcHJpbnQuYwkyMDEyLzA4LzE2IDA3OjM2OjIwCTEuNDcK KysrKyBzcmMvZ2RiL3AtdHlwZXByaW50LmMJMjAxMi8wOS8yNCAxMDoyNTowOQkxLjQ4CitAQCAt NDQwLDcgKzQ0MCw3IEBACisgeworICAgaW50IGk7CisgICBpbnQgbGVuOworLSAgaW50IGxhc3R2 YWw7CisrICBMT05HRVNUIGxhc3R2YWw7CisgICBlbnVtCisgICAgIHsKKyAgICAgICBzX25vbmUs IHNfcHVibGljLCBzX3ByaXZhdGUsIHNfcHJvdGVjdGVkCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTE2b2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNm9mMjUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkxZDgxNQotLS0gL2Rl di9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNm9mMjUucGF0Y2gKQEAgLTAsMCAr MSwyNyBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wOS9tc2cwMDEz OC5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzI0IDEwOjI1OjA3CTEuMTQ2 OTIKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzI1IDEyOjIwOjM1CTEuMTQ2OTMKKyMj IC0xLDMgKzEsOCBAQAorKzIwMTItMDktMjUgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNo QHJlZGhhdC5jb20+CisrCisrCSogYy10eXBlcHJpbnQuYyAoY190eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4KTogUmVtb3ZlIGNhc3QgYW5kCisrCXVzZSBwbG9uZ2VzdCB0byBwcmludCB0aGUgYXJy YXkgc2l6ZS4KKysKKyAyMDEyLTA5LTI0ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEBy ZWRoYXQuY29tPgorIAorIAkqIG0yLXR5cGVwcmludC5jIChtMl9lbnVtKTogRXhwYW5kIExBU1RW QUwgdG8gTE9OR0VTVC4KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2MtdHlwZXByaW50 LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYy10eXBlcHJp bnQuYwkyMDEyLTExLTA3IDIyOjAwOjQwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvYy10eXBlcHJpbnQuYwkyMDEyLTExLTA3IDIyOjAzOjM5LjI2OTY1MDE1NyAr MDEwMAorQEAgLTYzMSw3ICs2MzEsOCBAQCBjX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0 cnVjdCB0eXBlCisgCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ2YXJpYWJsZSIpOwor IAkgIH0KKyAJZWxzZSBpZiAoZ2V0X2FycmF5X2JvdW5kcyAodHlwZSwgJmxvd19ib3VuZCwgJmhp Z2hfYm91bmQpKQorLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgKGludCkgKGhp Z2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKSk7CisrCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiJXMiLCAKKysJCQkgICAgcGxvbmdlc3QgKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKSk7 CisgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0iKTsKKyAKKyAJY190eXBlX3ByaW50X3Zh cnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLAoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xN29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMTdvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlm YWRhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTdvZjI1LnBh dGNoCkBAIC0wLDAgKzEsNzI5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8y MDEyLTA5L21zZzAwMTQyLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjUg MTI6Mzg6NTUJMS4xNDY5NgorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjUgMTI6NDg6 NTIJMS4xNDY5NworIyMgLTEsMyArMSwzNiBAQAorKzIwMTItMDktMjUgIFNpZGRoZXNoIFBveWFy ZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogYWRhLXZhbHByaW50LmMgKGFkYV92 YWxfcHJpbnRfMSk6IEVsaW1pbmF0ZSBzaW5nbGUtdXNlCisrCXZhcmlhYmxlIExFTi4KKysJKiBh bHBoYS10ZGVwLmMgKGFscGhhX2V4dHJhY3RfcmV0dXJuX3ZhbHVlKTogVXNlIFRZUEVfTEVOR1RI CisrCWRpcmVjdGx5LgorKwkoYWxwaGFfc3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisr CSogYW1kNjQtdGRlcC5jIChhbWQ2NF9jbGFzc2lmeV9hZ2dyZWdhdGUpOiBMaWtld2lzZS4KKysJ KGFtZDY0X3B1c2hfYXJndW1lbnRzKTogTGlrZXdpc2UuCisrCSogYXgtZ2RiLmMgKGdlbl90cmFj ZV9zdGF0aWNfZmllbGRzKTogTGlrZXdpc2UuCisrCShnZW5fdHJhY2VkX3BvcCk6IExpa2V3aXNl LgorKwkqIGJmaW4tdGRlcC5jIChiZmluX3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3aXNlLgorKwkq IGJyZWFrcG9pbnQuYyAodXBkYXRlX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKysJKiBmaW5kY21k LmMgKHBhcnNlX2ZpbmRfYXJncyk6IFVzZSBsb2NhbCB2YXJpYWJsZSBmb3IgdHlwZQorKwlpbnN0 ZWFkIG9mIGxlbmd0aC4KKysJKiBmaW5kdmFyLmMgKGRlZmF1bHRfcmVhZF92YXJfdmFsdWUpOiBV c2UgVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCSogaDgzMDAtdGRlcC5jIChoODMwMGhfZXh0cmFj dF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKGg4MzAwX3N0b3JlX3JldHVybl92YWx1ZSk6 IExpa2V3aXNlLgorKwkqIGkzODYtZGFyd2luLXRkZXAuYyAoaTM4Nl9kYXJ3aW5fcHVzaF9kdW1t eV9jYWxsKTogTGlrZXdpc2UuCisrCVVzZSBpMzg2X2Rhcndpbl9hcmdfdHlwZV9hbGlnbm1lbnQg ZGlyZWN0bHkuCisrCSogaW5mY2FsbC5jIChjYWxsX2Z1bmN0aW9uX2J5X2hhbmQpOiBVc2UgVFlQ RV9MRU5HVEggZGlyZWN0bHkuCisrCSogbG0zMi10ZGVwLmMgKGxtMzJfcHVzaF9kdW1teV9jYWxs KTogTGlrZXdpc2UuCisrCSogbTY4aGMxMS10ZGVwLmMgKG02OGhjMTFfcHVzaF9kdW1teV9jYWxs KTogTGlrZXdpc2UuCisrCShtNjhoYzExX2V4dHJhY3RfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2Uu CisrCSogbWVwLXRkZXAuYyAobWVwX3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3aXNlLgorKwkqIHBy aW50Y21kLmMgKGZsb2F0X3R5cGVfZnJvbV9sZW5ndGgpOiBMaWtld2lzZS4KKysJKiBzMzkwLXRk ZXAuYyAoczM5MF92YWx1ZV9mcm9tX3JlZ2lzdGVyKTogTGlrZXdpc2UuCisrCSogc3RhY2suYyAo cmVhZF9mcmFtZV9hcmcpOiBMaWtld2lzZS4KKysJKiB0cmFjZXBvaW50LmMgKGVuY29kZV9hY3Rp b25zXzEpOiBMaWtld2lzZS4KKysJKiB2YWxvcHMuYyAodmFsdWVfZmV0Y2hfbGF6eSk6IFVzZSBs b2NhbCB2YXJpYWJsZSBmb3IgdHlwZQorKwlpbnN0ZWFkIG9mIGxlbmd0aC4gIFVzZSBUWVBFX0xF TkdUSCBkaXJlY3RseS4KKysJKiB2YWx1ZS5jICh2YWx1ZV9jb250ZW50c19lcXVhbCk6IFVzZSBU WVBFX0xFTkdUSCBkaXJlY3RseS4KKysKKyAyMDEyLTA5LTI1ICBKb2VsIEJyb2JlY2tlciAgPGJy b2JlY2tlckBhZGFjb3JlLmNvbT4KKyAKKyAJKiBzeW10YWIuYyAoc2tpcF9wcm9sb2d1ZV9zYWwp OiBGaXggdHlwbyBpbiBjb21tZW50LgorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRh LXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv YWRhLXZhbHByaW50LmMJMjAxMi0wNC0xOCAwODo0Njo0Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDM6NTcu NjAwNjIzNTIyICswMTAwCitAQCAtNzMwLDkgKzczMCw4IEBAIGFkYV92YWxfcHJpbnRfMSAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnMKKyAgICAgICBpZiAoYWRhX2lzX2ZpeGVkX3BvaW50X3R5cGUg KHR5cGUpKQorIAl7CisgCSAgTE9OR0VTVCB2ID0gdW5wYWNrX2xvbmcgKHR5cGUsIHZhbGFkZHIg KyBvZmZzZXRfYWxpZ25lZCk7CistCSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAK Ky0JICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIGxlbiA8IDQgPyAiJS4xMWciIDogIiUuMTdn IiwKKysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIFRZUEVfTEVOR1RIICh0eXBlKSA8IDQg PyAiJS4xMWciIDogIiUuMTdnIiwKKyAJCQkgICAgKGRvdWJsZSkgYWRhX2ZpeGVkX3RvX2Zsb2F0 ICh0eXBlLCB2KSk7CisgCSAgcmV0dXJuOworIAl9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2 L2dkYi9hbHBoYS10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvYWxwaGEtdGRlcC5jCTIwMTItMDUtMTYgMTY6MzU6MDIuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1 Ny42MDI2MjM1MjAgKzAxMDAKK0BAIC00NzUsMTQgKzQ3NSwxMyBAQCBhbHBoYV9leHRyYWN0X3Jl dHVybl92YWx1ZSAoc3RydWN0IHR5cGUKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CistICBpbnQgbGVuZ3RoID0gVFlQ RV9MRU5HVEggKHZhbHR5cGUpOworICAgZ2RiX2J5dGUgcmF3X2J1ZmZlcltBTFBIQV9SRUdJU1RF Ul9TSVpFXTsKKyAgIFVMT05HRVNUIGw7CisgCisgICBzd2l0Y2ggKFRZUEVfQ09ERSAodmFsdHlw ZSkpCisgICAgIHsKKyAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgorLSAgICAgIHN3aXRjaCAobGVu Z3RoKQorKyAgICAgIHN3aXRjaCAoVFlQRV9MRU5HVEggKHZhbHR5cGUpKQorIAl7CisgCWNhc2Ug NDoKKyAJICByZWdjYWNoZV9jb29rZWRfcmVhZCAocmVnY2FjaGUsIEFMUEhBX0ZQMF9SRUdOVU0s IHJhd19idWZmZXIpOworQEAgLTUwNSw3ICs1MDQsNyBAQCBhbHBoYV9leHRyYWN0X3JldHVybl92 YWx1ZSAoc3RydWN0IHR5cGUKKyAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVf Q09NUExFWDoKKy0gICAgICBzd2l0Y2ggKGxlbmd0aCkKKysgICAgICBzd2l0Y2ggKFRZUEVfTEVO R1RIICh2YWx0eXBlKSkKKyAJeworIAljYXNlIDg6CisgCSAgLyogPz8/IFRoaXMgaXNuJ3QgY29y cmVjdCB3cnQgdGhlIEFCSSwgYnV0IGl0J3Mgd2hhdCBHQ0MgZG9lcy4gICovCitAQCAtNTMxLDcg KzUzMCw3IEBAIGFscGhhX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZQorICAgICBk ZWZhdWx0OgorICAgICAgIC8qIEFzc3VtZSBldmVyeXRoaW5nIGVsc2UgZGVnZW5lcmF0ZXMgdG8g YW4gaW50ZWdlci4gICovCisgICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJl Z2NhY2hlLCBBTFBIQV9WMF9SRUdOVU0sICZsKTsKKy0gICAgICBzdG9yZV91bnNpZ25lZF9pbnRl Z2VyICh2YWxidWYsIGxlbmd0aCwgYnl0ZV9vcmRlciwgbCk7CisrICAgICAgc3RvcmVfdW5zaWdu ZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodmFsdHlwZSksIGJ5dGVfb3JkZXIsIGwp OworICAgICAgIGJyZWFrOworICAgICB9CisgfQorQEAgLTU0NCwxNCArNTQzLDEzIEBAIGFscGhh X3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnYKKyAJCQkgIGNvbnN0IGdkYl9ieXRl ICp2YWxidWYpCisgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVf YXJjaCAocmVnY2FjaGUpOworLSAgaW50IGxlbmd0aCA9IFRZUEVfTEVOR1RIICh2YWx0eXBlKTsK KyAgIGdkYl9ieXRlIHJhd19idWZmZXJbQUxQSEFfUkVHSVNURVJfU0laRV07CisgICBVTE9OR0VT VCBsOworIAorICAgc3dpdGNoIChUWVBFX0NPREUgKHZhbHR5cGUpKQorICAgICB7CisgICAgIGNh c2UgVFlQRV9DT0RFX0ZMVDoKKy0gICAgICBzd2l0Y2ggKGxlbmd0aCkKKysgICAgICBzd2l0Y2gg KFRZUEVfTEVOR1RIICh2YWx0eXBlKSkKKyAJeworIAljYXNlIDQ6CisgCSAgYWxwaGFfbGRzIChn ZGJhcmNoLCByYXdfYnVmZmVyLCB2YWxidWYpOworQEAgLTU3NSw3ICs1NzMsNyBAQCBhbHBoYV9z dG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICp2CisgICAgICAgYnJlYWs7CisgCisgICAg IGNhc2UgVFlQRV9DT0RFX0NPTVBMRVg6CistICAgICAgc3dpdGNoIChsZW5ndGgpCisrICAgICAg c3dpdGNoIChUWVBFX0xFTkdUSCAodmFsdHlwZSkpCisgCXsKKyAJY2FzZSA4OgorIAkgIC8qID8/ PyBUaGlzIGlzbid0IGNvcnJlY3Qgd3J0IHRoZSBBQkksIGJ1dCBpdCdzIHdoYXQgR0NDIGRvZXMu ICAqLworQEAgLTYwMyw3ICs2MDEsNyBAQCBhbHBoYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVj dCB0eXBlICp2CisgICAgICAgLyogQXNzdW1lIGV2ZXJ5dGhpbmcgZWxzZSBkZWdlbmVyYXRlcyB0 byBhbiBpbnRlZ2VyLiAgKi8KKyAgICAgICAvKiAzMi1iaXQgdmFsdWVzIG11c3QgYmUgc2lnbi1l eHRlbmRlZCB0byA2NCBiaXRzCisgCSBldmVuIGlmIHRoZSBiYXNlIGRhdGEgdHlwZSBpcyB1bnNp Z25lZC4gICovCistICAgICAgaWYgKGxlbmd0aCA9PSA0KQorKyAgICAgIGlmIChUWVBFX0xFTkdU SCAodmFsdHlwZSkgPT0gNCkKKyAJdmFsdHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1 aWx0aW5faW50MzI7CisgICAgICAgbCA9IHVucGFja19sb25nICh2YWx0eXBlLCB2YWxidWYpOwor ICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIEFMUEhBX1Yw X1JFR05VTSwgbCk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbWQ2NC10ZGVwLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYW1kNjQtdGRlcC5j CTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9hbWQ2NC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny42MjM2MjM0ODkgKzAxMDAK K0BAIC00NDYsMTIgKzQ0NiwxMCBAQCBhbWQ2NF9ub25fcG9kX3AgKHN0cnVjdCB0eXBlICp0eXBl KQorIHN0YXRpYyB2b2lkCisgYW1kNjRfY2xhc3NpZnlfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl0pCisgeworLSAgaW50IGxlbiA9IFRZ UEVfTEVOR1RIICh0eXBlKTsKKy0KKyAgIC8qIDEuIElmIHRoZSBzaXplIG9mIGFuIG9iamVjdCBp cyBsYXJnZXIgdGhhbiB0d28gZWlnaHRieXRlcywgb3IgaW4KKyAgICAgICAgIEMrKywgaXMgYSBu b24tUE9EIHN0cnVjdHVyZSBvciB1bmlvbiB0eXBlLCBvciBjb250YWlucworICAgICAgICAgdW5h bGlnbmVkIGZpZWxkcywgaXQgaGFzIGNsYXNzIG1lbW9yeS4gICovCistICBpZiAobGVuID4gMTYg fHwgYW1kNjRfbm9uX3BvZF9wICh0eXBlKSkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAx NiB8fCBhbWQ2NF9ub25fcG9kX3AgKHR5cGUpKQorICAgICB7CisgICAgICAgY2xhc3NbMF0gPSBj bGFzc1sxXSA9IEFNRDY0X01FTU9SWTsKKyAgICAgICByZXR1cm47CitAQCAtNDcxLDcgKzQ2OSw3 IEBAIGFtZDY0X2NsYXNzaWZ5X2FnZ3JlZ2F0ZSAoc3RydWN0IHR5cGUgKnQKKyAKKyAgICAgICAv KiBBbGwgZmllbGRzIGluIGFuIGFycmF5IGhhdmUgdGhlIHNhbWUgdHlwZS4gICovCisgICAgICAg YW1kNjRfY2xhc3NpZnkgKHN1YnR5cGUsIGNsYXNzKTsKKy0gICAgICBpZiAobGVuID4gOCAmJiBj bGFzc1sxXSA9PSBBTUQ2NF9OT19DTEFTUykKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUp ID4gOCAmJiBjbGFzc1sxXSA9PSBBTUQ2NF9OT19DTEFTUykKKyAJY2xhc3NbMV0gPSBjbGFzc1sw XTsKKyAgICAgfQorICAgZWxzZQorQEAgLTgzOSwxMCArODM3LDkgQEAgYW1kNjRfcHVzaF9hcmd1 bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgorICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUgPSB2YWx1ZV90eXBlIChzdGFja19hcmdzW2ldKTsKKyAgICAgICBjb25zdCBnZGJfYnl0ZSAq dmFsYnVmID0gdmFsdWVfY29udGVudHMgKHN0YWNrX2FyZ3NbaV0pOworLSAgICAgIGludCBsZW4g PSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICAgICAgQ09SRV9BRERSIGFyZ19hZGRyID0gc3AgKyBl bGVtZW50ICogODsKKyAKKy0gICAgICB3cml0ZV9tZW1vcnkgKGFyZ19hZGRyLCB2YWxidWYsIGxl bik7CisrICAgICAgd3JpdGVfbWVtb3J5IChhcmdfYWRkciwgdmFsYnVmLCBUWVBFX0xFTkdUSCAo dHlwZSkpOworICAgICAgIGlmIChhcmdfYWRkcl9yZWdub1tpXSA+PSAwKQorICAgICAgICAgewor ICAgICAgICAgICAvKiBXZSBhbHNvIG5lZWQgdG8gc3RvcmUgdGhlIGFkZHJlc3Mgb2YgdGhhdCBh cmd1bWVudCBpbgorQEAgLTg1Myw3ICs4NTAsNyBAQCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3Ry dWN0IHJlZ2NhY2hlICpyCisgICAgICAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGJ1Ziwg OCwgYnl0ZV9vcmRlciwgYXJnX2FkZHIpOworICAgICAgICAgICByZWdjYWNoZV9jb29rZWRfd3Jp dGUgKHJlZ2NhY2hlLCBhcmdfYWRkcl9yZWdub1tpXSwgYnVmKTsKKyAgICAgICAgIH0KKy0gICAg ICBlbGVtZW50ICs9ICgobGVuICsgNykgLyA4KTsKKysgICAgICBlbGVtZW50ICs9ICgoVFlQRV9M RU5HVEggKHR5cGUpICsgNykgLyA4KTsKKyAgICAgfQorIAorICAgLyogVGhlIHBzQUJJIHNheXMg dGhhdCAiRm9yIGNhbGxzIHRoYXQgbWF5IGNhbGwgZnVuY3Rpb25zIHRoYXQgdXNlCitJbmRleDog Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9heC1nZGIuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUu MC4yMDEyMDkyNi5vcmlnL2dkYi9heC1nZGIuYwkyMDEyLTA3LTA1IDAzOjAzOjAxLjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXgtZ2RiLmMJMjAxMi0xMS0wNyAy MjowMzo1Ny42MjY2MjM0ODQgKzAxMDAKK0BAIC0zNjcsOSArMzY3LDkgQEAgZ2VuX3RyYWNlX3N0 YXRpY19maWVsZHMgKHN0cnVjdCBnZGJhcmNoCisgCSAgICB7CisgCSAgICBjYXNlIGF4c19sdmFs dWVfbWVtb3J5OgorIAkgICAgICB7CistCQlpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKGNoZWNr X3R5cGVkZWYgKHZhbHVlLnR5cGUpKTsKKy0KKy0JCWF4X2NvbnN0X2wgKGF4LCBsZW5ndGgpOwor KwkgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIFRZUEVfTEVOR1RIIGlmIGl0IGlzIGEgdHlwZWRl Zi4gICovCisrCSAgICAgICAgY2hlY2tfdHlwZWRlZiAodmFsdWUudHlwZSk7CisrCQlheF9jb25z dF9sIChheCwgVFlQRV9MRU5HVEggKHZhbHVlLnR5cGUpKTsKKyAJCWF4X3NpbXBsZSAoYXgsIGFv cF90cmFjZSk7CisgCSAgICAgIH0KKyAJICAgICAgYnJlYWs7CitAQCAtNDI1LDE3ICs0MjUsMTgg QEAgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAorICAgICAgIGNh c2UgYXhzX2x2YWx1ZV9tZW1vcnk6CisgCXsKKy0JICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEgg KGNoZWNrX3R5cGVkZWYgKHZhbHVlLT50eXBlKSk7CistCisgCSAgaWYgKHN0cmluZ190cmFjZSkK KyAJICAgIGF4X3NpbXBsZSAoYXgsIGFvcF9kdXApOworIAorKwkgIC8qIEluaXRpYWxpemUgdGhl IFRZUEVfTEVOR1RIIGlmIGl0IGlzIGEgdHlwZWRlZi4gICovCisrCSAgY2hlY2tfdHlwZWRlZiAo dmFsdWUtPnR5cGUpOworKworIAkgIC8qIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gdHJ5aW5nIHRvIHVz ZSBhIHRyYWNlX3F1aWNrIGJ5dGVjb2RlCisgCSAgICAgaGVyZSwgc2luY2UgInRyYWNlX3F1aWNr IFNJWkUgcG9wIiBpcyB0aHJlZSBieXRlcywgd2hlcmVhcworIAkgICAgICJjb25zdDggU0laRSB0 cmFjZSIgaXMgYWxzbyB0aHJlZSBieXRlcywgZG9lcyB0aGUgc2FtZQorIAkgICAgIHRoaW5nLCBh bmQgdGhlIHNpbXBsZXN0IGNvZGUgd2hpY2ggZ2VuZXJhdGVzIHRoYXQgd2lsbCBhbHNvCisgCSAg ICAgd29yayBjb3JyZWN0bHkgZm9yIG9iamVjdHMgd2l0aCBsYXJnZSBzaXplcy4gICovCistCSAg YXhfY29uc3RfbCAoYXgsIGxlbmd0aCk7CisrCSAgYXhfY29uc3RfbCAoYXgsIFRZUEVfTEVOR1RI ICh2YWx1ZS0+dHlwZSkpOworIAkgIGF4X3NpbXBsZSAoYXgsIGFvcF90cmFjZSk7CisgCisgCSAg aWYgKHN0cmluZ190cmFjZSkKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2JmaW4tdGRl cC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2JmaW4tdGRl cC5jCTIwMTItMDUtMTYgMTY6MzU6MDMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9iZmluLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjY0MzYyMzQ2MCArMDEw MAorQEAgLTUxMyw5ICs1MTMsOCBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKmdkCisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICB7CisgICAg ICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tp XSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKTsKKyAKKy0gICAg ICB0b3RhbF9sZW4gKz0gKGxlbiArIDMpICYgfjM7CisrICAgICAgdG90YWxfbGVuICs9IChUWVBF X0xFTkdUSCAodmFsdWVfdHlwZSkgKyAzKSAmIH4zOworICAgICB9CisgCisgICAvKiBBdCBsZWFz dCB0d2VsdmUgYnl0ZXMgb2Ygc3RhY2sgc3BhY2UgbXVzdCBiZSBhbGxvY2F0ZWQgZm9yIHRoZSBm dW5jdGlvbidzCitAQCAtNTMxLDggKzUzMCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2QKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0g dmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOworICAgICAgIHN0cnVjdCB0eXBlICphcmdf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUpOworLSAgICAgIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodmFsdWVfdHlwZSk7CistICAgICAgaW50IGNvbnRhaW5lcl9sZW4gPSAobGVuICsg MykgJiB+MzsKKysgICAgICBpbnQgY29udGFpbmVyX2xlbiA9IChUWVBFX0xFTkdUSCAodmFsdWVf dHlwZSkgKyAzKSAmIH4zOworIAorICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CisgICAgICAg d3JpdGVfbWVtb3J5IChzcCwgdmFsdWVfY29udGVudHNfd3JpdGVhYmxlIChhcmdzW2ldKSwgY29u dGFpbmVyX2xlbik7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYnJlYWtwb2ludC5j CTIwMTItMTEtMDcgMjI6MDA6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9icmVha3BvaW50LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny42NjA2MjM0MzQgKzAxMDAK K0BAIC0xODQ0LDExICsxODQ0LDEwIEBAIHVwZGF0ZV93YXRjaHBvaW50IChzdHJ1Y3Qgd2F0Y2hw b2ludCAqYiwKKyAJCSAgICAgICYmIFRZUEVfQ09ERSAodnR5cGUpICE9IFRZUEVfQ09ERV9BUlJB WSkpCisgCQl7CisgCQkgIENPUkVfQUREUiBhZGRyOworLQkJICBpbnQgbGVuLCB0eXBlOworKwkJ ICBpbnQgdHlwZTsKKyAJCSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2MsICoqdG1wOworIAorIAkJ ICBhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CistCQkgIGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1 ZV90eXBlICh2KSk7CisgCQkgIHR5cGUgPSBod193cml0ZTsKKyAJCSAgaWYgKGItPmJhc2UudHlw ZSA9PSBicF9yZWFkX3dhdGNocG9pbnQpCisgCQkgICAgdHlwZSA9IGh3X3JlYWQ7CitAQCAtMTg2 Myw3ICsxODYyLDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCB3YXRjaHBvaW50ICpiLAor IAorIAkJICBsb2MtPnBzcGFjZSA9IGZyYW1lX3BzcGFjZTsKKyAJCSAgbG9jLT5hZGRyZXNzID0g YWRkcjsKKy0JCSAgbG9jLT5sZW5ndGggPSBsZW47CisrCQkgIGxvYy0+bGVuZ3RoID0gVFlQRV9M RU5HVEggKHZhbHVlX3R5cGUgKHYpKTsKKyAJCSAgbG9jLT53YXRjaHBvaW50X3R5cGUgPSB0eXBl OworIAkJfQorIAkgICAgfQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZGNtZC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2ZpbmRjbWQuYwky MDEyLTA3LTA2IDE3OjUxOjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvZmluZGNtZC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjc2NjIzNDExICswMTAwCitAQCAt MTY5LDE5ICsxNjksMTkgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAq bQorICAgd2hpbGUgKCpzICE9ICdcMCcpCisgICAgIHsKKyAgICAgICBMT05HRVNUIHg7CistICAg ICAgaW50IHZhbF9ieXRlczsKKysgICAgICBzdHJ1Y3QgdHlwZSAqdDsKKyAgICAgICBVTE9OR0VT VCBwYXR0ZXJuX2J1Zl9zaXplX25lZWQ7CisgCisgICAgICAgd2hpbGUgKGlzc3BhY2UgKCpzKSkK KyAJKytzOworIAorICAgICAgIHYgPSBwYXJzZV90b19jb21tYV9hbmRfZXZhbCAoJnMpOworLSAg ICAgIHZhbF9ieXRlcyA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2KSk7CisrICAgICAgdCA9 IHZhbHVlX3R5cGUgKHYpOworIAorICAgICAgIC8qIEtlZXAgaXQgc2ltcGxlIGFuZCBhc3N1bWUg c2l6ZSA9PSAnZycgd2hlbiB3YXRjaGluZyBmb3Igd2hlbiB3ZQorIAkgbmVlZCB0byBncm93IHRo ZSBwYXR0ZXJuIGJ1Zi4gICovCisgICAgICAgcGF0dGVybl9idWZfc2l6ZV9uZWVkID0gKHBhdHRl cm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmCistCQkJICAgICAgICsgbWF4ICh2YWxfYnl0ZXMsIHNp emVvZiAoaW50NjRfdCkpKTsKKysJCQkgICAgICAgKyBtYXggKFRZUEVfTEVOR1RIICh0KSwgc2l6 ZW9mIChpbnQ2NF90KSkpOworICAgICAgIGlmIChwYXR0ZXJuX2J1Zl9zaXplX25lZWQgPiBwYXR0 ZXJuX2J1Zl9zaXplKQorIAl7CisgCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0ID0gcGF0dGVybl9i dWZfZW5kIC0gcGF0dGVybl9idWY7CitAQCAtMjE1LDggKzIxNSw4IEBAIHBhcnNlX2ZpbmRfYXJn cyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm0KKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIG1l bWNweSAocGF0dGVybl9idWZfZW5kLCB2YWx1ZV9jb250ZW50cyAodiksIHZhbF9ieXRlcyk7Cist CSAgcGF0dGVybl9idWZfZW5kICs9IHZhbF9ieXRlczsKKysJICBtZW1jcHkgKHBhdHRlcm5fYnVm X2VuZCwgdmFsdWVfY29udGVudHMgKHYpLCBUWVBFX0xFTkdUSCAodCkpOworKwkgIHBhdHRlcm5f YnVmX2VuZCArPSBUWVBFX0xFTkdUSCAodCk7CisgCX0KKyAKKyAgICAgICBpZiAoKnMgPT0gJywn KQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaDgzMDAtdGRlcC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2g4MzAwLXRkZXAuYwkyMDEyLTExLTA3 IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaDgz MDAtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjc5NjIzNDA5ICswMTAwCitAQCAtNzg1LDE2 ICs3ODUsMTUgQEAgaDgzMDBoX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZQorIHsK KyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hl KTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBVTE9OR0VTVCBj OworIAorLSAgc3dpdGNoIChsZW4pCisrICBzd2l0Y2ggKFRZUEVfTEVOR1RIICh0eXBlKSkKKyAg ICAgeworICAgICBjYXNlIDE6CisgICAgIGNhc2UgMjoKKyAgICAgY2FzZSA0OgorICAgICAgIHJl Z2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgRV9SRVQwX1JFR05VTSwgJmMp OworLSAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVy LCBjKTsKKysgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYsIFRZUEVfTEVOR1RI ICh0eXBlKSwgYnl0ZV9vcmRlciwgYyk7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgODoJCQkv KiBsb25nIGxvbmcgaXMgbm93IDggYnl0ZXMuICAqLworICAgICAgIGlmIChUWVBFX0NPREUgKHR5 cGUpID09IFRZUEVfQ09ERV9JTlQpCitAQCAtODUyLDE4ICs4NTEsMTcgQEAgaDgzMDBfc3RvcmVf cmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdAorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKy0gIGludCBsZW4gPSBU WVBFX0xFTkdUSCAodHlwZSk7CisgICBVTE9OR0VTVCB2YWw7CisgCistICBzd2l0Y2ggKGxlbikK KysgIHN3aXRjaCAoVFlQRV9MRU5HVEggKHR5cGUpKQorICAgICB7CisgICAgIGNhc2UgMToKKyAg ICAgY2FzZSAyOgkJCS8qIHNob3J0Li4uICAqLworLSAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWdu ZWRfaW50ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAgIHZhbCA9IGV4dHJh Y3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3Jk ZXIpOworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIEVf UkVUMF9SRUdOVU0sIHZhbCk7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgNDoJCQkvKiBsb25n LCBmbG9hdCAqLworLSAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVm LCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdl ciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOworICAgICAgIHJlZ2Nh Y2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIEVfUkVUMF9SRUdOVU0sCisgCQkJ CSAgICAgICh2YWwgPj4gMTYpICYgMHhmZmZmKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfd3Jp dGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JFVDFfUkVHTlVNLCB2YWwgJiAweGZmZmYpOworQEAg LTg4MiwxOSArODgwLDE4IEBAIGg4MzAwaF9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBl ICoKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChy ZWdjYWNoZSk7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9v cmRlciAoZ2RiYXJjaCk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAgVUxP TkdFU1QgdmFsOworIAorLSAgc3dpdGNoIChsZW4pCisrICBzd2l0Y2ggKFRZUEVfTEVOR1RIICh0 eXBlKSkKKyAgICAgeworICAgICBjYXNlIDE6CisgICAgIGNhc2UgMjoKKyAgICAgY2FzZSA0OgkJ CS8qIGxvbmcsIGZsb2F0ICovCistICAgICAgdmFsID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2Vy ICh2YWxidWYsIGxlbiwgYnl0ZV9vcmRlcik7CisrICAgICAgdmFsID0gZXh0cmFjdF91bnNpZ25l ZF9pbnRlZ2VyICh2YWxidWYsIFRZUEVfTEVOR1RIICh0eXBlKSwgYnl0ZV9vcmRlcik7CisgICAg ICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgRV9SRVQwX1JFR05V TSwgdmFsKTsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSA4OgorLSAgICAgIHZhbCA9IGV4dHJh Y3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAgIHZh bCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodHlwZSks IGJ5dGVfb3JkZXIpOworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVn Y2FjaGUsIEVfUkVUMF9SRUdOVU0sCisgCQkJCSAgICAgICh2YWwgPj4gMzIpICYgMHhmZmZmZmZm Zik7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgRV9S RVQxX1JFR05VTSwKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9pMzg2LWRh cndpbi10ZGVwLmMJMjAxMi0wNC0wMiAxNToxNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3 LjY4MDYyMzQwNyArMDEwMAorQEAgLTE5NiwxMyArMTk2LDEyIEBAIGkzODZfZGFyd2luX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEKKyAgICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGFy Z190eXBlKTsKKy0gICAgICAgICAgICAgIGludCBhbGlnbiA9IGkzODZfZGFyd2luX2FyZ190eXBl X2FsaWdubWVudCAoYXJnX3R5cGUpOworLQorLSAgICAgICAgICAgICAgYXJnc19zcGFjZSA9IGFs aWduX3VwIChhcmdzX3NwYWNlLCBhbGlnbik7CisrICAgICAgICAgICAgICBhcmdzX3NwYWNlID0g YWxpZ25fdXAgKGFyZ3Nfc3BhY2UsCisrCQkJCSAgICAgaTM4Nl9kYXJ3aW5fYXJnX3R5cGVfYWxp Z25tZW50IChhcmdfdHlwZSkpOworICAgICAgICAgICAgICAgaWYgKHdyaXRlX3Bhc3MpCisgICAg ICAgICAgICAgICAgIHdyaXRlX21lbW9yeSAoc3AgKyBhcmdzX3NwYWNlLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbHVlX2NvbnRlbnRzX2FsbCAoYXJnc1tpXSksIGxlbik7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVfY29udGVudHNfYWxsIChhcmdzW2ld KSwKKysJCQkgICAgICBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpKTsKKyAKKyAgICAgICAgICAgICAg IC8qIFRoZSBTeXN0ZW0gViBBQkkgc2F5cyB0aGF0OgorICAgICAgICAgICAgICAgICAgCitAQCAt MjExLDcgKzIxMCw3IEBAIGkzODZfZGFyd2luX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEK KyAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgc2l6ZSBvZiB0aGUgYXJndW1lbnQu IgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICBUaGlzIG1ha2VzIHN1cmUg dGhlIHN0YWNrIHN0YXlzIHdvcmQtYWxpZ25lZC4gICovCistICAgICAgICAgICAgICBhcmdzX3Nw YWNlICs9IGFsaWduX3VwIChsZW4sIDQpOworKyAgICAgICAgICAgICAgYXJnc19zcGFjZSArPSBh bGlnbl91cCAoVFlQRV9MRU5HVEggKGFyZ190eXBlKSwgNCk7CisgICAgICAgICAgICAgfQorICAg ICAgICAgfQorIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaW5mY2FsbC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2luZmNhbGwuYwkyMDEyLTA3 LTMxIDA5OjM0OjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv aW5mY2FsbC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjk0NjIzMzg1ICswMTAwCitAQCAtNzA5LDEz ICs3MDksMTEgQEAgY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFsdWUgKmZ1bgorIAor ICAgaWYgKHN0cnVjdF9yZXR1cm4gfHwgaGlkZGVuX2ZpcnN0X3BhcmFtX3ApCisgICAgIHsKKy0g ICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlc190eXBlKTsKKy0KKyAgICAgICBpZiAo Z2RiYXJjaF9pbm5lcl90aGFuIChnZGJhcmNoLCAxLCAyKSkKKyAJeworIAkgIC8qIFN0YWNrIGdy b3dzIGRvd253YXJkLiAgQWxpZ24gU1RSVUNUX0FERFIgYW5kIFNQIGFmdGVyCisgICAgICAgICAg ICAgIG1ha2luZyBzcGFjZSBmb3IgdGhlIHJldHVybiB2YWx1ZS4gICovCistCSAgc3AgLT0gbGVu OworKwkgIHNwIC09IFRZUEVfTEVOR1RIICh2YWx1ZXNfdHlwZSk7CisgCSAgaWYgKGdkYmFyY2hf ZnJhbWVfYWxpZ25fcCAoZ2RiYXJjaCkpCisgCSAgICBzcCA9IGdkYmFyY2hfZnJhbWVfYWxpZ24g KGdkYmFyY2gsIHNwKTsKKyAJICBzdHJ1Y3RfYWRkciA9IHNwOworQEAgLTcyNyw3ICs3MjUsNyBA QCBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHN0cnVjdCB2YWx1ZSAqZnVuCisgCSAgaWYgKGdkYmFy Y2hfZnJhbWVfYWxpZ25fcCAoZ2RiYXJjaCkpCisgCSAgICBzcCA9IGdkYmFyY2hfZnJhbWVfYWxp Z24gKGdkYmFyY2gsIHNwKTsKKyAJICBzdHJ1Y3RfYWRkciA9IHNwOworLQkgIHNwICs9IGxlbjsK KysJICBzcCArPSBUWVBFX0xFTkdUSCAodmFsdWVzX3R5cGUpOworIAkgIGlmIChnZGJhcmNoX2Zy YW1lX2FsaWduX3AgKGdkYmFyY2gpKQorIAkgICAgc3AgPSBnZGJhcmNoX2ZyYW1lX2FsaWduIChn ZGJhcmNoLCBzcCk7CisgCX0KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2xtMzItdGRl cC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2xtMzItdGRl cC5jCTIwMTItMDUtMTggMjM6MDI6NDguMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9sbTMyLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjY5NTYyMzM4NCArMDEw MAorQEAgLTI2MSw3ICsyNjEsNiBAQCBsbTMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKmdkCisgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOworICAgICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOworICAg ICAgIGdkYl9ieXRlICpjb250ZW50czsKKy0gICAgICBpbnQgbGVuOworICAgICAgIFVMT05HRVNU IHZhbDsKKyAKKyAgICAgICAvKiBQcm9tb3RlIHNtYWxsIGludGVnZXIgdHlwZXMgdG8gaW50LiAg Ki8KK0BAIC0yODMsOCArMjgyLDggQEAgbG0zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnZAorICAgICAgIC8qIEZJWE1FOiBIYW5kbGUgc3RydWN0dXJlcy4gICovCisgCisgICAg ICAgY29udGVudHMgPSAoZ2RiX2J5dGUgKikgdmFsdWVfY29udGVudHMgKGFyZyk7CistICAgICAg bGVuID0gVFlQRV9MRU5HVEggKGFyZ190eXBlKTsKKy0gICAgICB2YWwgPSBleHRyYWN0X3Vuc2ln bmVkX2ludGVnZXIgKGNvbnRlbnRzLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAgIHZhbCA9IGV4 dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoY29udGVudHMsIFRZUEVfTEVOR1RIIChhcmdfdHlwZSks CisrCQkJCSAgICAgIGJ5dGVfb3JkZXIpOworIAorICAgICAgIC8qIEZpcnN0IG51bV9hcmdfcmVn cyBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgYnkgcmVnaXN0ZXJzLCAKKyAgICAgICAgICBhbmQgdGhl IHJlc3QgYXJlIHBhc3NlZCBvbiB0aGUgc3RhY2suICAqLworQEAgLTI5Miw3ICsyOTEsNyBAQCBs bTMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgCXJlZ2NhY2hlX2Nvb2tl ZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIGZpcnN0X2FyZ19yZWcgKyBpLCB2YWwpOworICAg ICAgIGVsc2UKKyAJeworLQkgIHdyaXRlX21lbW9yeSAoc3AsICh2b2lkICopICZ2YWwsIGxlbik7 CisrCSAgd3JpdGVfbWVtb3J5IChzcCwgKHZvaWQgKikgJnZhbCwgVFlQRV9MRU5HVEggKGFyZ190 eXBlKSk7CisgCSAgc3AgLT0gNDsKKyAJfQorICAgICB9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9tNjhoYzExLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi9tNjhoYzExLXRkZXAuYwkyMDEyLTA1LTE2IDE2OjM1OjA2LjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTY4aGMxMS10ZGVwLmMJMjAxMi0xMS0w NyAyMjowMzo1Ny43MjQ2MjMzNDcgKzAxMDAKK0BAIC0xMTc0LDcgKzExNzQsNiBAQCBtNjhoYzEx X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKyAgIGludCBmaXJzdF9zdGFja19hcmdu dW07CisgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKyAgIGNoYXIgKnZhbDsKKy0gIGludCBsZW47Cisg ICBjaGFyIGJ1ZlsyXTsKKyAgIAorICAgZmlyc3Rfc3RhY2tfYXJnbnVtID0gMDsKK0BAIC0xMTg1 LDE5ICsxMTg0LDE4IEBAIG02OGhjMTFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAor ICAgZWxzZSBpZiAobmFyZ3MgPiAwKQorICAgICB7CisgICAgICAgdHlwZSA9IHZhbHVlX3R5cGUg KGFyZ3NbMF0pOworLSAgICAgIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgICAgICAv KiBGaXJzdCBhcmd1bWVudCBpcyBwYXNzZWQgaW4gRCBhbmQgWCByZWdpc3RlcnMuICAqLworLSAg ICAgIGlmIChsZW4gPD0gNCkKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDQpCisg ICAgICAgICB7CisgICAgICAgICAgIFVMT05HRVNUIHY7CisgCisgICAgICAgICAgIHYgPSBleHRy YWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRlbnRzIChhcmdzWzBdKSwKKy0JCQkJCWxl biwgYnl0ZV9vcmRlcik7CisrCQkJCQlUWVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOwor ICAgICAgICAgICBmaXJzdF9zdGFja19hcmdudW0gPSAxOworIAorICAgICAgICAgICByZWdjYWNo ZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBIQVJEX0RfUkVHTlVNLCB2KTsKKy0g ICAgICAgICAgaWYgKGxlbiA+IDIpCisrICAgICAgICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkg PiAyKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHYgPj49IDE2OworICAgICAgICAg ICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgSEFSRF9YX1JF R05VTSwgdik7CitAQCAtMTIwOCw5ICsxMjA2LDggQEAgbTY4aGMxMV9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoCisgICBmb3IgKGFyZ251bSA9IG5hcmdzIC0gMTsgYXJnbnVtID49IGZp cnN0X3N0YWNrX2FyZ251bTsgYXJnbnVtLS0pCisgICAgIHsKKyAgICAgICB0eXBlID0gdmFsdWVf dHlwZSAoYXJnc1thcmdudW1dKTsKKy0gICAgICBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Cisg CistICAgICAgaWYgKGxlbiAmIDEpCisrICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSAmIDEp CisgICAgICAgICB7CisgICAgICAgICAgIHN0YXRpYyBjaGFyIHplcm8gPSAwOworIAorQEAgLTEy MTgsOCArMTIxNSw4IEBAIG02OGhjMTFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAor ICAgICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCAmemVybywgMSk7CisgICAgICAgICB9CisgICAg ICAgdmFsID0gKGNoYXIqKSB2YWx1ZV9jb250ZW50cyAoYXJnc1thcmdudW1dKTsKKy0gICAgICBz cCAtPSBsZW47CistICAgICAgd3JpdGVfbWVtb3J5IChzcCwgdmFsLCBsZW4pOworKyAgICAgIHNw IC09IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWwsIFRZ UEVfTEVOR1RIICh0eXBlKSk7CisgICAgIH0KKyAKKyAgIC8qIFN0b3JlIHJldHVybiBhZGRyZXNz LiAgKi8KK0BAIC0xMjkxLDExICsxMjg4LDEwIEBAIHN0YXRpYyB2b2lkCisgbTY4aGMxMV9leHRy YWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsYnVmKQorIHsK Ky0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBjaGFyIGJ1ZltNNjhIQzExX1JF R19TSVpFXTsKKyAKKyAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgSEFSRF9EX1JFR05V TSwgYnVmKTsKKy0gIHN3aXRjaCAobGVuKQorKyAgc3dpdGNoIChUWVBFX0xFTkdUSCAodHlwZSkp CisgICAgIHsKKyAgICAgY2FzZSAxOgorICAgICAgIG1lbWNweSAodmFsYnVmLCBidWYgKyAxLCAx KTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21lcC10ZGVwLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDEyLTA1LTE2IDE2 OjM1OjA2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbWVwLXRk ZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjcyNzYyMzMzNCArMDEwMAorQEAgLTIzMzcsMTEgKzIz MzcsMTAgQEAgbWVwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorIAorICAg Zm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKKyAgICAgeworLSAgICAgIHVuc2lnbmVkIGFyZ19z aXplID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKyAgICAgICBVTE9OR0VT VCB2YWx1ZTsKKyAKKyAgICAgICAvKiBBcmd1bWVudHMgdGhhdCBmaXQgaW4gYSBHUFIgZ2V0IGV4 cGFuZGVkIHRvIGZpbGwgdGhlIEdQUi4gICovCistICAgICAgaWYgKGFyZ19zaXplIDw9IE1FUF9H UFJfU0laRSkKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKSA8 PSBNRVBfR1BSX1NJWkUpCisgICAgICAgICB2YWx1ZSA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdl ciAodmFsdWVfY29udGVudHMgKGFyZ3ZbaV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChhcmd2W2ldKSksCisgCQkJ CQkgIGJ5dGVfb3JkZXIpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcHJpbnRjbWQu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9wcmludGNtZC5j CTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9wcmludGNtZC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNzMwNjIzMzM0ICswMTAwCitA QCAtMzQ3LDEzICszNDcsMTIgQEAgZmxvYXRfdHlwZV9mcm9tX2xlbmd0aCAoc3RydWN0IHR5cGUg KnR5cAorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlw ZSk7CisgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidWlsdGluID0gYnVpbHRpbl90eXBl IChnZGJhcmNoKTsKKy0gIHVuc2lnbmVkIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Cisg CistICBpZiAobGVuID09IFRZUEVfTEVOR1RIIChidWlsdGluLT5idWlsdGluX2Zsb2F0KSkKKysg IGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPT0gVFlQRV9MRU5HVEggKGJ1aWx0aW4tPmJ1aWx0aW5f ZmxvYXQpKQorICAgICB0eXBlID0gYnVpbHRpbi0+YnVpbHRpbl9mbG9hdDsKKy0gIGVsc2UgaWYg KGxlbiA9PSBUWVBFX0xFTkdUSCAoYnVpbHRpbi0+YnVpbHRpbl9kb3VibGUpKQorKyAgZWxzZSBp ZiAoVFlQRV9MRU5HVEggKHR5cGUpID09IFRZUEVfTEVOR1RIIChidWlsdGluLT5idWlsdGluX2Rv dWJsZSkpCisgICAgIHR5cGUgPSBidWlsdGluLT5idWlsdGluX2RvdWJsZTsKKy0gIGVsc2UgaWYg KGxlbiA9PSBUWVBFX0xFTkdUSCAoYnVpbHRpbi0+YnVpbHRpbl9sb25nX2RvdWJsZSkpCisrICBl bHNlIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPT0gVFlQRV9MRU5HVEggKGJ1aWx0aW4tPmJ1aWx0 aW5fbG9uZ19kb3VibGUpKQorICAgICB0eXBlID0gYnVpbHRpbi0+YnVpbHRpbl9sb25nX2RvdWJs ZTsKKyAKKyAgIHJldHVybiB0eXBlOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvczM5 MC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvczM5 MC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMjozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL3MzOTAtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNzMzNjIzMzI5 ICswMTAwCitAQCAtMzc2LDkgKzM3NiwxMSBAQCBzMzkwX3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0 cnVjdCB0eXBlICp0CisgCQkJICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCisgeworICAgc3Ry dWN0IHZhbHVlICp2YWx1ZSA9IGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3RlciAodHlwZSwgcmVn bnVtLCBmcmFtZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHR5 cGUpKTsKKyAKKy0gIGlmIChyZWdudW0gPj0gUzM5MF9GMF9SRUdOVU0gJiYgcmVnbnVtIDw9IFMz OTBfRjE1X1JFR05VTSAmJiBsZW4gPCA4KQorKyAgY2hlY2tfdHlwZWRlZiAodHlwZSk7CisrCisr ICBpZiAocmVnbnVtID49IFMzOTBfRjBfUkVHTlVNICYmIHJlZ251bSA8PSBTMzkwX0YxNV9SRUdO VU0KKysgICAgICAmJiBUWVBFX0xFTkdUSCAodHlwZSkgPCA4KQorICAgICBzZXRfdmFsdWVfb2Zm c2V0ICh2YWx1ZSwgMCk7CisgCisgICByZXR1cm4gdmFsdWU7CitJbmRleDogZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9zdGFjay5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny43Mzc2MjMz MjIgKzAxMDAKK0BAIC0zNTQsMTQgKzM1NCwxNSBAQCByZWFkX2ZyYW1lX2FyZyAoc3RydWN0IHN5 bWJvbCAqc3ltLCBzdHJ1CisgCisgCSAgaWYgKHZhbCAmJiBlbnRyeXZhbCAmJiAhdWlfb3V0X2lz X21pX2xpa2VfcCAoY3VycmVudF91aW91dCkpCisgCSAgICB7CistCSAgICAgIHVuc2lnbmVkIGxl biA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWwpKTsKKysJICAgICAgc3RydWN0IHR5cGUg KnR5cGUgPSB2YWx1ZV90eXBlICh2YWwpOworIAorIAkgICAgICBpZiAoIXZhbHVlX29wdGltaXpl ZF9vdXQgKHZhbCkgJiYgdmFsdWVfbGF6eSAodmFsKSkKKyAJCXZhbHVlX2ZldGNoX2xhenkgKHZh bCk7CisgCSAgICAgIGlmICghdmFsdWVfb3B0aW1pemVkX291dCAodmFsKSAmJiB2YWx1ZV9sYXp5 IChlbnRyeXZhbCkpCisgCQl2YWx1ZV9mZXRjaF9sYXp5IChlbnRyeXZhbCk7CisgCSAgICAgIGlm ICghdmFsdWVfb3B0aW1pemVkX291dCAodmFsKQorLQkJICAmJiB2YWx1ZV9hdmFpbGFibGVfY29u dGVudHNfZXEgKHZhbCwgMCwgZW50cnl2YWwsIDAsIGxlbikpCisrCQkgICYmIHZhbHVlX2F2YWls YWJsZV9jb250ZW50c19lcSAodmFsLCAwLCBlbnRyeXZhbCwgMCwKKysJCQkJCQkgIFRZUEVfTEVO R1RIICh0eXBlKSkpCisgCQl7CisgCQkgIC8qIEluaXRpYWxpemUgaXQganVzdCB0byBhdm9pZCBh IEdDQyBmYWxzZSB3YXJuaW5nLiAgKi8KKyAJCSAgc3RydWN0IHZhbHVlICp2YWxfZGVyZWYgPSBO VUxMLCAqZW50cnl2YWxfZGVyZWY7CitAQCAtMzczLDEyICszNzQsMTIgQEAgcmVhZF9mcmFtZV9h cmcgKHN0cnVjdCBzeW1ib2wgKnN5bSwgc3RydQorIAorIAkJICBUUllfQ0FUQ0ggKGV4Y2VwdCwg UkVUVVJOX01BU0tfRVJST1IpCisgCQkgICAgeworLQkJICAgICAgdW5zaWduZWQgbGVuX2RlcmVm OworKwkJICAgICAgc3RydWN0IHR5cGUgKnR5cGVfZGVyZWY7CisgCisgCQkgICAgICB2YWxfZGVy ZWYgPSBjb2VyY2VfcmVmICh2YWwpOworIAkJICAgICAgaWYgKHZhbHVlX2xhenkgKHZhbF9kZXJl ZikpCisgCQkJdmFsdWVfZmV0Y2hfbGF6eSAodmFsX2RlcmVmKTsKKy0JCSAgICAgIGxlbl9kZXJl ZiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWxfZGVyZWYpKTsKKysJCSAgICAgIHR5cGVf ZGVyZWYgPSB2YWx1ZV90eXBlICh2YWxfZGVyZWYpOworIAorIAkJICAgICAgZW50cnl2YWxfZGVy ZWYgPSBjb2VyY2VfcmVmIChlbnRyeXZhbCk7CisgCQkgICAgICBpZiAodmFsdWVfbGF6eSAoZW50 cnl2YWxfZGVyZWYpKQorQEAgLTM4OSw3ICszOTAsNyBAQCByZWFkX2ZyYW1lX2FyZyAoc3RydWN0 IHN5bWJvbCAqc3ltLCBzdHJ1CisgCQkgICAgICBpZiAodmFsICE9IHZhbF9kZXJlZgorIAkJCSAg JiYgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICh2YWxfZGVyZWYsIDAsCisgCQkJCQkJCSAg ZW50cnl2YWxfZGVyZWYsIDAsCistCQkJCQkJCSAgbGVuX2RlcmVmKSkKKysJCQkJCQkgICAgICBU WVBFX0xFTkdUSCAodHlwZV9kZXJlZikpKQorIAkJCXZhbF9lcXVhbCA9IDE7CisgCQkgICAgfQor IAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdHJhY2Vwb2ludC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDEyLTA2LTMw IDAwOjQ2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdHJh Y2Vwb2ludC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNzQxNjIzMzE4ICswMTAwCitAQCAtMTQ1MCw3 ICsxNDUwLDcgQEAgZW5jb2RlX2FjdGlvbnNfMSAoc3RydWN0IGNvbW1hbmRfbGluZSAqYQorIAkJ fQorIAkgICAgICBlbHNlCisgCQl7CistCQkgIHVuc2lnbmVkIGxvbmcgYWRkciwgbGVuOworKwkJ ICB1bnNpZ25lZCBsb25nIGFkZHI7CisgCQkgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW4gPSBO VUxMOworIAkJICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluMSA9IE5VTEw7CisgCitAQCAtMTQ4 MCw4ICsxNDgwLDEwIEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmEK KyAJCSAgICAgIC8qIFNhZmUgYmVjYXVzZSB3ZSBrbm93IGl0J3MgYSBzaW1wbGUgZXhwcmVzc2lv bi4gICovCisgCQkgICAgICB0ZW1wdmFsID0gZXZhbHVhdGVfZXhwcmVzc2lvbiAoZXhwKTsKKyAJ CSAgICAgIGFkZHIgPSB2YWx1ZV9hZGRyZXNzICh0ZW1wdmFsKTsKKy0JCSAgICAgIGxlbiA9IFRZ UEVfTEVOR1RIIChjaGVja190eXBlZGVmIChleHAtPmVsdHNbMV0udHlwZSkpOworLQkJICAgICAg YWRkX21lbXJhbmdlIChjb2xsZWN0LCBtZW1yYW5nZV9hYnNvbHV0ZSwgYWRkciwgbGVuKTsKKysJ CSAgICAgIC8qIEluaXRpYWxpemUgdGhlIFRZUEVfTEVOR1RIIGlmIGl0IGlzIGEgdHlwZWRlZi4g ICovCisrCQkgICAgICBjaGVja190eXBlZGVmIChleHAtPmVsdHNbMV0udHlwZSk7CisrCQkgICAg ICBhZGRfbWVtcmFuZ2UgKGNvbGxlY3QsIG1lbXJhbmdlX2Fic29sdXRlLCBhZGRyLAorKwkJCQkg ICAgVFlQRV9MRU5HVEggKGV4cC0+ZWx0c1sxXS50eXBlKSk7CisgCQkgICAgICBicmVhazsKKyAK KyAJCSAgICBjYXNlIE9QX1ZBUl9WQUxVRToKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3Zh bG9wcy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi92YWxvcHMuYwkyMDEyLTExLTA3IDIyOjA2OjM1Ljg5OTM5MzUzOSArMDEw MAorQEAgLTEwNTUsNyArMTA1NSw2IEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAq dmFsKQorICAgICAgIHN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh2YWwpOwor ICAgICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWwpOworICAgICAgIExPTkdF U1QgbnVtOworLSAgICAgIGludCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgICAg ICAgaWYgKCF2YWx1ZV9iaXRzX3ZhbGlkICh2YWwsCisgCQkJICAgICBUQVJHRVRfQ0hBUl9CSVQg KiBvZmZzZXQgKyB2YWx1ZV9iaXRwb3MgKHZhbCksCitAQCAtMTA2OSw5ICsxMDY4LDkgQEAgdmFs dWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCisgCQkJCSAgICAgIHZhbHVlX2JpdHNp emUgKHZhbCksIHBhcmVudCwgJm51bSkpCisgCW1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUg KHZhbCwKKyAJCQkJICAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2YWwpLAorLQkJCQkgICAg ICBsZW5ndGgpOworKwkJCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkpOworICAgICAgIGVsc2UK Ky0Jc3RvcmVfc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRlbnRzX3JhdyAodmFsKSwgbGVuZ3Ro LAorKwlzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHNfcmF3ICh2YWwpLCBUWVBF X0xFTkdUSCAodHlwZSksCisgCQkJICAgICAgYnl0ZV9vcmRlciwgbnVtKTsKKyAgICAgfQorICAg ZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKK0BAIC0xMDgwLDE2ICsx MDc5LDE2IEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFsKQorIAorICAgICAg IGlmIChvYmplY3RfYWRkcmVzc19nZXRfZGF0YSAodmFsdWVfdHlwZSAodmFsKSwgJmFkZHIpKQor IAl7CistCSAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKTsK Ky0JICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKKysJ ICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xvc2luZ190eXBl ICh2YWwpKTsKKyAKKy0JICBpZiAobGVuZ3RoKQorKwkgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkp CisgCSAgICB7CisgCSAgICAgIC8qIERlbGF5IGl0IGFmdGVyIG9iamVjdF9hZGRyZXNzX2dldF9k YXRhIGFib3ZlLiAgKi8KKyAJICAgICAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHZhbCk7Cisg CSAgICAgIGFkZHIgKz0gdmFsdWVfb2Zmc2V0ICh2YWwpOworIAkgICAgICByZWFkX3ZhbHVlX21l bW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKKy0JCQkJIGFkZHIsIHZhbHVlX2NvbnRl bnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CisrCQkJCSBhZGRyLCB2YWx1ZV9jb250ZW50c19h bGxfcmF3ICh2YWwpLAorKwkJCQkgVFlQRV9MRU5HVEggKHR5cGUpKTsKKyAJICAgIH0KKyAJfQor ICAgICAgIC8qIEp1c3QgdG8gYmUgc3VyZSBpdCBoYXMgYmVlbiBjYWxsZWQuICAqLworSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsdWUuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUu MC4yMDEyMDkyNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTItMTEtMDcgMjI6MDA6NDMuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5jCTIwMTItMTEtMDcgMjI6 MDM6NTcuNzUxNjIzMzAzICswMTAwCitAQCAtMTAzNCwxNSArMTAzNCwxNCBAQCB2YWx1ZV9jb250 ZW50c19lcXVhbCAoc3RydWN0IHZhbHVlICp2YWwxCisgeworICAgc3RydWN0IHR5cGUgKnR5cGUx OworICAgc3RydWN0IHR5cGUgKnR5cGUyOworLSAgaW50IGxlbjsKKyAKKyAgIHR5cGUxID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsMSkpOworICAgdHlwZTIgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlICh2YWwyKSk7CistICBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZTEpOworLSAg aWYgKGxlbiAhPSBUWVBFX0xFTkdUSCAodHlwZTIpKQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBl MSkgIT0gVFlQRV9MRU5HVEggKHR5cGUyKSkKKyAgICAgcmV0dXJuIDA7CisgCistICByZXR1cm4g KG1lbWNtcCAodmFsdWVfY29udGVudHMgKHZhbDEpLCB2YWx1ZV9jb250ZW50cyAodmFsMiksIGxl bikgPT0gMCk7CisrICByZXR1cm4gKG1lbWNtcCAodmFsdWVfY29udGVudHMgKHZhbDEpLCB2YWx1 ZV9jb250ZW50cyAodmFsMiksCisrCQkgIFRZUEVfTEVOR1RIICh0eXBlMSkpID09IDApOworIH0K KyAKKyBpbnQKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMThvZjI1LnBhdGNo IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE4b2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xNjJiNTU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0 MjQtYml0cG9zLTE4b2YyNS5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitodHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTQ1Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hh bmdlTG9nCTIwMTIvMDkvMjUgMTI6NDg6NTIJMS4xNDY5NworIyMjIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMTIvMDkvMjYgMDI6MDY6NTEJMS4xNDY5OAorIyMgLTEsMyArMSw4IEBACisrMjAxMi0wOS0y NiAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4KKysKKysJKiBicmVh a3BvaW50LmMgKGludmFsaWRhdGVfYnBfdmFsdWVfb25fbWVtb3J5X2NoYW5nZSk6IEV4cGFuZAor KwlwYXJhbWV0ZXIgTEVOIHRvIHNzaXplX3QuCisrCisgMjAxMi0wOS0yNSAgU2lkZGhlc2ggUG95 YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4KKyAKKyAJKiBhZGEtdmFscHJpbnQuYyAoYWRh X3ZhbF9wcmludF8xKTogRWxpbWluYXRlIHNpbmdsZS11c2UKKy0tLSBzcmMvZ2RiL2JyZWFrcG9p bnQuYwkyMDEyLzA5LzI1IDEyOjQ4OjUyCTEuNzA1CisrKysgc3JjL2dkYi9icmVha3BvaW50LmMJ MjAxMi8wOS8yNiAwMjowNjo1NAkxLjcwNgorQEAgLTE0NzE4LDcgKzE0NzE4LDcgQEAKKyAgICBH REIgaXRzZWxmLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLWludmFsaWRhdGVfYnBfdmFsdWVfb25f bWVtb3J5X2NoYW5nZSAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisraW52YWxpZGF0ZV9icF92 YWx1ZV9vbl9tZW1vcnlfY2hhbmdlIChDT1JFX0FERFIgYWRkciwgc3NpemVfdCBsZW4sCisgCQkJ CSAgICAgIGNvbnN0IGJmZF9ieXRlICpkYXRhKQorIHsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpi cDsKKyMjIyBzcmMvZ2RiL2RvYy9DaGFuZ2VMb2cJMjAxMi8wOS8yMSAwMTo0Njo0MgkxLjEzNzAK KyMjIyBzcmMvZ2RiL2RvYy9DaGFuZ2VMb2cJMjAxMi8wOS8yNiAwMjowNjo1NQkxLjEzNzEKKyMj IC0xLDMgKzEsNyBAQAorKzIwMTItMDktMjYgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNo QHJlZGhhdC5jb20+CisrCisrCSogb2JzZXJ2ZXIudGV4aSAobWVtb3J5X2NoYW5nZWQpOiBFeHBh bmQgcGFyYW1ldGVyIExFTiB0byBzc2l6ZV90LgorKworIDIwMTItMDktMjEgIFlhbyBRaSAgPHlh b0Bjb2Rlc291cmNlcnkuY29tPgorICAgICAgICAgICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJl ZGhhdC5jb20+CisgCistLS0gc3JjL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aQkyMDEyLzA5LzIxIDAx OjQ2OjQzCTEuNDAKKysrKyBzcmMvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCTIwMTIvMDkvMjYgMDI6 MDY6NTUJMS40MQorQEAgLTIzMCw3ICsyMzAsNyBAQAorIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBp bW1lZGlhdGVseSBiZWZvcmUgZnJlZWluZyBAdmFye2luZn0uCisgQGVuZCBkZWZ0eXBlZnVuCisg CistQGRlZnR5cGVmdW4gdm9pZCBtZW1vcnlfY2hhbmdlZCAoQ09SRV9BRERSIEB2YXJ7YWRkcn0s IGludCBAdmFye2xlbn0sIGNvbnN0IGJmZF9ieXRlICpAdmFye2RhdGF9KQorK0BkZWZ0eXBlZnVu IHZvaWQgbWVtb3J5X2NoYW5nZWQgKENPUkVfQUREUiBAdmFye2FkZHJ9LCBzc2l6ZV90IEB2YXJ7 bGVufSwgY29uc3QgYmZkX2J5dGUgKkB2YXJ7ZGF0YX0pCisgQnl0ZXMgZnJvbSBAdmFye2RhdGF9 IHRvIEB2YXJ7ZGF0YX0gKyBAdmFye2xlbn0gaGF2ZSBiZWVuIHdyaXR0ZW4KKyB0byB0aGUgY3Vy cmVudCBpbmZlcmlvciBhdCBAdmFye2FkZHJ9LgorIEBlbmQgZGVmdHlwZWZ1bgoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xOW9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMTlvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVh NTBlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTlvZjI1LnBh dGNoCkBAIC0wLDAgKzEsMjYwIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8y MDEyLTA5L21zZzAwMTQ3Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjYg MDI6MDY6NTEJMS4xNDY5OAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjYgMDc6NTI6 NDQJMS4xNDY5OQorIyMgLTEsNSArMSwxOSBAQAorIDIwMTItMDktMjYgIFNpZGRoZXNoIFBveWFy ZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisgCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9y ZXR1cm5fdmFsdWUpOiBVc2UgVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCSogYmZpbi10ZGVwLmMg KGJmaW5fZXh0cmFjdF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKGJmaW5fc3RvcmVfcmV0 dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisrCSogY3Jpcy10ZGVwLmMgKGNyaXNfc3RvcmVfcmV0dXJu X3ZhbHVlKTogTGlrZXdpc2UuCisrCShjcmlzX2V4dHJhY3RfcmV0dXJuX3ZhbHVlKTogTGlrZXdp c2UuCisrCSogaDgzMDAtdGRlcC5jIChoODMwMF9leHRyYWN0X3JldHVybl92YWx1ZSk6IExpa2V3 aXNlLgorKwkqIGhwcGEtdGRlcC5jIChocHBhNjRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisr CSogbG0zMi10ZGVwLmMgKGxtMzJfc3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisrCSog bWljcm9ibGF6ZS10ZGVwLmMgKG1pY3JvYmxhemVfc3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlrZXdp c2UuCisrCSogc3B1LXRkZXAuYyAoc3B1X3ZhbHVlX2Zyb21fcmVnaXN0ZXIpOiBMaWtld2lzZS4K KysJKiB2YXgtdGRlcC5jICh2YXhfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisrCisrMjAxMi0w OS0yNiAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4KKysKKyAJKiBi cmVha3BvaW50LmMgKGludmFsaWRhdGVfYnBfdmFsdWVfb25fbWVtb3J5X2NoYW5nZSk6IEV4cGFu ZAorIAlwYXJhbWV0ZXIgTEVOIHRvIHNzaXplX3QuCisgCistLS0gc3JjL2dkYi9hbWQ2NC10ZGVw LmMJMjAxMi8wOS8yNSAxMjo0ODo1MgkxLjExMAorKysrIHNyYy9nZGIvYW1kNjQtdGRlcC5jCTIw MTIvMDkvMjYgMDc6NTI6NDcJMS4xMTEKK0BAIC02MzcsNyArNjM3LDcgQEAKKyAgICAgfQorIAor ICAgZ2RiX2Fzc2VydCAoY2xhc3NbMV0gIT0gQU1ENjRfTUVNT1JZKTsKKy0gIGdkYl9hc3NlcnQg KGxlbiA8PSAxNik7CisrICBnZGJfYXNzZXJ0IChUWVBFX0xFTkdUSCAodHlwZSkgPD0gMTYpOwor IAorICAgZm9yIChpID0gMDsgbGVuID4gMDsgaSsrLCBsZW4gLT0gOCkKKyAgICAgeworLS0tIHNy Yy9nZGIvYmZpbi10ZGVwLmMJMjAxMi8wOS8yNSAxMjo0ODo1MgkxLjExCisrKysgc3JjL2dkYi9i ZmluLXRkZXAuYwkyMDEyLzA5LzI2IDA3OjUyOjQ3CTEuMTIKK0BAIC02MTUsNyArNjE1LDcgQEAK KyAgIFVMT05HRVNUIHRtcDsKKyAgIGludCByZWdubyA9IEJGSU5fUjBfUkVHTlVNOworIAorLSAg Z2RiX2Fzc2VydCAobGVuIDw9IDgpOworKyAgZ2RiX2Fzc2VydCAoVFlQRV9MRU5HVEggKHR5cGUp IDw9IDgpOworIAorICAgd2hpbGUgKGxlbiA+IDApCisgICAgIHsKK0BAIC02NDMsNyArNjQzLDcg QEAKKyAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBpbnQgcmVnbm8gPSBCRklO X1IwX1JFR05VTTsKKyAKKy0gIGdkYl9hc3NlcnQgKGxlbiA8PSA4KTsKKysgIGdkYl9hc3NlcnQg KFRZUEVfTEVOR1RIICh0eXBlKSA8PSA4KTsKKyAKKyAgIHdoaWxlIChsZW4gPiAwKQorICAgICB7 CistLS0gc3JjL2dkYi9jcmlzLXRkZXAuYwkyMDEyLzA1LzE4IDIxOjAyOjQ3CTEuMTg1CisrKysg c3JjL2dkYi9jcmlzLXRkZXAuYwkyMDEyLzA5LzI2IDA3OjUyOjQ3CTEuMTg2CitAQCAtMTY2Miwy MCArMTY2MiwyMCBAQAorICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVf YXJjaCAocmVnY2FjaGUpOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgVUxPTkdFU1QgdmFsOworLSAgaW50IGxlbiA9IFRZ UEVfTEVOR1RIICh0eXBlKTsKKyAgIAorLSAgaWYgKGxlbiA8PSA0KQorKyAgaWYgKFRZUEVfTEVO R1RIICh0eXBlKSA8PSA0KQorICAgICB7CisgICAgICAgLyogUHV0IHRoZSByZXR1cm4gdmFsdWUg aW4gUjEwLiAgKi8KKy0gICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1 ZiwgbGVuLCBieXRlX29yZGVyKTsKKysgICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVn ZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRlX29yZGVyKTsKKyAgICAgICByZWdj YWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBBUkcxX1JFR05VTSwgdmFsKTsK KyAgICAgfQorLSAgZWxzZSBpZiAobGVuIDw9IDgpCisrICBlbHNlIGlmIChUWVBFX0xFTkdUSCAo dHlwZSkgPD0gOCkKKyAgICAgeworICAgICAgIC8qIFB1dCB0aGUgcmV0dXJuIHZhbHVlIGluIFIx MCBhbmQgUjExLiAgKi8KKyAgICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZh bGJ1ZiwgNCwgYnl0ZV9vcmRlcik7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2ln bmVkIChyZWdjYWNoZSwgQVJHMV9SRUdOVU0sIHZhbCk7CistICAgICAgdmFsID0gZXh0cmFjdF91 bnNpZ25lZF9pbnRlZ2VyICgoY2hhciAqKXZhbGJ1ZiArIDQsIGxlbiAtIDQsIGJ5dGVfb3JkZXIp OworKyAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoKGNoYXIgKil2YWxidWYg KyA0LAorKwkJCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkgLSA0LCBieXRlX29yZGVyKTsKKyAg ICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBBUkcyX1JFR05V TSwgdmFsKTsKKyAgICAgfQorICAgZWxzZQorQEAgLTE4MzMsMjEgKzE4MzMsMjEgQEAKKyAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNo KTsKKyAgIFVMT05HRVNUIHZhbDsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Cisg ICAKKy0gIGlmIChsZW4gPD0gNCkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0gNCkKKyAg ICAgeworICAgICAgIC8qIEdldCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gUjEwLiAgKi8KKyAgICAg ICByZWdjYWNoZV9jb29rZWRfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIEFSRzFfUkVHTlVNLCAm dmFsKTsKKy0gICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYsIGxlbiwgYnl0ZV9v cmRlciwgdmFsKTsKKysgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYsIFRZUEVf TEVOR1RIICh0eXBlKSwgYnl0ZV9vcmRlciwgdmFsKTsKKyAgICAgfQorLSAgZWxzZSBpZiAobGVu IDw9IDgpCisrICBlbHNlIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0gOCkKKyAgICAgeworICAg ICAgIC8qIEdldCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gUjEwIGFuZCBSMTEuICAqLworICAgICAg IHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgQVJHMV9SRUdOVU0sICZ2 YWwpOworICAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgNCwgYnl0ZV9vcmRl ciwgdmFsKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IEFSRzJfUkVHTlVNLCAmdmFsKTsKKy0gICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICgoY2hh ciAqKXZhbGJ1ZiArIDQsIGxlbiAtIDQsIGJ5dGVfb3JkZXIsIHZhbCk7CisrICAgICAgc3RvcmVf dW5zaWduZWRfaW50ZWdlciAoKGNoYXIgKil2YWxidWYgKyA0LCBUWVBFX0xFTkdUSCAodHlwZSkg LSA0LAorKwkJCSAgICAgIGJ5dGVfb3JkZXIsIHZhbCk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAg ZXJyb3IgKF8oImNyaXNfZXh0cmFjdF9yZXR1cm5fdmFsdWU6IHR5cGUgbGVuZ3RoIHRvbyBsYXJn ZSIpKTsKKy0tLSBzcmMvZ2RiL2g4MzAwLXRkZXAuYwkyMDEyLzA5LzI1IDEyOjQ4OjUzCTEuMTM2 CisrKysgc3JjL2dkYi9oODMwMC10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjEzNworQEAg LTc1MSwxMiArNzUxLDEyIEBACisgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAg VUxPTkdFU1QgYywgYWRkcjsKKyAKKy0gIHN3aXRjaCAobGVuKQorKyAgc3dpdGNoIChUWVBFX0xF TkdUSCAodHlwZSkpCisgICAgIHsKKyAgICAgY2FzZSAxOgorICAgICBjYXNlIDI6CisgICAgICAg cmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JFVDBfUkVHTlVNLCAm Yyk7CistICAgICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3Jk ZXIsIGMpOworKyAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgVFlQRV9MRU5H VEggKHR5cGUpLCBieXRlX29yZGVyLCBjKTsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSA0OgkJ CS8qIE5lZWRzIHR3byByZWdpc3RlcnMgb24gcGxhaW4gSDgvMzAwICovCisgICAgICAgcmVnY2Fj aGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JFVDBfUkVHTlVNLCAmYyk7CitA QCAtNzY4LDggKzc2OCw5IEBACisgICAgICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9D T0RFX0lOVCkKKyAJeworIAkgIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkIChyZWdjYWNo ZSwgRV9SRVQwX1JFR05VTSwgJmFkZHIpOworLQkgIGMgPSByZWFkX21lbW9yeV91bnNpZ25lZF9p bnRlZ2VyICgoQ09SRV9BRERSKSBhZGRyLCBsZW4sIGJ5dGVfb3JkZXIpOworLQkgIHN0b3JlX3Vu c2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVyLCBjKTsKKysJICBjID0gcmVh ZF9tZW1vcnlfdW5zaWduZWRfaW50ZWdlciAoKENPUkVfQUREUikgYWRkciwKKysJCQkJCSAgICBU WVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOworKwkgIHN0b3JlX3Vuc2lnbmVkX2ludGVn ZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRlX29yZGVyLCBjKTsKKyAJfQorICAg ICAgIGVsc2UKKyAJeworLS0tIHNyYy9nZGIvaHBwYS10ZGVwLmMJMjAxMi8wNS8xOCAyMTowMjo0 OAkxLjI4MQorKysrIHNyYy9nZGIvaHBwYS10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjI4 MgorQEAgLTExNjAsNyArMTE2MCw3IEBACisgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUp OworICAgaW50IHJlZ251bSwgb2Zmc2V0OworIAorLSAgaWYgKGxlbiA+IDE2KQorKyAgaWYgKFRZ UEVfTEVOR1RIICh0eXBlKSA+IDE2KQorICAgICB7CisgICAgICAgLyogQWxsIHJldHVybiB2YWx1 ZXMgbGFyZ2V0IHRoYW4gMTI4IGJpdHMgbXVzdCBiZSBhZ2dyZWdhdGUKKyAgICAgICAgICByZXR1 cm4gdmFsdWVzLiAgKi8KKy0tLSBzcmMvZ2RiL2xtMzItdGRlcC5jCTIwMTIvMDkvMjUgMTI6NDg6 NTMJMS4xMworKysrIHNyYy9nZGIvbG0zMi10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjE0 CitAQCAtMzQ5LDE4ICszNDksMTggQEAKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIFVMT05HRVNUIHZhbDsKKy0gIGlu dCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCistICBpZiAobGVuIDw9IDQpCisrICBpZiAo VFlQRV9MRU5HVEggKHR5cGUpIDw9IDQpCisgICAgIHsKKy0gICAgICB2YWwgPSBleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVyKTsKKysgICAgICB2YWwgPSBl eHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRl X29yZGVyKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hl LCBTSU1fTE0zMl9SMV9SRUdOVU0sIHZhbCk7CisgICAgIH0KKy0gIGVsc2UgaWYgKGxlbiA8PSA4 KQorKyAgZWxzZSBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDgpCisgICAgIHsKKyAgICAgICB2 YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgNCwgYnl0ZV9vcmRlcik7Cisg ICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgU0lNX0xNMzJf UjFfUkVHTlVNLCB2YWwpOworLSAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAo dmFsYnVmICsgNCwgbGVuIC0gNCwgYnl0ZV9vcmRlcik7CisrICAgICAgdmFsID0gZXh0cmFjdF91 bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYgKyA0LCBUWVBFX0xFTkdUSCAodHlwZSkgLSA0LAorKwkJ CQkgICAgICBieXRlX29yZGVyKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWdu ZWQgKHJlZ2NhY2hlLCBTSU1fTE0zMl9SMl9SRUdOVU0sIHZhbCk7CisgICAgIH0KKyAgIGVsc2UK Ky0tLSBzcmMvZ2RiL21pY3JvYmxhemUtdGRlcC5jCTIwMTIvMDgvMDIgMDk6MzY6MzkJMS4xMwor KysrIHNyYy9nZGIvbWljcm9ibGF6ZS10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjE0CitA QCAtNTkwLDIyICs1OTAsMjEgQEAKKyBtaWNyb2JsYXplX3N0b3JlX3JldHVybl92YWx1ZSAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJICAgICAgIGNv bnN0IGdkYl9ieXRlICp2YWxidWYpCisgeworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBl KTsKKyAgIGdkYl9ieXRlIGJ1Zls4XTsKKyAKKyAgIG1lbXNldCAoYnVmLCAwLCBzaXplb2YoYnVm KSk7CisgCisgICAvKiBJbnRlZ3JhbCBhbmQgcG9pbnRlciByZXR1cm4gdmFsdWVzLiAgKi8KKyAK Ky0gIGlmIChsZW4gPiA0KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA+IDQpCisgICAgIHsK Ky0gICAgICAgZ2RiX2Fzc2VydCAobGVuID09IDgpOworKyAgICAgICBnZGJfYXNzZXJ0IChUWVBF X0xFTkdUSCAodHlwZSkgPT0gOCk7CisgICAgICAgIG1lbWNweSAoYnVmLCB2YWxidWYsIDgpOwor ICAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCBNSUNST0JMQVpFX1JFVFZB TF9SRUdOVU0rMSwgYnVmICsgNCk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgLyogPz8/IERvIHdl IG5lZWQgdG8gZG8gYW55IHNpZ24tZXh0ZW5zaW9uIGhlcmU/ICAqLworLSAgICBtZW1jcHkgKGJ1 ZiArIDQgLSBsZW4sIHZhbGJ1ZiwgbGVuKTsKKysgICAgbWVtY3B5IChidWYgKyA0IC0gVFlQRV9M RU5HVEggKHR5cGUpLCB2YWxidWYsIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgCisgICByZWdjYWNo ZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCBNSUNST0JMQVpFX1JFVFZBTF9SRUdOVU0sIGJ1Zik7 CisgfQorLS0tIHNyYy9nZGIvc3B1LXRkZXAuYwkyMDEyLzA5LzE3IDA4OjUyOjE4CTEuODIKKysr KyBzcmMvZ2RiL3NwdS10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjgzCitAQCAtMzE2LDEx ICszMTYsMTAgQEAKKyAJCQkgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorIHsKKyAgIHN0cnVj dCB2YWx1ZSAqdmFsdWUgPSBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHR5cGUsIHJlZ251 bSwgZnJhbWUpOworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKy0gIGlmIChy ZWdudW0gPCBTUFVfTlVNX0dQUlMgJiYgbGVuIDwgMTYpCisrICBpZiAocmVnbnVtIDwgU1BVX05V TV9HUFJTICYmIFRZUEVfTEVOR1RIICh0eXBlKSA8IDE2KQorICAgICB7CistICAgICAgaW50IHBy ZWZlcnJlZF9zbG90ID0gbGVuIDwgNCA/IDQgLSBsZW4gOiAwOworKyAgICAgIGludCBwcmVmZXJy ZWRfc2xvdCA9IFRZUEVfTEVOR1RIICh0eXBlKSA8IDQgPyA0IC0gVFlQRV9MRU5HVEggKHR5cGUp IDogMDsKKyAgICAgICBzZXRfdmFsdWVfb2Zmc2V0ICh2YWx1ZSwgcHJlZmVycmVkX3Nsb3QpOwor ICAgICB9CisgCistLS0gc3JjL2dkYi92YXgtdGRlcC5jCTIwMTIvMDUvMTYgMTQ6MzU6MDgJMS4x MTIKKysrKyBzcmMvZ2RiL3ZheC10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjExMworQEAg LTIwOCw3ICsyMDgsNiBAQAorIAkJICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwKKyAJCSAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0 ZWJ1ZikKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAgZ2RiX2J5dGUg YnVmWzhdOworIAorICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUlVDVAor QEAgLTIyNCw3ICsyMjMsNyBAQAorIAkgIFVMT05HRVNUIGFkZHI7CisgCisgCSAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBWQVhfUjBfUkVHTlVNLCAmYWRkcik7CistCSAg cmVhZF9tZW1vcnkgKGFkZHIsIHJlYWRidWYsIGxlbik7CisrCSAgcmVhZF9tZW1vcnkgKGFkZHIs IHJlYWRidWYsIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgCX0KKyAKKyAgICAgICByZXR1cm4gUkVU VVJOX1ZBTFVFX0FCSV9SRVRVUk5TX0FERFJFU1M7CitAQCAtMjM0LDE2ICsyMzMsMTYgQEAKKyAg ICAgeworICAgICAgIC8qIFJlYWQgdGhlIGNvbnRlbnRzIG9mIFIwIGFuZCAoaWYgbmVjZXNzYXJ5 KSBSMS4gICovCisgICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWQgKHJlZ2NhY2hlLCBWQVhfUjBf UkVHTlVNLCBidWYpOworLSAgICAgIGlmIChsZW4gPiA0KQorKyAgICAgIGlmIChUWVBFX0xFTkdU SCAodHlwZSkgPiA0KQorIAlyZWdjYWNoZV9jb29rZWRfcmVhZCAocmVnY2FjaGUsIFZBWF9SMV9S RUdOVU0sIGJ1ZiArIDQpOworLSAgICAgIG1lbWNweSAocmVhZGJ1ZiwgYnVmLCBsZW4pOworKyAg ICAgIG1lbWNweSAocmVhZGJ1ZiwgYnVmLCBUWVBFX0xFTkdUSCAodHlwZSkpOworICAgICB9Cisg ICBpZiAod3JpdGVidWYpCisgICAgIHsKKyAgICAgICAvKiBSZWFkIHRoZSBjb250ZW50cyB0byBS MCBhbmQgKGlmIG5lY2Vzc2FyeSkgUjEuICAqLworLSAgICAgIG1lbWNweSAoYnVmLCB3cml0ZWJ1 ZiwgbGVuKTsKKysgICAgICBtZW1jcHkgKGJ1Ziwgd3JpdGVidWYsIFRZUEVfTEVOR1RIICh0eXBl KSk7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwgVkFYX1IwX1JFR05V TSwgYnVmKTsKKy0gICAgICBpZiAobGVuID4gNCkKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5 cGUpID4gNCkKKyAJcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwgVkFYX1IxX1JFR05V TSwgYnVmICsgNCk7CisgICAgIH0KKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjEwMTI3Ci0tLSAvZGV2L251bGwKKysr IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtMCwwICsxLDQ1MzIgQEAK K2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTA5L21zZzAwNjMxLmh0 bWwKK1N1YmplY3Q6IFtQQVRDSCAxLzRdIEV4cGFuZCBiaXRwb3MgYW5kIHR5cGUubGVuZ3RoIHRv IExPTkdFU1QgYW5kIFVMT05HRVNUCisKKworLS1NUF8veXA1ZitXX0VEMkp0VWxTeUJpOHh1anIK K0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQorQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogN2JpdAorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAor CitUaGlzIGlzIHBhdGNoIDEvNCwgd2hpY2ggaW1wbGVtZW50cyB0aGUgYnVsayBvZiB0aGUgY2hh bmdlcyBpbiB0eXBlCitsZW5ndGggYW5kIGJpdHBvcy90eXBlIG9mZnNldC4gSSBoYXZlIHZlcmlm aWVkIHRoYXQgdGhlcmUgYXJlIG5vCityZWdyZXNzaW9ucyByZXN1bHRpbmcgZnJvbSB0aGlzIHBh dGNoIGJ5IHJ1bm5pbmcgdGhlIHRlc3RzdWl0ZSBvbgorRmVkb3JhIDE2IHg4Nl82NC4gIFBhdGNo IGFuZCBjaGFuZ2Vsb2cgYXR0YWNoZWQuCisKK1JlZ2FyZHMsCitTaWRkaGVzaAorCistLU1QXy95 cDVmK1dfRUQySnRVbFN5Qmk4eHVqcgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCitDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCitDb250ZW50LURpc3Bvc2l0aW9u OiBhdHRhY2htZW50OyBmaWxlbmFtZT1DaGFuZ2VMb2ctbWFpbgorCitnZGIvQ2hhbmdlTG9nCisK KzIwMTItMDgtMDUgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisK KwkqIGFkYS1sYW5nLmMgKGZhdF9wbnRyX2JvdW5kc19iaXRwb3MpOiBSZXR1cm4gTE9OR0VTVC4K KwkoZmF0X3BudHJfZGF0YV9iaXRwb3MpOiBMaWtld2lzZS4KKwkoZGVzY19ib3VuZF9iaXRwb3Mp OiBMaWtld2lzZS4KKwkoY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUpOiBFeHBhbmQgRUxU X0JJVFMgcGFyYW1ldGVyIHRvCisJTE9OR0VTVC4KKwkobW92ZV9iaXRzKTogRXhwYW5kIHBhcmFt ZXRlcnMgU1JDX09GRlNFVCBhbmQgTiB0byBMT05HRVNULgorCShjb25kX29mZnNldF9ob3N0KTog RXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkoY29uZF9vZmZzZXRfdGFyZ2V0 KTogTGlrZXdpc2UuCisJKGFkYV90eXBlX29mX2FycmF5KTogRXhwYW5kIEFSUkFZX0JJVFNJWkUg dG8gTE9OR0VTVC4KKwkoZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlKTogRXhw YW5kIEJJVFMgdG8gTE9OR0VTVC4KKwkoZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheSk6 IEV4cGFuZCBCSVRfUE9TIHRvIExPTkdFU1QuCisJKGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2Vk X3ZhbCk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4gIEV4cGFuZCBUQVJH LCBOVEFSRyBhbmQgTkVXX09GRlNFVCB0byBMT05HRVNULgorCShhZGFfdmFsdWVfYXNzaWduKTog RXhwYW5kIEZST01fU0laRSB0byBMT05HRVNULgorCSh2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50 KTogRXhwYW5kIEJJVFMgdG8gTE9OR0VTVC4KKwkoZW5zdXJlX2x2YWwpOiBFeHBhbmQgTEVOIHRv IExPTkdFU1QuCisJKHZhbHVlX3BvaW50ZXIpOiBFeHBhbmQgTEVOIHRvIFVMT05HRVNULgorCSh2 YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyk6IEV4cGFuZCBUQUdfQllURV9PRkZT RVQgdG8KKwlMT05HRVNULgorCShhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkKTogRXhwYW5kIHBh cmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgYml0X3BvcyB0byBMT05HRVNULgor CShmaW5kX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCBhbmQgQllURV9P RkZTRVRfUCB0bworCUxPTkdFU1QuICBFeHBhbmQgQklUX1BPUyBhbmQgRkxEX09GRlNFVCB0byBM T05HRVNULgorCShhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZG U0VUIHRvIExPTkdFU1QuCisJRXhwYW5kIFZBUl9PRkZTRVQgdG8gTE9OR0VTVC4KKwkoYWRhX2lu ZGV4X3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXJzIElOREVYIGFuZCBPRkZTRVQgdG8K KwlMT05HRVNULgorCShhZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEpOiBFeHBhbmQgcGFyYW1ldGVy cyBJTkRFWF9QIGFuZCBPRkZTRVQKKwl0byBMT05HRVNULgorCShhZGFfdmFsdWVfc3RydWN0X2Vs dCk6IEV4cGFuZCBCWVRFX09GRlNFVCB0byBMT05HRVNULgorCShhbGlnbl92YWx1ZSk6IFJldHVy biBVTE9OR0VTVC4gIEV4cGFuZCBwYXJhbWV0ZXIgT0ZGIGFuZAorCUFMSUdOTUVOVCB0byBVTE9O R0VTVC4KKwkoYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEpOiBFeHBhbmQgT0ZG LCBCSVRfTEVOIGFuZAorCWZsZF9iaXRfbGVuIHRvIExPTkdFU1QuICBFeHBhbmQgRklFTERfT0ZG U0VUIHRvIExPTkdFU1QuICBVc2UKKwlwdWxvbmdlc3QgZnVuY3Rpb24gdG8gcHJpbnQgVFlQRV9M RU5HVEguCisJKHRvX2ZpeGVkX2FycmF5X3R5cGUpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJ KiBhZGEtbGFuZy5oIChhZGFfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9P RkZTRVQgdG8KKwlMT05HRVNULgorCShhZGFfcHJpbnRzdHIpOiBFeHBhbmQgcGFyYW1ldGVyIExF TkdUSCB0byBVTE9OR0VTVC4KKwkoYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsKTogRXhw YW5kIHBhcmFtZXRlciBPRkZTRVQgdG8KKwlMT05HRVNULgorCSogYWRhLXR5cGVwcmludC5jIChh ZGFfcHJpbnRfdHlwZSk6IFVzZSBwdWxvbmdlc3QgdG8gcHJpbnQKKwlUWVBFX0xFTkdUSC4KKwkq IGFkYS12YWxwcmludC5jICh2YWxfcHJpbnRfcGFja2VkX2FycmF5X2VsZW1lbnRzKTogRXhwYW5k IEVMVExFTgorCXRvIFVMT05HRVNULgorCShjaGFyX2F0KTogRXhwYW5kIHBhcmFtZXRlciBJIHRv IExPTkdFU1QuCisJKHByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEgsIEksIFJFUDEs IFJFUFMgdG8gVUxPTkdFU1QuCisJVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQgUkVQUy4K KwkoYWRhX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gTE9OR0VTVC4KKwko YWRhX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExPTkdF U1QuCisJKGFkYV92YWxfcHJpbnRfYXJyYXkpOiBFeHBhbmQgRUxUTEVOLCBMRU4gdG8gVUxPTkdF U1QgYW5kIFRFTVBfTEVOCisJdG8gTE9OR0VTVC4KKwkoYWRhX3ZhbF9wcmludF8xKTogRXhwYW5k IHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkocHJpbnRfdmFyaWFudF9wYXJ0KTogRXhw YW5kIHBhcmFtZXRlcnMgT0ZGU0VUIGFuZCBPVVRFUl9PRkZTRVQgdG8KKwlMT05HRVNULgorCShw cmludF9maWVsZF92YWx1ZXMpOiBMaWtld2lzZS4gIEV4cGFuZCBCSVRfUE9TIHRvIExPTkdFU1Qu CisJKiBhbm5vdGF0ZS5jIChhbm5vdGF0ZV9hcnJheV9zZWN0aW9uX2JlZ2luKTogRXhwYW5kIHBh cmFtZXRlcgorCUlEWCB0byBMT05HRVNULiAgVXNlIHBsb25nZXN0IHRvIGZvcm1hdC1wcmludCBJ RFguCisJKGFubm90YXRlX2VsdF9yZXApOiBFeHBhbmQgcGFyYW1ldGVyIFJFUENPVU5UIHRvIFVM T05HRVNULiAgVXNlCisJcGxvbmdlc3QgdG8gZm9ybWF0LXByaW50IFJFUENPVU5ULgorCSogYW5u b3RhdGUuaDogTGlrZXdpc2UuCisJKiBhcm0tbGludXgtbmF0LmMgKGFybV9saW51eF9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQpOgorCUV4cGFuZCBwYXJhbWV0ZXIgcGFyYW1ldGVyIExFTiB0 byBMT05HRVNULgorCSogYXgtZ2RiLmMgKGdlbl9sZWZ0X3NoaWZ0KTogRXhwYW5kIHBhcmFtZXRl ciBESVNUQU5DRSB0byBMT05HRVNULgorCShnZW5fb2Zmc2V0KTogRXhwYW5kIHBhcmFtZXRlciBP RkZTRVQgdG8gTE9OR0VTVC4KKwkoZ2VuX2JpdGZpZWxkX3JlZik6IEV4cGFuZCBwYXJhbWV0ZXJz IFNUQVJULCBFTkQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgQk9VTkRfU1RBUlQsIEJPVU5EX0VORCwg T0ZGU0VUIHRvIExPTkdFU1QuCisJKGdlbl9wcmltaXRpdmVfZmllbGQpOiBFeHBhbmQgcGFyYW1l dGVyIE9GRlNFVCB0byBMT05HRVNULgorCShnZW5fc3RydWN0X3JlZl9yZWN1cnNpdmUpOiBMaWtl d2lzZS4KKwkqIGF4LWdlbmVyYWwuYyAoYXhfdHJhY2VfcXVpY2spOiBFeHBhbmQgcGFyYW1ldGVy IE4gdG8gTE9OR0VTVC4KKwkqIGF4LmggKGF4X3RyYWNlX3F1aWNrKTogTGlrZXdpc2UuCisJKiBi cmVha3BvaW50LmMgKGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSk6IEV4cGFuZCBwYXJh bWV0ZXIKKwlMRU4xIHRvIExPTkdFU1QuCisJKGNhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCk6 IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIGJyZWFrcG9pbnQuaCAoc3RydWN0IGJwX3Rhcmdl dF9pbmZvKTogRXhwYW5kIG1lbWJlciBMRU5HVEggdG8KKwlMT05HRVNULgorCShzdHJ1Y3QgYnBf bG9jYXRpb24pOiBMaWtld2lzZS4KKwkqIGMtbGFuZy5jIChjX3ByaW50c3RyKTogRXhwYW5kIHBh cmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJKGV2YWx1YXRlX3N1YmV4cF9jKTogRXhwYW5k IEVMRU1FTlRfU0laRSwgSSB0byBMT05HRVNULgorCSogYy1sYW5nLmggKGNfdmFsX3ByaW50KTog RXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCShjX3ByaW50 c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJKGNwX3ByaW50X3Zh bHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvIExPTkdFU1QuCisJKGNwX3By aW50X3ZhbHVlX2ZpZWxkc19ydHRpKTogTGlrZXdpc2UuCisJKiBjLXR5cGVwcmludC5jIChjX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBSZW1vdmUgY2FzdCBkb3duIHRvCisJaW50IGFuZCB1 c2UgcGxvbmdlc3QgdG8gcHJpbnQgTE9OR0VTVC4KKwkqIGMtdmFscHJpbnQuYyAoY192YWxfcHJp bnQpOiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0bworCUxPTkdFU1QuICBFeHBh bmQgT0ZGU0VUIHRvIExPTkdFU1QsIEVMVExFTiB0byBVTE9OR0VTVC4KKwkoY192YWx1ZV9wcmlu dCk6IEV4cGFuZCBUT1AgdG8gTE9OR0VTVC4KKwkqIGNwLWFiaS5jIChiYXNlY2xhc3Nfb2Zmc2V0 KTogUmV0dXJuIExPTkdFU1QuICBFeHBhbmQgcGFyYW1ldGVyCisJRU1CRURERURfT0ZGU0VUIHRv IExPTkdFU1QuICBFeHBhbmQgUkVTIHRvIExPTkdFU1QuCisJKHZhbHVlX3ZpcnR1YWxfZm5fZmll bGQpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9ydHRpX3R5 cGUpOiBFeHBhbmQgcGFyYW1ldGVyIFRPUCB0byBwb2ludCB0byBMT05HRVNULgorCSogY3AtYWJp LmggKHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQpOiBFeHBhbmQgT0ZGU0VUIHRvIExPTkdFU1QuCisJ KHZhbHVlX3J0dGlfdHlwZSk6IEV4cGFuZCBUT1AgdG8gcG9pbnQgdG8gTE9OR0VTVC4KKwkoYmFz ZWNsYXNzX29mZnNldCk6IFJldHVybiBMT05HRVNULiAgRXhwYW5kIHBhcmFtZXRlcgorCUVNQkVE REVEX09GRlNFVCB0byBMT05HRVNULgorCShzdHJ1Y3QgY3BfYWJpX29wcyk6IEV4cGFuZCBwYXJh bWV0ZXIgT0ZGU0VUIGZvciBWSVJUVUFMX0ZOX0ZJRUxECisJdG8gTE9OR0VTVC4gIEV4cGFuZCBw YXJhbWV0ZXIgVE9QIHRvIHBvaW50IHRvIExPTkdFU1QgaW4KKwlWQUxVRV9SVFRJX1RZUEUuICBS ZXR1cm4gTE9OR0VTVCBmcm9tIEJBU0VDTEFTU19PRkZTRVQgYW5kIGV4cGFuZAorCXBhcmFtZXRl ciBFTUJFRERFRF9PRkZTRVQgdG8gTE9OR0VTVC4KKwkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50 X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUCisJdG8gTE9OR0VTVC4gIEV4 cGFuZCBJX09GRlNFVCB0byBMT05HRVNULgorCShjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSk6 IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4gIEV4cGFuZCBUT1AgdG8gTE9O R0VTVC4KKwkoY3BfcHJpbnRfdmFsdWUpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05H RVNULiAgRXhwYW5kCisJVEhJU09GRlNFVCwgQk9GRlNFVCB0byBMT05HRVNULgorCSogZC1sYW5n LmggKGRfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlM T05HRVNULgorCSogZC12YWxwcmludC5jIChkeW5hbWljX2FycmF5X3R5cGUpOiBMaWtld2lzZS4K KwkoZF92YWxfcHJpbnQpOiBMaWtld2lzZS4KKwkqIGRvdWJsZXN0LmMgKGZsb2F0Zm9ybWF0X2Zy b21fbGVuZ3RoKTogRXhwYW5kIHBhcmFtZXRlciBMRU4gdG8KKwlMT05HRVNULiAgVXNlIHBsb25n ZXN0IHRvIGZvcm1hdCBzdHJpbmcgZm9yIExPTkdFU1QuCisJKiBkd2FyZjJsb2MuYyAoY29weV9i aXR3aXNlKTogRXhwYW5kIHBhcmFtZXRlcnMgREVTVF9PRkZTRVRfQklUUywKKwlCSVRfQ09VTlQg dG8gVUxPTkdFU1QuICBSZW5hbWUgcGFyYW1ldGVyIFNPVVJDRV9PRkZTRVRfQklUUyB0bworCVNP VVJDRV9PRkZTRVQgYW5kIGV4cGFuZCB0byBVTE9OR0VTVC4gIE5ldyB2YXJpYWJsZQorCVNPVVJD RV9PRkZTRVRfQklUUy4KKwkocmVhZF9waWVjZWRfdmFsdWUpOiBFeHBhbmQgT0ZGU0VULCBERVNU X09GRlNFVF9CSVRTLAorCVNPVVJDRV9PRkZTRVRfQklUUywgU09VUkNFX09GRlNFVCB0byBMT05H RVNULiAgRXhwYW5kIFRZUEVfTEVOLAorCVRISVNfU0laRSwgVEhJU19TSVpFX0JJVFMgdG8gVUxP TkdFU1QuCisJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorCShjaGVja19waWVjZWRf dmFsdWVfYml0cyk6IEV4cGFuZCBwYXJhbWV0ZXJzIEJJVF9PRkZTRVQgYW5kCisJQklUX0xFTkdU SCB0byBMT05HRVNULiAgRXhwYW5kIFRISVNfU0laRV9CSVRTIHRvIFVMT05HRVNULgorCShjaGVj a19waWVjZWRfdmFsdWVfdmFsaWRpdHkpOiBFeHBhbmQgcGFyYW1ldGVycyBCSVRfT0ZGU0VUIGFu ZAorCUJJVF9MRU5HVEggdG8gTE9OR0VTVC4KKwkoY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2lu dGVyKTogTGlrZXdpc2UuCisJKGluZGlyZWN0X3BpZWNlZF92YWx1ZSk6IEV4cGFuZCBCSVRfTEVO R1RILCBCWVRFX09GRlNFVCBhbmQKKwlCSVRfT0ZGU0VUIHRvIExPTkdFU1QuCisJKGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzY19mdWxsKTogRXhwYW5kIE4gdG8gVUxPTkdFU1QuCisJKiBkd2FyZjJy ZWFkLmMgKGR3YXJmMl9jb25zdF92YWx1ZV9sZW5ndGhfbWlzbWF0Y2hfY29tcGxhaW50KToKKwlF eHBhbmQgcGFyYW1ldGVycyBBUkcyIGFuZCBBUkczIHRvIExPTkdFU1QuICBVc2UgcGxvbmdlc3Qg dG8KKwlwcmludCBBUkcyIGFuZCBBUkczLgorCShkd2FyZjJfYWRkX2ZpZWxkKTogRXhwYW5kIEFO T05ZTU9VU19TSVpFLCBCSVRfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIGV2YWwuYyAoZXZhbHVh dGVfc3RydWN0X3R1cGxlKTogRXhwYW5kIEJJVFBPUyB0byBMT05HRVNULgorCShpbml0X2FycmF5 X2VsZW1lbnQpOiBFeHBhbmQgRUxFTUVOVF9TSVpFIHRvIExPTkdFU1QuCisJKGJpbm9wX3Byb21v dGUpOiBFeHBhbmQgUFJPTU9URURfTEVOMSwgUFJPTU9URURfTEVOMiwgUkVTVUxUX0xFTgorCXRv IFVMT05HRVNULgorCShldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpOiBFeHBhbmQgTUVNX09GRlNF VCwgVE9QLCBFTEVNRU5UX1NJWkUKKwl0byBMT05HRVNULgorCSogZi1sYW5nLmMgKGZfcHJpbnRz dHIpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSCB0byBVTE9OR0VTVC4KKwkqIGYtbGFuZy5oIChm X3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VT VC4KKwkqIGYtdmFscHJpbnQuYyAoZjc3X2FycmF5X29mZnNldF90YmwpOiBNYWtlIExPTkdFU1Qu CisJKGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsKTogRXhwYW5kIEVMVExFTiB0byBM T05HRVNULgorCShmNzdfcHJpbnRfYXJyYXlfMSk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURf T0ZGU0VUIHRvCisJTE9OR0VTVC4gIEV4cGFuZCBJIHRvIExPTkdFU1QuCisJKGY3N19wcmludF9h cnJheSk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKGZf dmFsX3ByaW50KTogTGlrZXdpc2UuICBFeHBhbmQgT0ZGU0VUIHRvIExPTkdFU1QuCisJKiBmaW5k dmFyLmMgKGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3Rlcik6IEV4cGFuZCBMRU4gdG8gTE9OR0VT VC4KKwkocmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSk6IEV4cGFuZCBPRkZTRVQsIFJFR19PRkZT RVQsIExFTiwKKwlSRUdfTEVOIHRvIExPTkdFU1QuCisJKiBmcmFtZS5jIChnZXRfZnJhbWVfcmVn aXN0ZXJfYnl0ZXMpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCUxPTkdFU1QuCisJKiBmcmFt ZS5oIChnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMpOiBMaWtld2lzZS4KKwkqIGdkYnR5cGVzLmMg KGluaXRfdHlwZSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOR1RIIHRvIExPTkdFU1QuCisJKGlzX3Vu aXF1ZV9hbmNlc3Rvcl93b3JrZXIpOiBFeHBhbmQgcGFyYW1ldGVycyBPRkZTRVQsCisJRU1CRURE RURfT0ZGU0VUIHRvIExPTkdFU1QuICBFeHBhbmQgVEhJU19PRkZTRVQgdG8gTE9OR0VTVC4KKwko aXNfdW5pcXVlX2FuY2VzdG9yKTogRXhwYW5kIE9GRlNFVCB0byBMT05HRVNULgorCShyZWN1cnNp dmVfZHVtcF90eXBlKTogVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQgVFlQRV9MRU5HVEgu CisJVXNlIHBsb25nZXN0IHRvIGZvcm1hdCBwcmludCBUWVBFX0ZJRUxEX0JJVFBPUy4KKwkoYXJj aF90eXBlKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gTE9OR0VTVC4KKwkqIGdkYnR5cGVz LmggKHN0cnVjdCB0eXBlLm1haW5fdHlwZS5mbGRfYm5kcy5maWVsZHMpOiBFeHBhbmQKKwltZW1i ZXIgQklUUE9TIHRvIExPTkdFU1QuCisJKHN0cnVjdCB0eXBlKTogRXhwYW5kIG1lbWJlciBMRU5H VEggdG8gVUxPTkdFU1QuCisJKGluaXRfdHlwZSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOR1RIIHRv IExPTkdFU1QuCisJKGFyY2hfdHlwZSk6IExpa2V3aXNlLgorCSogZ251LXYyLWFiaS5jIChnbnV2 Ml92aXJ0dWFsX2ZuX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQKKwl0byBMT05HRVNU LgorCShnbnV2Ml92YWx1ZV9ydHRpX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVyIFRPUCB0byBwb2lu dCB0byBMT05HRVNULgorCShnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0KTogUmV0dXJuIExPTkdFU1Qu ICBFeHBhbmQgcGFyYW1ldGVyCisJRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuICBFeHBhbmQg RklFTERfT0ZGU0VULCBCT0ZGU0VULAorCUZJRUxEX0xFTkdUSCB0byBMT05HRVNULgorCSogZ251 LXYzLWFiaS5jIChidWlsZF9nZGJfdnRhYmxlX3R5cGUpOiBFeHBhbmQgT0ZGU0VUIHRvIExPTkdF U1QuCisJKHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCk6IFJldHVybiBMT05HRVNULgorCShn bnV2M19ydHRpX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVyIFRPUF9QIHRvIHBvaW50IHRvIExPTkdF U1QuCisJKGdudXYzX3ZpcnR1YWxfZm5fZmllbGQpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0 byBMT05HRVNULgorCShnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0KTogUmV0dXJuIExPTkdFU1QuICBF eHBhbmQgcGFyYW1ldGVyCisJRU1CRURERURfT0ZTRVQgdG8gTE9OR0VTVC4gIEV4cGFuZCBDVVJf QkFTRV9PRkZTRVQsIEJBU0VfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkoZ251djNfZmluZF9tZXRo b2RfaW4pOiBFeHBhbmQgUE9TIHRvIExPTkdFU1QuCisJKiBnby1sYW5nLmggKGdvX3ZhbF9wcmlu dCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIGdv LXZhbHByaW50LmMgKHByaW50X2dvX3N0cmluZyk6IExpa2V3aXNlLgorCShnb192YWxfcHJpbnQp OiBMaWtld2lzZS4KKwkqIGkzODYtbmF0LmMgKGkzODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hw b2ludCk6IEV4cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwkoaTM4Nl9yZWdpb25f b2tfZm9yX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkqIGluZi10dHJhY2UuYyAoaW5mX3R0cmFj ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJhbWV0ZXIgTEVOIHRv IExPTkdFU1QuCisJKiBqdi1sYW5nLmMgKGphdmFfbGlua19jbGFzc190eXBlKTogRXhwYW5kIEJP RkZTRVQgdG8gTE9OR0VTVC4KKwkoamF2YV9wcmludHN0cik6IEV4cGFuZCBwYXJhbWV0ZXIgTEVO R1RIIHRvIFVMT05HRVNULgorCSoganYtbGFuZy5oIChqYXZhX3ZhbF9wcmludCk6IEV4cGFuZCBw YXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIGp2LXZhbHByaW50LmMg KGphdmFfcHJpbnRfdmFsdWVfZmllbGRzKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQKKwl0byBM T05HRVNULgorCShqYXZhX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZG U0VUIHRvIExPTkdFU1QuCisJKiBsYW5ndWFnZS5jICh1bmtfbGFuZ19wcmludHN0cik6IEV4cGFu ZCBwYXJhbWV0ZXIgTEVOR1RIIHRvCisJVUxPTkdFU1QuCisJKHVua19sYW5nX3ZhbF9wcmludCk6 IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKiBsYW5ndWFn ZS5oIChsYW5ndWFnZV9kZWZuKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggb2YKKwlMQV9QUklO VFNUUiB0byBVTE9OR0VTVC4gIEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIG9mCisJ TEFfVkFMX1BSSU5UIHRvIExPTkdFU1QuCisJKiBtMi1sYW5nLmMgKG0yX3ByaW50c3RyKTogRXhw YW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJRXhwYW5kIEksIFJFUDEsIFJFUFMg dG8gVUxPTkdFU1QuICBVc2UgcHVsb25nZXN0IHRvIGZvcm1hdCBwcmludAorCVJFUFMuCisJKiBt Mi1sYW5nLmggKG0yX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgZW1iZWRkZWRfb2Zmc2V0 IHRvCisJTE9OR0VTVC4KKwkqIG0yLXR5cGVwcmludC5jIChtMl9hcnJheSk6IE5ldyB2YXJpYWJs ZSBWQUwuICBVc2UgcHVsb25nZXN0IHRvCisJKiBmb3JtYXQgcHJpbnQgVkFMLgorCShtMl9lbnVt KTogZXhwYW5kIExBU1RWQUwgdG8gTE9OR0VTVC4KKwkqIG0yLXZhbHByaW50LmMgKG0yX3ByaW50 X2xvbmdfc2V0KTogRXhwYW5kIHBhcmFtZXRlcgorCUVNQkVEREVEX09GRlNFVCB0byBMT05HRVNU LgorCShtMl9wcmludF91bmJvdW5kZWRfYXJyYXkpOiBMaWtld2lzZS4KKwkobTJfcHJpbnRfYXJy YXlfY29udGVudHMpOiBMaWtld2lzZS4KKwkobTJfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRl ciBFTUJFRERFRF9PRkZTRVQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgSSwgTEVOLCBURU1QX0xFTiB0 byBVTE9OR0VTVC4KKwkqIG1lbXJhbmdlLmMgKG1lbV9yYW5nZXNfb3ZlcmxhcCk6IEV4cGFuZCBw YXJhbWV0ZXJzIExFTjEsIExFTjIgdG8KKwlMT05HRVNULgorCSogbWVtcmFuZ2UuaCAoc3RydWN0 IG1lbV9yYW5nZSk6IEV4cGFuZCBtZW1iZXIgTEVOR1RIIHRvIExPTkdFU1QuCisJKG1lbV9yYW5n ZXNfb3ZlcmxhcCk6IEV4cGFuZCBwYXJhbWV0ZXJzIExFTjEsIExFTjIgdG8gTE9OR0VTVC4KKwkq IG1pcHMtbGludXgtbmF0LmMgKG1pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50 KToKKwlFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBMT05HRVNULgorCSogb2JqYy1sYW5nLmMgKG9i amNfcHJpbnRzdHIpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSCB0bworCVVMT05HRVNULiAgRXhw YW5kIEksIFJFUDEsIFJFUFMgdG8gVUxPTkdFU1QuICB1c2UgcHVsb25nZXN0IHRvCisJZm9ybWF0 IHByaW50IFJFUFMuCisJKiBvcGVuY2wtbGFuZy5jIChsb29rdXBfb3BlbmNsX3ZlY3Rvcl90eXBl KTogRXhwYW5kIHBhcmFtZXRlcgorCUVMX0xFTkdUSCB0byBVTE9OR0VTVC4gIEV4cGFuZCBMRU5H VEggdG8gVUxPTkdFU1QuCisJKGx2YWxfZnVuY19yZWFkKTogRXhwYW5kIE9GRlNFVCwgTiwgSSwg SiBhbmQgRUxTSVpFIHRvIExPTkdFU1QuCisJKGx2YWxfZnVuY193cml0ZSk6IExpa2V3aXNlLgor CShsdmFsX2Z1bmNfY2hlY2tfdmFsaWRpdHkpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSCB0byBM T05HRVNULgorCUV4cGFuZCBFTFNJWkUsIFNUQVJULCBFTkQsIEksIFNUQVJUUkVTVCwgRU5EUkVT VCwgQ09NUF9PRkZTRVQsCisJQ09NUF9MRU5HVEggdG8gTE9OR0VTVC4KKwkobHZhbF9mdW5jX2No ZWNrX2FueV92YWxpZCk6IEV4cGFuZCBFTFNJWkUgdG8gTE9OR0VTVC4KKwkobHZhbF9mdW5jX2No ZWNrX3N5bnRoZXRpY19wb2ludGVyKTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZGU0VUIGFuZAorCUxF TkdUSCB0byBMT05HRVNULiAgRXhwYW5kIEVMU0laRSwgU1RBUlQsIEVORCwgSSwgU1RBUlRSRVNU LAorCUVORFJFU1QsIENPTVBfTEVOR1RILCBDT01QX09GRlNFVCB0byBMT05HRVNULgorCSogcC1s YW5nLmMgKGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSk6IEV4cGFuZCBwYXJhbWV0ZXJzIExFTkdUSF9Q T1MsCisJU1RSSU5HX1BPUywgTEVOR1RIX1NJWkUgdG8gcG9pbnQgdG8gTE9OR0VTVC4KKwkocGFz Y2FsX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuICBFeHBh bmQKKwlJLCBSRVAxLCBSRVBTIHRvIFVMT05HRVNULiAgVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQg cHJpbnQgUkVQUy4KKwkqIHAtbGFuZy5oIChwYXNjYWxfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFt ZXRlciBFTUJFRERFRF9PRkZTRVQKKwl0byBMT05HRVNULgorCShpc19wYXNjYWxfc3RyaW5nX3R5 cGUpOiBFeHBhbmQgcGFyYW1ldGVycyBMRU5HVEhfUE9TLCBTVFJJTkdfUE9TLAorCUxFTkdUSF9T SVpFIHRvIHBvaW50IHRvIExPTkdFU1QuCisJKHBhc2NhbF9wcmludHN0cik6IEV4cGFuZCBwYXJh bWV0ZXIgTEVOR1RIIHRvIFVMT05HRVNULgorCShwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2Zp ZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIHAtdmFscHJp bnQuYyAocGFzY2FsX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIKKwlFTUJFRERFRF9PRkZT RVQgdG8gTE9OR0VTVC4gIEV4cGFuZCBFTFRMRU4gdG8gVUxPTkdFU1QuICBFeHBhbmQKKwlMRU5H VEhfU0laRSwgTEVOR1RIX1BPUywgU1RSSU5HX1BPUyB0byBMT05HRVNULgorCShwYXNjYWxfb2Jq ZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9O R0VTVC4KKwkocGFzY2FsX29iamVjdF9wcmludF92YWx1ZSk6IExpa2V3aXNlLiAgRXhwYW5kIEJP RkZTRVQsCisJVEhJU09GRlNFVCB0byBMT05HRVNULgorCSogcHBjLWxpbnV4LW5hdC5jIChwcGNf bGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KToKKwlFeHBhbmQgcGFyYW1ldGVyIExF TiB0byBwb2ludCB0byBMT05HRVNULgorCSogcHJpbnRjbWQuYyAocHJpbnRfZm9ybWF0dGVkKTog RXhwYW5kIExFTiB0byBMT05HRVNULgorCShwcmludF9zY2FsYXJfZm9ybWF0dGVkKTogTGlrZXdp c2UuCisJKiBwcm9jZnMuYyAocHJvY2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4 cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwkqIHB5dGhvbi9weS1wcmV0dHlwcmlu dC5jIChhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBFeHBhbmQKKwlwYXJhbWV0ZXIgRU1CRURE RURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKiBweXRob24vcHl0aG9uLmggKGFwcGx5X3ZhbF9wcmV0 dHlfcHJpbnRlcik6IExpa2V3aXNlLgorCSogcmVnY2FjaGUuYyAocmVnY2FjaGVfeGZlcl9wYXJ0 KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8KKwlMT05HRVNULgorCShyZWdjYWNoZV9yYXdf cmVhZF9wYXJ0KTogTGlrZXdpc2UuCisJKHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0KTogTGlrZXdp c2UuCisJKHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQpOiBMaWtld2lzZS4KKwkocmVnY2FjaGVf Y29va2VkX3dyaXRlX3BhcnQpOiBMaWtld2lzZS4KKwkqIHJlZ2NhY2hlLmggKHJlZ2NhY2hlX3Jh d19yZWFkX3BhcnQpOiBMaWtld2lzZS4KKwkocmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQpOiBMaWtl d2lzZS4KKwkocmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCk6IExpa2V3aXNlLgorCShyZWdjYWNo ZV9jb29rZWRfd3JpdGVfcGFydCk6IExpa2V3aXNlLgorCSogcmVtb3RlLmMgKHJlbW90ZV9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJhbWV0ZXIgTEVOIHRvIExPTkdF U1QuCisJKiBzMzkwLW5hdC5jIChzMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4 cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwdS1tdWx0aWFyY2guYyAoc3B1 X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4cGFuZAorCXBhcmFtZXRlciBsZW4gdG8g TE9OR0VTVC4KKwkqIHN0YWNrLmMgKHByaW50X2ZyYW1lX25hbWVsZXNzX2FyZ3MpOiBFeHBhbmQg cGFyYW1ldGVyIFNUQVJUIHRvCisJTE9OR0VTVC4KKwkocHJpbnRfZnJhbWVfYXJncyk6IEV4cGFu ZCBISUdIRVNUX09GRlNFVCwgQ1VSUkVOVF9PRkZTRVQsCisJQVJHX1NJWkUsIFNUQVJUIHRvIExP TkdFU1QuCisJKiBzeW1taXNjLmMgKHByaW50X3N5bWJvbCk6IEV4cGFuZCBJIHRvIFVMT05HRVNU LiAgVXNlIHB1bG9uZ2VzdAorCXRvIGZvcm1hdCBwcmludCBUWVBFX0xFTkdUSC4KKwkqIHRhcmdl dC5jIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4cGFuZCBwYXJhbWV0 ZXIKKwlMRU4gdG8gTE9OR0VTVC4KKwkoZGVidWdfdG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50KTogTGlrZXdpc2UuCisJKiB0YXJnZXQuaCAoc3RydWN0IHRhcmdldF9vcHMpOiBFeHBhbmQg cGFyYW1ldGVyIExFTiB0byBMT05HRVNUCisJZm9yIFRPX1JFR0lPTl9PS19GT1JfSFdfV0FUQ0hQ T0lOVC4KKwkqIHRyYWNlcG9pbnQuYyAoYWRkX21lbXJhbmdlKTogRXhwYW5kIHBhcmFtZXRlciBM RU4gdG8gTE9OR0VTVC4KKwlVc2UgcGxvbmdlc3QgdG8gZm9ybWF0IHByaW50IExFTi4KKwkoY29s bGVjdF9zeW1ib2wpOiBFeHBhbmQgTEVOIHRvIFVMT05HRVNULiAgVXNlIHB1bG9uZ2VzdCB0bwor CWZvcm1hdCBwcmludCBMRU4uCisJKHNjb3BlX2luZm8pOiBFeHBhbmQgSiB0byBMT05HRVNULiAg VXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQKKwlwcmludCBUWVBFX0xFTkdUSC4KKwkqIHR5cGVwcmlu dC5jICh3aGF0aXNfZXhwKTogRXhwYW5kIFRPUCB0byBMT05HRVNULgorCSogdmFsYXJpdGguYyAo dmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlKTogRXhwYW5kIHBhcmFtZXRlcnMgSU5ERVgKKwlhbmQg TE9XRVJCT1VORCB0byBMT05HRVNULiAgRXhwYW5kIEVMVF9TSVpFLCBFTFRfT0ZGUyB0byBVTE9O R0VTVC4KKwkodmFsdWVfY29uY2F0KTogZXhwYW5kIElOVkFMMUxFTiBhbmQgSU5WQUwyTEVOIHRv IHNzaXplX3QuCisJKHZhbHVlX2xvZ2ljYWxfbm90KTogRXhwYW5kIExFTiB0byBMT05HRVNULgor CSh2YWx1ZV9zdHJjbXApOiBFeHBhbmQgTEVOMSwgTEVOMiwgSSwgTEVOIHRvIExPTkdFU1QuCisJ KiB2YWxvcHMuYyAodmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3IpOiBFeHBhbmQgcGFy YW1ldGVyCisJTEVOIHRvIExPTkdFU1QuCisJKHZhbHVlX2Nhc3Rfc3RydWN0cyk6IEV4cGFuZCBU T1AgdG8gTE9OR0VTVC4KKwkodmFsdWVfY2FzdCk6IEV4cGFuZCBFTEVNRU5UX0xFTkdUSCB0byBV TE9OR0VTVC4gIEV4cGFuZAorCVZBTF9MRU5HVEggdG8gTE9OR0VTVC4KKwkoZHluYW1pY19jYXN0 X2NoZWNrXzEpOiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0bworCUxPTkdFU1Qu ICBFeHBhbmQgT0ZGU0VUIHRvIExPTkdFU1QuCisJKGR5bmFtaWNfY2FzdF9jaGVja18yKTogTGlr ZXdpc2UuCisJKHZhbHVlX2R5bmFtaWNfY2FzdCk6IEV4cGFuZCBUT1AgdG8gTE9OR0VTVC4KKwko cmVhZF92YWx1ZV9tZW1vcnkpOiBFeHBhbmQgRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuCisJ KHZhbHVlX2Fzc2lnbik6IEV4cGFuZCBDSEFOR0VEX0xFTiwgT0ZGU0VUIHRvIExPTkdFU1QuCisJ KHZhbHVlX2FycmF5KTogRXhwYW5kIFRZUEVMRU5HVEggdG8gVUxPTkdFU1QuCisJKHVwZGF0ZV9z ZWFyY2hfcmVzdWx0KTogRXhwYW5kIHBhcmFtZXRlcnMgTEFTVF9CT0ZGU0VULCBCT0ZGU0VUCisJ dG8gTE9OR0VTVC4KKwkoZG9fc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXIg T0ZGU0VULCBMQVNUX0JPRkZTRVQKKwl0byBMT05HRVNULiAgRXhwYW5kIE5FV19PRkZTRVQsIEJP RkZTRVQgdG8gTE9OR0VTVC4KKwkoc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0 ZXIgT0ZGU0VUIHRvIExPTkdFU1QuCisJRXhwYW5kIEJPRkZTRVQgdG8gTE9OR0VTVC4KKwkoc2Vh cmNoX3N0cnVjdF9tZXRob2QpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgor CUV4cGFuZCBCQVNFX09GRlNFVCwgVEhJU19PRkZTRVQgdG8gTE9OR0VTVC4KKwkoZmluZF9tZXRo b2RfbGlzdCk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCwgQk9GRlNFVCB0bworCUxPTkdFU1Qu ICBFeHBhbmQgQkFTRV9PRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfZmluZF9vbG9hZF9tZXRo b2RfbGlzdCk6IEV4cGFuZCBwYXJhbWV0ZXIgQk9GRlNFVCB0byBwb2ludAorCXRvIExPTkdFU1Qu CisJKGZpbmRfb3ZlcmxvYWRfbWF0Y2gpOiBFeHBhbmQgQk9GRlNFVCB0byBMT05HRVNULgorCSh2 YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0 bworCUxPTkdFU1QuICBSZW1vdmUgdW5uZWVkZWQgY2FzdC4gIEV4cGFuZCBCQVNFX09GRlNFVCB0 byBMT05HRVNULgorCSh2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVy IFRPUCB0byBwb2ludCB0bworCUxPTkdFU1QuCisJKHZhbHVlX2Z1bGxfb2JqZWN0KTogRXhwYW5k IHBhcmFtZXRlciBYVE9QIHRvIExPTkdFU1QuICBFeHBhbmQKKwlUT1AgdG8gTE9OR0VTVC4KKwkq IHZhbHByaW50LmMgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5KTogRXhwYW5kIHBhcmFtZXRlcgor CUVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCShnZW5lcmljX3ZhbF9wcmludCk6IExpa2V3 aXNlLgorCSh2YWxfcHJpbnQpOiBMaWtld2lzZS4KKwkodmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0 ZWQpOiBMaWtld2lzZS4KKwkocHJpbnRfaGV4X2NoYXJzKTogRXhwYW5kIHBhcmFtZXRlciBMRU4g dG8gVUxPTkdFU1QuCisJKHZhbF9wcmludF9hcnJheV9lbGVtZW50cyk6IEV4cGFuZCBwYXJhbWV0 ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVCwgSSB0byBVTE9OR0VTVC4gIEV4cGFuZCBM RU4sIEVMVExFTiwgUkVQMSwgUkVQUyB0bworCVVMT05HRVNULiAgVXNlIHB1bG9uZ2VzdCB0byBm b3JtYXQgcHJpbnQgUkVQUy4KKwkoZ2VuZXJpY19wcmludHN0cik6IEV4cGFuZCBwYXJhbWV0ZXIg TEVOR1RIIHRvIFVMT05HRVNULgorCSogdmFscHJpbnQuaCAodmFsX3ByaW50X2FycmF5X2VsZW1l bnRzKTogRXhwYW5kIHBhcmFtZXRlcgorCUVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCSh2 YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCk6IExpa2V3aXNlLgorCShwcmludF9oZXhfY2hhcnMp OiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBVTE9OR0VTVC4KKwkoZ2VuZXJpY192YWxfcHJpbnQp OiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCShnZW5lcmlj X3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJKiB2YWx1 ZS5jIChzdHJ1Y3QgcmFuZ2UpOiBFeHBhbmQgbWVtYmVycyBPRkZTRVQsIExFTkdUSCB0bworCUxP TkdFU1QuCisJKHJhbmdlc19vdmVybGFwKTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZGU0VUMSwgT0ZG U0VUMiwgTEVOMSBBTkQKKwlMRU4yIHRvIExPTkdFU1QuCisJKHJhbmdlX2NvbnRhaW4pOiBFeHBh bmQgcGFyYW1ldGVyIE9GRlNFVCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHN0cnVjdCB2YWx1ZSk6 IEV4cGFuZCBtZW1iZXJzIE9GRlNFVCwgRU1CRURERURfT0ZGU0VULAorCVBPSU5URURfVE9fT0ZG U0VUIHRvIExPTkdFU1QuCisJKHZhbHVlX2J5dGVzX2F2YWlsYWJsZSk6IEV4cGFuZCBwYXJhbWV0 ZXJzIE9GRlNFVCwgTEVOR1RIIHRvCisJTE9OR0VTVC4KKwkobWFya192YWx1ZV9ieXRlc191bmF2 YWlsYWJsZSk6IExpa2V3aXNlLgorCShmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXApOiBMaWtld2lz ZS4KKwkodmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxKTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZG U0VUMSwgT0ZGU0VUMgorCWFuZCBMRU5HVEggdG8gTE9OR0VTVC4KKwkodmFsdWVfb2Zmc2V0KTog UmV0dXJuIExPTkdFU1QuCisJKHNldF92YWx1ZV9vZmZzZXQpOiBFeHBhbmQgcGFyYW1ldGVyIE9G RlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9jb250ZW50c19jb3B5X3Jhdyk6IEV4cGFuZCBwYXJh bWV0ZXJzIFNSQ19PRkZTRVQsCisJRFNUX09GRlNFVCwgTEVOR1RIIHRvIHNzaXplX3QuCisJKHZh bHVlX2NvbnRlbnRzX2NvcHkpOiBMaWtld2lzZS4KKwkodmFsdWVfYml0c192YWxpZCk6IEV4cGFu ZCBwYXJhbWV0ZXJzIE9GRlNFVCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHZhbHVlX2JpdHNfc3lu dGhldGljX3BvaW50ZXIpOiBMaWtld2lzZS4KKwkodmFsdWVfZW1iZWRkZWRfb2Zmc2V0KTogUmV0 dXJuIExPTkdFU1QuCisJKHNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQpOiBFeHBhbmQgcGFyYW1l dGVyIFZBTCB0byBMT05HRVNULgorCSh2YWx1ZV9wb2ludGVkX3RvX29mZnNldCk6IFJldHVybiBM T05HRVNULgorCShzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQpOiBFeHBhbmQgcGFyYW1ldGVy IFZBTCB0byBMT05HRVNULgorCShzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50KTogRXhwYW5kIHBh cmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfcHJpbWl0aXZlX2ZpZWxkKTogTGlr ZXdpc2UuICBFeHBhbmQgQklUUE9TLCBCT0ZGU0VULAorCUNPTlRBSU5FUl9CSVRTSVpFIHRvIExP TkdFU1QuCisJKHZhbHVlX2ZuX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9O R0VTVC4KKwkodW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xKTogRXhwYW5kIHBhcmFtZXRlcnMg RU1CRURERURfT0ZGU0VULAorCUJJVFBPUyB0byBMT05HRVNULiAgRXhwYW5kIFJFQURfT0ZGU0VU IHRvIExPTkdFU1QuCisJKHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcpOiBFeHBhbmQgcGFyYW1l dGVyIEVNQkVERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkodW5wYWNrX3ZhbHVlX2ZpZWxkX2Fz X2xvbmdfMSk6IExpa2V3aXNlLiAgRXhwYW5kIEJJVFBPUyB0bworCUxPTkdFU1QuCisJKHVucGFj a192YWx1ZV9maWVsZF9hc19sb25nKTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQg dG8KKwlMT05HRVNULgorCSh2YWx1ZV9maWVsZF9iaXRmaWVsZCk6IExpa2V3aXNlLgorCShtb2Rp ZnlfZmllbGQpOiBFeHBhbmQgcGFyYW1ldGVyIEJJVFBPUyB0byBMT05HRVNULiAgRXhwYW5kCisJ QllURVNJWkUgdG8gTE9OR0VTVC4KKwkqIHZhbHVlLmggKHZhbHVlX29mZnNldCk6IFJldHVybiBM T05HRVNULgorCShzZXRfdmFsdWVfb2Zmc2V0KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8g TE9OR0VTVC4KKwkodmFsdWVfcG9pbnRlZF90b19vZmZzZXQpOiBSZXR1cm4gTE9OR0VTVC4KKwko c2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0KTogRXhwYW5kIHBhcmFtZXRlciBWQUwgdG8gTE9O R0VTVC4KKwkodmFsdWVfZW1iZWRkZWRfb2Zmc2V0KTogUmV0dXJuIExPTkdFU1QuCisJKHNldF92 YWx1ZV9lbWJlZGRlZF9vZmZzZXQpOiBFeHBhbmQgcGFyYW1ldGVyIFZBTCB0byBMT05HRVNULgor CShzdHJ1Y3QgbHZhbF9mdW5jcyk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCBhbmQgTEVOR1RI IHRvCisJTE9OR0VTVCBmb3IgQ0hFQ0tfVkFMSURJVFkuICBMaWtld2lzZSBmb3IgQ0hFQ0tfU1lO VEhFVElDX1BPSU5URVIuCisJKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5KTogRXhwYW5kIHBhcmFt ZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCSh2YWx1ZV9iaXRzX3ZhbGlkKTog RXhwYW5kIHBhcmFtZXRlcnMgT0ZGU0VULCBMRU5HVEggdG8gTE9OR0VTVC4KKwkodmFsdWVfYml0 c19zeW50aGV0aWNfcG9pbnRlcik6IExpa2V3aXNlLgorCSh2YWx1ZV9ieXRlc19hdmFpbGFibGUp OiBMaWtld2lzZS4KKwkobWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSk6IExpa2V3aXNlLgor CSh2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEpOiBGaXggY29tbWVudC4gIEV4cGFuZCBwYXJh bWV0ZXJzCisJT0ZGU0VUMSwgT0ZGU0VUMiwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHJlYWRfdmFs dWVfbWVtb3J5KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNU LgorCSh1bnBhY2tfdmFsdWVfYml0c19hc19sb25nKTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERF RF9PRkZTRVQgdG8KKwlMT05HRVNULgorCSh1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZyk6IExp a2V3aXNlLgorCSh2YWx1ZV9maWVsZF9iaXRmaWVsZCk6IExpa2V3aXNlLgorCSh2YWx1ZV9jb250 ZW50c19jb3B5X3Jhdyk6IEV4cGFuZCBwYXJhbWV0ZXJzIFNSQ19PRkZTRVQsCisJRFNUX09GRlNF VCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHZhbHVlX2NvbnRlbnRzX2NvcHkpOiBMaWtld2lzZS4K KwkodmFsdWVfcHJpbWl0aXZlX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9O R0VTVC4KKwkodmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlKTogRXhwYW5kIHBhcmFtZXRlciBUT1Ag dG8gcG9pbnQgdG8KKwlMT05HRVNULgorCSh2YWx1ZV9mdWxsX29iamVjdCk6IEV4cGFuZCBwYXJh bWV0ZXIgWFRPUCB0byBMT05HRVNULgorCShzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50KTogRXhw YW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfZm5fZmllbGQpOiBFeHBh bmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCShtb2RpZnlfZmllbGQpOiBFeHBhbmQg cGFyYW1ldGVyIEJJVFBPUyB0byBMT05HRVNULgorCSh2YWxfcHJpbnQpOiBFeHBhbmQgcGFyYW1l dGVyIEVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9p bl9pbmZlcmlvcik6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvCisJTE9OR0VTVC4KKworZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2c6CisKKzIwMTItMDgtMDUgIFNpZGRoZXNoIFBveWFyZWthciAgPHNp ZGRoZXNoQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2xvbmdlc3QtdHlwZXMuZXhwOiBBZGQg dGVzdCBjYXNlIHRvIGdldCBvZmZzZXQgb2YKKwlCVUYyLgorCistLU1QXy95cDVmK1dfRUQySnRV bFN5Qmk4eHVqcgorQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKK0NvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDdiaXQKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1l PWJpdHBvcy1tYWluLnBhdGNoCisKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS1s YW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYWRhLWxh bmcuYwkyMDEyLTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvYWRhLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjY2ODE0MTAzNiArMDEw MAorQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNjX2JvdW5kc190eXBl IChzdAorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUg Kik7CisgCistc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNfYml0cG9zIChzdHJ1Y3QgdHlwZSAq KTsKKytzdGF0aWMgTE9OR0VTVCBmYXRfcG50cl9ib3VuZHNfYml0cG9zIChzdHJ1Y3QgdHlwZSAq KTsKKyAKKyBzdGF0aWMgaW50IGZhdF9wbnRyX2JvdW5kc19iaXRzaXplIChzdHJ1Y3QgdHlwZSAq KTsKKyAKK0BAIC04OCwxMyArODgsMTMgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNjX2RhdGFf dGFyZ2V0X3R5cAorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfZGF0YSAoc3RydWN0IHZh bHVlICopOworIAorLXN0YXRpYyBpbnQgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBl ICopOworK3N0YXRpYyBMT05HRVNUIGZhdF9wbnRyX2RhdGFfYml0cG9zIChzdHJ1Y3QgdHlwZSAq KTsKKyAKKyBzdGF0aWMgaW50IGZhdF9wbnRyX2RhdGFfYml0c2l6ZSAoc3RydWN0IHR5cGUgKik7 CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqZGVzY19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAq LCBpbnQsIGludCk7CisgCistc3RhdGljIGludCBkZXNjX2JvdW5kX2JpdHBvcyAoc3RydWN0IHR5 cGUgKiwgaW50LCBpbnQpOworK3N0YXRpYyBMT05HRVNUIGRlc2NfYm91bmRfYml0cG9zIChzdHJ1 Y3QgdHlwZSAqLCBpbnQsIGludCk7CisgCisgc3RhdGljIGludCBkZXNjX2JvdW5kX2JpdHNpemUg KHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKKyAKK0BAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGlj IHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAorIAorIHN0YXRpYyBzdHJ1Y3QgdmFs dWUgKnVud3JhcF92YWx1ZSAoc3RydWN0IHZhbHVlICopOworIAorLXN0YXRpYyBzdHJ1Y3QgdHlw ZSAqY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIGxvbmcgKik7 Cisrc3RhdGljIHN0cnVjdCB0eXBlICpjb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3Ry dWN0IHR5cGUgKiwgTE9OR0VTVCAqKTsKKyAKKyBzdGF0aWMgc3RydWN0IHR5cGUgKmRlY29kZV9j b25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7CisgCitAQCAtMTg5 LDcgKzE4OSw4IEBAIHN0YXRpYyBpbnQgYWRhX2lzX3VuY29uc3RyYWluZWRfcGFja2VkX2EKKyBz dGF0aWMgc3RydWN0IHZhbHVlICp2YWx1ZV9zdWJzY3JpcHRfcGFja2VkIChzdHJ1Y3QgdmFsdWUg KiwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB2YWx1ZSAqKik7CisgCistc3RhdGljIHZvaWQgbW92ZV9iaXRzIChnZGJfYnl0ZSAqLCBp bnQsIGNvbnN0IGdkYl9ieXRlICosIGludCwgaW50LCBpbnQpOworK3N0YXRpYyB2b2lkIG1vdmVf Yml0cyAoZ2RiX2J5dGUgKiwgaW50LCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULCBMT05HRVNU LAorKwkJICAgICAgIGludCk7CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY29lcmNlX3Vuc3Bl Y192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlICosCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CitAQCAtMjE3LDE0ICsyMTgs MTQgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3RydQorIHN0YXRpYyBz dHJ1Y3Qgc3ltYm9sICpzdGFuZGFyZF9sb29rdXAgKGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0 IGJsb2NrICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWlu X2VudW0pOworIAorLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9zZWFyY2hfc3RydWN0X2ZpZWxk IChjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCBpbnQsCisrc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRh X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKiwgc3RydWN0IHZhbHVlICosIExPTkdFU1QsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBl ICopOworIAorLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCwKKytzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiwgTE9OR0VTVCwgaW50LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICop OworIAorLXN0YXRpYyBpbnQgZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKiwgc3RydWN0 IHR5cGUgKiwgaW50LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBl ICoqLCBpbnQgKiwgaW50ICosIGludCAqLCBpbnQgKik7Cisrc3RhdGljIGludCBmaW5kX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULAorKwkJCSAgICAg IHN0cnVjdCB0eXBlICoqLCBMT05HRVNUICosIGludCAqLCBpbnQgKiwgaW50ICopOworIAorIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV90b19maXhlZF92YWx1ZV9jcmVhdGUgKHN0cnVjdCB0eXBl ICosIENPUkVfQUREUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdmFsdWUgKik7CitAQCAtMjQwLDcgKzI0MSw3IEBAIHN0YXRpYyB2b2lk IGFkYV9sYW5ndWFnZV9hcmNoX2luZm8gKHN0cnUKKyAKKyBzdGF0aWMgdm9pZCBjaGVja19zaXpl IChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKKyAKKy1zdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5k ZXhfc3RydWN0X2ZpZWxkIChpbnQsIHN0cnVjdCB2YWx1ZSAqLCBpbnQsCisrc3RhdGljIHN0cnVj dCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoTE9OR0VTVCwgc3RydWN0IHZhbHVlICos IExPTkdFU1QsCisgCQkJCQkgICAgIHN0cnVjdCB0eXBlICopOworIAorIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmFzc2lnbl9hZ2dyZWdhdGUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwg CitAQCAtNTg2LDcgKzU4Nyw3IEBAIGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2 YWx1ZQorIH0KKyAKKyBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgorLWNvbmRfb2Zmc2V0X2hvc3Qg KGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBsb25nIG9mZnNldCkKKytjb25kX29mZnNldF9ob3N0 IChjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQpCisgeworICAgaWYgKHZh bGFkZHIgPT0gTlVMTCkKKyAgICAgcmV0dXJuIE5VTEw7CitAQCAtNTk1LDcgKzU5Niw3IEBAIGNv bmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKKyB9CisgCisgc3RhdGljIENP UkVfQUREUgorLWNvbmRfb2Zmc2V0X3RhcmdldCAoQ09SRV9BRERSIGFkZHJlc3MsIGxvbmcgb2Zm c2V0KQorK2NvbmRfb2Zmc2V0X3RhcmdldCAoQ09SRV9BRERSIGFkZHJlc3MsIExPTkdFU1Qgb2Zm c2V0KQorIHsKKyAgIGlmIChhZGRyZXNzID09IDApCisgICAgIHJldHVybiAwOworQEAgLTE2MDEs NyArMTYwMiw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikKKyAvKiBJZiBUWVBF IGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgIHRoZSBi aXQKKyAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0 aGUgYm91bmRzIGRhdGEuICAqLworIAorLXN0YXRpYyBpbnQKKytzdGF0aWMgTE9OR0VTVAorIGZh dF9wbnRyX2JvdW5kc19iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIHJldHVybiBU WVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKK0BAIC0xNjY3LDcg KzE2NjgsNyBAQCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQorIC8qIElmIFRZUEUgaXMg dGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCB0aGUgYml0Cisg ICAgcG9zaXRpb24gb2YgdGhlIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGRh dGEuICAqLworIAorLXN0YXRpYyBpbnQKKytzdGF0aWMgTE9OR0VTVAorIGZhdF9wbnRyX2RhdGFf Yml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICByZXR1cm4gVFlQRV9GSUVMRF9CSVRQ T1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMCk7CitAQCAtMTcwMiw3ICsxNzAzLDcgQEAgZGVz Y19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAqYm91bmRzLCBpbgorICAgIG9mIHRoZSBJdGggbG93 ZXIgYm91bmQgc3RvcmVkIGluIGl0LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhlIEl0aCB1cHBlcgor ICAgIGJvdW5kLCBpZiBXSElDSCBpcyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlzIEk9MS4gICovCisg Cistc3RhdGljIGludAorK3N0YXRpYyBMT05HRVNUCisgZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVj dCB0eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQorIHsKKyAgIHJldHVybiBUWVBFX0ZJRUxE X0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNoIC0gMik7CitAQCAt MTg5Miw3ICsxODkzLDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBp bgorIAkgICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSByZWNvbXB1dGVkLiAg Ki8KKyAJICAgICAgaWYgKGxvIDwgaGkpCisgCQl7CistCQkgIGludCBhcnJheV9iaXRzaXplID0K KysJCSAgTE9OR0VTVCBhcnJheV9iaXRzaXplID0KKyAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAq IFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOworIAorIAkJICBUWVBFX0xFTkdUSCAo YXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsKK0BAIC0yMDQ0LDcgKzIwNDUs NyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBlCisgICAgaW4gYml0 cy4gICovCisgCisgc3RhdGljIHN0cnVjdCB0eXBlICoKKy1jb25zdHJhaW5lZF9wYWNrZWRfYXJy YXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIGxvbmcgKmVsdF9iaXRzKQorK2NvbnN0cmFpbmVk X3BhY2tlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCAqZWx0X2JpdHMp CisgeworICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsKKyAgIHN0cnVjdCB0eXBlICpuZXdf dHlwZTsKK0BAIC0yMDk2LDcgKzIwOTcsNyBAQCBkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2Fy cmF5X3R5cGUgKHN0CisgICBjaGFyICpuYW1lOworICAgY29uc3QgY2hhciAqdGFpbDsKKyAgIHN0 cnVjdCB0eXBlICpzaGFkb3dfdHlwZTsKKy0gIGxvbmcgYml0czsKKysgIExPTkdFU1QgYml0czsK KyAKKyAgIGlmICghcmF3X25hbWUpCisgICAgIHJhd19uYW1lID0gYWRhX3R5cGVfbmFtZSAoZGVz Y19iYXNlX3R5cGUgKHR5cGUpKTsKK0BAIC0yMTY3LDcgKzIxNjgsOCBAQCBkZWNvZGVfY29uc3Ry YWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKKyAgCSBhcnJheSB3aXRoIG5vIHdyYXBwZXIuICBJ biBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gKKyAgCSB0aGUgKGxlZnQtanVz dGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBtdXN0CisgIAkgZmly c3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KKy0gICAgICBpbnQgYml0X3NpemUsIGJpdF9wb3M7Cisr ICAgICAgaW50IGJpdF9zaXplOworKyAgICAgIExPTkdFU1QgYml0X3BvczsKKyAgICAgICBVTE9O R0VTVCBtb2Q7CisgCisgICAgICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikp IC0gMTsKK0BAIC0yMjY4LDE1ICsyMjcwLDE2IEBAIGhhc19uZWdhdGl2ZXMgKHN0cnVjdCB0eXBl ICp0eXBlKQorIAorIHN0cnVjdCB2YWx1ZSAqCisgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRf dmFsIChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJCWxv bmcgb2Zmc2V0LCBpbnQgYml0X29mZnNldCwgaW50IGJpdF9zaXplLAorKwkJCQlMT05HRVNUIG9m ZnNldCwgaW50IGJpdF9vZmZzZXQsIGludCBiaXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIHN0cnVjdCB2YWx1ZSAqdjsK Ky0gIGludCBzcmMsICAgICAgICAgICAgICAgICAgICAgIC8qIEluZGV4IGludG8gdGhlIHNvdXJj ZSBhcmVhICovCistICAgIHRhcmcsICAgICAgICAgICAgICAgICAgICAgICAvKiBJbmRleCBpbnRv IHRoZSB0YXJnZXQgYXJlYSAqLworLSAgICBzcmNCaXRzTGVmdCwgICAgICAgICAgICAgICAgLyog TnVtYmVyIG9mIHNvdXJjZSBiaXRzIGxlZnQgdG8gbW92ZSAqLworLSAgICBuc3JjLCBudGFyZywg ICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHNvdXJjZSBhbmQgdGFyZ2V0IGJ5dGVzICovCist ICAgIHVudXNlZExTLCAgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgYml0cyBpbiBuZXh0 IHNpZ25pZmljYW50CisrICBpbnQgc3JjOyAgICAgICAgICAgICAgICAgICAgICAvKiBJbmRleCBp bnRvIHRoZSBzb3VyY2UgYXJlYSAqLworKyAgTE9OR0VTVCB0YXJnOyAgICAgICAgICAgICAgICAg LyogSW5kZXggaW50byB0aGUgdGFyZ2V0IGFyZWEgKi8KKysgIGludCBzcmNCaXRzTGVmdCwgICAg ICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYml0cyBsZWZ0IHRvIG1vdmUgKi8KKysgICAg bnNyYzsgICAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYnl0ZXMgKi8K KysgIExPTkdFU1QgbnRhcmc7ICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiB0YXJnZXQgYnl0 ZXMgKi8KKysgIGludCB1bnVzZWRMUywgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBiaXRz IGluIG5leHQgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJ5dGUgb2Ygc291cmNlIHRoYXQgYXJlIHVudXNlZCAqLworICAgICBhY2N1bVNpemU7ICAgICAg ICAgICAgICAgICAgLyogTnVtYmVyIG9mIG1lYW5pbmdmdWwgYml0cyBpbiBhY2N1bSAqLworICAg dW5zaWduZWQgY2hhciAqYnl0ZXM7ICAgICAgICAgLyogRmlyc3QgYnl0ZSBjb250YWluaW5nIGRh dGEgdG8gdW5wYWNrICovCitAQCAtMjMwOSw3ICsyMzEyLDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2 ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorIAorICAgaWYgKG9iaiAhPSBOVUxMKQorICAgICB7Cist ICAgICAgbG9uZyBuZXdfb2Zmc2V0ID0gb2Zmc2V0OworKyAgICAgIExPTkdFU1QgbmV3X29mZnNl dCA9IG9mZnNldDsKKyAKKyAgICAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBv YmopOworICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9vZmZzZXQgKyB2YWx1ZV9iaXRw b3MgKG9iaikpOworQEAgLTI0MjYsNyArMjQyOSw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFj a2VkX3ZhbCAoc3RydWN0IHYKKyAgICBub3Qgb3ZlcmxhcC4gICovCisgc3RhdGljIHZvaWQKKyBt b3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJnX29mZnNldCwgY29uc3QgZ2RiX2J5 dGUgKnNvdXJjZSwKKy0JICAgaW50IHNyY19vZmZzZXQsIGludCBuLCBpbnQgYml0c19iaWdfZW5k aWFuX3ApCisrCSAgIExPTkdFU1Qgc3JjX29mZnNldCwgTE9OR0VTVCBuLCBpbnQgYml0c19iaWdf ZW5kaWFuX3ApCisgeworICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOworICAgaW50IGFjY3Vt X2JpdHMsIGNodW5rX3NpemU7CitAQCAtMjUxNiw3ICsyNTE5LDcgQEAgYWRhX3ZhbHVlX2Fzc2ln biAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcworICAgICB7CisgICAgICAgaW50IGxlbiA9ICh2YWx1 ZV9iaXRwb3MgKHRvdmFsKQorIAkJICsgYml0cyArIEhPU1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1Rf Q0hBUl9CSVQ7CistICAgICAgaW50IGZyb21fc2l6ZTsKKysgICAgICBMT05HRVNUIGZyb21fc2l6 ZTsKKyAgICAgICBjaGFyICpidWZmZXIgPSAoY2hhciAqKSBhbGxvY2EgKGxlbik7CisgICAgICAg c3RydWN0IHZhbHVlICp2YWw7CisgICAgICAgQ09SRV9BRERSIHRvX2FkZHIgPSB2YWx1ZV9hZGRy ZXNzICh0b3ZhbCk7CitAQCAtMjU2MSw3ICsyNTY0LDcgQEAgdmFsdWVfYXNzaWduX3RvX2NvbXBv bmVudCAoc3RydWN0IHZhbHVlCisgICAgIChMT05HRVNUKSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBv bmVudCkgLSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIpKTsKKyAgIGludCBiaXRfb2Zmc2V0X2lu X2NvbnRhaW5lciA9IAorICAgICB2YWx1ZV9iaXRwb3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9iaXRw b3MgKGNvbnRhaW5lcik7CistICBpbnQgYml0czsKKysgIExPTkdFU1QgYml0czsKKyAgIAorICAg dmFsID0gdmFsdWVfY2FzdCAodmFsdWVfdHlwZSAoY29tcG9uZW50KSwgdmFsKTsKKyAKK0BAIC00 MDgxLDcgKzQwODQsNyBAQCBlbnN1cmVfbHZhbCAoc3RydWN0IHZhbHVlICp2YWwpCisgICBpZiAo VkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAorICAgICAgIHx8IFZBTFVFX0xWQUwgKHZhbCkg PT0gbHZhbF9pbnRlcm5hbHZhcikKKyAgICAgeworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdU SCAoYWRhX2NoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpKTsKKysgICAgICBMT05HRVNU IGxlbiA9IFRZUEVfTEVOR1RIIChhZGFfY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsKSkp OworICAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KKyAgICAgICAgIHZhbHVlX2FzX2xvbmcg KHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChsZW4pKTsKKyAKK0BAIC00MTU1LDcg KzQxNTgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgdmFsdWVfcG9pbnRlciAoc3RydWN0IHZhbHVl ICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKKy0gIHVuc2lnbmVkIGxlbiA9IFRZUEVfTEVOR1RI ICh0eXBlKTsKKysgIFVMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIGdkYl9i eXRlICpidWYgPSBhbGxvY2EgKGxlbik7CisgICBDT1JFX0FERFIgYWRkcjsKKyAKK0BAIC02MDI0 LDcgKzYwMjcsNyBAQCB2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3RyCisg CQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzKQorIHsKKy0gIGludCB0YWdfYnl0ZV9v ZmZzZXQ7CisrICBMT05HRVNUIHRhZ19ieXRlX29mZnNldDsKKyAgIHN0cnVjdCB0eXBlICp0YWdf dHlwZTsKKyAKKyAgIGlmIChmaW5kX3N0cnVjdF9maWVsZCAoIl90YWciLCB0eXBlLCAwLCAmdGFn X3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCitAQCAtNjQwNyw3ICs2NDEwLDcgQEAgYWRhX2luX3Zh cmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlwZQorICAgIG9ubHkgaW4gdGhhdCBpdCBjYW4g aGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRyYXJ5IHR5cGUuICAqLworIAorIHN0YXRpYyBz dHJ1Y3QgdmFsdWUgKgorLWFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgaW50IG9mZnNldCwgaW50IGZpZWxkbm8sCisrYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVs ZCAoc3RydWN0IHZhbHVlICphcmcxLCBMT05HRVNUIG9mZnNldCwgaW50IGZpZWxkbm8sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlKQorIHsKKyAgIHN0 cnVjdCB0eXBlICp0eXBlOworQEAgLTY0MTksNyArNjQyMiw3IEBAIGFkYV92YWx1ZV9wcmltaXRp dmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorIAorICAgaWYgKFRZUEVfRklFTERfQklUU0laRSAoYXJn X3R5cGUsIGZpZWxkbm8pICE9IDApCisgICAgIHsKKy0gICAgICBpbnQgYml0X3BvcyA9IFRZUEVf RklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubyk7CisrICAgICAgTE9OR0VTVCBiaXRfcG9z ID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190eXBlLCBmaWVsZG5vKTsKKyAgICAgICBpbnQgYml0 X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKTsKKyAKKyAgICAg ICByZXR1cm4gYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChhcmcxLCB2YWx1ZV9jb250 ZW50cyAoYXJnMSksCitAQCAtNjQ0Niw5ICs2NDQ5LDkgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9m aWVsZCAoc3RydWN0IHZhbHVlCisgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4g ICovCisgCisgc3RhdGljIGludAorLWZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1l LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCwKKytmaW5kX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qgb2Zmc2V0LAorICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKmZpZWxkX3R5cGVfcCwKKy0gICAgICAgICAgICAg ICAgICAgaW50ICpieXRlX29mZnNldF9wLCBpbnQgKmJpdF9vZmZzZXRfcCwgaW50ICpiaXRfc2l6 ZV9wLAorKwkJICAgTE9OR0VTVCAqYnl0ZV9vZmZzZXRfcCwgaW50ICpiaXRfb2Zmc2V0X3AsIGlu dCAqYml0X3NpemVfcCwKKyAJCSAgIGludCAqaW5kZXhfcCkKKyB7CisgICBpbnQgaTsKK0BAIC02 NDY2LDggKzY0NjksOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3Ry CisgCisgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsgaSArPSAxKQorICAg ICB7CistICAgICAgaW50IGJpdF9wb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7Cist ICAgICAgaW50IGZsZF9vZmZzZXQgPSBvZmZzZXQgKyBiaXRfcG9zIC8gODsKKysgICAgICBMT05H RVNUIGJpdF9wb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7CisrICAgICAgTE9OR0VT VCBmbGRfb2Zmc2V0ID0gb2Zmc2V0ICsgYml0X3BvcyAvIDg7CisgICAgICAgY29uc3QgY2hhciAq dF9maWVsZF9uYW1lID0gVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKTsKKyAKKyAgICAgICBpZiAo dF9maWVsZF9uYW1lID09IE5VTEwpCitAQCAtNjUzNyw3ICs2NTQwLDcgQEAgbnVtX3Zpc2libGVf ZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJv dWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KKyAKKyBzdGF0aWMgc3Ry dWN0IHZhbHVlICoKKy1hZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RydWN0 IHZhbHVlICphcmcsIGludCBvZmZzZXQsCisrYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIg Km5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgaW50IGk7CitAQCAtNjU3MCw3 ICs2NTczLDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorICAg ICAgICAgICBpbnQgajsKKyAgICAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBhZGFf Y2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLAorIAkJCQkJCQkJCWkpKTsKKy0g ICAgICAgICAgaW50IHZhcl9vZmZzZXQgPSBvZmZzZXQgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgaSkgLyA4OworKwkgIExPTkdFU1QgdmFyX29mZnNldCA9IG9mZnNldCArIFRZUEVfRklFTERf QklUUE9TICh0eXBlLCBpKSAvIDg7CisgCisgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBUWVBF X05GSUVMRFMgKGZpZWxkX3R5cGUpOyBqICs9IDEpCisgICAgICAgICAgICAgeworQEAgLTY1ODgs OCArNjU5MSw4IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKKyAg IHJldHVybiBOVUxMOworIH0KKyAKKy1zdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3Ry dWN0X2ZpZWxkXzEgKGludCAqLCBzdHJ1Y3QgdmFsdWUgKiwKKy0JCQkJCSAgICAgICBpbnQsIHN0 cnVjdCB0eXBlICopOworK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmll bGRfMSAoTE9OR0VTVCAqLCBzdHJ1Y3QgdmFsdWUgKiwKKysJCQkJCSAgICAgICBMT05HRVNULCBz dHJ1Y3QgdHlwZSAqKTsKKyAKKyAKKyAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGluIEFSRywgd2hl cmUgdGhlIGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkKK0BAIC02NTk4LDcgKzY2MDEsNyBAQCBz dGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCisgICogSWYgZm91bmQsIHJl dHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCisgCisgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCistYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1Y3QgdmFsdWUgKmFy ZywgaW50IG9mZnNldCwKKythZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChMT05HRVNUIGluZGV4LCBz dHJ1Y3QgdmFsdWUgKmFyZywgTE9OR0VTVCBvZmZzZXQsCisgCQkJc3RydWN0IHR5cGUgKnR5cGUp CisgeworICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmluZGV4LCBhcmcsIG9m ZnNldCwgdHlwZSk7CitAQCAtNjYxMCw3ICs2NjEzLDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVs ZCAoaW50IGluZGV4LCBzdHJ1YworICAqICpJTkRFWF9QLiAgKi8KKyAKKyBzdGF0aWMgc3RydWN0 IHZhbHVlICoKKy1hZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEgKGludCAqaW5kZXhfcCwgc3RydWN0 IHZhbHVlICphcmcsIGludCBvZmZzZXQsCisrYWRhX2luZGV4X3N0cnVjdF9maWVsZF8xIChMT05H RVNUICppbmRleF9wLCBzdHJ1Y3QgdmFsdWUgKmFyZywgTE9OR0VTVCBvZmZzZXQsCisgCQkJICBz dHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBpbnQgaTsKK0BAIC02NzAwLDcgKzY3MDMsOCBAQCBh ZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCisgICAgIHYgPSBhZGFfc2Vh cmNoX3N0cnVjdF9maWVsZCAobmFtZSwgYXJnLCAwLCB0KTsKKyAgIGVsc2UKKyAgICAgeworLSAg ICAgIGludCBiaXRfb2Zmc2V0LCBiaXRfc2l6ZSwgYnl0ZV9vZmZzZXQ7CisrICAgICAgaW50IGJp dF9vZmZzZXQsIGJpdF9zaXplOworKyAgICAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7CisgICAgICAg c3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CisgICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CisgCitA QCAtNzAwNiw4ICs3MDEwLDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkK KyAvKiBSZXR1cm4gT0ZGIHJvdW5kZWQgdXB3YXJkIGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxl IG9mCisgICAgQUxJR05NRU5UIChhIHBvd2VyIG9mIDIpLiAgKi8KKyAKKy1zdGF0aWMgdW5zaWdu ZWQgaW50CistYWxpZ25fdmFsdWUgKHVuc2lnbmVkIGludCBvZmYsIHVuc2lnbmVkIGludCBhbGln bm1lbnQpCisrc3RhdGljIFVMT05HRVNUCisrYWxpZ25fdmFsdWUgKFVMT05HRVNUIG9mZiwgVUxP TkdFU1QgYWxpZ25tZW50KQorIHsKKyAgIHJldHVybiAob2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+ KGFsaWdubWVudCAtIDEpOworIH0KK0BAIC03Mzg2LDEwICs3MzkwLDkgQEAgYWRhX3RlbXBsYXRl X3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFs dWVfbWFyayAoKTsKKyAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKKyAgIHN0cnVjdCB0eXBlICpydHlw ZTsKKy0gIGludCBuZmllbGRzLCBiaXRfbGVuOworKyAgaW50IG5maWVsZHM7CisgICBpbnQgdmFy aWFudF9maWVsZDsKKy0gIGxvbmcgb2ZmOworLSAgaW50IGZsZF9iaXRfbGVuOworKyAgTE9OR0VT VCBvZmYsIGJpdF9sZW4sIGZsZF9iaXRfbGVuOworICAgaW50IGY7CisgCisgICAvKiBDb21wdXRl IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcK K0BAIC03NDYwLDcgKzc0NjMsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVf MSAoc3RyCisgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLworIAkgIGlmIChhZGFfaXNf YWxpZ25lcl90eXBlIChmaWVsZF90eXBlKSkKKyAJICAgIHsKKy0JICAgICAgbG9uZyBmaWVsZF9v ZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAoZmllbGRfdHlwZSwgZik7CisrCSAgICAgIExPTkdF U1QgZmllbGRfb2Zmc2V0ID0gVFlQRV9GSUVMRF9CSVRQT1MgKGZpZWxkX3R5cGUsIGYpOworIAor IAkgICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRfdmFsYWRkciwg ZmllbGRfb2Zmc2V0KTsKKyAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zmc2V0X3Rhcmdl dCAoZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKK0BAIC03NTc5LDExICs3NTgyLDExIEBA IGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKKyAgIGlmIChUWVBFX0xF TkdUSCAodHlwZSkgPD0gMCkKKyAgICAgeworICAgICAgIGlmIChUWVBFX05BTUUgKHJ0eXBlKSkK Ky0Jd2FybmluZyAoXygiSW52YWxpZCB0eXBlIHNpemUgZm9yIGAlcycgZGV0ZWN0ZWQ6ICVkLiIp LAorLQkJIFRZUEVfTkFNRSAocnR5cGUpLCBUWVBFX0xFTkdUSCAodHlwZSkpOworKwl3YXJuaW5n IChfKCJJbnZhbGlkIHR5cGUgc2l6ZSBmb3IgYCVzJyBkZXRlY3RlZDogJXMuIiksCisrCQkgVFlQ RV9OQU1FIChydHlwZSksIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHR5cGUpKSk7CisgICAgICAg ZWxzZQorLQl3YXJuaW5nIChfKCJJbnZhbGlkIHR5cGUgc2l6ZSBmb3IgPHVubmFtZWQ+IGRldGVj dGVkOiAlZC4iKSwKKy0JCSBUWVBFX0xFTkdUSCAodHlwZSkpOworKwl3YXJuaW5nIChfKCJJbnZh bGlkIHR5cGUgc2l6ZSBmb3IgPHVubmFtZWQ+IGRldGVjdGVkOiAlcy4iKSwKKysJCSBwdWxvbmdl c3QgKFRZUEVfTEVOR1RIICh0eXBlKSkpOworICAgICB9CisgICBlbHNlCisgICAgIHsKK0BAIC03 OTIwLDcgKzc5MjMsOCBAQCB0b19maXhlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAs CisgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBBcyBhIHJl c3VsdCwgdGhlCisgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0byBiZSBz ZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKKyAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNvbXB1dGVk IGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RI IChyZXN1bHQpIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHJlc3VsdCkpOworKyAg ICAgIExPTkdFU1QgbGVuID0gKFRZUEVfTEVOR1RIIChyZXN1bHQpCisrCQkgICAgIC8gVFlQRV9M RU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHJlc3VsdCkpKTsKKyAgICAgICBpbnQgZWx0X2JpdHNp emUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKKyAKKyAgICAgICBUWVBFX0ZJRUxE X0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS1sYW5nLmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDEyLTAzLTI5IDIwOjIzOjAw LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLWxhbmcuaAky MDEyLTExLTA3IDIyOjA5OjI5LjY2OTE0MTAzNSArMDEwMAorQEAgLTE2OCw3ICsxNjgsNyBAQCBl eHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKKyBleHRlcm4gdm9pZCBhZGFf cHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBzeW1ib2wgKm5ld19zeW1i b2wsCisgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOworIAorLWV4dGVybiB2b2lk IGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09S RV9BRERSLAorK2V4dGVybiB2b2lkIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0 IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKKyAJCQkgICBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsCisgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CitAQCAtMTgzLDcgKzE4Myw3IEBAIGV4dGVybiB2b2lk IGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQKKyBleHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFy IChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOworIAorIGV4dGVybiB2b2lk IGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5cGUgKiwgY29uc3QgZ2Ri X2J5dGUgKiwKKy0JCQkgIHVuc2lnbmVkIGludCwgY29uc3QgY2hhciAqLCBpbnQsCisrCQkJICBV TE9OR0VTVCwgY29uc3QgY2hhciAqLCBpbnQsCisgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqKTsKKyAKKyBzdHJ1Y3QgdmFsdWUgKmFkYV9jb252ZXJ0X2FjdHVhbCAoc3Ry dWN0IHZhbHVlICphY3R1YWwsCitAQCAtMjU3LDcgKzI1Nyw3IEBAIGV4dGVybiBpbnQgYWRhX2lz X2NvbnN0cmFpbmVkX3BhY2tlZF9hcnIKKyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICphZGFfdmFs dWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqLAorIAkJCQkJCSAgICAgY29u c3QgZ2RiX2J5dGUgKiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxvbmcsIGludCwgaW50LAorKwkJCQkJCSAgICAgTE9OR0VTVCwgaW50LCBp bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdHlwZSAqKTsKKyAKKyBleHRlcm4gc3RydWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9f c2ltcGxlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOworSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvYWRhLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIw OTI2Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDEyLTA0LTE4IDA4OjQ2OjQ2LjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTIt MTEtMDcgMjI6MDk6MjkuNzA1MTQwOTgyICswMTAwCitAQCAtODE1LDggKzgxNSw4IEBAIGFkYV9w cmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKKyAJICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKKyAKKyAJICAgIGlmICghYWRhX2lzX3JhbmdlX3R5 cGVfbmFtZSAobmFtZSkpCistCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiPCVk LWJ5dGUgaW50ZWdlcj4iKSwKKy0JCQkJVFlQRV9MRU5HVEggKHR5cGUpKTsKKysJICAgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCI8JXMtYnl0ZSBpbnRlZ2VyPiIpLAorKwkJCQlwdWxv bmdlc3QgKFRZUEVfTEVOR1RIICh0eXBlKSkpOworIAkgICAgZWxzZQorIAkgICAgICB7CisgCQlm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJyYW5nZSAiKTsKK0BAIC04MzcsNyArODM3LDggQEAg YWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworIAkgIH0KKyAJYnJlYWs7 CisgICAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgorLQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s IF8oIjwlZC1ieXRlIGZsb2F0PiIpLCBUWVBFX0xFTkdUSCAodHlwZSkpOworKwlmcHJpbnRmX2Zp bHRlcmVkIChzdHJlYW0sIF8oIjwlcy1ieXRlIGZsb2F0PiIpLAorKwkJCSAgcHVsb25nZXN0IChU WVBFX0xFTkdUSCAodHlwZSkpKTsKKyAJYnJlYWs7CisgICAgICAgY2FzZSBUWVBFX0NPREVfRU5V TToKKyAJaWYgKHNob3cgPCAwKQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLXZh bHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYWRh LXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuNzMx MTQwOTQzICswMTAwCitAQCAtNDIsMTYgKzQyLDE2IEBAIHN0YXRpYyB2b2lkIHByaW50X3JlY29y ZCAoc3RydWN0IHR5cGUgKiwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICopOworIAorIHN0YXRpYyBpbnQgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBnZGJfYnl0ZSAqLAorLQkJCSAgICAgICBpbnQsCisrCQkJICAgICAgIExPTkdFU1QsCisg CQkJICAgICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKKyAJCQkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlICosCisgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICos CistCQkJICAgICAgIGludCwgc3RydWN0IHR5cGUgKiwgaW50KTsKKysJCQkgICAgICAgaW50LCBz dHJ1Y3QgdHlwZSAqLCBMT05HRVNUKTsKKyAKKyBzdGF0aWMgdm9pZCBhZGp1c3RfdHlwZV9zaWdu ZWRuZXNzIChzdHJ1Y3QgdHlwZSAqKTsKKyAKKy1zdGF0aWMgdm9pZCBhZGFfdmFsX3ByaW50XzEg KHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAorLQkJCSAg ICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorK3N0YXRpYyB2b2lkIGFkYV92YWxfcHJpbnRfMSAo c3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKKysJCQkgICAgIENPUkVf QUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVl ICosCisgCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKKyAMCitA QCAtMTQ0LDcgKzE0NCw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxlbWVudHMgKHN0cnVj dAorICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKKyAgIHVuc2lnbmVkIGxlbjsK KyAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKKy0gIHVuc2lnbmVkIGVsdGxl bjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKyAgIHVuc2lnbmVkIGxvbmcgYml0c2l6ZSA9IFRZUEVf RklFTERfQklUU0laRSAodHlwZSwgMCk7CisgICBzdHJ1Y3QgdmFsdWUgKm1hcmsgPSB2YWx1ZV9t YXJrICgpOworICAgTE9OR0VTVCBsb3cgPSAwOworQEAgLTI5Myw3ICsyOTMsNyBAQCBhZGFfZW1p dF9jaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCisgICAgb2YgYSBjaGFyYWN0ZXIuICAq LworIAorIHN0YXRpYyBpbnQKKy1jaGFyX2F0IChjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBpbnQg aSwgaW50IHR5cGVfbGVuLAorK2NoYXJfYXQgKGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIExPTkdF U1QgaSwgaW50IHR5cGVfbGVuLAorIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIpCisgewor ICAgaWYgKHR5cGVfbGVuID09IDEpCitAQCAtNDY1LDExICs0NjUsMTEgQEAgYWRhX3ByaW50X3Nj YWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorIAorIHN0YXRpYyB2b2lkCisgcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqc3RyaW5nLAorLQkgIHVuc2lnbmVkIGludCBsZW5ndGgsIGludCBmb3JjZV9lbGxpcHNl cywgaW50IHR5cGVfbGVuLAorKwkgIFVMT05HRVNUIGxlbmd0aCwgaW50IGZvcmNlX2VsbGlwc2Vz LCBpbnQgdHlwZV9sZW4sCisgCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKGVsdHR5cGUpKTsKKy0gIHVuc2lnbmVkIGludCBpOworKyAg VUxPTkdFU1QgaTsKKyAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CisgICBpbnQg aW5fcXVvdGVzID0gMDsKKyAgIGludCBuZWVkX2NvbW1hID0gMDsKK0BAIC00ODQsOSArNDg0LDkg QEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorICAgICB7CisgICAg ICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCisgICAgICAg ICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLworLSAgICAgIHVuc2lnbmVkIGlu dCByZXAxOworKyAgICAgIFVMT05HRVNUIHJlcDE7CisgICAgICAgLyogTnVtYmVyIG9mIHJlcGV0 aXRpb25zIHdlIGhhdmUgZGV0ZWN0ZWQgc28gZmFyLiAgKi8KKy0gICAgICB1bnNpZ25lZCBpbnQg cmVwczsKKysgICAgICBVTE9OR0VTVCByZXBzOworIAorICAgICAgIFFVSVQ7CisgCitAQCAtNTIw LDcgKzUyMCw4IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKKyAJ ICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0IChzdHJpbmcsIGksIHR5cGVfbGVuLCBieXRlX29yZGVy KSwKKyAJCQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcnLCB0eXBlX2xlbik7CisgCSAgZnB1dHNfZmls dGVyZWQgKCInIiwgc3RyZWFtKTsKKy0JICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIiA8 cmVwZWF0cyAldSB0aW1lcz4iKSwgcmVwcyk7CisrCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCBfKCIgPHJlcGVhdHMgJXMgdGltZXM+IiksCisrCQkJICAgIHB1bG9uZ2VzdCAocmVwcykpOwor IAkgIGkgPSByZXAxIC0gMTsKKyAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRf Y291bnRfdGhyZXNob2xkOworIAkgIG5lZWRfY29tbWEgPSAxOworQEAgLTU1Niw3ICs1NTcsNyBA QCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CisgCisgdm9pZAorIGFk YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCist CSAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCSAg ICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIFVMT05HRVNUIGxlbmd0aCwKKyAJICAgICAgY29u c3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKyAJICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTU3MCw3ICs1NzEsNyBA QCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CisgCisgdm9pZAorIGFk YV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK Ky0JICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkgICAg ICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkgICAgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCSAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKQorQEAgLTYwMiw4ICs2MDMsOCBAQCBhZGFfdmFsX3ByaW50X2FycmF5IChzdHJ1 Y3QgdHlwZSAqdHlwZSwKKyAgICAgeworICAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CisgICAgICAgc3Ry dWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKKy0gICAgICB1bnNp Z25lZCBpbnQgZWx0bGVuOworLSAgICAgIHVuc2lnbmVkIGludCBsZW47CisrICAgICAgVUxPTkdF U1QgZWx0bGVuOworKyAgICAgIFVMT05HRVNUIGxlbjsKKyAKKyAgICAgICAvKiBXZSBrbm93IHRo YXQgRUxUVFlQRSBjYW5ub3QgcG9zc2libHkgYmUgbnVsbCwgYmVjYXVzZSB3ZSBmb3VuZAorIAkg dGhhdCBUWVBFIGlzIGEgc3RyaW5nLWxpa2UgdHlwZS4gIFNpbWlsYXJseSwgdGhlIHNpemUgb2Yg RUxUVFlQRQorQEAgLTYyMSw3ICs2MjIsNyBAQCBhZGFfdmFsX3ByaW50X2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZSwKKyAgICAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCisgICAgICAgaWYg KG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkKKyAgICAgICAgIHsKKy0gICAgICAgICAgaW50 IHRlbXBfbGVuOworKyAgICAgICAgICBMT05HRVNUIHRlbXBfbGVuOworIAorICAgICAgICAgICAv KiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCisgICAgICAgICAgIGZvciAodGVtcF9sZW4gPSAw OworQEAgLTY1NCw3ICs2NTUsNyBAQCBhZGFfdmFsX3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAq dHlwZSwKKyAKKyBzdGF0aWMgdm9pZAorIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJIGludCBvZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAorKwkJIExPTkdFU1Qgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUg Km9yaWdpbmFsX3ZhbHVlLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQorQEAgLTkyMywxMiArOTI0LDEyIEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnMKKyAKKyBzdGF0aWMgaW50CisgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKKy0JCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IG9mZnNldCwKKysJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VT VCBvZmZzZXQsCisgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisg CQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCisgCQkgICAgaW50IGNvbW1hX25lZWRlZCwKKy0JCSAg ICBzdHJ1Y3QgdHlwZSAqb3V0ZXJfdHlwZSwgaW50IG91dGVyX29mZnNldCkKKysJCSAgICBzdHJ1 Y3QgdHlwZSAqb3V0ZXJfdHlwZSwgTE9OR0VTVCBvdXRlcl9vZmZzZXQpCisgeworICAgc3RydWN0 IHR5cGUgKnZhcl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZF9udW0pOworICAg aW50IHdoaWNoID0gYWRhX3doaWNoX3ZhcmlhbnRfYXBwbGllcyAodmFyX3R5cGUsIG91dGVyX3R5 cGUsCitAQCAtMTAzNSwxMSArMTAzNiwxMSBAQCBwcmludF9yZWNvcmQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnCisgCisgc3RhdGljIGludAorIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJICAgIGludCBvZmZzZXQs IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorKwkJICAgIExPTkdFU1Qgb2Zm c2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKKyAJCSAgICBpbnQgY29tbWFfbmVlZGVkLAorLQkJICAgIHN0cnVjdCB0eXBl ICpvdXRlcl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0KQorKwkJICAgIHN0cnVjdCB0eXBlICpvdXRl cl90eXBlLCBMT05HRVNUIG91dGVyX29mZnNldCkKKyB7CisgICBpbnQgaSwgbGVuOworIAorQEAg LTExMjAsNyArMTEyMSw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUs IGMKKyAJICAgIH0KKyAJICBlbHNlCisgCSAgICB7CistCSAgICAgIGludCBiaXRfcG9zID0gVFlQ RV9GSUVMRF9CSVRQT1MgKHR5cGUsIGkpOworKwkgICAgICBMT05HRVNUIGJpdF9wb3MgPSBUWVBF X0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7CisgCSAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklF TERfQklUU0laRSAodHlwZSwgaSk7CisgCSAgICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z IG9wdHM7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbm5vdGF0ZS5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxMi0w MS0wNCAwOToxNjo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2Fubm90YXRlLmMJMjAxMi0xMS0wNyAyMjowOToyOS43MzIxNDA5NDIgKzAxMDAKK0BAIC01MjIs MjEgKzUyMiwyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCisgfQorIAwKKyB2b2lkCist YW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9iZWdpbiAoaW50IGlkeCwgc3RydWN0IHR5cGUgKmVsdHR5 cGUpCisrYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9iZWdpbiAoTE9OR0VTVCBpZHgsIHN0cnVjdCB0 eXBlICplbHR0eXBlKQorIHsKKyAgIGlmIChhbm5vdGF0aW9uX2xldmVsID09IDIpCisgICAgIHsK Ky0gICAgICBwcmludGZfZmlsdGVyZWQgKCgiXG5cMDMyXDAzMmFycmF5LXNlY3Rpb24tYmVnaW4g JWQgIiksIGlkeCk7CisrICAgICAgcHJpbnRmX2ZpbHRlcmVkICgoIlxuXDAzMlwwMzJhcnJheS1z ZWN0aW9uLWJlZ2luICVzICIpLCBwbG9uZ2VzdCAoaWR4KSk7CisgICAgICAgcHJpbnRfdmFsdWVf ZmxhZ3MgKGVsdHR5cGUpOworICAgICAgIHByaW50Zl9maWx0ZXJlZCAoKCJcbiIpKTsKKyAgICAg fQorIH0KKyAKKyB2b2lkCistYW5ub3RhdGVfZWx0X3JlcCAodW5zaWduZWQgaW50IHJlcGNvdW50 KQorK2Fubm90YXRlX2VsdF9yZXAgKFVMT05HRVNUIHJlcGNvdW50KQorIHsKKyAgIGlmIChhbm5v dGF0aW9uX2xldmVsID09IDIpCistICAgIHByaW50Zl9maWx0ZXJlZCAoKCJcblwwMzJcMDMyZWx0 LXJlcCAldVxuIiksIHJlcGNvdW50KTsKKysgICAgcHJpbnRmX2ZpbHRlcmVkICgoIlxuXDAzMlww MzJlbHQtcmVwICVzXG4iKSwgcHVsb25nZXN0IChyZXBjb3VudCkpOworIH0KKyAKKyB2b2lkCitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbm5vdGF0ZS5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxMi0wMS0wNCAwOToxNjo1 Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2Fubm90YXRlLmgJ MjAxMi0xMS0wNyAyMjowOToyOS43MzMxNDA5NDEgKzAxMDAKK0BAIC05NCw4ICs5NCw4IEBAIGV4 dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKKyBleHRlcm4gdm9pZCBhbm5v dGF0ZV9mcmFtZV93aGVyZSAodm9pZCk7CisgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfZW5k ICh2b2lkKTsKKyAKKy1leHRlcm4gdm9pZCBhbm5vdGF0ZV9hcnJheV9zZWN0aW9uX2JlZ2luIChp bnQsIHN0cnVjdCB0eXBlICopOworLWV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXAgKHVuc2ln bmVkIGludCk7CisrZXh0ZXJuIHZvaWQgYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9iZWdpbiAoTE9O R0VTVCwgc3RydWN0IHR5cGUgKik7CisrZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZWx0X3JlcCAoVUxP TkdFU1QpOworIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKKyBleHRl cm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOworIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5 X3NlY3Rpb25fZW5kICh2b2lkKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FybS1s aW51eC1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9h cm0tbGludXgtbmF0LmMJMjAxMi0wOC0wMSAxNDo1NzowNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FybS1saW51eC1uYXQuYwkyMDEyLTExLTA3IDIyOjA5OjI5 LjczNDE0MDk0MCArMDEwMAorQEAgLTEwNzMsNyArMTA3Myw3IEBAIGFybV9saW51eF9yZW1vdmVf aHdfYnJlYWtwb2ludCAoc3RydWN0IGcKKyAvKiBBcmUgd2UgYWJsZSB0byB1c2UgYSBoYXJkd2Fy ZSB3YXRjaHBvaW50IGZvciB0aGUgTEVOIGJ5dGVzIHN0YXJ0aW5nIGF0IAorICAgIEFERFI/ICAq LworIHN0YXRpYyBpbnQKKy1hcm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChD T1JFX0FERFIgYWRkciwgaW50IGxlbikKKythcm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAgY29uc3Qgc3RydWN0 IGFybV9saW51eF9od2JwX2NhcCAqY2FwID0gYXJtX2xpbnV4X2dldF9od2JwX2NhcCAoKTsKKyAg IENPUkVfQUREUiBtYXhfd3BfbGVuZ3RoLCBhbGlnbmVkX2FkZHI7CitJbmRleDogZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9heC1nZGIuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi9heC1nZGIuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXgtZ2RiLmMJMjAxMi0xMS0wNyAyMjowOToyOS43 MzYxNDA5MzggKzAxMDAKK0BAIC04NCwxMiArODQsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNl ZF9wb3AgKHN0cnVjdCBnZGJhcgorIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0 IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7Cisgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAo c3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7Cisgc3RhdGljIHZvaWQgZ2VuX2Zl dGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKKy1zdGF0aWMgdm9pZCBn ZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIgKiwgaW50KTsKKytzdGF0aWMgdm9pZCBn ZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIgKiwgTE9OR0VTVCk7CisgCisgCisgc3Rh dGljIHZvaWQgZ2VuX2ZyYW1lX2FyZ3NfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0 IGFnZW50X2V4cHIgKik7Cisgc3RhdGljIHZvaWQgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChz dHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYWdlbnRfZXhwciAqKTsKKy1zdGF0aWMgdm9pZCBnZW5f b2Zmc2V0IChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIGludCBvZmZzZXQpOworK3N0YXRpYyB2b2lk IGdlbl9vZmZzZXQgKHN0cnVjdCBhZ2VudF9leHByICpheCwgTE9OR0VTVCBvZmZzZXQpOworIHN0 YXRpYyB2b2lkIGdlbl9zeW1fb2Zmc2V0IChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3Qgc3lt Ym9sICopOworIHN0YXRpYyB2b2lkIGdlbl92YXJfcmVmIChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1 Y3QgYWdlbnRfZXhwciAqYXgsCisgCQkJIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qg c3ltYm9sICp2YXIpOworQEAgLTEzNywxNSArMTM3LDE2IEBAIHN0YXRpYyB2b2lkIGdlbl9kZXJl ZiAoc3RydWN0IGFnZW50X2V4cHIKKyBzdGF0aWMgdm9pZCBnZW5fYWRkcmVzc19vZiAoc3RydWN0 IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsKKyBzdGF0aWMgdm9pZCBnZW5fYml0 ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgs CisgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCistCQkJICAgICAgc3RydWN0IHR5 cGUgKnR5cGUsIGludCBzdGFydCwgaW50IGVuZCk7CisrCQkJICAgICAgc3RydWN0IHR5cGUgKnR5 cGUsIExPTkdFU1Qgc3RhcnQsIExPTkdFU1QgZW5kKTsKKyBzdGF0aWMgdm9pZCBnZW5fcHJpbWl0 aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorIAkJCQkgc3RydWN0IGFnZW50X2V4 cHIgKmF4LAorIAkJCQkgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCistCQkJCSBpbnQgb2Zmc2V0 LCBpbnQgZmllbGRubywgc3RydWN0IHR5cGUgKnR5cGUpOworKwkJCQkgTE9OR0VTVCBvZmZzZXQs IGludCBmaWVsZG5vLAorKwkJCQkgc3RydWN0IHR5cGUgKnR5cGUpOworIHN0YXRpYyBpbnQgZ2Vu X3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorIAkJCQkgICAg IHN0cnVjdCBhZ2VudF9leHByICpheCwKKyAJCQkJICAgICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1 ZSwKKy0JCQkJICAgICBjaGFyICpmaWVsZCwgaW50IG9mZnNldCwKKysJCQkJICAgICBjaGFyICpm aWVsZCwgTE9OR0VTVCBvZmZzZXQsCisgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOworIHN0 YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3Qg YWdlbnRfZXhwciAqYXgsCisgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAorQEAgLTU3 MCw3ICs1NzEsNyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0Cisg ICAgcmlnaHQgc2hpZnQgaXQgYnkgLURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhp cyBnZW5lcmF0ZXMKKyAgICB1bnNpZ25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRzLiAgKi8KKyBz dGF0aWMgdm9pZAorLWdlbl9sZWZ0X3NoaWZ0IChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIGludCBk aXN0YW5jZSkKKytnZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBMT05HRVNU IGRpc3RhbmNlKQorIHsKKyAgIGlmIChkaXN0YW5jZSA+IDApCisgICAgIHsKK0BAIC02MjQsNyAr NjI1LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAorICAgIHBy b2dyYW1taW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUgdGhlIHNh bWUKKyAgICB0aGluZy4gICovCisgc3RhdGljIHZvaWQKKy1nZW5fb2Zmc2V0IChzdHJ1Y3QgYWdl bnRfZXhwciAqYXgsIGludCBvZmZzZXQpCisrZ2VuX29mZnNldCAoc3RydWN0IGFnZW50X2V4cHIg KmF4LCBMT05HRVNUIG9mZnNldCkKKyB7CisgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBs eSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKKyAgICAgIG1ha2VzIGl0IGVh c2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQorQEAgLTEy ODAsNyArMTI4MSw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHMK KyBzdGF0aWMgdm9pZAorIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IHN0cnVjdCBhZ2VudF9leHByICpheCwKKyAJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0 cnVjdCB0eXBlICp0eXBlLAorLQkJICBpbnQgc3RhcnQsIGludCBlbmQpCisrCQkgIExPTkdFU1Qg c3RhcnQsIExPTkdFU1QgZW5kKQorIHsKKyAgIC8qIE5vdGUgdGhhdCBvcHNbaV0gZmV0Y2hlcyA4 IDw8IGkgYml0cy4gICovCisgICBzdGF0aWMgZW51bSBhZ2VudF9vcCBvcHNbXQorQEAgLTEzMTUs MTMgKzEzMTYsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAor IAorICAgLyogVGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGluIHRoZSBmaWVsZCwg YnV0IHJvdW5kZWQgZG93bgorICAgICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRhcmllcy4gICovCist ICBpbnQgYm91bmRfc3RhcnQgPSAoc3RhcnQgLyBUQVJHRVRfQ0hBUl9CSVQpICogVEFSR0VUX0NI QVJfQklUOworLSAgaW50IGJvdW5kX2VuZCA9ICgoKGVuZCArIFRBUkdFVF9DSEFSX0JJVCAtIDEp CistCQkgICAgLyBUQVJHRVRfQ0hBUl9CSVQpCistCQkgICAqIFRBUkdFVF9DSEFSX0JJVCk7Cisr ICBMT05HRVNUIGJvdW5kX3N0YXJ0ID0gKHN0YXJ0IC8gVEFSR0VUX0NIQVJfQklUKSAqIFRBUkdF VF9DSEFSX0JJVDsKKysgIExPTkdFU1QgYm91bmRfZW5kID0gKCgoZW5kICsgVEFSR0VUX0NIQVJf QklUIC0gMSkKKysJCQkvIFRBUkdFVF9DSEFSX0JJVCkKKysJCSAgICAgICAqIFRBUkdFVF9DSEFS X0JJVCk7CisgCisgICAvKiBjdXJyZW50IGJpdCBvZmZzZXQgd2l0aGluIHRoZSBzdHJ1Y3R1cmUg Ki8KKy0gIGludCBvZmZzZXQ7CisrICBMT05HRVNUIG9mZnNldDsKKyAKKyAgIC8qIFRoZSBpbmRl eCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICovCisgICBpbnQgb3A7 CitAQCAtMTQ0MCw3ICsxNDQxLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cAorIHN0YXRpYyB2b2lkCisgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJl c3Npb24gKmV4cCwKKyAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QgYXhzX3Zh bHVlICp2YWx1ZSwKKy0JCSAgICAgaW50IG9mZnNldCwgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBl ICp0eXBlKQorKwkJICAgICBMT05HRVNUIG9mZnNldCwgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBl ICp0eXBlKQorIHsKKyAgIC8qIElzIHRoaXMgYSBiaXRmaWVsZD8gICovCisgICBpZiAoVFlQRV9G SUVMRF9QQUNLRUQgKHR5cGUsIGZpZWxkbm8pKQorQEAgLTE0NjUsNyArMTQ2Niw3IEBAIGdlbl9w cmltaXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICoKKyBzdGF0aWMgaW50CisgZ2VuX3N0 cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsCisgCQkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKKy0JCQkgIGNoYXIgKmZp ZWxkLCBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKysJCQkgIGNoYXIgKmZpZWxkLCBM T05HRVNUIG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgaW50IGksIHJzbHQ7Cisg ICBpbnQgbmJhc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsKK0luZGV4OiBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2F4LWdlbmVyYWwuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4y MDEyMDkyNi5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxMi0wNy0wMiAxNzoyOTozMy4wMDAwMDAw MDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2F4LWdlbmVyYWwuYwkyMDEyLTEx LTA3IDIyOjA5OjI5Ljc0MzE0MDkyNyArMDEwMAorQEAgLTE5Miw3ICsxOTIsNyBAQCBheF96ZXJv X2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCisgCisgLyogQXBwZW5kIGEgdHJhY2Vf cXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLworIHZvaWQK Ky1heF90cmFjZV9xdWljayAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuKQorK2F4X3RyYWNl X3F1aWNrIChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgTE9OR0VTVCBuKQorIHsKKyAgIC8qIE4gbXVz dCBmaXQgaW4gYSBieXRlLiAgKi8KKyAgIGlmIChuIDwgMCB8fCBuID4gMjU1KQorSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvYXguaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEy MDkyNi5vcmlnL2dkYi9heC5oCTIwMTItMDctMDIgMTc6Mjk6MzMuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9heC5oCTIwMTItMTEtMDcgMjI6MDk6MjkuNzQ0MTQw OTI1ICswMTAwCitAQCAtMTkwLDcgKzE5MCw3IEBAIGV4dGVybiB2b2lkIGF4X2V4dCAoc3RydWN0 IGFnZW50X2V4cHIgKkUKKyBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4 cHIgKkVYUFIsIGludCBOKTsKKyAKKyAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlv biB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCistZXh0ZXJuIHZvaWQgYXhfdHJhY2Vf cXVpY2sgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CisrZXh0ZXJuIHZvaWQgYXhf dHJhY2VfcXVpY2sgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBMT05HRVNUIE4pOworIAorIC8q IEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUg YW9wX2dvdG8gb3IKKyAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0 aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVh a3BvaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYnJl YWtwb2ludC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmMJMjAxMi0xMS0wNyAyMjowOToyOS43NDgxNDA5 MjAgKzAxMDAKK0BAIC02NTY1LDcgKzY1NjUsNyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2gg KHN0cnVjdCBhZGRyZXNzCisgCisgc3RhdGljIGludAorIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRj aF9yYW5nZSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVfQUREUiBhZGRyMSwK Ky0JCQkJaW50IGxlbjEsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UyLAorKwkJCQlMT05H RVNUIGxlbjEsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UyLAorIAkJCQlDT1JFX0FERFIg YWRkcjIpCisgeworICAgcmV0dXJuICgoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0 YXJnZXRfZ2RiYXJjaCkKK0BAIC0xMTA0Myw3ICsxMTA0Myw3IEBAIGNhbl91c2VfaGFyZHdhcmVf d2F0Y2hwb2ludCAoc3RydWN0IHZhbHUKKyAJCSAgICAgICYmIFRZUEVfQ09ERSAodnR5cGUpICE9 IFRZUEVfQ09ERV9BUlJBWSkpCisgCQl7CisgCQkgIENPUkVfQUREUiB2YWRkciA9IHZhbHVlX2Fk ZHJlc3MgKHYpOworLQkJICBpbnQgbGVuOworKwkJICBMT05HRVNUIGxlbjsKKyAJCSAgaW50IG51 bV9yZWdzOworIAorIAkJICBsZW4gPSAodGFyZ2V0X2V4YWN0X3dhdGNocG9pbnRzCitJbmRleDog Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmgKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTItMTEtMDcgMjI6MDA6NDMu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmgJ MjAxMi0xMS0wNyAyMjowOToyOS43NzgxNDA4NzUgKzAxMDAKK0BAIC0yNTAsNyArMjUwLDcgQEAg c3RydWN0IGJwX3RhcmdldF9pbmZvCisgCisgICAvKiBJZiB0aGlzIGlzIGEgcmFuZ2VkIGJyZWFr cG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKKyAgICAgIGxlbmd0aCBvZiB0aGUg cmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICovCistICBpbnQgbGVu Z3RoOworKyAgTE9OR0VTVCBsZW5ndGg7CisgCisgICAvKiBJZiB0aGUgYnJlYWtwb2ludCBsaXZl cyBpbiBtZW1vcnkgYW5kIHJlYWRpbmcgdGhhdCBtZW1vcnkgd291bGQKKyAgICAgIGdpdmUgYmFj ayB0aGUgYnJlYWtwb2ludCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY29udGVudHMsIHRoZW4K K0BAIC00MTksNyArNDE5LDcgQEAgc3RydWN0IGJwX2xvY2F0aW9uCisgICAvKiBGb3IgaGFyZHdh cmUgd2F0Y2hwb2ludHMsIHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgcmVnaW9uIGJlaW5nCisgICAg ICB3YXRjaGVkLiAgRm9yIGhhcmR3YXJlIHJhbmdlZCBicmVha3BvaW50cywgdGhlIHNpemUgb2Yg dGhlCisgICAgICBicmVha3BvaW50IHJhbmdlLiAgKi8KKy0gIGludCBsZW5ndGg7CisrICBMT05H RVNUIGxlbmd0aDsKKyAKKyAgIC8qIFR5cGUgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludC4gICovCisg ICBlbnVtIHRhcmdldF9od19icF90eXBlIHdhdGNocG9pbnRfdHlwZTsKK0luZGV4OiBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2MtbGFuZy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIw OTI2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5 Ljc4NjE0MDg2NCArMDEwMAorQEAgLTE4OSw3ICsxODksNyBAQCBjX3ByaW50Y2hhciAoaW50IGMs IHN0cnVjdCB0eXBlICp0eXBlLCBzCisgCisgdm9pZAorIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKKy0JICAgIGNvbnN0IGdkYl9ieXRlICpz dHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsIAorKwkgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmlu ZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkgICAgY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50 IGZvcmNlX2VsbGlwc2VzLAorIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCisgeworQEAgLTY3OCw3ICs2NzgsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90CisgCSAgfQorIAllbHNlCisgCSAgeworLQkgICAgaW50IGk7Cisr CSAgICBMT05HRVNUIGk7CisgCisgCSAgICAvKiBXcml0ZSB0aGUgdGVybWluYXRpbmcgY2hhcmFj dGVyLiAgKi8KKyAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7ICsraSkK K0BAIC02ODcsNyArNjg3LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpleHBl Y3RfdAorIAkgICAgaWYgKHNhdGlzZnlfZXhwZWN0ZWQpCisgCSAgICAgIHsKKyAJCUxPTkdFU1Qg bG93X2JvdW5kLCBoaWdoX2JvdW5kOworLQkJaW50IGVsZW1lbnRfc2l6ZSA9IFRZUEVfTEVOR1RI ICh0eXBlKTsKKysJCUxPTkdFU1QgZWxlbWVudF9zaXplID0gVFlQRV9MRU5HVEggKHR5cGUpOwor IAorIAkJaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAoZXhwZWN0X3R5 cGUpLAorIAkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCitJbmRleDogZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9jLWxhbmcuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEy MDkyNi5vcmlnL2dkYi9jLWxhbmcuaAkyMDEyLTAzLTAxIDIwOjI2OjEyLjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYy1sYW5nLmgJMjAxMi0xMS0wNyAyMjowOToy OS43ODcxNDA4NjMgKzAxMDAKK0BAIC03Miw3ICs3Miw3IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRf dHlwZWRlZiAoc3RydWN0IHR5cGUKKyAJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOworIAorIGV4 dGVybiB2b2lkIGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAor LQkJCSBpbnQsIENPUkVfQUREUiwKKysJCQkgTE9OR0VTVCwgQ09SRV9BRERSLAorIAkJCSBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKK0BAIC05Miw3ICs5Miw3IEBAIGV4dGVy biB2b2lkIGNfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXAKKyBleHRlcm4gdm9pZCBjX3ByaW50 c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwKKyAJCQlzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwK KyAJCQljb25zdCBnZGJfYnl0ZSAqc3RyaW5nLAorLQkJCXVuc2lnbmVkIGludCBsZW5ndGgsCisr CQkJVUxPTkdFU1QgbGVuZ3RoLAorIAkJCWNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsCisgCQkJ aW50IGZvcmNlX2VsbGlwc2VzLAorIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKTsKK0BAIC0xMTgsMTQgKzExOCwxNCBAQCBleHRlcm4gdm9pZCBjcF9wcmludF9j bGFzc19tZW1iZXIgKGNvbnN0CisgCQkJCSAgIHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7Cisg CisgZXh0ZXJuIHZvaWQgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1 Y3QgdHlwZSAqLAorLQkJCQkgICBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKKysJ CQkJICAgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorIAkJCQkgICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCQkg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAorIAkJCQkgICBzdHJ1Y3QgdHlw ZSAqKiwgaW50KTsKKyAKKyBleHRlcm4gdm9pZCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAo c3RydWN0IHR5cGUgKiwKKy0JCQkJCWNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAor KwkJCQkJY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorIAkJCQkJc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAorIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJCQljb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvYy12YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL2MtdmFscHJpbnQuYwkyMDEyLTA1LTE4IDIzOjAyOjQ3LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYy12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6 MjkuNzg5MTQwODYxICswMTAwCitAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKKyAKKyB2b2lkCisgY192YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JICAgICBpbnQgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNl dCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCisgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKyAJ ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKK0BAIC0xNDQs NyArMTQ0LDcgQEAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZAorICAg dW5zaWduZWQgbGVuOworICAgc3RydWN0IHR5cGUgKmVsdHR5cGUsICp1bnJlc29sdmVkX2VsdHR5 cGU7CisgICBzdHJ1Y3QgdHlwZSAqdW5yZXNvbHZlZF90eXBlID0gdHlwZTsKKy0gIHVuc2lnbmVk IGVsdGxlbjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKyAgIENPUkVfQUREUiBhZGRyOworIAorICAg Q0hFQ0tfVFlQRURFRiAodHlwZSk7CitAQCAtMzY0LDkgKzM2NCw5IEBAIGNfdmFsX3ByaW50IChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKKyAJICAvKiBQcmludCB2dGFibGUgZW50cnkgLSB3 ZSBvbmx5IGdldCBoZXJlIGlmIE5PVCB1c2luZworIAkgICAgIC1mdnRhYmxlX3RodW5rcy4gIChP dGhlcndpc2UsIGxvb2sgdW5kZXIKKyAJICAgICBUWVBFX0NPREVfUFRSLikgICovCistCSAgaW50 IG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKKy0JCQkrIFRZUEVfRklFTERfQklUUE9TICh0eXBl LAorLQkJCQkJICAgICBWVEJMX0ZOQUREUl9PRkZTRVQpIC8gOCk7CisrCSAgTE9OR0VTVCBvZmZz ZXQgPSAoZW1iZWRkZWRfb2Zmc2V0CisrCQkJICAgICsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUs CisrCQkJCQkJIFZUQkxfRk5BRERSX09GRlNFVCkgLyA4KTsKKyAJICBzdHJ1Y3QgdHlwZSAqZmll bGRfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwKKyAJCQkJCQkgICAgIFZUQkxfRk5BRERS X09GRlNFVCk7CisgCSAgQ09SRV9BRERSIGFkZHIKK0BAIC00NDUsNyArNDQ1LDggQEAgY192YWx1 ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAorIAkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworICAgc3RydWN0IHR5cGUgKnR5cGUs ICpyZWFsX3R5cGUsICp2YWxfdHlwZTsKKy0gIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKKysg IGludCBmdWxsLCB1c2luZ19lbmM7CisrICBMT05HRVNUIHRvcDsKKyAgIHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKKyAKKyAgIG9wdHMuZGVyZWZfcmVmID0gMTsK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2NwLWFiaS5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTItMDMtMTUgMTY6NDM6MTEu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcC1hYmkuYwkyMDEy LTExLTA3IDIyOjA5OjI5Ljc5MDE0MDg1OSArMDEwMAorQEAgLTY4LDEzICs2OCwxMyBAQCBpc19v cGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lKQorICAgcmV0dXJuICgqY3VycmVudF9jcF9h YmkuaXNfb3BlcmF0b3JfbmFtZSkgKG5hbWUpOworIH0KKyAKKy1pbnQKKytMT05HRVNUCisgYmFz ZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCistCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAorKwkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQorIHsKKyAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhj ZXB0aW9uIGV4OworLSAgaW50IHJlcyA9IDA7CisrICBMT05HRVNUIHJlcyA9IDA7CisgCisgICBn ZGJfYXNzZXJ0IChjdXJyZW50X2NwX2FiaS5iYXNlY2xhc3Nfb2Zmc2V0ICE9IE5VTEwpOworIAor QEAgLTk4LDcgKzk4LDcgQEAgYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGlu dAorIHN0cnVjdCB2YWx1ZSAqCisgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVl ICoqYXJnMXAsCisgCQkJc3RydWN0IGZuX2ZpZWxkICpmLCBpbnQgaiwKKy0JCQlzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50IG9mZnNldCkKKysJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBvZmZz ZXQpCisgeworICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBOVUxM KQorICAgICByZXR1cm4gTlVMTDsKK0BAIC0xMDgsNyArMTA4LDcgQEAgdmFsdWVfdmlydHVhbF9m bl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQorIAorIHN0cnVjdCB0eXBlICoKKyB2YWx1ZV9ydHRp X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAorLQkJIGludCAqdG9wLCBpbnQgKnVz aW5nX2VuYykKKysJCSBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQorIHsKKyAgIHN0cnVj dCB0eXBlICpyZXQgPSBOVUxMOworICAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZTsK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2NwLWFiaS5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTItMDMtMTUgMTY6NDM6MTEu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcC1hYmkuaAkyMDEy LTExLTA3IDIyOjA5OjI5Ljc5MjE0MDg1NSArMDEwMAorQEAgLTEwOCw3ICsxMDgsNyBAQCBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCisgCQkJCQkgICAgIHN0cnVjdCBm bl9maWVsZCAqZiwKKyAJCQkJCSAgICAgaW50IGosCisgCQkJCQkgICAgIHN0cnVjdCB0eXBlICp0 eXBlLAorLQkJCQkJICAgICBpbnQgb2Zmc2V0KTsKKysJCQkJCSAgICAgTE9OR0VTVCBvZmZzZXQp OworIAorIAorIC8qIFRyeSB0byBmaW5kIHRoZSBydW4tdGltZSB0eXBlIG9mIFZBTFVFLCB1c2lu ZyBDKysgcnVuLXRpbWUgdHlwZQorQEAgLTEzNSw3ICsxMzUsNyBAQCBleHRlcm4gc3RydWN0IHZh bHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCisgICAgRlVMTCwgVE9QLCBhbmQgVVNJTkdfRU5DIGNh biBlYWNoIGJlIHplcm8sIGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QKKyAgICBwcm92aWRlIHRoZSBj b3JyZXNwb25kaW5nIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAgKi8KKyBleHRlcm4gc3RydWN0IHR5 cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBpbnQgKnRvcCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBMT05HRVNUICp0b3AsCisgCQkJ CSAgICAgaW50ICp1c2luZ19lbmMpOworIAorIC8qIENvbXB1dGUgdGhlIG9mZnNldCBvZiB0aGUg YmFzZWNsYXNzIHdoaWNoIGlzIHRoZSBJTkRFWHRoIGJhc2VjbGFzcworQEAgLTE0NCwxMSArMTQ0 LDExIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV90eXBlIChzdHIKKyAgICBjb250 ZW50cyBvZiBWQUwuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2 YWx1ZQorICAgIHJlbGF0aXZlIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICov CisgCistZXh0ZXJuIGludCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0J CQkgICAgIGludCBpbmRleCwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LAorLQkJCSAgICAgQ09SRV9BRERSIGFkZHJlc3MsCistCQkJICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CisrZXh0ZXJuIExPTkdFU1QgYmFzZWNsYXNzX29mZnNl dCAoc3RydWN0IHR5cGUgKnR5cGUsCisrCQkJCSBpbnQgaW5kZXgsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAorKwkJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJCSBDT1JFX0FERFIg YWRkcmVzcywKKysJCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAKKyAvKiBEZXNjcmli ZSB0aGUgdGFyZ2V0IG9mIGEgcG9pbnRlciB0byBtZXRob2QuICBDT05URU5UUyBpcyB0aGUgYnl0 ZQorICAgIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBwb2ludGVyIHRvIG1ldGhvZC4gIFRZUEUg aXMgdGhlIHBvaW50ZXIgdG8KK0BAIC0yMDQsMTIgKzIwNCwxMyBAQCBzdHJ1Y3QgY3BfYWJpX29w cworICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQpIChzdHJ1Y3QgdmFsdWUgKiph cmcxcCwKKyAJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAorIAkJCQkgICAgIGludCBqLCBz dHJ1Y3QgdHlwZSAqIHR5cGUsCistCQkJCSAgICAgaW50IG9mZnNldCk7CisrCQkJCSAgICAgTE9O R0VTVCBvZmZzZXQpOworICAgc3RydWN0IHR5cGUgKigqcnR0aV90eXBlKSAoc3RydWN0IHZhbHVl ICp2LCBpbnQgKmZ1bGwsCistCQkJICAgICBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpOworLSAg aW50ICgqYmFzZWNsYXNzX29mZnNldCkgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCist CQkJICAgY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCistCQkJ ICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKysJCQkgICAg IExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOworKyAgTE9OR0VTVCAoKmJhc2VjbGFzc19v ZmZzZXQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAorKwkJCSAgICAgICBjb25zdCBi ZmRfYnl0ZSAqdmFsYWRkciwKKysJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAorKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7Cisg ICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKKyAJ CQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCisgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0p OworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvY3AtdmFscHJpbnQuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTItMTEt MDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9j cC12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MTI6MTQuMzkyOTAxNjk5ICswMTAwCitAQCAtODIs NyArODIsNyBAQCBzdGF0aWMgdm9pZCBjcF9wcmludF9zdGF0aWNfZmllbGQgKHN0cnVjCisgCQkJ CSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOworIAorIHN0YXRpYyB2b2lk IGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAorLQkJCSAgICBj b25zdCBnZGJfYnl0ZSAqLCBpbnQsCisrCQkJICAgIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1Qs CisgCQkJICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKKyAJCQkgICAgaW50LCBjb25z dCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKiwKK0BAIC0xNTYsNyArMTU2LDcgQEAgY3BfaXNfdnRibF9tZW1iZXIgKHN0cnVjdCB0eXBl ICp0eXBlKQorIAorIHZvaWQKKyBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAorLQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBpbnQgb2Zmc2V0LAorKwkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBM T05HRVNUIG9mZnNldCwKKyAJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKyAJCSAgICAgICBpbnQgcmVjdXJzZSwgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwsCisgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMs CitAQCAtMzYzLDcgKzM2Myw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUg KnR5cGUKKyAJCX0KKyAJICAgICAgZWxzZSBpZiAoaSA9PSB2cHRyX2ZpZWxkbm8gJiYgdHlwZSA9 PSB2cHRyX2Jhc2V0eXBlKQorIAkJeworLQkJICBpbnQgaV9vZmZzZXQgPSBvZmZzZXQgKyBUWVBF X0ZJRUxEX0JJVFBPUyAodHlwZSwgaSkgLyA4OworKwkJICBMT05HRVNUIGlfb2Zmc2V0ID0gb2Zm c2V0ICsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGkpIC8gODsKKyAJCSAgc3RydWN0IHR5cGUg KmlfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSk7CisgCisgCQkgIGlmICh2YWxwcmlu dF9jaGVja192YWxpZGl0eSAoc3RyZWFtLCBpX3R5cGUsIGlfb2Zmc2V0LCB2YWwpKQorQEAgLTQ0 Niw3ICs0NDYsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCisg Cisgdm9pZAorIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZSAqdHlwZSwK Ky0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQsCisrCQkJICAgIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIG9mZnNldCwKKyAJCQkgICAgQ09SRV9BRERS IGFkZHJlc3MsCisgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAor IAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKK0BAIC00NjIsNyArNDYyLDggQEAgY3Bf cHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlCisgCQkJVEFSR0VUX0NIQVJfQklU ICogVFlQRV9MRU5HVEggKHR5cGUpKSkKKyAgICAgeworICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFs dWU7CistICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOworKyAgICAgIGludCBmdWxsLCB1 c2luZ19lbmM7CisrICAgICAgTE9OR0VTVCB0b3A7CisgCisgICAgICAgLyogVWdoLCB3ZSBoYXZl IHRvIGNvbnZlcnQgYmFjayB0byBhIHZhbHVlIGhlcmUuICAqLworICAgICAgIHZhbHVlID0gdmFs dWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAodHlwZSwgdmFsYWRkciArIG9mZnNldCwKK0BA IC00ODYsNyArNDg3LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBl CisgCisgc3RhdGljIHZvaWQKKyBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCB0eXBlICpyZWFsX3R5cGUsCistCQljb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9m ZnNldCwKKysJCWNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIG9mZnNldCwKKyAJCUNP UkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJaW50IHJlY3Vyc2Us IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMsCitAQCAtNDk2LDcgKzQ5Nyw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWMKKyAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tfbmV4 dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKKyAgIHN0cnVjdCBvYnN0YWNrIHRtcF9v YnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOworICAgaW50IGksIG5fYmFzZWNsYXNzZXMg PSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOworLSAgaW50IHRoaXNvZmZzZXQ7CisrICBMT05H RVNUIHRoaXNvZmZzZXQ7CisgICBzdHJ1Y3QgdHlwZSAqdGhpc3R5cGU7CisgCisgICBpZiAoZG9u dF9wcmludF92YiA9PSAwKQorQEAgLTUxMCw3ICs1MTEsNyBAQCBjcF9wcmludF92YWx1ZSAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjCisgCisgICBmb3IgKGkgPSAwOyBpIDwgbl9iYXNlY2xhc3Nl czsgaSsrKQorICAgICB7CistICAgICAgaW50IGJvZmZzZXQgPSAwOworKyAgICAgIExPTkdFU1Qg Ym9mZnNldCA9IDA7CisgICAgICAgaW50IHNraXA7CisgICAgICAgc3RydWN0IHR5cGUgKmJhc2Vj bGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpKSk7CisgICAgICAg Y29uc3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7CitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9kLWxhbmcuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4y MDEyMDkyNi5vcmlnL2dkYi9kLWxhbmcuaAkyMDEyLTAzLTAxIDIwOjI2OjEyLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZC1sYW5nLmgJMjAxMi0xMS0wNyAyMjow OToyOS43OTUxNDA4NTIgKzAxMDAKK0BAIC0yNSw3ICsyNSw3IEBACisgZXh0ZXJuIGNoYXIgKmRf ZGVtYW5nbGUgKGNvbnN0IGNoYXIgKm1hbmdsZWQsIGludCBvcHRpb25zKTsKKyAKKyBleHRlcm4g dm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAorLQkJCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCQkg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCSBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2QtdmFscHJpbnQuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxMi0wMy0wMSAyMDoy NjoxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2QtdmFscHJp bnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljc5NTE0MDg1MiArMDEwMAorQEAgLTI5LDcgKzI5LDcg QEAKKyAKKyBzdGF0aWMgaW50CisgZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAorIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorQEAgLTcxLDkgKzcxLDkgQEAgZHluYW1pY19h cnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgYworIAorIC8qIEltcGxlbWVudHMgdGhlIGxh X3ZhbF9wcmludCByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KKyB2b2lkCistZF92YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVk ZGVkX29mZnNldCwKKy0gICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorLQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAorK2RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCisrCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor KwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKKyAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCisgeworICAgaW50IHJldDsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2RvdWJsZXN0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9n ZGIvZG91Ymxlc3QuYwkyMDEyLTAxLTA0IDA5OjE3OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvZG91Ymxlc3QuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljc5NzE0 MDg0OCArMDEwMAorQEAgLTc3MCw3ICs3NzAsNyBAQCBmbG9hdGZvcm1hdF9mcm9tX2RvdWJsZXN0 IChjb25zdCBzdHJ1Y3QKKyAgICBidXQgbm90IHBhc3NlZCBvbiBieSBHREIuICBUaGlzIHNob3Vs ZCBiZSBmaXhlZC4gICovCisgCisgc3RhdGljIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqCist ZmxvYXRmb3JtYXRfZnJvbV9sZW5ndGggKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgbGVu KQorK2Zsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgTE9O R0VTVCBsZW4pCisgeworICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpmb3JtYXQ7CisgCitA QCAtNzk4LDggKzc5OCw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJj aAorICAgZWxzZQorICAgICBmb3JtYXQgPSBOVUxMOworICAgaWYgKGZvcm1hdCA9PSBOVUxMKQor LSAgICBlcnJvciAoXygiVW5yZWNvZ25pemVkICVkLWJpdCBmbG9hdGluZy1wb2ludCB0eXBlLiIp LAorLQkgICBsZW4gKiBUQVJHRVRfQ0hBUl9CSVQpOworKyAgICBlcnJvciAoXygiVW5yZWNvZ25p emVkICVzLWJpdCBmbG9hdGluZy1wb2ludCB0eXBlLiIpLAorKwkgICBwbG9uZ2VzdCAobGVuICog VEFSR0VUX0NIQVJfQklUKSk7CisgICByZXR1cm4gZm9ybWF0OworIH0KKyAKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2R3YXJmMmxvYy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9kd2FyZjJsb2MuYwkyMDEyLTEx LTA3IDIyOjA5OjI5LjgwMDE0MDg0NCArMDEwMAorQEAgLTE2NzIsMTkgKzE2NzIsMTkgQEAgaW5z ZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKKyAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFr ZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLWNvcHlfYml0 d2lzZSAoZ2RiX2J5dGUgKmRlc3QsIHVuc2lnbmVkIGludCBkZXN0X29mZnNldF9iaXRzLAorLQkg ICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlLCB1bnNpZ25lZCBpbnQgc291cmNlX29mZnNldF9i aXRzLAorLQkgICAgICB1bnNpZ25lZCBpbnQgYml0X2NvdW50LAorK2NvcHlfYml0d2lzZSAoZ2Ri X2J5dGUgKmRlc3QsIFVMT05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAgICAgIGNvbnN0IGdk Yl9ieXRlICpzb3VyY2UsIFVMT05HRVNUIHNvdXJjZV9vZmZzZXQsCisrCSAgICAgIFVMT05HRVNU IGJpdF9jb3VudCwKKyAJICAgICAgaW50IGJpdHNfYmlnX2VuZGlhbikKKyB7CistICB1bnNpZ25l ZCBpbnQgZGVzdF9hdmFpbDsKKysgIHVuc2lnbmVkIGludCBkZXN0X2F2YWlsLCBzb3VyY2Vfb2Zm c2V0X2JpdHM7CisgICBpbnQgZGF0dW07CisgCisgICAvKiBSZWR1Y2UgZXZlcnl0aGluZyB0byBi eXRlLXNpemUgcGllY2VzLiAgKi8KKyAgIGRlc3QgKz0gZGVzdF9vZmZzZXRfYml0cyAvIDg7Cisg ICBkZXN0X29mZnNldF9iaXRzICU9IDg7CistICBzb3VyY2UgKz0gc291cmNlX29mZnNldF9iaXRz IC8gODsKKy0gIHNvdXJjZV9vZmZzZXRfYml0cyAlPSA4OworKyAgc291cmNlICs9IHNvdXJjZV9v ZmZzZXQgLyA4OworKyAgc291cmNlX29mZnNldF9iaXRzID0gc291cmNlX29mZnNldCAlIDg7Cisg CisgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OworIAorQEAgLTE3MjIs MTMgKzE3MjIsMTMgQEAgc3RhdGljIHZvaWQKKyByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp2KQorIHsKKyAgIGludCBpOworLSAgbG9uZyBvZmZzZXQgPSAwOworKyAgTE9OR0VTVCBv ZmZzZXQgPSAwOworICAgVUxPTkdFU1QgYml0c190b19za2lwOworICAgZ2RiX2J5dGUgKmNvbnRl bnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKKyAgICAgPSAoc3RydWN0IHBpZWNlX2Ns b3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7CisgICBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChWQUxVRV9GUkFNRV9JRCAodikpOworLSAgc2l6 ZV90IHR5cGVfbGVuOworKyAgVUxPTkdFU1QgdHlwZV9sZW47CisgICBzaXplX3QgYnVmZmVyX3Np emUgPSAwOworICAgY2hhciAqYnVmZmVyID0gTlVMTDsKKyAgIHN0cnVjdCBjbGVhbnVwICpjbGVh bnVwOworQEAgLTE3NTUsOCArMTc1NSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnYpCisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9s ZW47IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMt PnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplLCB0aGlzX3NpemVfYml0czsKKy0g ICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0cywgc291cmNlX29m ZnNldDsKKysgICAgICBVTE9OR0VTVCB0aGlzX3NpemUsIHRoaXNfc2l6ZV9iaXRzOworKyAgICAg IExPTkdFU1QgZGVzdF9vZmZzZXRfYml0cywgc291cmNlX29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zm c2V0OworICAgICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVyOworIAorICAg ICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3Ig Y29weWluZywgaW4KK0BAIC0xOTA1LDEzICsxOTA1LDEzIEBAIHN0YXRpYyB2b2lkCisgd3JpdGVf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgewor ICAgaW50IGk7CistICBsb25nIG9mZnNldCA9IDA7CisrICBMT05HRVNUIG9mZnNldCA9IDA7Cisg ICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7CisgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHM7Cisg ICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAq KSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUgPSBmcmFtZV9maW5kX2J5X2lkIChWQUxVRV9GUkFNRV9JRCAodG8pKTsKKy0gIHNpemVfdCB0 eXBlX2xlbjsKKysgIFVMT05HRVNUIHR5cGVfbGVuOworICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0g MDsKKyAgIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsK K0BAIC0xOTM5LDggKzE5MzksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dG8sIHN0CisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9s ZW47IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMt PnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplX2JpdHMsIHRoaXNfc2l6ZTsKKy0g ICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0cywgZGVzdF9vZmZz ZXQsIHNvdXJjZV9vZmZzZXQ7CisrICAgICAgVUxPTkdFU1QgdGhpc19zaXplX2JpdHMsIHRoaXNf c2l6ZTsKKysgICAgICBMT05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0 cywgZGVzdF9vZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CisgICAgICAgaW50IG5lZWRfYml0d2lzZTsK KyAgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1ZmZlcjsKKyAKK0BAIC0yMDY5LDggKzIw NjksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CisgICAgaW1w bGljaXQgcG9pbnRlci4gICovCisgCisgc3RhdGljIGludAorLWNoZWNrX3BpZWNlZF92YWx1ZV9i aXRzIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgYml0X29mZnNldCwKKy0JCQkgaW50 IGJpdF9sZW5ndGgsCisrY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKKysJCQkgTE9OR0VTVCBiaXRfbGVuZ3RoLAor IAkJCSBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGNoZWNrX2ZvcikKKyB7CisgICBzdHJ1Y3Qg cGllY2VfY2xvc3VyZSAqYworQEAgLTIwODYsNyArMjA4Niw3IEBAIGNoZWNrX3BpZWNlZF92YWx1 ZV9iaXRzIChjb25zdCBzdHJ1Y3QgdmEKKyAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAm JiBiaXRfbGVuZ3RoID4gMDsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJf cGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlzX3NpemVfYml0cyA9 IHAtPnNpemU7CisrICAgICAgVUxPTkdFU1QgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworIAor ICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKKyAJeworQEAgLTIxMjQsOCArMjEyNCw4IEBAIGNo ZWNrX3BpZWNlZF92YWx1ZV9iaXRzIChjb25zdCBzdHJ1Y3QgdmEKKyB9CisgCisgc3RhdGljIGlu dAorLWNoZWNrX3BpZWNlZF92YWx1ZV92YWxpZGl0eSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1 ZSwgaW50IGJpdF9vZmZzZXQsCistCQkJICAgICBpbnQgYml0X2xlbmd0aCkKKytjaGVja19waWVj ZWRfdmFsdWVfdmFsaWRpdHkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0 X29mZnNldCwKKysJCQkgICAgIExPTkdFU1QgYml0X2xlbmd0aCkKKyB7CisgICByZXR1cm4gY2hl Y2tfcGllY2VkX3ZhbHVlX2JpdHMgKHZhbHVlLCBiaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoLAorIAkJ CQkgIERXQVJGX1ZBTFVFX01FTU9SWSk7CitAQCAtMjE0Myw4ICsyMTQzLDggQEAgY2hlY2tfcGll Y2VkX3ZhbHVlX2ludmFsaWQgKGNvbnN0IHN0cnVjdAorICAgIGEgc3ludGhldGljIHBvaW50ZXIu ICAqLworIAorIHN0YXRpYyBpbnQKKy1jaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAorLQkJCQlpbnQgYml0X2xl bmd0aCkKKytjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKKysJCQkJTE9OR0VTVCBiaXRfbGVuZ3RoKQor IHsKKyAgIHJldHVybiBjaGVja19waWVjZWRfdmFsdWVfYml0cyAodmFsdWUsIGJpdF9vZmZzZXQs IGJpdF9sZW5ndGgsCisgCQkJCSAgRFdBUkZfVkFMVUVfSU1QTElDSVRfUE9JTlRFUik7CitAQCAt MjE2OSw5ICsyMTY5LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2 YWwKKyAgIHN0cnVjdCB0eXBlICp0eXBlOworICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwor ICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOworLSAgaW50IGksIGJpdF9vZmZz ZXQsIGJpdF9sZW5ndGg7CisrICBpbnQgaTsKKysgIExPTkdFU1QgYml0X2xlbmd0aDsKKyAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7CistICBMT05HRVNUIGJ5dGVfb2Zm c2V0OworKyAgTE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNldDsKKyAKKyAgIHR5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOworICAgaWYgKFRZUEVfQ09ERSAodHlw ZSkgIT0gVFlQRV9DT0RFX1BUUikKK0BAIC0yMTg1LDcgKzIxODYsNyBAQCBpbmRpcmVjdF9waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVj ZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplX2Jp dHMgPSBwLT5zaXplOworKyAgICAgIFVMT05HRVNUIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZTsK KyAKKyAgICAgICBpZiAoYml0X29mZnNldCA+IDApCisgCXsKK0BAIC0yNDAwLDcgKzI0MDEsNyBA QCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CisgCSAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKKyAJICAgIGdkYl9ieXRl ICpjb250ZW50czsKKyAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CistCSAgICBzaXpl X3QgbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWx1ZSkpOworKwkgICAgVUxPTkdFU1Qg biA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWx1ZSkpOworIAorIAkgICAgaWYgKGJ5dGVf b2Zmc2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKKyAJICAgICAgaW52YWxpZF9zeW50aGV0 aWNfcG9pbnRlciAoKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2R3YXJmMnJlYWQu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjgwOTE0MDgzMiArMDEw MAorQEAgLTExMjgsMTIgKzExMjgsMTIgQEAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9j b21wbGFpbnQgKAorIH0KKyAKKyBzdGF0aWMgdm9pZAorLWR3YXJmMl9jb25zdF92YWx1ZV9sZW5n dGhfbWlzbWF0Y2hfY29tcGxhaW50IChjb25zdCBjaGFyICphcmcxLCBpbnQgYXJnMiwKKy0JCQkJ CSAgICAgIGludCBhcmczKQorK2R3YXJmMl9jb25zdF92YWx1ZV9sZW5ndGhfbWlzbWF0Y2hfY29t cGxhaW50IChjb25zdCBjaGFyICphcmcxLCBMT05HRVNUIGFyZzIsCisrCQkJCQkgICAgICBMT05H RVNUIGFyZzMpCisgeworICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorLQkgICAg IF8oImNvbnN0IHZhbHVlIGxlbmd0aCBtaXNtYXRjaCBmb3IgJyVzJywgZ290ICVkLCBleHBlY3Rl ZCAlZCIpLAorLQkgICAgIGFyZzEsIGFyZzIsIGFyZzMpOworKwkgICAgIF8oImNvbnN0IHZhbHVl IGxlbmd0aCBtaXNtYXRjaCBmb3IgJyVzJywgZ290ICVzLCBleHBlY3RlZCAlcyIpLAorKwkgICAg IGFyZzEsIHBsb25nZXN0IChhcmcyKSwgcGxvbmdlc3QgKGFyZzMpKTsKKyB9CisgCisgc3RhdGlj IHZvaWQKK0BAIC05ODMxLDggKzk4MzEsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwCisgCSAgICAgICAgIG9iamVjdCwgYW5kIHRoZW4gc3VidHJhY3Qgb2ZmIHRo ZSBudW1iZXIgb2YgYml0cyBvZgorIAkgICAgICAgICB0aGUgZmllbGQgaXRzZWxmLiAgVGhlIHJl c3VsdCBpcyB0aGUgYml0IG9mZnNldCBvZgorIAkgICAgICAgICB0aGUgTFNCIG9mIHRoZSBmaWVs ZC4gICovCistCSAgICAgIGludCBhbm9ueW1vdXNfc2l6ZTsKKy0JICAgICAgaW50IGJpdF9vZmZz ZXQgPSBEV19VTlNORCAoYXR0cik7CisrCSAgICAgIExPTkdFU1QgYW5vbnltb3VzX3NpemU7Cisr CSAgICAgIExPTkdFU1QgYml0X29mZnNldCA9IERXX1VOU05EIChhdHRyKTsKKyAKKyAJICAgICAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOworIAkgICAgICBp ZiAoYXR0cikKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2V2YWwuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9ldmFsLmMJMjAxMi0xMS0wNyAyMjow MDo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2V2YWwuYwky MDEyLTExLTA3IDIyOjEzOjUyLjA5NjgzNzMxNCArMDEwMAorQEAgLTMyMCw3ICszMjAsOCBAQCBl dmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCisgICAgICAgaW50IHBjID0g KnBvczsKKyAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CisgICAgICAgaW50IG5sYWJl bHMgPSAwOworLSAgICAgIGludCBiaXRwb3MsIGJpdHNpemU7CisrICAgICAgaW50IGJpdHNpemU7 CisrICAgICAgTE9OR0VTVCBiaXRwb3M7CisgICAgICAgYmZkX2J5dGUgKmFkZHI7CisgCisgICAg ICAgLyogU2tpcCBwYXN0IHRoZSBsYWJlbHMsIGFuZCBjb3VudCB0aGVtLiAgKi8KK0BAIC00NjMs NyArNDY0LDcgQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorIAkJ ICAgIGVudW0gbm9zaWRlIG5vc2lkZSwgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9i b3VuZCkKKyB7CisgICBMT05HRVNUIGluZGV4OworLSAgaW50IGVsZW1lbnRfc2l6ZSA9IFRZUEVf TEVOR1RIICh2YWx1ZV90eXBlIChlbGVtZW50KSk7CisrICBMT05HRVNUIGVsZW1lbnRfc2l6ZSA9 IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChlbGVtZW50KSk7CisgCisgICBpZiAoZXhwLT5lbHRz Wypwb3NdLm9wY29kZSA9PSBCSU5PUF9DT01NQSkKKyAgICAgeworQEAgLTgxNiwxMSArODE3LDEx IEBAIGJpbm9wX3Byb21vdGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWYKKyAgICAgLyogRklY TUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIu ICAqLworICAgICB7CisgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9 IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CistICAgICAgdW5zaWduZWQgaW50IHByb21vdGVkX2xl bjEgPSBUWVBFX0xFTkdUSCAodHlwZTEpOworLSAgICAgIHVuc2lnbmVkIGludCBwcm9tb3RlZF9s ZW4yID0gVFlQRV9MRU5HVEggKHR5cGUyKTsKKysgICAgICBVTE9OR0VTVCBwcm9tb3RlZF9sZW4x ID0gVFlQRV9MRU5HVEggKHR5cGUxKTsKKysgICAgICBVTE9OR0VTVCBwcm9tb3RlZF9sZW4yID0g VFlQRV9MRU5HVEggKHR5cGUyKTsKKyAgICAgICBpbnQgaXNfdW5zaWduZWQxID0gVFlQRV9VTlNJ R05FRCAodHlwZTEpOworICAgICAgIGludCBpc191bnNpZ25lZDIgPSBUWVBFX1VOU0lHTkVEICh0 eXBlMik7CistICAgICAgdW5zaWduZWQgaW50IHJlc3VsdF9sZW47CisrICAgICAgVUxPTkdFU1Qg cmVzdWx0X2xlbjsKKyAgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0aW9uOworIAorICAgICAgIC8q IERldGVybWluZSB0eXBlIGxlbmd0aCBhbmQgc2lnbmVkbmVzcyBhZnRlciBwcm9tb3Rpb24gZm9y CitAQCAtMTAwNCw3ICsxMDA1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZQorICAgaW50IGxvd2VyOworICAgaW50IGNvZGU7CisgICBpbnQgaXg7CistICBsb25n IG1lbV9vZmZzZXQ7CisrICBMT05HRVNUIG1lbV9vZmZzZXQ7CisgICBzdHJ1Y3QgdHlwZSAqKmFy Z190eXBlczsKKyAgIGludCBzYXZlX3BvczE7CisgICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiA9 IE5VTEw7CitAQCAtMTE5NCw3ICsxMTk1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChz dHJ1Y3QgdHlwZSAqZQorIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9U WVBFICh0eXBlKTsKKyAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRf VFlQRSAodHlwZSk7CisgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFsbG9jYXRlX3ZhbHVlIChl eHBlY3RfdHlwZSk7CistCSAgaW50IGVsZW1lbnRfc2l6ZSA9IFRZUEVfTEVOR1RIIChjaGVja190 eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKysJICBMT05HRVNUIGVsZW1lbnRfc2l6ZSA9IFRZUEVf TEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKyAJICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZCwgaW5kZXg7CisgCisgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMg KHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCitAQCAtMjE5NCw3ICsy MTk1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQorICAgICAg IHsKKyAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CisgICAg ICAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOworLSAgICAgICAgaW50IGZ1bGwsIHRvcCwgdXNp bmdfZW5jOworKyAgICAgICAgaW50IGZ1bGwsIHVzaW5nX2VuYzsKKysJTE9OR0VTVCB0b3A7Cisg CXN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CisgCisgCWdldF91c2VyX3ByaW50X29w dGlvbnMgKCZvcHRzKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtbGFuZy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTIt MTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9mLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljg0NzE0MDc3NiArMDEwMAorQEAgLTEyNCw3 ICsxMjQsNyBAQCBmX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCisgCisg c3RhdGljIHZvaWQKKyBmX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKKy0JICAgIHVuc2lnbmVkIGludCBs ZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisrCSAgICBV TE9OR0VTVCBsZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMs CisgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7Cisg ICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gZl9nZXRfZW5jb2RpbmcgKHR5cGUpOworSW5k ZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZi1sYW5nLmgKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvZi1sYW5nLmgJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtbGFuZy5oCTIwMTItMTEt MDcgMjI6MTI6MzkuNTA0ODY1MjA4ICswMTAwCitAQCAtMzIsNyArMzIsNyBAQCBleHRlcm4gY29u c3QgY2hhciAqZl9vYmplY3RfYWRkcmVzc19kYXRhCisgICAoc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pOworIGV4dGVybiB2b2lkIGZfb2JqZWN0X2FkZHJlc3NfZGF0 YV92YWxpZF9vcl9lcnJvciAoc3RydWN0IHR5cGUgKnR5cGUpOworIAorLWV4dGVybiB2b2lkIGZf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQURE UiwKKytleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisg CQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtdmFscHJpbnQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJ MjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2YtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljg0OTE0MDc3MiArMDEwMAor QEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNl dAorIAkJCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKik7Cisgc3RhdGljIHZvaWQgZjc3X2dldF9k eW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOworIAorLWludCBmNzdf YXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07CisrTE9OR0VTVCBmNzdf YXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07CisgCisgLyogQXJyYXkg d2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRz CisgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVh Y2ggc3ViYXJyYXkuICAqLworQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgdm9pZAorIGY3N19j cmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSkKKyB7CisgICBzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7CistICBpbnQgZWx0 bGVuOworKyAgTE9OR0VTVCBlbHRsZW47CisgICBpbnQgbmRpbWVuID0gMTsKKyAgIGludCB1cHBl ciwgbG93ZXI7CisgCitAQCAtMTcxLDEzICsxNzEsMTMgQEAgZjc3X2NyZWF0ZV9hcnJheXByaW50 X29mZnNldF90YmwgKHN0cnVjdAorIHN0YXRpYyB2b2lkCisgZjc3X3ByaW50X2FycmF5XzEgKGlu dCBuc3MsIGludCBuZGltZW5zaW9ucywgc3RydWN0IHR5cGUgKnR5cGUsCisgCQkgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKKy0JCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAorKwkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAorIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAorIAkJICAgaW50ICplbHRzKQorIHsKKy0gIGludCBpOworKyAgTE9OR0VT VCBpOworIAorICAgaWYgKG5zcyAhPSBuZGltZW5zaW9ucykKKyAgICAgeworQEAgLTIyMCw3ICsy MjAsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpCisgCisgc3Rh dGljIHZvaWQKKyBmNzdfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKKy0JCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorKwkJIExPTkdFU1QgZW1i ZWRkZWRfb2Zmc2V0LAorIAkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLAorIAkJIGludCByZWN1cnNlLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorQEAg LTI2Myw4ICsyNjMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2Rl CisgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCisgCisgdm9pZAorLWZfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBl bWJlZGRlZF9vZmZzZXQsCistCSAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAorK2ZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisrCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAorKwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAorIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCSAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTM4 OSw3ICszOTAsNyBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCisg ICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCAiKTsKKyAgICAgICBmb3IgKGluZGV4 ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQorICAgICAgICAgewor LSAgICAgICAgICBpbnQgb2Zmc2V0ID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGluZGV4KSAv IDg7CisrCSAgTE9OR0VTVCBvZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaW5kZXgp IC8gODsKKyAKKyAgICAgICAgICAgdmFsX3ByaW50IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGlu ZGV4KSwgdmFsYWRkciwKKyAJCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgb2Zmc2V0LAorSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZHZhci5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDEyLTExLTA3IDIyOjAwOjQxLjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZHZhci5jCTIwMTItMTEt MDcgMjI6MTA6MjEuODU1MDY1MjEwICswMTAwCitAQCAtNjQ1LDcgKzY0NSw3IEBAIGRlZmF1bHRf dmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUKKyAJCQkgICAgIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9h cmNoIChmcmFtZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VT VCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gYWxs b2NhdGVfdmFsdWUgKHR5cGUpOworIAorICAgVkFMVUVfTFZBTCAodmFsdWUpID0gbHZhbF9yZWdp c3RlcjsKK0BAIC02NzUsMTAgKzY3NSwxMCBAQCB2b2lkCisgcmVhZF9mcmFtZV9yZWdpc3Rlcl92 YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorIHsK KyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKy0g IGludCBvZmZzZXQgPSAwOworLSAgaW50IHJlZ19vZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHZhbHVl KTsKKysgIExPTkdFU1Qgb2Zmc2V0ID0gMDsKKysgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVl X29mZnNldCAodmFsdWUpOworICAgaW50IHJlZ251bSA9IFZBTFVFX1JFR05VTSAodmFsdWUpOwor LSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1 ZSkpKTsKKysgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKHZhbHVlKSkpOworIAorICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZBTCAodmFsdWUpID09 IGx2YWxfcmVnaXN0ZXIpOworIAorQEAgLTY5Myw3ICs2OTMsNyBAQCByZWFkX2ZyYW1lX3JlZ2lz dGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKKyAgIHdoaWxlIChsZW4gPiAwKQorICAgICB7CisgICAg ICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKGZyYW1l LCByZWdudW0pOworLSAgICAgIGludCByZWdfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUg KHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKKysgICAgICBMT05HRVNUIHJlZ19sZW4gPSBUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSAocmVndmFsKSkgLSByZWdfb2Zmc2V0OworIAorICAgICAgIC8qIElm IHRoZSByZWdpc3RlciBsZW5ndGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcwor ICAgICAgICAgIHJlbWFpbmluZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlh dGUgYnl0ZXMuICAqLworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZnJhbWUuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9mcmFtZS5jCTIwMTItMDkt MTcgMDk6MTc6MjcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9m cmFtZS5jCTIwMTItMTEtMDcgMjI6MDk6MjkuODUzMTQwNzY4ICswMTAwCitAQCAtMTExNyw3ICsx MTE3LDcgQEAgZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGZyYW1lX2luZm8gKgorIAorIGlu dAorIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBp bnQgcmVnbnVtLAorLQkJCSAgQ09SRV9BRERSIG9mZnNldCwgaW50IGxlbiwgZ2RiX2J5dGUgKm15 YWRkciwKKysJCQkgIENPUkVfQUREUiBvZmZzZXQsIExPTkdFU1QgbGVuLCBnZGJfYnl0ZSAqbXlh ZGRyLAorIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKKyB7CisgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CitAQCAtMTE0 Niw3ICsxMTQ2LDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaQor ICAgICB9CisgICBpZiAobGVuID4gbWF4c2l6ZSkKKyAgICAgZXJyb3IgKF8oIkJhZCBkZWJ1ZyBp bmZvcm1hdGlvbiBkZXRlY3RlZDogIgorLQkgICAgICJBdHRlbXB0IHRvIHJlYWQgJWQgYnl0ZXMg ZnJvbSByZWdpc3RlcnMuIiksIGxlbik7CisrCSAgICAgIkF0dGVtcHQgdG8gcmVhZCAlcyBieXRl cyBmcm9tIHJlZ2lzdGVycy4iKSwgcGxvbmdlc3QgKGxlbikpOworIAorICAgLyogQ29weSB0aGUg ZGF0YS4gICovCisgICB3aGlsZSAobGVuID4gMCkKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2ZyYW1lLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv ZnJhbWUuaAkyMDEyLTAzLTAxIDIzOjQ3OjQ2LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvZnJhbWUuaAkyMDEyLTExLTA3IDIyOjA5OjI5Ljg1NDE0MDc2NiArMDEw MAorQEAgLTUzMCw3ICs1MzAsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIgKHN0 cnVjdCBmCisgICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUsIHNl dCAqT1BUSU1JWkVEUCwKKyAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KKyBleHRl cm4gaW50IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l LCBpbnQgcmVnbnVtLAorLQkJCQkgICAgIENPUkVfQUREUiBvZmZzZXQsIGludCBsZW4sCisrCQkJ CSAgICAgQ09SRV9BRERSIG9mZnNldCwgTE9OR0VTVCBsZW4sCisgCQkJCSAgICAgZ2RiX2J5dGUg Km15YWRkciwKKyAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKTsK KyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2dkYnR5cGVzLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDEyLTExLTA3IDIy OjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZ2RidHlw ZXMuYwkyMDEyLTExLTA3IDIyOjA5OjU3LjkyNDA5OTk4MiArMDEwMAorQEAgLTIwODksNyArMjA4 OSw3IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKyAgICB3aGVy ZSBpbml0X3R5cGUgaXMgY2FsbGVkIHdpdGggYSBOVUxMIHZhbHVlIGZvciBOQU1FKS4gICovCisg Cisgc3RydWN0IHR5cGUgKgorLWluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxl bmd0aCwgaW50IGZsYWdzLAorK2luaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgTE9OR0VT VCBsZW5ndGgsIGludCBmbGFncywKKyAJICAgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCisgeworICAgc3RydWN0IHR5cGUgKnR5cGU7CitAQCAtMjMyMSw4ICsyMzIxLDggQEAg aXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworIAorIHN0YXRpYyBpbnQK KyBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHR5 cGUgKmRjbGFzcywKKy0JCQkgICBpbnQgKm9mZnNldCwKKy0JCQkgICBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgICBMT05HRVNUICpvZmZzZXQsCisr CQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAor IAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICBpbnQg aSwgY291bnQgPSAwOworQEAgLTIzMzMsNyArMjMzMyw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKHN0cnVjdCB0eXBlICoKKyAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNT RVMgKGRjbGFzcykgJiYgY291bnQgPCAyOyArK2kpCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgdHlw ZSAqaXRlcjsKKy0gICAgICBpbnQgdGhpc19vZmZzZXQ7CisrICAgICAgTE9OR0VTVCB0aGlzX29m ZnNldDsKKyAKKyAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRj bGFzcywgaSkpOworIAorQEAgLTIzNzQsNyArMjM3NCw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKHN0cnVjdCB0eXBlICoKKyBpbnQKKyBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0 eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CistICBpbnQgb2Zmc2V0ID0gLTE7Cisr ICBMT05HRVNUIG9mZnNldCA9IC0xOworIAorICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCisgCQkJCSAgICB2YWx1ZV9j b250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCitAQCAtMzI3NSw3ICszMjc1LDcgQEAgcmVjdXJz aXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCisgICAgICAgYnJlYWs7CisgICAgIH0K KyAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOworLSAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAi bGVuZ3RoICVkXG4iLCBUWVBFX0xFTkdUSCAodHlwZSkpOworKyAgcHJpbnRmaV9maWx0ZXJlZCAo c3BhY2VzLCAibGVuZ3RoICVzXG4iLCBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIICh0eXBlKSkpOwor ICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCisgICAgIHsKKyAgICAgICBwcmludGZp X2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOworQEAgLTMzOTUsOCArMzM5NSw4IEBAIHJl Y3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCSAgaWR4LCBwbG9uZ2Vz dCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBlLCBpZHgpKSk7CisgICAgICAgZWxzZQorIAlwcmlu dGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLAorLQkJCSAgIlslZF0gYml0cG9zICVkIGJpdHNpemUg JWQgdHlwZSAiLAorLQkJCSAgaWR4LCBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaWR4KSwKKysJ CQkgICJbJWRdIGJpdHBvcyAlcyBiaXRzaXplICVkIHR5cGUgIiwKKysJCQkgIGlkeCwgcGxvbmdl c3QgKFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpZHgpKSwKKyAJCQkgIFRZUEVfRklFTERfQklU U0laRSAodHlwZSwgaWR4KSk7CisgICAgICAgZ2RiX3ByaW50X2hvc3RfYWRkcmVzcyAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBpZHgpLCBnZGJfc3Rkb3V0KTsKKyAgICAgICBwcmludGZfZmlsdGVy ZWQgKCIgbmFtZSAnJXMnICgiLAorQEAgLTQxMDUsNyArNDEwNSw3IEBAIGZyZWVfYWxsX3R5cGVz ICh2b2lkKQorICAgIENPREUsIExFTkdUSCwgYW5kIE5BTUUgZmllbGRzLiAgKi8KKyBzdHJ1Y3Qg dHlwZSAqCisgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKy0JICAgZW51bSB0 eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgY2hhciAqbmFtZSkKKysJICAgZW51bSB0eXBlX2Nv ZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGNoYXIgKm5hbWUpCisgeworICAgc3RydWN0IHR5cGUg KnR5cGU7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nZGJ0eXBlcy5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMi0x MS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjowOToyOS44NjExNDA3NTUgKzAxMDAKK0BAIC02MDIs NyArNjAyLDcgQEAgc3RydWN0IG1haW5fdHlwZQorIAkgICBnZGJhcmNoX2JpdHNfYmlnX2VuZGlh bj0wIHRhcmdldHMsIGl0IGlzIHRoZSBiaXQgb2Zmc2V0IHRvCisgCSAgIHRoZSBMU0IuICAqLwor IAorLQlpbnQgYml0cG9zOworKwlMT05HRVNUIGJpdHBvczsKKyAKKyAJLyogRW51bSB2YWx1ZS4g ICovCisgCUxPTkdFU1QgZW51bXZhbDsKK0BAIC03OTQsNyArNzk0LDcgQEAgc3RydWN0IHR5cGUK KyAgICAgIEhPU1RfQ0hBUl9CSVQuICBIb3dldmVyLCB0aGlzIHdvdWxkIHN0aWxsIGZhaWwgdG8g YWRkcmVzcworICAgICAgbWFjaGluZXMgYmFzZWQgb24gYSB0ZXJuYXJ5IG9yIGRlY2ltYWwgcmVw cmVzZW50YXRpb24uICAqLworICAgCistICB1bnNpZ25lZCBsZW5ndGg7CisrICBVTE9OR0VTVCBs ZW5ndGg7CisgCisgICAvKiBDb3JlIHR5cGUsIHNoYXJlZCBieSBhIGdyb3VwIG9mIHF1YWxpZmll ZCB0eXBlcy4gICovCisgICBzdHJ1Y3QgbWFpbl90eXBlICptYWluX3R5cGU7CitAQCAtMTU0Niwx MSArMTU0NiwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmFsbG9jX3R5cGVfY29weSAoY29uCisg ZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpnZXRfdHlwZV9hcmNoIChjb25zdCBzdHJ1Y3QgdHlwZSAq KTsKKyAKKyAvKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUtb3duZWQgdHlw ZXMuICAqLworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqaW5pdF90eXBlIChlbnVtIHR5cGVfY29kZSwg aW50LCBpbnQsIGNoYXIgKiwKKytleHRlcm4gc3RydWN0IHR5cGUgKmluaXRfdHlwZSAoZW51bSB0 eXBlX2NvZGUsIExPTkdFU1QsIGludCwgY2hhciAqLAorIAkJCSAgICAgICBzdHJ1Y3Qgb2JqZmls ZSAqKTsKKyAKKyAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUt b3duZWQgdHlwZXMuICAqLworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3Qg Z2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LCBjaGFyICopOworK2V4dGVybiBzdHJ1Y3Qg dHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgTE9OR0VT VCwKKysJCQkgICAgICAgY2hhciAqKTsKKyBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdl cl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKKyBleHRlcm4gc3Ry dWN0IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50 LCBjaGFyICopOworIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVj dCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvZ251LXYyLWFiaS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL2dudS12Mi1hYmkuYwkyMDEyLTAyLTA3IDA1OjQ4OjIxLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZ251LXYyLWFiaS5jCTIwMTItMTEtMDcgMjI6MDk6 MjkuODcwMTQwNzQyICswMTAwCitAQCAtODYsNyArODYsNyBAQCBnbnV2Ml9pc19vcGVyYXRvcl9u YW1lIChjb25zdCBjaGFyICpuYW1lCisgICAgVFlQRSBpcyB0aGUgdHlwZSBpbiB3aGljaCBGIGlz IGxvY2F0ZWQuICAqLworIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorIGdudXYyX3ZpcnR1YWxfZm5f ZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKiBmLCBpbnQgaiwK Ky0JCQlzdHJ1Y3QgdHlwZSAqIHR5cGUsIGludCBvZmZzZXQpCisrCQkJc3RydWN0IHR5cGUgKnR5 cGUsIExPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIHN0cnVjdCB2YWx1ZSAqYXJnMSA9ICphcmcxcDsK KyAgIHN0cnVjdCB0eXBlICp0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEp KTsKK0BAIC0xODcsNyArMTg3LDggQEAgZ251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZh bHVlICoqYQorIAorIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCistZ251djJfdmFsdWVfcnR0aV90 eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgaW50ICp0b3AsIGludCAqdXNpbmdfZW5j KQorK2dudXYyX3ZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIExP TkdFU1QgKnRvcCwKKysJCSAgICAgICBpbnQgKnVzaW5nX2VuYykKKyB7CisgICBzdHJ1Y3QgdHlw ZSAqa25vd25fdHlwZTsKKyAgIHN0cnVjdCB0eXBlICpydHRpX3R5cGU7CitAQCAtMzQyLDkgKzM0 Myw5IEBAIHZiX21hdGNoIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAorICAgIHRhcmdl dCkuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2YWx1ZSByZWxh dGl2ZQorICAgIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICovCisgCistc3Rh dGljIGludAorK3N0YXRpYyBMT05HRVNUCisgZ251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0 IHR5cGUgKnR5cGUsIGludCBpbmRleCwKKy0JCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50 IGVtYmVkZGVkX29mZnNldCwKKysJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsCisgCQkJQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsKQorIHsKKyAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IFRZUEVfQkFTRUNMQVNTICh0 eXBlLCBpbmRleCk7CitAQCAtMzYyLDggKzM2Myw4IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQg KHN0cnVjdCB0eXBlICp0eXAKKyAJICBpZiAodmJfbWF0Y2ggKHR5cGUsIGksIGJhc2V0eXBlKSkK KyAJICAgIHsKKyAJICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CistCSAgICAgIGludCBm aWVsZF9vZmZzZXQ7CistCSAgICAgIGludCBmaWVsZF9sZW5ndGg7CisrCSAgICAgIExPTkdFU1Qg ZmllbGRfb2Zmc2V0OworKwkgICAgICBMT05HRVNUIGZpZWxkX2xlbmd0aDsKKyAJICAgICAgQ09S RV9BRERSIGFkZHI7CisgCisgCSAgICAgIGZpZWxkX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBF X0ZJRUxEX1RZUEUgKHR5cGUsIGkpKTsKK0BAIC0zODcsNyArMzg4LDcgQEAgZ251djJfYmFzZWNs YXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorIAkgIC8qIERvbid0IGdvIHRocm91Z2ggYmFz ZWNsYXNzX29mZnNldCwgYXMgdGhhdCB3cmFwcworIAkgICAgIGV4Y2VwdGlvbnMsIHRodXMsIGlu bmVyIGV4Y2VwdGlvbnMgd291bGQgYmUgd3JhcHBlZCBtb3JlCisgCSAgICAgdGhhbiBvbmNlLiAg Ki8KKy0JICBpbnQgYm9mZnNldCA9CisrCSAgTE9OR0VTVCBib2Zmc2V0ID0KKyAJICAgIGdudXYy X2Jhc2VjbGFzc19vZmZzZXQgKHR5cGUsIGksIHZhbGFkZHIsCisgCQkJCSAgICBlbWJlZGRlZF9v ZmZzZXQsIGFkZHJlc3MsIHZhbCk7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9n bnUtdjMtYWJpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv Z251LXYzLWFiaS5jCTIwMTItMDUtMjEgMjE6NDc6NTMuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9nbnUtdjMtYWJpLmMJMjAxMi0xMS0wNyAyMjowOToyOS44NzIx NDA3NDAgKzAxMDAKK0BAIC0xMDUsNyArMTA1LDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqYQorIHsKKyAgIHN0cnVjdCB0eXBlICp0OworICAgc3RydWN0IGZpZWxk ICpmaWVsZF9saXN0LCAqZmllbGQ7CistICBpbnQgb2Zmc2V0OworKyAgTE9OR0VTVCBvZmZzZXQ7 CisgCisgICBzdHJ1Y3QgdHlwZSAqdm9pZF9wdHJfdHlwZQorICAgICA9IGJ1aWx0aW5fdHlwZSAo YXJjaCktPmJ1aWx0aW5fZGF0YV9wdHI7CitAQCAtMTgxLDcgKzE4MSw3IEBAIHZ0YWJsZV9wdHJk aWZmX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKKyAvKiBSZXR1cm4gdGhlIG9mZnNldCBmcm9t IHRoZSBzdGFydCBvZiB0aGUgaW1hZ2luYXJ5IGBzdHJ1Y3QKKyAgICBnZGJfZ251X3YzX2FiaV92 dGFibGUnIG9iamVjdCB0byB0aGUgdnRhYmxlJ3MgImFkZHJlc3MgcG9pbnQiCisgICAgKGkuZS4s IHdoZXJlIG9iamVjdHMnIHZpcnR1YWwgdGFibGUgcG9pbnRlcnMgcG9pbnQpLiAgKi8KKy1zdGF0 aWMgaW50Cisrc3RhdGljIExPTkdFU1QKKyB2dGFibGVfYWRkcmVzc19wb2ludF9vZmZzZXQgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorIHsKKyAgIHN0cnVjdCB0eXBlICp2dGFibGVfdHlwZSA9 IGdkYmFyY2hfZGF0YSAoZ2RiYXJjaCwgdnRhYmxlX3R5cGVfZ2RiYXJjaF9kYXRhKTsKK0BAIC0y NzIsNyArMjcyLDcgQEAgZ251djNfZ2V0X3Z0YWJsZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwor IAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCisgZ251djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUg KnZhbHVlLAorLSAgICAgICAgICAgICAgICAgaW50ICpmdWxsX3AsIGludCAqdG9wX3AsIGludCAq dXNpbmdfZW5jX3ApCisrICAgICAgICAgICAgICAgICBpbnQgKmZ1bGxfcCwgTE9OR0VTVCAqdG9w X3AsIGludCAqdXNpbmdfZW5jX3ApCisgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7Cisg ICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2 YWx1ZSkpOworQEAgLTM4NCw3ICszODQsNyBAQCBnbnV2M19nZXRfdmlydHVhbF9mbiAoc3RydWN0 IGdkYmFyY2ggKmdkCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCisgZ251djNfdmlydHVhbF9mbl9m aWVsZCAoc3RydWN0IHZhbHVlICoqdmFsdWVfcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLAorLQkJCXN0cnVjdCB0eXBlICp2Zm5fYmFzZSwgaW50 IG9mZnNldCkKKysJCQlzdHJ1Y3QgdHlwZSAqdmZuX2Jhc2UsIExPTkdFU1Qgb2Zmc2V0KQorIHsK KyAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KCp2YWx1ZV9wKSk7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKK0BAIC00MTQsMTYgKzQx NCwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2CisgCisgICAg LTEgaXMgcmV0dXJuZWQgb24gZXJyb3IuICAqLworIAorLXN0YXRpYyBpbnQKKytzdGF0aWMgTE9O R0VTVAorIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5k ZXgsCistCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisr CQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJ CUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKKyAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKKyAgIHN0cnVj dCB2YWx1ZSAqdnRhYmxlOworICAgc3RydWN0IHZhbHVlICp2YmFzZV9hcnJheTsKKy0gIGxvbmcg aW50IGN1cl9iYXNlX29mZnNldCwgYmFzZV9vZmZzZXQ7CisrICBMT05HRVNUIGN1cl9iYXNlX29m ZnNldCwgYmFzZV9vZmZzZXQ7CisgCisgICAvKiBEZXRlcm1pbmUgYXJjaGl0ZWN0dXJlLiAgKi8K KyAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKK0BAIC00NDcsNyArNDQ3LDcgQEAg Z251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorICAgY3VyX2Jhc2Vfb2Zm c2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0ICsgdnRhYmxlX2FkZHJlc3NfcG9pbnRfb2Zmc2V0IChnZGJh cmNoKTsKKyAgIGlmICgoLSBjdXJfYmFzZV9vZmZzZXQpICUgVFlQRV9MRU5HVEggKHB0cl90eXBl KSAhPSAwKQorICAgICBlcnJvciAoXygiTWlzYWxpZ25lZCB2YmFzZSBvZmZzZXQuIikpOworLSAg Y3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0IC8gKChpbnQpIFRZUEVfTEVOR1RIIChw dHJfdHlwZSkpOworKyAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0IC8gKChMT05H RVNUKSBUWVBFX0xFTkdUSCAocHRyX3R5cGUpKTsKKyAKKyAgIHZ0YWJsZSA9IGdudXYzX2dldF92 dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQpOworICAgZ2Ri X2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOworQEAgLTQ5MSw3ICs0OTEsNyBAQCBnbnV2M19maW5k X21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCisgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4g ICovCisgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKysp CisgICAgIHsKKy0gICAgICBpbnQgcG9zOworKyAgICAgIExPTkdFU1QgcG9zOworICAgICAgIHN0 cnVjdCB0eXBlICpiYXNldHlwZTsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwg KGRvbWFpbiwgaSkpCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nby1sYW5nLmgKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTIt MDQtMjUgMTY6MDc6MjAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9nby1sYW5nLmgJMjAxMi0xMS0wNyAyMjowOToyOS44NzQxNDA3MzcgKzAxMDAKK0BAIC04MCw3 ICs4MCw3IEBAIGV4dGVybiB2b2lkIGdvX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICoKKyAvKiBE ZWZpbmVkIGluIGdvLXZhbHByaW50LmMuICAqLworIAorIGV4dGVybiB2b2lkIGdvX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgaW50 IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCQkJICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOworSW5kZXg6IGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvZ28tdmFscHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUu MC4yMDEyMDkyNi5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTItMDUtMTggMTc6Mjk6MTIuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nby12YWxwcmludC5jCTIw MTItMTEtMDcgMjI6MDk6MjkuODc0MTQwNzM3ICswMTAwCitAQCAtMzcsNyArMzcsNyBAQAorIAor IHN0YXRpYyB2b2lkCisgcHJpbnRfZ29fc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCistCQkgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisrCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor IAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQorQEAgLTg2LDkgKzg2LDkgQEAgcHJpbnRfZ29fc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29ucworIC8qIEltcGxlbWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0aW5lIGZvciBsYW5n dWFnZSBHby4gICovCisgCisgdm9pZAorLWdvX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorLQkgICAgICBD T1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCist CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorK2dvX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorKwkgICAgICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCSAgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworICAgQ0hFQ0tfVFlQ RURFRiAodHlwZSk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9pMzg2LW5hdC5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2kzODYtbmF0LmMJMjAx Mi0wMS0yNCAxNDo0OTo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2kzODYtbmF0LmMJMjAxMi0xMS0wNyAyMjowOToyOS44NzYxNDA3MzMgKzAxMDAKK0BAIC0y OTMsNyArMjkzLDcgQEAgc3RhdGljIGludCBpMzg2X3JlbW92ZV9hbGlnbmVkX3dhdGNocG9pbgor ICAgIHZhbGlkIHZhbHVlLCBib21icyB0aHJvdWdoIGludGVybmFsX2Vycm9yLiAgKi8KKyBzdGF0 aWMgaW50IGkzODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IGkzODZfZGVi dWdfcmVnX3N0YXRlICpzdGF0ZSwKKyAJCQkJCSAgICAgIGkzODZfd3Bfb3BfdCB3aGF0LAorLQkJ CQkJICAgICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisrCQkJCQkgICAgICBDT1JFX0FERFIg YWRkciwgTE9OR0VTVCBsZW4sCisgCQkJCQkgICAgICBlbnVtIHRhcmdldF9od19icF90eXBlIHR5 cGUpOworIAorIC8qIEltcGxlbWVudGF0aW9uLiAgKi8KK0BAIC01MDUsOCArNTA1LDggQEAgaTM4 Nl9yZW1vdmVfYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgaQorIAorIHN0YXRpYyBpbnQKKyBp Mzg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCBpMzg2X2RlYnVnX3JlZ19z dGF0ZSAqc3RhdGUsCistCQkJCSAgIGkzODZfd3Bfb3BfdCB3aGF0LCBDT1JFX0FERFIgYWRkciwg aW50IGxlbiwKKy0JCQkJICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBlKQorKwkJCQkgICBp Mzg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsCisrCQkJCSAgIExPTkdFU1QgbGVuLCBl bnVtIHRhcmdldF9od19icF90eXBlIHR5cGUpCisgeworICAgaW50IHJldHZhbCA9IDA7CisgICBp bnQgbWF4X3dwX2xlbiA9IFRBUkdFVF9IQVNfRFJfTEVOXzggPyA4IDogNDsKK0BAIC02NjMsNyAr NjYzLDcgQEAgaTM4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsCisgICAgYWRk cmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLiAgKi8KKyAKKyBzdGF0aWMg aW50CistaTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuKQorK2kzODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9O R0VTVCBsZW4pCisgeworICAgc3RydWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSA9IGkz ODZfZGVidWdfcmVnX3N0YXRlICgpOworICAgaW50IG5yZWdzOworSW5kZXg6IGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvaW5mLXR0cmFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIw OTI2Lm9yaWcvZ2RiL2luZi10dHJhY2UuYwkyMDEyLTA2LTE0IDIwOjIxOjMxLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaW5mLXR0cmFjZS5jCTIwMTItMTEtMDcg MjI6MDk6MjkuODc3MTQwNzMyICswMTAwCitAQCAtMzY0LDcgKzM2NCw3IEBAIGluZl90dHJhY2Vf Y2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHkKKyB9CisgCisgc3RhdGljIGludAorLWluZl90 dHJhY2VfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl bikKKytpbmZfdHRyYWNlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHJldHVybiAxOworIH0KK0luZGV4OiBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2p2LWxhbmcuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2p2LWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5 Ljg5NDE0MDcwOCArMDEwMAorQEAgLTQ0MCw3ICs0NDAsNyBAQCBqYXZhX2xpbmtfY2xhc3NfdHlw ZSAoc3RydWN0IGdkYmFyY2ggKmdkCisgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5 cGUpOyBpIDwgbmZpZWxkczsgaSsrKQorICAgICB7CisgICAgICAgaW50IGFjY2ZsYWdzOworLSAg ICAgIGludCBib2Zmc2V0OworKyAgICAgIExPTkdFU1QgYm9mZnNldDsKKyAKKyAgICAgICBpZiAo ZmllbGRzID09IE5VTEwpCisgCXsKK0BAIC04OTAsNyArODkwLDcgQEAgamF2YV9wcmludGNoYXIg KGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZQorIHN0YXRpYyB2b2lkCisgamF2YV9wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCisgCSAgICAgICBjb25z dCBnZGJfYnl0ZSAqc3RyaW5nLAorLQkgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aCwgY29uc3Qg Y2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKysJICAgICAgIFVMT05HRVNUIGxl bmd0aCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKyAJICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorIHsKKyAgIGNvbnN0 IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBqYXZhX2dldF9lbmNvZGluZyAodHlwZSk7CitJbmRleDog Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9qdi1sYW5nLmgKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvanYtbGFuZy5oCTIwMTItMDMtMDEgMjA6MjY6MTMuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9qdi1sYW5nLmgJMjAxMi0xMS0w NyAyMjowOToyOS45MDIxNDA2OTYgKzAxMDAKK0BAIC00Miw4ICs0Miw4IEBAIHN0cnVjdCBidWls dGluX2phdmFfdHlwZQorIAorIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUg KmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKKyAKKy1leHRlcm4gdm9pZCBq YXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JF X0FERFIsCistCQkJICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKKytleHRlcm4gdm9pZCBqYXZh X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKKysJ CQkgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqLAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2p2LXZhbHByaW50LmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDEy LTA1LTE4IDE3OjI5OjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvanYtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkwMzE0MDY5NCArMDEwMAorQEAg LTI2Niw3ICsyNjYsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3Ry CisgCisgc3RhdGljIHZvaWQKKyBqYXZhX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSBpbnQgb2Zmc2V0LAorKwkJCSBM T05HRVNUIG9mZnNldCwKKyAJCQkgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sCisgCQkJIGludCByZWN1cnNlLAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK K0BAIC00ODQsNyArNDg0LDcgQEAgamF2YV9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBl ICp0eQorIAorIHZvaWQKKyBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisrCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisg CQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCWNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAorIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9sYW5ndWFnZS5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxMi0xMS0wNyAyMjow MDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2xhbmd1YWdl LmMJMjAxMi0xMS0wNyAyMjowOToyOS45MDUxNDA2OTEgKzAxMDAKK0BAIC03MjQsNyArNzI0LDcg QEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgorIAorIHN0YXRpYyB2 b2lkCisgdW5rX2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLAorLQkJICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywgdW5zaWduZWQgaW50IGxl bmd0aCwKKysJCSAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIFVMT05HRVNUIGxlbmd0aCwKKyAJ CSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtNzQyLDcgKzc0 Miw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorIAorIHN0YXRp YyB2b2lkCisgdW5rX2xhbmdfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCistCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisrCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAorIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbGFuZ3VhZ2Uu aAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9sYW5ndWFnZS5o CTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9sYW5ndWFnZS5oCTIwMTItMTEtMDcgMjI6MDk6MjkuOTA2MTQwNjkwICswMTAwCitA QCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCisgCQkJICBzdHJ1Y3QgdWlf ZmlsZSAqIHN0cmVhbSk7CisgCisgICAgIHZvaWQgKCpsYV9wcmludHN0cikgKHN0cnVjdCB1aV9m aWxlICogc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKKy0JCQkgY29uc3QgZ2RiX2J5dGUg KnN0cmluZywgdW5zaWduZWQgaW50IGxlbmd0aCwKKysJCQkgY29uc3QgZ2RiX2J5dGUgKnN0cmlu ZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkJCSBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNl X2VsbGlwc2VzLAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKKyAK K0BAIC0yMTcsNyArMjE3LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KKyAKKyAgICAgdm9pZCAo KmxhX3ZhbF9wcmludCkgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCSAgY29uc3QgZ2RiX2J5dGUg KmNvbnRlbnRzLAorLQkJCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms CisrCQkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJ ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAorIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTItbGFuZy5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDEyLTExLTA3 IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTIt bGFuZy5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTA4MTQwNjg4ICswMTAwCitAQCAtMTA0LDEwICsx MDQsMTAgQEAgbTJfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCisgCisgc3Rh dGljIHZvaWQKKyBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCistCSAgICAgdW5zaWduZWQgaW50IGxl bmd0aCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKysJICAgICBV TE9OR0VTVCBsZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMs CisgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgewor LSAgdW5zaWduZWQgaW50IGk7CisrICBVTE9OR0VTVCBpOworICAgdW5zaWduZWQgaW50IHRoaW5n c19wcmludGVkID0gMDsKKyAgIGludCBpbl9xdW90ZXMgPSAwOworICAgaW50IG5lZWRfY29tbWEg PSAwOworQEAgLTEyMiw5ICsxMjIsOSBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RyCisgICAgIHsKKyAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdl IGFyZSBleGFtaW5pbmcKKyAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4g ICovCistICAgICAgdW5zaWduZWQgaW50IHJlcDE7CisrICAgICAgVUxPTkdFU1QgcmVwMTsKKyAg ICAgICAvKiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAq LworLSAgICAgIHVuc2lnbmVkIGludCByZXBzOworKyAgICAgIFVMT05HRVNUIHJlcHM7CisgCisg ICAgICAgUVVJVDsKKyAKK0BAIC0xNTMsNyArMTUzLDcgQEAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIHN0cgorIAkgICAgICBpbl9xdW90ZXMgPSAwOworIAkgICAgfQorIAkg IG0yX3ByaW50Y2hhciAoc3RyaW5nW2ldLCB0eXBlLCBzdHJlYW0pOworLQkgIGZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAldSB0aW1lcz4iLCByZXBzKTsKKysJICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIgPHJlcGVhdHMgJXMgdGltZXM+IiwgcHVsb25nZXN0IChyZXBz KSk7CisgCSAgaSA9IHJlcDEgLSAxOworIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJl cGVhdF9jb3VudF90aHJlc2hvbGQ7CisgCSAgbmVlZF9jb21tYSA9IDE7CitJbmRleDogZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9tMi1sYW5nLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAx MjA5MjYub3JpZy9nZGIvbTItbGFuZy5oCTIwMTItMDMtMDEgMjA6MjY6MTMuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tMi1sYW5nLmgJMjAxMi0xMS0wNyAyMjow OToyOS45MDkxNDA2ODYgKzAxMDAKK0BAIC0zMiw3ICszMiw3IEBAIGV4dGVybiB2b2lkIG0yX3By aW50X3R5cGVkZWYgKHN0cnVjdCB0eXAKKyBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChzdHJ1 Y3QgdHlwZSAqdHlwZSk7CisgZXh0ZXJuIGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0cnVj dCB0eXBlICp0eXBlKTsKKyAKKy1leHRlcm4gdm9pZCBtMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAorK2V4dGVybiB2b2lkIG0yX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9B RERSLAorIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgY29uc3Qgc3RydWN0IHZh bHVlICosCisgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL20yLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6 MDI6MzAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tMi10eXBl cHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkxMDE0MDY4NCArMDEwMAorQEAgLTIyOCw5ICsy MjgsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkgIG0y X3ByaW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSwgc3RyZWFtLCBzaG93LCAtMSwg MSk7CisgCX0KKyAgICAgICBlbHNlCistCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwK Ky0JCQkgIChUWVBFX0xFTkdUSCAodHlwZSkKKy0JCQkgICAvIFRZUEVfTEVOR1RIIChUWVBFX1RB UkdFVF9UWVBFICh0eXBlKSkpKTsKKysgICAgICAgIHsKKysJICBVTE9OR0VTVCB2YWwgPSAoVFlQ RV9MRU5HVEggKHR5cGUpCisrCQkJICAvIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSkpOworKworKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzIiwgcHVsb25nZXN0 ICh2YWwpKTsKKysJfQorICAgICB9CisgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIE9G ICIpOworICAgbTJfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBzdHJl YW0sIHNob3csIGxldmVsKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL20yLXZhbHBy aW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbTItdmFs cHJpbnQuYwkyMDEyLTExLTA3IDIyOjAyOjMwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvbTItdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkxMTE0MDY4 MiArMDEwMAorQEAgLTM2LDcgKzM2LDcgQEAgc3RhdGljIGludCBwcmludF91bnBhY2tlZF9wb2lu dGVyIChzdHJ1YworIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKKyBzdGF0aWMgdm9p ZAorIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCistCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAorKwkJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisg CQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJCSBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKKyAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCitAQCAtNjgsNyArNjgsNyBAQCBnZXRfbG9uZ19zZXRfYm91bmRzIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKKyAKKyBzdGF0aWMgdm9pZAorIG0yX3ByaW50X2xvbmdfc2V0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCSAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBD T1JFX0FERFIgYWRkcmVzcywKKyAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCisgeworICAg aW50IGVtcHR5X3NldCAgICAgICAgPSAxOworQEAgLTE1OSw3ICsxNTksNyBAQCBtMl9wcmludF9s b25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCisgCisgc3RhdGljIHZvaWQKKyBtMl9wcmlu dF91bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKKy0JCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkJ CSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCSAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtMjYzLDcgKzI2Myw3IEBAIHByaW50 X3ZhcmlhYmxlX2F0X2FkZHJlc3MgKHN0cnVjdCB0eXBlICoKKyAKKyBzdGF0aWMgdm9pZAorIG0y X3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCistCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor KwkJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwKKyAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMs CitAQCAtMzA5LDE0ICszMDksMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9w cmludF9kZQorICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBpZGVudGljYWwuICAqLworIAorIHZvaWQK Ky1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0JICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorK20yX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorKwkgICAgICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCSAgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAorIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFs X3ZhbHVlLAorIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OworLSAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVk LiAgKi8KKy0gIHVuc2lnbmVkIGxlbjsKKysgIFVMT05HRVNUIGkgPSAwOwkvKiBOdW1iZXIgb2Yg Y2hhcmFjdGVycyBwcmludGVkLiAgKi8KKysgIFVMT05HRVNUIGxlbjsKKyAgIHN0cnVjdCB0eXBl ICplbHR0eXBlOworICAgQ09SRV9BRERSIGFkZHI7CisgCitAQCAtMzQxLDcgKzM0Miw3IEBAIG0y X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGcKKyAJICAgICAgICAgZWxlbWVu dHMgdXAgdG8gaXQuICAqLworIAkgICAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxs KQorIAkJeworLQkJICB1bnNpZ25lZCBpbnQgdGVtcF9sZW47CisrCQkgIFVMT05HRVNUIHRlbXBf bGVuOworIAorIAkJICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCisgCQkgIGZvciAodGVt cF9sZW4gPSAwOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbWVtcmFuZ2UuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTIt MDEtMDQgMDk6MTc6MDYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9tZW1yYW5nZS5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTE2MTQwNjc2ICswMTAwCitAQCAtMjEs OCArMjEsOCBAQAorICNpbmNsdWRlICJtZW1yYW5nZS5oIgorIAorIGludAorLW1lbV9yYW5nZXNf b3ZlcmxhcCAoQ09SRV9BRERSIHN0YXJ0MSwgaW50IGxlbjEsCistCQkgICAgQ09SRV9BRERSIHN0 YXJ0MiwgaW50IGxlbjIpCisrbWVtX3Jhbmdlc19vdmVybGFwIChDT1JFX0FERFIgc3RhcnQxLCBM T05HRVNUIGxlbjEsCisrCQkgICAgQ09SRV9BRERSIHN0YXJ0MiwgTE9OR0VTVCBsZW4yKQorIHsK KyAgIFVMT05HRVNUIGgsIGw7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tZW1y YW5nZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL21lbXJh bmdlLmgJMjAxMi0wMS0wNCAwOToxNzowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL21lbXJhbmdlLmgJMjAxMi0xMS0wNyAyMjowOToyOS45MTcxNDA2NzQgKzAx MDAKK0BAIC0zMCw3ICszMCw3IEBAIHN0cnVjdCBtZW1fcmFuZ2UKKyAgIENPUkVfQUREUiBzdGFy dDsKKyAKKyAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLworLSAgaW50IGxlbmd0aDsKKysg IExPTkdFU1QgbGVuZ3RoOworIH07CisgCisgdHlwZWRlZiBzdHJ1Y3QgbWVtX3JhbmdlIG1lbV9y YW5nZV9zOworQEAgLTQwLDggKzQwLDggQEAgREVGX1ZFQ19PKG1lbV9yYW5nZV9zKTsKKyAvKiBS ZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlcyBkZWZpbmVkIGJ5IFtzdGFydDEsIHN0YXJ0MStsZW4x KSBhbmQKKyAgICBbc3RhcnQyLCBzdGFydDIrbGVuMikgb3ZlcmxhcC4gICovCisgCistZXh0ZXJu IGludCBtZW1fcmFuZ2VzX292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIGludCBsZW4xLAorLQkJ CSAgICAgICBDT1JFX0FERFIgc3RhcnQyLCBpbnQgbGVuMik7CisrZXh0ZXJuIGludCBtZW1fcmFu Z2VzX292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIExPTkdFU1QgbGVuMSwKKysJCQkgICAgICAg Q09SRV9BRERSIHN0YXJ0MiwgTE9OR0VTVCBsZW4yKTsKKyAKKyAvKiBTb3J0IHJhbmdlcyBieSBz dGFydCBhZGRyZXNzLCB0aGVuIGNvYWxlc2NlIGNvbnRpZ3VvdXMgb3IKKyAgICBvdmVybGFwcGlu ZyByYW5nZXMuICAqLworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbWlwcy1saW51eC1u YXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9taXBzLWxp bnV4LW5hdC5jCTIwMTItMDUtMjIgMjA6MTI6MTMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTE4 MTQwNjcyICswMTAwCitAQCAtOTM4LDcgKzkzOCw3IEBAIHRyeV9vbmVfd2F0Y2ggKHN0cnVjdCBw dF93YXRjaF9yZWdzICpyZWcKKyAgICB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBjYW4gYmUgY292ZXJl ZCBieSB0aGUgd2F0Y2ggcmVnaXN0ZXJzLiAgKi8KKyAKKyBzdGF0aWMgaW50CistbWlwc19saW51 eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQor K21pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg TE9OR0VTVCBsZW4pCisgeworICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVnczsKKyAg IGludCBpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvb2JqYy1sYW5nLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvb2JqYy1sYW5nLmMJMjAxMi0x MS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L29iamMtbGFuZy5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTIwMTQwNjcwICswMTAwCitAQCAtMzQ3 LDExICszNDcsMTEgQEAgb2JqY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZQor IAorIHN0YXRpYyB2b2lkCisgb2JqY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg c3RydWN0IHR5cGUgKnR5cGUsCistCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCB1bnNp Z25lZCBpbnQgbGVuZ3RoLAorKwkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywgVUxPTkdF U1QgbGVuZ3RoLAorIAkgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxp cHNlcywKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z KQorIHsKKy0gIHVuc2lnbmVkIGludCBpOworKyAgVUxPTkdFU1QgaTsKKyAgIHVuc2lnbmVkIGlu dCB0aGluZ3NfcHJpbnRlZCA9IDA7CisgICBpbnQgaW5fcXVvdGVzID0gMDsKKyAgIGludCBuZWVk X2NvbW1hID0gMDsKK0BAIC0zNzIsOSArMzcyLDkgQEAgb2JqY19wcmludHN0ciAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgcworICAgICB7CisgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJh Y3RlciB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZSB3aGV0aGVyIGl0CisgCSBpcyByZXBlYXRlZC4g ICovCistICAgICAgdW5zaWduZWQgaW50IHJlcDE7CisrICAgICAgVUxPTkdFU1QgcmVwMTsKKyAg ICAgICAvKiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAq LworLSAgICAgIHVuc2lnbmVkIGludCByZXBzOworKyAgICAgIFVMT05HRVNUIHJlcHM7CisgCisg ICAgICAgUVVJVDsKKyAKK0BAIC00MDMsNyArNDAzLDcgQEAgb2JqY19wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgcworIAkgICAgICBpbl9xdW90ZXMgPSAwOworIAkgICAgfQorIAkg IG9iamNfcHJpbnRjaGFyIChzdHJpbmdbaV0sIHR5cGUsIHN0cmVhbSk7CistCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiIDxyZXBlYXRzICV1IHRpbWVzPiIsIHJlcHMpOworKwkgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAlcyB0aW1lcz4iLCBwdWxvbmdlc3QgKHJl cHMpKTsKKyAJICBpID0gcmVwMSAtIDE7CisgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+ cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKKyAJICBuZWVkX2NvbW1hID0gMTsKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL29wZW5jbC1sYW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDEyLTExLTA3IDIyOjAwOjQ0LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvb3BlbmNsLWxhbmcuYwky MDEyLTExLTA3IDIyOjA5OjI5LjkyMTE0MDY2OSArMDEwMAorQEAgLTgwLDExICs4MCwxMSBAQCBi dWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgCisgc3RhdGljIHN0cnVj dCB0eXBlICoKKyBsb29rdXBfb3BlbmNsX3ZlY3Rvcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgZW51bSB0eXBlX2NvZGUgY29kZSwKKy0JCQkgICB1bnNpZ25lZCBpbnQgZWxfbGVuZ3Ro LCB1bnNpZ25lZCBpbnQgZmxhZ191bnNpZ25lZCwKKysJCQkgICBVTE9OR0VTVCBlbF9sZW5ndGgs IHVuc2lnbmVkIGludCBmbGFnX3Vuc2lnbmVkLAorIAkJCSAgIGludCBuKQorIHsKKyAgIGludCBp OworLSAgdW5zaWduZWQgaW50IGxlbmd0aDsKKysgIFVMT05HRVNUIGxlbmd0aDsKKyAgIHN0cnVj dCB0eXBlICp0eXBlID0gTlVMTDsKKyAgIHN0cnVjdCB0eXBlICoqdHlwZXMgPSBidWlsdGluX29w ZW5jbF90eXBlIChnZGJhcmNoKTsKKyAKK0BAIC0xNzQsOSArMTc0LDkgQEAgbHZhbF9mdW5jX3Jl YWQgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIHN0cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0 IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKKyAgIHN0cnVjdCB0 eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodikpOworICAgc3RydWN0IHR5 cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGMtPnZhbCkpKTsKKy0gIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworLSAgaW50IGVs c2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworLSAgaW50IG4sIGksIGogPSAwOworKyAgTE9O R0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworKyAgTE9OR0VTVCBlbHNpemUgPSBUWVBF X0xFTkdUSCAoZWx0eXBlKTsKKysgIExPTkdFU1QgbiwgaSwgaiA9IDA7CisgICBMT05HRVNUIGxv d2IgPSAwOworICAgTE9OR0VTVCBoaWdoYiA9IDA7CisgCitAQCAtMjAzLDkgKzIwMyw5IEBAIGx2 YWxfZnVuY193cml0ZSAoc3RydWN0IHZhbHVlICp2LCBzdHJ1Y3QKKyAgIHN0cnVjdCBsdmFsX2Ns b3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJl ICh2KTsKKyAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo dikpOworICAgc3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKTsKKy0gIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZz ZXQgKHYpOworLSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworLSAgaW50IG4s IGksIGogPSAwOworKyAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworKyAgTE9O R0VTVCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKysgIExPTkdFU1QgbiwgaSwgaiA9 IDA7CisgICBMT05HRVNUIGxvd2IgPSAwOworICAgTE9OR0VTVCBoaWdoYiA9IDA7CisgCitAQCAt MjQzLDE3ICsyNDMsMTggQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVj dAorIC8qIFJldHVybiBub256ZXJvIGlmIGFsbCBiaXRzIGluIFYgd2l0aGluIE9GRlNFVCBhbmQg TEVOR1RIIGFyZSB2YWxpZC4gICovCisgCisgc3RhdGljIGludAorLWx2YWxfZnVuY19jaGVja192 YWxpZGl0eSAoY29uc3Qgc3RydWN0IHZhbHVlICp2LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQor K2x2YWxfZnVuY19jaGVja192YWxpZGl0eSAoY29uc3Qgc3RydWN0IHZhbHVlICp2LCBMT05HRVNU IG9mZnNldCwKKysJCQkgIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIHN0cnVjdCBsdmFsX2Nsb3N1 cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2 KTsKKysgIHN0cnVjdCB0eXBlICp0ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFs KSk7CisgICAvKiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KKy0gIGludCBl bHNpemUgPQorLSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKy0gIGludCBzdGFydHJlc3QgPSBvZmZz ZXQgJSBlbHNpemU7CistICBpbnQgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7CistICBpbnQgZW5k cmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworLSAgaW50IGVuZCA9IChvZmZzZXQg KyBsZW5ndGgpIC8gZWxzaXplOworLSAgaW50IGk7CisrICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVf TEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0KSkgKiA4OworKyAgTE9OR0VTVCBzdGFydHJlc3Qg PSBvZmZzZXQgJSBlbHNpemU7CisrICBMT05HRVNUIHN0YXJ0ID0gb2Zmc2V0IC8gZWxzaXplOwor KyAgTE9OR0VTVCBlbmRyZXN0ID0gKG9mZnNldCArIGxlbmd0aCkgJSBlbHNpemU7CisrICBMT05H RVNUIGVuZCA9IChvZmZzZXQgKyBsZW5ndGgpIC8gZWxzaXplOworKyAgTE9OR0VTVCBpOworIAor ICAgaWYgKGVuZHJlc3QpCisgICAgIGVuZCsrOworQEAgLTI2Myw4ICsyNjQsOCBAQCBsdmFsX2Z1 bmNfY2hlY2tfdmFsaWRpdHkgKGNvbnN0IHN0cnVjdCB2CisgCisgICBmb3IgKGkgPSBzdGFydDsg aSA8IGVuZDsgaSsrKQorICAgICB7CistICAgICAgaW50IGNvbXBfb2Zmc2V0ID0gKGkgPT0gc3Rh cnQpID8gc3RhcnRyZXN0IDogMDsKKy0gICAgICBpbnQgY29tcF9sZW5ndGggPSAoaSA9PSBlbmQp ID8gZW5kcmVzdCA6IGVsc2l6ZTsKKysgICAgICBMT05HRVNUIGNvbXBfb2Zmc2V0ID0gKGkgPT0g c3RhcnQpID8gc3RhcnRyZXN0IDogMDsKKysgICAgICBMT05HRVNUIGNvbXBfbGVuZ3RoID0gKGkg PT0gZW5kKSA/IGVuZHJlc3QgOiBlbHNpemU7CisgCisgICAgICAgaWYgKCF2YWx1ZV9iaXRzX3Zh bGlkIChjLT52YWwsIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29mZnNldCwKKyAJCQkg ICAgIGNvbXBfbGVuZ3RoKSkKK0BAIC0yODEsOCArMjgyLDggQEAgbHZhbF9mdW5jX2NoZWNrX2Fu eV92YWxpZCAoY29uc3Qgc3RydWN0CisgeworICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChz dHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOworICAgLyog U2l6ZSBvZiB0aGUgdGFyZ2V0IHR5cGUgaW4gYml0cy4gICovCistICBpbnQgZWxzaXplID0KKy0g ICAgICBUWVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYy0+dmFsKSkpKSAqIDg7CisrICBMT05HRVNUIGVsc2l6ZSA9CisrCSAgIFRZUEVfTEVO R1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwp KSkpICogODsKKyAgIGludCBpOworIAorICAgZm9yIChpID0gMDsgaSA8IGMtPm47IGkrKykKK0BA IC0yOTcsMTcgKzI5OCwxNyBAQCBsdmFsX2Z1bmNfY2hlY2tfYW55X3ZhbGlkIChjb25zdCBzdHJ1 Y3QKKyAKKyBzdGF0aWMgaW50CisgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyIChj b25zdCBzdHJ1Y3QgdmFsdWUgKnYsCistCQkJCSAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCisr CQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKKyB7CisgICBzdHJ1Y3QgbHZh bF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xv c3VyZSAodik7CisgICAvKiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KKy0g IGludCBlbHNpemUgPQorLSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKy0gIGludCBzdGFydHJlc3Qg PSBvZmZzZXQgJSBlbHNpemU7CistICBpbnQgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7CistICBp bnQgZW5kcmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworLSAgaW50IGVuZCA9IChv ZmZzZXQgKyBsZW5ndGgpIC8gZWxzaXplOworLSAgaW50IGk7CisrICBMT05HRVNUIGVsc2l6ZSA9 CisrCSAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChjLT52YWwpKSkpICogODsKKysgIExPTkdFU1Qgc3RhcnRyZXN0ID0gb2Zmc2V0ICUg ZWxzaXplOworKyAgTE9OR0VTVCBzdGFydCA9IG9mZnNldCAvIGVsc2l6ZTsKKysgIExPTkdFU1Qg ZW5kcmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworKyAgTE9OR0VTVCBlbmQgPSAo b2Zmc2V0ICsgbGVuZ3RoKSAvIGVsc2l6ZTsKKysgIExPTkdFU1QgaTsKKyAKKyAgIGlmIChlbmRy ZXN0KQorICAgICBlbmQrKzsKK0BAIC0zMTcsOCArMzE4LDggQEAgbHZhbF9mdW5jX2NoZWNrX3N5 bnRoZXRpY19wb2ludGVyIChjb25zdAorIAorICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkr KykKKyAgICAgeworLSAgICAgIGludCBjb21wX29mZnNldCA9IChpID09IHN0YXJ0KSA/IHN0YXJ0 cmVzdCA6IDA7CistICAgICAgaW50IGNvbXBfbGVuZ3RoID0gKGkgPT0gZW5kKSA/IGVuZHJlc3Qg OiBlbHNpemU7CisrICAgICAgTE9OR0VTVCBjb21wX29mZnNldCA9IChpID09IHN0YXJ0KSA/IHN0 YXJ0cmVzdCA6IDA7CisrICAgICAgTE9OR0VTVCBjb21wX2xlbmd0aCA9IChpID09IGVuZCkgPyBl bmRyZXN0IDogZWxzaXplOworIAorICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0aWNfcG9p bnRlciAoYy0+dmFsLAorIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29mZnNl dCwKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3AtbGFuZy5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTItMTEtMDcgMjI6MDA6 NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wLWxhbmcuYwky MDEyLTExLTA3IDIyOjA5OjI5LjkyMjE0MDY2NyArMDEwMAorQEAgLTk2LDggKzk2LDggQEAgcGFz Y2FsX21haW5fbmFtZSAodm9pZCkKKyAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFS X0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZworICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhh cHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLworIGludAorLWlzX3Bhc2NhbF9z dHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsaW50ICpsZW5ndGhfcG9zLAorLSAgICAgICAg ICAgICAgICAgICAgICAgaW50ICpsZW5ndGhfc2l6ZSwgaW50ICpzdHJpbmdfcG9zLAorK2lzX3Bh c2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1QgKmxlbmd0aF9wb3Ms CisrCQkgICAgICAgTE9OR0VTVCAqbGVuZ3RoX3NpemUsIExPTkdFU1QgKnN0cmluZ19wb3MsCisg CQkgICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCisgCQkgICAgICAgY29uc3QgY2hhciAq KmFycmF5bmFtZSkKKyB7CitAQCAtMjE3LDEyICsyMTcsMTIgQEAgcGFzY2FsX3ByaW50Y2hhciAo aW50IGMsIHN0cnVjdCB0eXBlICp0eQorIAorIHZvaWQKKyBwYXNjYWxfcHJpbnRzdHIgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLAorLQkJIGNvbnN0IGdkYl9ieXRl ICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCQkgY29uc3QgZ2RiX2J5dGUgKnN0cmlu ZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2Vf ZWxsaXBzZXMsCisgCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIg KGdldF90eXBlX2FyY2ggKHR5cGUpKTsKKy0gIHVuc2lnbmVkIGludCBpOworKyAgVUxPTkdFU1Qg aTsKKyAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CisgICBpbnQgaW5fcXVvdGVz ID0gMDsKKyAgIGludCBuZWVkX2NvbW1hID0gMDsKK0BAIC0yNTAsOSArMjUwLDkgQEAgcGFzY2Fs X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorICAgICB7CisgICAgICAgLyogUG9z aXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCisgICAgICAgICAgdG8gc2Vl IHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLworLSAgICAgIHVuc2lnbmVkIGludCByZXAxOwor KyAgICAgIFVMT05HRVNUIHJlcDE7CisgICAgICAgLyogTnVtYmVyIG9mIHJlcGV0aXRpb25zIHdl IGhhdmUgZGV0ZWN0ZWQgc28gZmFyLiAgKi8KKy0gICAgICB1bnNpZ25lZCBpbnQgcmVwczsKKysg ICAgICBVTE9OR0VTVCByZXBzOworICAgICAgIHVuc2lnbmVkIGxvbmcgaW50IGN1cnJlbnRfY2hh cjsKKyAKKyAgICAgICBRVUlUOworQEAgLTI4Nyw3ICsyODcsNyBAQCBwYXNjYWxfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCSAgICAgIGluX3F1b3RlcyA9IDA7CisgCSAgICB9 CisgCSAgcGFzY2FsX3ByaW50Y2hhciAoY3VycmVudF9jaGFyLCB0eXBlLCBzdHJlYW0pOworLQkg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAldSB0aW1lcz4iLCByZXBzKTsK KysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgPHJlcGVhdHMgJXMgdGltZXM+IiwgcHVs b25nZXN0IChyZXBzKSk7CisgCSAgaSA9IHJlcDEgLSAxOworIAkgIHRoaW5nc19wcmludGVkICs9 IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CisgCSAgbmVlZF9jb21tYSA9IDE7CitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wLWxhbmcuaAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9wLWxhbmcuaAkyMDEyLTAzLTAxIDIwOjI2OjEzLjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcC1sYW5nLmgJMjAxMi0x MS0wNyAyMjowOToyOS45MjMxNDA2NjUgKzAxMDAKK0BAIC0zNSw3ICszNSw3IEBAIGV4dGVybiB2 b2lkIHBhc2NhbF9wcmludF90eXBlIChzdHJ1Y3QgdHkKKyBleHRlcm4gdm9pZCBwYXNjYWxfcHJp bnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAorIAkJCQkgIHN0cnVj dCB1aV9maWxlICopOworIAorLWV4dGVybiB2b2lkIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwKKytleHRlcm4gdm9pZCBwYXNjYWxfdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAorIAkJCSAgICAg IENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICop OworQEAgLTQ5LDEzICs0OSwxMyBAQCBleHRlcm4gdm9pZCBwYXNjYWxfdHlwZV9wcmludF9tZXRo b2RfYXJnCisgLyogVGhlc2UgYXJlIGluIHAtbGFuZy5jOiAqLworIAorIGV4dGVybiBpbnQKKy0g IGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50ICosIGludCAqLCBpbnQg KiwKKysgIGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCAqLCBM T05HRVNUICosIExPTkdFU1QgKiwKKyAJCQkgc3RydWN0IHR5cGUgKiosIGNvbnN0IGNoYXIgKiop OworIAorIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludGNoYXIgKGludCwgc3RydWN0IHR5cGUgKiwg c3RydWN0IHVpX2ZpbGUgKik7CisgCisgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50c3RyIChzdHJ1 Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAorLQkJCSAgICAg dW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIGludCwKKysJCQkgICAgIFVMT05HRVNULCBjb25z dCBjaGFyICosIGludCwKKyAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICopOworIAorIGV4dGVybiBzdHJ1Y3QgdHlwZSAqKmNvbnN0IChwYXNjYWxfYnVpbHRpbl90eXBl c1tdKTsKK0BAIC02OSw3ICs2OSw3IEBAIGV4dGVybiB2b2lkCisgICBwYXNjYWxfdHlwZV9wcmlu dF92YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LCBp bnQpOworIAorIGV4dGVybiB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChz dHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAorLQkJCQkJICAgICAgaW50LAorKwkJCQkJ ICAgICAgTE9OR0VTVCwKKyAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwK KyAJCQkJCSAgICAgIGludCwKKyAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorSW5k ZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcC12YWxwcmludC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjAw OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcC12YWxwcmlu dC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTMwMTQwNjU1ICswMTAwCitAQCAtNTksNyArNTksNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCisgCisgdm9pZAorIHBh c2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKKy0JCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCQkgIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3Jp Z2luYWxfdmFsdWUsCisgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQorQEAgLTcwLDggKzcwLDggQEAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbgorICAgdW5zaWduZWQgbGVuOworICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQ7CisgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZTsKKy0gIHVuc2lnbmVkIGVsdGxlbjsKKy0gIGlu dCBsZW5ndGhfcG9zLCBsZW5ndGhfc2l6ZSwgc3RyaW5nX3BvczsKKysgIFVMT05HRVNUIGVsdGxl bjsKKysgIExPTkdFU1QgbGVuZ3RoX3BvcywgbGVuZ3RoX3NpemUsIHN0cmluZ19wb3M7CisgICBz dHJ1Y3QgdHlwZSAqY2hhcl90eXBlOworICAgQ09SRV9BRERSIGFkZHI7CisgICBpbnQgd2FudF9z cGFjZSA9IDA7CitAQCAtNTA0LDcgKzUwNCw3IEBAIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3Rf cHJpbnRfc3RhdGljX2YKKyAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICopOworIAorIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVj dCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCistCQkJCSAgICAgICBpbnQsCisrCQkJCSAgICAg ICBMT05HRVNULAorIAkJCQkgICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQs CisgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkJICAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCitAQCAtNTYzLDcgKzU2Myw3IEBAIHBhc2NhbF9v YmplY3RfaXNfdnRibF9tZW1iZXIgKHN0cnVjdCB0eXAKKyAKKyB2b2lkCisgcGFzY2FsX29iamVj dF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKKy0JCQkJICBpbnQgb2Zmc2V0LAorKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LAorIAkJ CQkgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJCQkgIGlu dCByZWN1cnNlLAorIAkJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorQEAgLTc1OCw3ICs3 NTgsNyBAQCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0CisgCisgc3Rh dGljIHZvaWQKKyBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgaW50IG9mZnNldCwKKysJCQkgICBMT05H RVNUIG9mZnNldCwKKyAJCQkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKKyAJCQkgICBpbnQgcmVjdXJzZSwKKyAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwKK0BAIC03ODEsMTEgKzc4MSwxMSBAQCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChzdHJ1 Y3QgdHlwZSAqCisgCisgICBmb3IgKGkgPSAwOyBpIDwgbl9iYXNlY2xhc3NlczsgaSsrKQorICAg ICB7CistICAgICAgaW50IGJvZmZzZXQgPSAwOworKyAgICAgIExPTkdFU1QgYm9mZnNldCA9IDA7 CisgICAgICAgc3RydWN0IHR5cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFT RUNMQVNTICh0eXBlLCBpKSk7CisgICAgICAgY29uc3QgY2hhciAqYmFzZW5hbWUgPSB0eXBlX25h bWVfbm9fdGFnIChiYXNlY2xhc3MpOworICAgICAgIGNvbnN0IGdkYl9ieXRlICpiYXNlX3ZhbGFk ZHIgPSBOVUxMOworLSAgICAgIGludCB0aGlzb2Zmc2V0OworKyAgICAgIExPTkdFU1QgdGhpc29m ZnNldDsKKyAgICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKKyAgICAgICBp bnQgc2tpcCA9IDA7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcGMtbGludXgt bmF0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvcHBjLWxp bnV4LW5hdC5jCTIwMTItMDctMDYgMTg6NDk6NDMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxMi0xMS0wNyAyMjowOToyOS45MzMx NDA2NTEgKzAxMDAKK0BAIC0xNDkzLDcgKzE0OTMsNyBAQCBwcGNfbGludXhfY2FuX3VzZV9od19i cmVha3BvaW50IChpbnQgdHlwCisgfQorIAorIHN0YXRpYyBpbnQKKy1wcGNfbGludXhfcmVnaW9u X29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKytwcGNfbGlu dXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBs ZW4pCisgeworICAgLyogSGFuZGxlIHN1Yi04LWJ5dGUgcXVhbnRpdGllcy4gICovCisgICBpZiAo bGVuIDw9IDApCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcmludGNtZC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxMi0x MS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L3ByaW50Y21kLmMJMjAxMi0xMS0wNyAyMjowOToyOS45NDAxNDA2NDEgKzAxMDAKK0BAIC0yOTEs NyArMjkxLDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CisgCQkg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKKyB7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0 eXBlKTsKKysgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAorICAgaWYgKFZB TFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCisgICAgIG5leHRfYWRkcmVzcyA9IHZhbHVl X2FkZHJlc3MgKHZhbCkgKyBsZW47CitAQCAtMzY5LDcgKzM2OSw3IEBAIHByaW50X3NjYWxhcl9m b3JtYXR0ZWQgKGNvbnN0IHZvaWQgKnZhbGEKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOworICAgTE9OR0VTVCB2YWxfbG9uZyA9IDA7CistICB1 bnNpZ25lZCBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgVUxPTkdFU1QgbGVuID0g VFlQRV9MRU5HVEggKHR5cGUpOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworIAorICAgLyogU3RyaW5nIHByaW50aW5nIHNob3Vs ZCBnbyB0aHJvdWdoIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkLiAgKi8KK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3Byb2Nmcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIw MTIwOTI2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTItMTEtMDcgMjI6MDA6NDMuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcm9jZnMuYwkyMDEyLTExLTA3IDIyOjA5 OjI5Ljk0NTE0MDYzMyArMDEwMAorQEAgLTQ5NjYsNyArNDk2Niw3IEBAIHByb2Nmc19yZW1vdmVf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nmc19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQorK3By b2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbikKKyB7CisgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24gU29sYXJpcyAyLjYg YW5kIHVwIHNheXMgdGhhdCB0aGUKKyAgICAgIHN5c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNhbmRz IiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCitJbmRleDogZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDEyLTAxLTA0 IDA5OjE3OjI1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcHl0 aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMi0xMS0wNyAyMjowOToyOS45NjkxNDA1OTggKzAxMDAK K0BAIC02NzYsNyArNjc2LDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBj b25zdAorIAorIGludAorIGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCQkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9B RERSIGFkZHJlc3MsCisgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK KyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitAQCAtODI0LDcgKzgyNCw3IEBAIGdkYnB5X2RlZmF1 bHRfdmlzdWFsaXplciAoUHlPYmplY3QgKnNlbGYKKyAKKyBpbnQKKyBhcHBseV92YWxfcHJldHR5 X3ByaW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0J CQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkJCSAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCSAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK KyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcHl0aG9uL3B5dGhvbi5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3B5dGhvbi9weXRob24uaAkyMDEyLTExLTA3IDIy OjAwOjQxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcHl0aG9u L3B5dGhvbi5oCTIwMTItMTEtMDcgMjI6MTA6NDYuMDEwMDMwMTE1ICswMTAwCitAQCAtMzcsNyAr MzcsNyBAQCB2b2lkIHNvdXJjZV9weXRob25fc2NyaXB0IChGSUxFICpmaWxlLCBjCisgdm9pZCBy dW5fcHl0aG9uX3NjcmlwdCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKyAKKyBpbnQgYXBwbHlf dmFsX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCistCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms CisrCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor IAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcmVn Y2FjaGUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9yZWdj YWNoZS5jCTIwMTItMDEtMDQgMDk6MTc6MDkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9yZWdjYWNoZS5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTg4MTQwNTcxICsw MTAwCitAQCAtOTAyLDcgKzkwMiw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2FjaGVfd3JpdGVfZnR5 cGUpIChzdHIKKyAKKyBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKKyByZWdjYWNoZV94ZmVy X3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCistCQkgICAgaW50 IG9mZnNldCwgaW50IGxlbiwgdm9pZCAqaW4sIGNvbnN0IHZvaWQgKm91dCwKKysJCSAgICBMT05H RVNUIG9mZnNldCwgTE9OR0VTVCBsZW4sIHZvaWQgKmluLCBjb25zdCB2b2lkICpvdXQsCisgCQkg ICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSwKKyAJCQkJCQkgIGludCByZWdudW0sCisgCQkJCQkJICBnZGJfYnl0ZSAqYnVmKSwKK0BAIC05 NDYsNyArOTQ2LDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZwor IAorIGVudW0gcmVnaXN0ZXJfc3RhdHVzCisgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQlpbnQgb2Zmc2V0LCBpbnQgbGVu LCBnZGJfYnl0ZSAqYnVmKQorKwkJCWludCBvZmZzZXQsIExPTkdFU1QgbGVuLCBnZGJfYnl0ZSAq YnVmKQorIHsKKyAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVz Y3I7CisgCitAQCAtOTU3LDcgKzk1Nyw3IEBAIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVj dCByZWdjYWNoZQorIAorIHZvaWQKKyByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQkgaW50IG9mZnNldCwgaW50IGxlbiwg Y29uc3QgZ2RiX2J5dGUgKmJ1ZikKKysJCQkgaW50IG9mZnNldCwgTE9OR0VTVCBsZW4sIGNvbnN0 IGdkYl9ieXRlICpidWYpCisgeworICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJl Z2NhY2hlLT5kZXNjcjsKKyAKK0BAIC05NjgsNyArOTY4LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRl X3BhcnQgKHN0cnVjdCByZWdjYWNoZQorIAorIGVudW0gcmVnaXN0ZXJfc3RhdHVzCisgcmVnY2Fj aGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251 bSwKKy0JCQkgICBpbnQgb2Zmc2V0LCBpbnQgbGVuLCBnZGJfYnl0ZSAqYnVmKQorKwkJCSAgIExP TkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbiwgZ2RiX2J5dGUgKmJ1ZikKKyB7CisgICBzdHJ1Y3Qg cmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOworIAorQEAgLTk3OSw3ICs5 NzksNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjCisgCisgdm9p ZAorIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hl LCBpbnQgcmVnbnVtLAorLQkJCSAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuLCBjb25zdCBnZGJfYnl0 ZSAqYnVmKQorKwkJCSAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW4sIGNvbnN0IGdkYl9i eXRlICpidWYpCisgeworICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hl LT5kZXNjcjsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3JlZ2NhY2hlLmgKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDEy LTAxLTA0IDA5OjE3OjEwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvcmVnY2FjaGUuaAkyMDEyLTExLTA3IDIyOjA5OjI5Ljk5MDE0MDU2OCArMDEwMAorQEAgLTkw LDkgKzkwLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vuc2lnbmVkCisgCisg ZXh0ZXJuIGVudW0gcmVnaXN0ZXJfc3RhdHVzCisgICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorLQkJCSAgaW50IG9mZnNldCwg aW50IGxlbiwgZ2RiX2J5dGUgKmJ1Zik7CisrCQkJICBpbnQgb2Zmc2V0LCBMT05HRVNUIGxlbiwg Z2RiX2J5dGUgKmJ1Zik7Cisgdm9pZCByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQkgICAgICBpbnQgb2Zmc2V0LCBpbnQg bGVuLCBjb25zdCBnZGJfYnl0ZSAqYnVmKTsKKysJCQkgICAgICBpbnQgb2Zmc2V0LCBMT05HRVNU IGxlbiwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisgCisgdm9pZCByZWdjYWNoZV9pbnZhbGlkYXRl IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKTsKKyAKK0BAIC0xMjksMTAg KzEyOSwxMSBAQCBleHRlcm4gdm9pZCByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduCisgICAg d3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4gICovCisgCisgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmVn Y2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKy0JCQkJ CQlpbnQgcmVnbnVtLCBpbnQgb2Zmc2V0LAorLQkJCQkJCWludCBsZW4sIGdkYl9ieXRlICpidWYp OworKwkJCQkJCWludCByZWdudW0sIExPTkdFU1Qgb2Zmc2V0LAorKwkJCQkJCUxPTkdFU1QgbGVu LCBnZGJfYnl0ZSAqYnVmKTsKKyB2b2lkIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorLQkJCQkgaW50IG9mZnNldCwgaW50 IGxlbiwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisrCQkJCSBMT05HRVNUIG9mZnNldCwgTE9OR0VT VCBsZW4sCisrCQkJCSBjb25zdCBnZGJfYnl0ZSAqYnVmKTsKKyAKKyAvKiBTcGVjaWFsIHJvdXRp bmVzIHRvIHJlYWQvd3JpdGUgdGhlIFBDLiAgKi8KKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL3JlbW90ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcv Z2RiL3JlbW90ZS5jCTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9yZW1vdGUuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljk5NDE0MDU2 MiArMDEwMAorQEAgLTgxMTksNyArODExOSw3IEBAIGludCByZW1vdGVfaHdfd2F0Y2hwb2ludF9s ZW5ndGhfbGltaXQgPQorIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9saW1pdCA9IC0xOworIAor IHN0YXRpYyBpbnQKKy1yZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgaW50IGxlbikKKytyZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChD T1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAgaWYgKHJlbW90ZV9od193YXRjaHBv aW50X2xlbmd0aF9saW1pdCA9PSAwKQorICAgICByZXR1cm4gMDsKK0luZGV4OiBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL3MzOTAtbmF0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvczM5MC1uYXQuYwkyMDEyLTAzLTA1IDIwOjA1OjA5LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvczM5MC1uYXQuYwkyMDEyLTExLTA3IDIyOjA5 OjMwLjAxNjE0MDUzMSArMDEwMAorQEAgLTU3Miw3ICs1NzIsNyBAQCBzMzkwX2Nhbl91c2VfaHdf YnJlYWtwb2ludCAoaW50IHR5cGUsIGluCisgfQorIAorIHN0YXRpYyBpbnQKKy1zMzkwX3JlZ2lv bl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBjbnQpCisrczM5MF9y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGNudCkK KyB7CisgICByZXR1cm4gMTsKKyB9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zcHUt bXVsdGlhcmNoLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv c3B1LW11bHRpYXJjaC5jCTIwMTItMDUtMTggMjM6MDI6NTAuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxMi0xMS0wNyAyMjowOToz MC4wMjExNDA1MjMgKzAxMDAKK0BAIC0xMTgsNyArMTE4LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRl Y3R1cmUgKHN0cnVjdCB0YXJnZXRfbworIAorIC8qIE92ZXJyaWRlIHRoZSB0b19yZWdpb25fb2tf Zm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCisgc3RhdGljIGludAorLXNwdV9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQorK3NwdV9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKKyB7 CisgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRo ICgmc3B1X29wcyk7CisgICB3aGlsZSAob3BzX2JlbmVhdGggJiYgIW9wc19iZW5lYXRoLT50b19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9zdGFjay5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3N0 YWNrLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowOTozMC4wMjQxNDA1MTggKzAxMDAK K0BAIC0xNzMsNyArMTczLDcgQEAgcHJpbnRfc3RhY2tfZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZv ICpmcgorICAgIGFyZ3VtZW50IChub3QganVzdCB0aGUgZmlyc3QgbmFtZWxlc3MgYXJndW1lbnQp LiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLXByaW50X2ZyYW1lX25hbWVsZXNzX2FyZ3MgKHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSwgbG9uZyBzdGFydCwgaW50IG51bSwKKytwcmludF9mcmFtZV9u YW1lbGVzc19hcmdzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIExPTkdFU1Qgc3RhcnQsIGlu dCBudW0sCisgCQkJICAgaW50IGZpcnN0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorIHsKKyAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKK0BAIC00 OTcsNyArNDk3LDcgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcwor ICAgLyogT2Zmc2V0IG9mIG5leHQgc3RhY2sgYXJndW1lbnQgYmV5b25kIHRoZSBvbmUgd2UgaGF2 ZSBzZWVuIHRoYXQgaXMKKyAgICAgIGF0IHRoZSBoaWdoZXN0IG9mZnNldCwgb3IgLTEgaWYgd2Ug aGF2ZW4ndCBjb21lIHRvIGEgc3RhY2sKKyAgICAgIGFyZ3VtZW50IHlldC4gICovCistICBsb25n IGhpZ2hlc3Rfb2Zmc2V0ID0gLTE7CisrICBMT05HRVNUIGhpZ2hlc3Rfb2Zmc2V0ID0gLTE7Cisg ICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28g ZmFyLiAgKi8KKyAgIGludCBhcmdzX3ByaW50ZWQgPSAwOworICAgc3RydWN0IGNsZWFudXAgKm9s ZF9jaGFpbjsKK0BAIC01MzcsOCArNTM3LDggQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5 bWJvbCAqZnVuYywgcworIAkgICAgY2FzZSBMT0NfQVJHOgorIAkgICAgY2FzZSBMT0NfUkVGX0FS RzoKKyAJICAgICAgeworLQkJbG9uZyBjdXJyZW50X29mZnNldCA9IFNZTUJPTF9WQUxVRSAoc3lt KTsKKy0JCWludCBhcmdfc2l6ZSA9IFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQRSAoc3ltKSk7Cisr CQlMT05HRVNUIGN1cnJlbnRfb2Zmc2V0ID0gU1lNQk9MX1ZBTFVFIChzeW0pOworKwkJTE9OR0VT VCBhcmdfc2l6ZSA9IFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQRSAoc3ltKSk7CisgCisgCQkvKiBD b21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcgdGhlIHNpemUgb2YKKyAJ CSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBib3VuZGFyeS4gICovCitA QCAtNjczLDcgKzY3Myw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMs IHMKKyAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KKyAgIGlm IChudW0gIT0gLTEpCisgICAgIHsKKy0gICAgICBsb25nIHN0YXJ0OworKyAgICAgIExPTkdFU1Qg c3RhcnQ7CisgCisgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQorIAlzdGFydCA9IGdk YmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKK0luZGV4OiBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N5bW1pc2MuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUu MC4yMDEyMDkyNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxMi0xMS0wNyAyMjowMDo0Mi4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N5bW1pc2MuYwkyMDEyLTExLTA3 IDIyOjA5OjMwLjAyNjE0MDUxNiArMDEwMAorQEAgLTUxNywxMSArNTE3LDExIEBAIHByaW50X3N5 bWJvbCAodm9pZCAqYXJncykKKyAKKyAJY2FzZSBMT0NfQ09OU1RfQllURVM6CisgCSAgeworLQkg ICAgdW5zaWduZWQgaTsKKysJICAgIFVMT05HRVNUIGk7CisgCSAgICBzdHJ1Y3QgdHlwZSAqdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKFNZTUJPTF9UWVBFIChzeW1ib2wpKTsKKyAKKy0JICAgIGZwcmlu dGZfZmlsdGVyZWQgKG91dGZpbGUsICJjb25zdCAldSBoZXggYnl0ZXM6IiwKKy0JCQkgICAgICBU WVBFX0xFTkdUSCAodHlwZSkpOworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgImNv bnN0ICVzIGhleCBieXRlczoiLAorKwkJCSAgICAgIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHR5 cGUpKSk7CisgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCisg CSAgICAgIGZwcmludGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCisgCQkJCSh1bnNpZ25l ZCkgU1lNQk9MX1ZBTFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKK0luZGV4OiBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL3RhcmdldC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL3RhcmdldC5jCTIwMTItMDctMDIgMTc6Mjk6MzUuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90YXJnZXQuYwkyMDEyLTExLTA3IDIyOjA5OjMwLjAyOTE0 MDUxMSArMDEwMAorQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgZGVmYXVsdF90ZXJtaW5h bF9pbmZvIChjaGFyCisgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5f cmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICosCisgCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERS LCBpbnQpOworIAorLXN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQgKENPUkVfQUREUiwgaW50KTsKKytzdGF0aWMgaW50IGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50IChDT1JFX0FERFIsIExPTkdFU1QpOworIAorIHN0YXRpYyB2b2lkIHRjb21w bGFpbiAodm9pZCkgQVRUUklCVVRFX05PUkVUVVJOOworIAorQEAgLTEyNyw3ICsxMjcsNyBAQCBz dGF0aWMgaW50IGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzCisgc3RhdGljIGludCBkZWJ1 Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAor IAkJCQkJCSAgQ09SRV9BRERSLCBDT1JFX0FERFIsIGludCk7CisgCistc3RhdGljIGludCBkZWJ1 Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiwgaW50KTsKKytzdGF0 aWMgaW50IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBM T05HRVNUKTsKKyAKKyBzdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2Nv bmRpdGlvbiAoQ09SRV9BRERSLCBpbnQsIGludCwKKyAJCQkJCQkgICAgc3RydWN0IGV4cHJlc3Np b24gKik7CitAQCAtMzU0Niw3ICszNTQ2LDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9j IChjb25zdCBjaGFyCisgCisgCisgc3RhdGljIGludAorLWRlZmF1bHRfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKytkZWZhdWx0X3JlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAg IHJldHVybiAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFyY2gpIC8gVEFSR0VU X0NIQVJfQklUKTsKKyB9CitAQCAtNDE5Nyw3ICs0MTk3LDcgQEAgZGVidWdfdG9fY2FuX3VzZV9o d19icmVha3BvaW50IChpbnQgdHlwZQorIH0KKyAKKyBzdGF0aWMgaW50CistZGVidWdfdG9fcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKytkZWJ1 Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbikKKyB7CisgICBDT1JFX0FERFIgcmV0dmFsOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvdGFyZ2V0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvdGFyZ2V0LmgJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RhcmdldC5oCTIwMTItMTEtMDcgMjI6MDk6MzAuMDU1MTQw NDc0ICswMTAwCitAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCisgCisgICAg IC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNv cnJlc3BvbmRpbmcKKyAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLworLSAgICBpbnQgKCp0b19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChDT1JFX0FERFIsIGludCk7CisrICAgIGludCAo KnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCkgKENPUkVfQUREUiwgTE9OR0VTVCk7Cisg CisgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikgKENPUkVfQURE UiwgaW50LCBpbnQsCisgCQkJCQkgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqKTsKK0luZGV4OiBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RyYWNlcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RyYWNlcG9pbnQuYwky MDEyLTExLTA3IDIyOjA5OjMwLjA2NTE0MDQ1OSArMDEwMAorQEAgLTkzNCwxMyArOTM0LDEzIEBA IGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqY28KKyBzdGF0aWMgdm9pZAor IGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFuZ2VzLCAKKyAJICAg ICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCistCSAgICAgIHVuc2lnbmVkIGxvbmcg bGVuKQorKwkgICAgICBVTE9OR0VTVCBsZW4pCisgeworICAgaWYgKGluZm9fdmVyYm9zZSkKKyAg ICAgeworICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIiglZCwiLCB0eXBlKTsKKyAgICAgICBwcmlu dGZfdm1hIChiYXNlKTsKKy0gICAgICBwcmludGZfZmlsdGVyZWQgKCIsJWxkKVxuIiwgbGVuKTsK KysgICAgICBwcmludGZfZmlsdGVyZWQgKCIsJXMpXG4iLCBwdWxvbmdlc3QgKGxlbikpOworICAg ICB9CisgCisgICAvKiB0eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4g PT0gYmFzZXJlZyAqLworQEAgLTk2OSw3ICs5NjksNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0 IGNvbGxlY3Rpb25fbGlzdCAqCisgCQlsb25nIGZyYW1lX3JlZ25vLCBsb25nIGZyYW1lX29mZnNl dCwKKyAJCUNPUkVfQUREUiBzY29wZSkKKyB7CistICB1bnNpZ25lZCBsb25nIGxlbjsKKysgIFVM T05HRVNUIGxlbjsKKyAgIHVuc2lnbmVkIGludCByZWc7CisgICBiZmRfc2lnbmVkX3ZtYSBvZmZz ZXQ7CisgICBpbnQgdHJlYXRfYXNfZXhwciA9IDA7CitAQCAtOTkzLDggKzk5Myw4IEBAIGNvbGxl Y3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKKyAJICBjaGFyIHRtcFs0MF07Cisg CisgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKKy0JICBwcmludGZfZmlsdGVyZWQgKCJM T0NfU1RBVElDICVzOiBjb2xsZWN0ICVsZCBieXRlcyBhdCAlcy5cbiIsCistCQkJICAgU1lNQk9M X1BSSU5UX05BTUUgKHN5bSksIGxlbiwKKysJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfU1RBVElD ICVzOiBjb2xsZWN0ICVzIGJ5dGVzIGF0ICVzLlxuIiwKKysJCQkgICBTWU1CT0xfUFJJTlRfTkFN RSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAorIAkJCSAgIHRtcCAvKiBhZGRyZXNzICovKTsKKyAJ fQorICAgICAgIC8qIEEgc3RydWN0IG1heSBiZSBhIEMrKyBjbGFzcyB3aXRoIHN0YXRpYyBmaWVs ZHMsIGdvIHRvIGdlbmVyYWwKK0BAIC0xMDI2LDggKzEwMjYsOCBAQCBjb2xsZWN0X3N5bWJvbCAo c3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCisgICAgICAgb2Zmc2V0ID0gZnJhbWVfb2Zmc2V0ICsg U1lNQk9MX1ZBTFVFIChzeW0pOworICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCisgCXsKKy0JICBw cmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3QgJWxkIGJ5dGVzIGF0IG9mZnNl dCAiLAorLQkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBsZW4pOworKwkgIHByaW50Zl9m aWx0ZXJlZCAoIkxPQ19MT0NBTCAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBvZmZzZXQgIiwKKysJ CQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pKTsKKyAJICBwcmlu dGZfdm1hIChvZmZzZXQpOworIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciBy ZWcgJWRcbiIsIHJlZyk7CisgCX0KK0BAIC0xMDM4LDggKzEwMzgsOCBAQCBjb2xsZWN0X3N5bWJv bCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCisgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICBp ZiAoaW5mb192ZXJib3NlKQorIAl7CistCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX1JFR1BBUk1f QUREUiAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIsCistCQkJICAgU1lNQk9MX1BS SU5UX05BTUUgKHN5bSksIGxlbik7CisrCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX1JFR1BBUk1f QUREUiAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBvZmZzZXQgIiwKKysJCQkgICBTWU1CT0xfUFJJ TlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pKTsKKyAJICBwcmludGZfdm1hIChvZmZzZXQp OworIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVnKTsKKyAJfQorQEAg LTEwNTAsOCArMTA1MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICoKKyAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7Cisg ICAgICAgaWYgKGluZm9fdmVyYm9zZSkKKyAJeworLQkgIHByaW50Zl9maWx0ZXJlZCAoIkxPQ19M T0NBTCAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIsCistCQkJICAgU1lNQk9MX1BS SU5UX05BTUUgKHN5bSksIGxlbik7CisrCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX0xPQ0FMICVz OiBDb2xsZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAiLAorKwkJCSAgIFNZTUJPTF9QUklOVF9OQU1F IChzeW0pLCBwdWxvbmdlc3QgKGxlbikpOworIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CisgCSAg cHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKKyAJfQor QEAgLTI2MTcsNyArMjYxNyw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eSkKKyAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CisgICBjaGFyICpzYXZlX2FyZ3MgPSBhcmdzOwor ICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CistICBpbnQgaiwgY291bnQgPSAwOworKyAg aW50IGNvdW50ID0gMDsKKysgIExPTkdFU1QgajsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo OworICAgaW50IHJlZ25vOworIAorQEAgLTI3NDcsOCArMjc0OCwxMSBAQCBzY29wZV9pbmZvIChj aGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisgCSAgICAgIGJyZWFrOworIAkgICAgfQorIAkgIGlm IChTWU1CT0xfVFlQRSAoc3ltKSkKKy0JICAgIHByaW50Zl9maWx0ZXJlZCAoIiwgbGVuZ3RoICVk LlxuIiwKKy0JCQkgICAgIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChTWU1CT0xfVFlQRSAo c3ltKSkpKTsKKysJICAgIHsKKysJICAgICAgVUxPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKGNo ZWNrX3R5cGVkZWYgKFNZTUJPTF9UWVBFIChzeW0pKSk7CisrCisrCSAgICAgIHByaW50Zl9maWx0 ZXJlZCAoIiwgbGVuZ3RoICVzLlxuIiwgcHVsb25nZXN0IChsZW4pKTsKKysJICAgIH0KKyAJfQor ICAgICAgIGlmIChCTE9DS19GVU5DVElPTiAoYmxvY2spKQorIAlicmVhazsKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3R5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6MDA6NDEuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90eXBlcHJpbnQuYwkyMDEyLTEx LTA3IDIyOjA5OjMwLjA2NjE0MDQ1NyArMDEwMAorQEAgLTEyMyw3ICsxMjMsNyBAQCB3aGF0aXNf ZXhwIChjaGFyICpleHAsIGludCBzaG93KQorICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSA9IE5V TEw7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKyAgIGludCBmdWxsID0gMDsKKy0gIGludCB0b3Ag PSAtMTsKKysgIExPTkdFU1QgdG9wID0gLTE7CisgICBpbnQgdXNpbmdfZW5jID0gMDsKKyAgIHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi92YWxhcml0aC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL3ZhbGFyaXRoLmMJMjAxMi0xMS0wNyAyMjowMjoxOC4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbGFyaXRoLmMJMjAxMi0xMS0wNyAyMjoxMzozMS4x NDU4Njc1MTkgKzAxMDAKK0BAIC0xOTIsMTUgKzE5MiwxNSBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0 cnVjdCB2YWx1ZSAqYXJyYXksIExPCisgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2Vz LiAgKi8KKyAKKyBzdHJ1Y3QgdmFsdWUgKgorLXZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3Ry dWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91bmQpCisrdmFsdWVf c3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4LCBM T05HRVNUIGxvd2VyYm91bmQpCisgeworICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOworICAgc3RydWN0IHR5cGUgKmVsdF90eXBl ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOworLSAgdW5z aWduZWQgaW50IGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsKKy0gIHVuc2lnbmVk IGludCBlbHRfc3RyaWRlCisrICBVTE9OR0VTVCBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRf dHlwZSk7CisrICBVTE9OR0VTVCBlbHRfc3RyaWRlCisgICAgID0gKFRZUEVfQllURV9TVFJJREUg KFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpID09IDAKKyAgICAgICAgPyBlbHRfc2l6ZSA6 IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpKTsKKy0gIHVu c2lnbmVkIGludCBlbHRfb2ZmcyA9IGVsdF9zdHJpZGUgKiBsb25nZXN0X3RvX2ludCAoaW5kZXgg LSBsb3dlcmJvdW5kKTsKKysgIFVMT05HRVNUIGVsdF9vZmZzID0gZWx0X3N0cmlkZSAqIGxvbmdl c3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91bmQpOworICAgc3RydWN0IHZhbHVlICp2OworIAor ICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNf VU5ERUZJTkVEIChhcnJheV90eXBlKQorQEAgLTY3OCw3ICs2NzgsNyBAQCB2YWx1ZV9jb25jYXQg KHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CisgICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKKyAg IHN0cnVjdCB2YWx1ZSAqaW52YWwyOworICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwor LSAgaW50IGludmFsMWxlbiwgaW52YWwybGVuOworKyAgc3NpemVfdCBpbnZhbDFsZW4sIGludmFs MmxlbjsKKyAgIGludCBjb3VudCwgaWR4OworICAgY2hhciAqcHRyOworICAgY2hhciBpbmNoYXI7 CitAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg c3RydWN0CisgaW50CisgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKKyB7 CistICBpbnQgbGVuOworKyAgTE9OR0VTVCBsZW47CisgICBjb25zdCBnZGJfYnl0ZSAqcDsKKyAg IHN0cnVjdCB0eXBlICp0eXBlMTsKKyAKK0BAIC0xNTIwLDExICsxNTIwLDExIEBAIHZhbHVlX2xv Z2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCisgc3RhdGljIGludAorIHZhbHVlX3N0cmNt cCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCisgeworLSAgaW50IGxl bjEgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnMSkpOworLSAgaW50IGxlbjIgPSBUWVBF X0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnMikpOworKyAgTE9OR0VTVCBsZW4xID0gVFlQRV9MRU5H VEggKHZhbHVlX3R5cGUgKGFyZzEpKTsKKysgIExPTkdFU1QgbGVuMiA9IFRZUEVfTEVOR1RIICh2 YWx1ZV90eXBlIChhcmcyKSk7CisgICBjb25zdCBnZGJfYnl0ZSAqczEgPSB2YWx1ZV9jb250ZW50 cyAoYXJnMSk7CisgICBjb25zdCBnZGJfYnl0ZSAqczIgPSB2YWx1ZV9jb250ZW50cyAoYXJnMik7 CistICBpbnQgaSwgbGVuID0gbGVuMSA8IGxlbjIgPyBsZW4xIDogbGVuMjsKKysgIExPTkdFU1Qg aSwgbGVuID0gbGVuMSA8IGxlbjIgPyBsZW4xIDogbGVuMjsKKyAKKyAgIGZvciAoaSA9IDA7IGkg PCBsZW47IGkrKykKKyAgICAgeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsb3Bz LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFsb3BzLmMJ MjAxMi0xMS0wNyAyMjowNjozNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL3ZhbG9wcy5jCTIwMTItMTEtMDcgMjI6MDk6MzAuMDc0MTQwNDQ1ICswMTAwCitAQCAt NTQsMTEgKzU0LDExIEBAIHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXIK KyAJCSAgICBzdHJ1Y3QgZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0MltdKTsKKyAKKyBzdGF0 aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0cnVj dCB2YWx1ZSAqLCAKKy0JCQkJCSAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBpbnQpOworKwkJCQkJICBM T05HRVNULCBzdHJ1Y3QgdHlwZSAqLCBpbnQpOworIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnNl YXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICosIHN0cnVjdCB2YWx1ZSAqKiwKKyAJCQkJ CSAgIHN0cnVjdCB2YWx1ZSAqKiwKKy0JCQkJCSAgIGludCwgaW50ICosIHN0cnVjdCB0eXBlICop OworKwkJCQkJICAgTE9OR0VTVCwgaW50ICosIHN0cnVjdCB0eXBlICopOworIAorIHN0YXRpYyBp bnQgZmluZF9vbG9hZF9jaGFtcF9uYW1lc3BhY2UgKHN0cnVjdCB2YWx1ZSAqKiwgaW50LAorIAkJ CQkgICAgICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosCitAQCAtODYsNyArODYsNyBAQCBv bG9hZF9jbGFzc2lmaWNhdGlvbiBjbGFzc2lmeV9vbG9hZF9tYXRjCisgCQkJCQkgICBpbnQsIGlu dCk7CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJl bmNlIChzdHJ1Y3QgdHlwZSAqLAorLQkJCQkJCSAgICAgaW50LCBzdHJ1Y3QgdHlwZSAqLAorKwkJ CQkJCSAgICAgTE9OR0VTVCwgc3RydWN0IHR5cGUgKiwKKyAJCQkJCQkgICAgIGNoYXIgKiwKKyAJ CQkJCQkgICAgIHN0cnVjdCB0eXBlICosCisgCQkJCQkJICAgICBpbnQsIGVudW0gbm9zaWRlKTsK K0BAIC0xMDMsOCArMTAzLDggQEAgc3RhdGljIENPUkVfQUREUiBhbGxvY2F0ZV9zcGFjZV9pbl9p bmZlcgorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmNhc3RfaW50b19jb21wbGV4IChzdHJ1Y3QgdHlw ZSAqLCBzdHJ1Y3QgdmFsdWUgKik7CisgCisgc3RhdGljIHN0cnVjdCBmbl9maWVsZCAqZmluZF9t ZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqLCBjb25zdCBjaGFyICosCistCQkJCQkgIGludCwg c3RydWN0IHR5cGUgKiwgaW50ICosCistCQkJCQkgIHN0cnVjdCB0eXBlICoqLCBpbnQgKik7Cisr CQkJCQkgIExPTkdFU1QsIHN0cnVjdCB0eXBlICosIGludCAqLAorKwkJCQkJICBzdHJ1Y3QgdHlw ZSAqKiwgTE9OR0VTVCAqKTsKKyAKKyB2b2lkIF9pbml0aWFsaXplX3ZhbG9wcyAodm9pZCk7Cisg CitAQCAtMTg5LDcgKzE4OSw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNo YXIgKm4KKyAgICBzcGFjZS4gICovCisgCisgc3RydWN0IHZhbHVlICoKKy12YWx1ZV9hbGxvY2F0 ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50IGxlbikKKyt2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9p bmZlcmlvciAoTE9OR0VTVCBsZW4pCisgeworICAgc3RydWN0IG9iamZpbGUgKm9iamY7CisgICBz dHJ1Y3QgdmFsdWUgKnZhbCA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKCJtYWxsb2MiLCAm b2JqZik7CitAQCAtMjYyLDcgKzI2Miw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5 cGUgKnR5cGUsIHMKKyAgIGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQorICAgICB7CisgICAg ICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1 ZS4gICovCistICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOworKyAgICAgIGludCBmdWxs LCB1c2luZ19lbmM7CisrICAgICAgTE9OR0VTVCB0b3A7CisgICAgICAgc3RydWN0IHR5cGUgKnJl YWxfdHlwZTsKKyAKKyAgICAgICByZWFsX3R5cGUgPSB2YWx1ZV9ydHRpX3R5cGUgKHYyLCAmZnVs bCwgJnRvcCwgJnVzaW5nX2VuYyk7CitAQCAtNDAxLDEyICs0MDIsMTIgQEAgdmFsdWVfY2FzdCAo c3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQorICAgaWYgKGNvZGUxID09IFRZUEVfQ09ERV9B UlJBWSkKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUgPSBUWVBFX1RB UkdFVF9UWVBFICh0eXBlKTsKKy0gICAgICB1bnNpZ25lZCBlbGVtZW50X2xlbmd0aCA9IFRZUEVf TEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKysgICAgICBVTE9OR0VTVCBl bGVtZW50X2xlbmd0aCA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUp KTsKKyAKKyAgICAgICBpZiAoZWxlbWVudF9sZW5ndGggPiAwICYmIFRZUEVfQVJSQVlfVVBQRVJf Qk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKyAJeworIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90 eXBlID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKKy0JICBpbnQgdmFsX2xlbmd0aCA9IFRZUEVf TEVOR1RIICh0eXBlMik7CisrCSAgTE9OR0VTVCB2YWxfbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5 cGUyKTsKKyAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgbmV3X2xlbmd0aDsKKyAK KyAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhp Z2hfYm91bmQpIDwgMCkKK0BAIC02NTYsNyArNjU3LDcgQEAgdmFsdWVfcmVpbnRlcnByZXRfY2Fz dCAoc3RydWN0IHR5cGUgKnR5cAorIHN0YXRpYyBpbnQKKyBkeW5hbWljX2Nhc3RfY2hlY2tfMSAo c3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKKyAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAorLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCSAgICAgIExPTkdFU1QgZW1i ZWRkZWRfb2Zmc2V0LAorIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkgICAgICBzdHJ1 Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlwZSwKK0BAIC02 NjgsOCArNjY5LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgor IAorICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2VhcmNoX3R5cGUpICYm IHJlc3VsdF9jb3VudCA8IDI7ICsraSkKKyAgICAgeworLSAgICAgIGludCBvZmZzZXQgPSBiYXNl Y2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0LAor LQkJCQkgICAgIGFkZHJlc3MsIHZhbCk7CisrICAgICAgTE9OR0VTVCBvZmZzZXQgPSBiYXNlY2xh c3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwKKysJCQkJCSBlbWJlZGRlZF9vZmZz ZXQsIGFkZHJlc3MsIHZhbCk7CisgCisgICAgICAgaWYgKGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVz aXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2VhcmNoX3R5cGUsIGkpKSkKKyAJeworQEAgLTcw Myw3ICs3MDQsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCisg c3RhdGljIGludAorIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXJlZF90 eXBlLAorIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICAgICBpbnQgZW1i ZWRkZWRfb2Zmc2V0LAorKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkgICAg ICBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJICAg ICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAorQEAgLTcxMyw3ICs3MTQsNyBAQCBkeW5hbWlj X2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCisgCisgICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytp KQorICAgICB7CistICAgICAgaW50IG9mZnNldDsKKysgICAgICBMT05HRVNUIG9mZnNldDsKKyAK KyAgICAgICBpZiAoISBCQVNFVFlQRV9WSUFfUFVCTElDIChzZWFyY2hfdHlwZSwgaSkpCisgCWNv bnRpbnVlOworQEAgLTc0NCw3ICs3NDUsOCBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0 IHR5cGUgKmRlc2lyCisgc3RydWN0IHZhbHVlICoKKyB2YWx1ZV9keW5hbWljX2Nhc3QgKHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKmFyZykKKyB7CistICBpbnQgZnVsbCwgdG9wLCB1 c2luZ19lbmM7CisrICBpbnQgZnVsbCwgdXNpbmdfZW5jOworKyAgTE9OR0VTVCB0b3A7CisgICBz dHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOworICAgc3Ry dWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7Cisg ICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKK0BAIC0xMTk3LDcgKzExOTks NyBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB9CisgCisgdm9pZAor LXJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNl dCwKKytyZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LAorIAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKKyAJCSAgIGdk Yl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgeworQEAgLTEzMzIsNyArMTMzNCw3IEBA IHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKKyAgICAgICB7CisgCWNv bnN0IGdkYl9ieXRlICpkZXN0X2J1ZmZlcjsKKyAJQ09SRV9BRERSIGNoYW5nZWRfYWRkcjsKKy0J aW50IGNoYW5nZWRfbGVuOworKwlMT05HRVNUIGNoYW5nZWRfbGVuOworICAgICAgICAgZ2RiX2J5 dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOworIAorIAlpZiAodmFsdWVfYml0c2l6ZSAodG92 YWwpKQorQEAgLTE0MTEsNyArMTQxMyw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0 b3ZhbCwgc3RydWMKKyAJICAgIGlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCisgCSAgICAgIHsK KyAJCXN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0b3ZhbCk7CistCQlpbnQg b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Cisr CQlMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAocGFyZW50KSArIHZhbHVlX29mZnNldCAo dG92YWwpOworIAkJaW50IGNoYW5nZWRfbGVuOworIAkJZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAo TE9OR0VTVCldOworIAkJaW50IG9wdGltLCB1bmF2YWlsOworQEAgLTE4OTIsNyArMTg5NCw3IEBA IHZhbHVlX2FycmF5IChpbnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKKyB7CisgICBpbnQgbmVs ZW07CisgICBpbnQgaWR4OworLSAgdW5zaWduZWQgaW50IHR5cGVsZW5ndGg7CisrICBVTE9OR0VT VCB0eXBlbGVuZ3RoOworICAgc3RydWN0IHZhbHVlICp2YWw7CisgICBzdHJ1Y3QgdHlwZSAqYXJy YXl0eXBlOworIAorQEAgLTIwODAsNyArMjA4Miw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBp bnQgdmFyYXJncywgaW50IG4KKyAKKyBzdGF0aWMgdm9pZAorIHVwZGF0ZV9zZWFyY2hfcmVzdWx0 IChzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRyLCBzdHJ1Y3QgdmFsdWUgKnYsCistCQkgICAgICBp bnQgKmxhc3RfYm9mZnNldCwgaW50IGJvZmZzZXQsCisrCQkgICAgICBMT05HRVNUICpsYXN0X2Jv ZmZzZXQsIExPTkdFU1QgYm9mZnNldCwKKyAJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCB0eXBlICp0eXBlKQorIHsKKyAgIGlmICh2ICE9IE5VTEwpCitAQCAtMjEwNCwxMCArMjEwNiwx MCBAQCB1cGRhdGVfc2VhcmNoX3Jlc3VsdCAoc3RydWN0IHZhbHVlICoqcmVzCisgICAgbG9va3Vw IGlzIGFtYmlndW91cy4gICovCisgCisgc3RhdGljIHZvaWQKKy1kb19zZWFyY2hfc3RydWN0X2Zp ZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCisr ZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICph cmcxLCBMT05HRVNUIG9mZnNldCwKKyAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGxvb2tpbmdf Zm9yX2Jhc2VjbGFzcywKKyAJCQlzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRyLAorLQkJCWludCAq bGFzdF9ib2Zmc2V0LAorKwkJCUxPTkdFU1QgKmxhc3RfYm9mZnNldCwKKyAJCQlzdHJ1Y3QgdHlw ZSAqb3V0ZXJtb3N0X3R5cGUpCisgeworICAgaW50IGk7CitAQCAtMjE2Miw3ICsyMTY0LDcgQEAg ZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQorIAkJICAgPHZhcmlhbnQg ZmllbGQ+LiAgKi8KKyAKKyAJCXN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7CistCQlpbnQgbmV3X29m ZnNldCA9IG9mZnNldDsKKysJCUxPTkdFU1QgbmV3X29mZnNldCA9IG9mZnNldDsKKyAKKyAJCS8q IFRoaXMgaXMgcHJldHR5IGdyb3NzLiAgSW4gRysrLCB0aGUgb2Zmc2V0IGluIGFuCisgCQkgICBh bm9ueW1vdXMgdW5pb24gaXMgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUKK0BAIC0y MjAxLDcgKzIyMDMsNyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1l CisgCQkJICAgICAmJiAoc3RyY21wX2l3IChuYW1lLCAKKyAJCQkJCSAgICBUWVBFX0JBU0VDTEFT U19OQU1FICh0eXBlLCAKKyAJCQkJCQkJCSBpKSkgPT0gMCkpOworLSAgICAgIGludCBib2Zmc2V0 ID0gdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNldDsKKysgICAgICBMT05HRVNU IGJvZmZzZXQgPSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0OworIAorICAg ICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCisgCXsKK0BAIC0yMjc2LDEx ICsyMjc4LDExIEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKKyAg ICBmaWVsZHMsIGxvb2sgZm9yIGEgYmFzZWNsYXNzIG5hbWVkIE5BTUUuICAqLworIAorIHN0YXRp YyBzdHJ1Y3QgdmFsdWUgKgorLXNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKKytzZWFyY2hfc3RydWN0X2ZpZWxkIChj b25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAorIAkJ ICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGxvb2tpbmdfZm9yX2Jhc2VjbGFzcykKKyB7Cisg ICBzdHJ1Y3QgdmFsdWUgKnJlc3VsdCA9IE5VTEw7CistICBpbnQgYm9mZnNldCA9IDA7CisrICBM T05HRVNUIGJvZmZzZXQgPSAwOworIAorICAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAobmFtZSwg YXJnMSwgb2Zmc2V0LCB0eXBlLCBsb29raW5nX2Zvcl9iYXNlY2xhc3MsCisgCQkJICAmcmVzdWx0 LCAmYm9mZnNldCwgdHlwZSk7CitAQCAtMjI5Nyw3ICsyMjk5LDcgQEAgc2VhcmNoX3N0cnVjdF9m aWVsZCAoY29uc3QgY2hhciAqbmFtZSwgcworIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorIHNl YXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcx cCwKKy0JCSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGludCBvZmZzZXQsCisrCQkgICAgICBz dHJ1Y3QgdmFsdWUgKiphcmdzLCBMT05HRVNUIG9mZnNldCwKKyAJCSAgICAgIGludCAqc3RhdGlj X21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBpbnQgaTsKK0BAIC0yMzYxLDkg KzIzNjMsOSBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwKKyAKKyAg IGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAxOyBpID49IDA7IGktLSkKKyAg ICAgeworLSAgICAgIGludCBiYXNlX29mZnNldDsKKysgICAgICBMT05HRVNUIGJhc2Vfb2Zmc2V0 OworICAgICAgIGludCBza2lwID0gMDsKKy0gICAgICBpbnQgdGhpc19vZmZzZXQ7CisrICAgICAg TE9OR0VTVCB0aGlzX29mZnNldDsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwg KHR5cGUsIGkpKQorIAl7CitAQCAtMjU0NSw4ICsyNTQ3LDggQEAgdmFsdWVfc3RydWN0X2VsdCAo c3RydWN0IHZhbHVlICoqYXJncCwgcworIAorIHN0YXRpYyBzdHJ1Y3QgZm5fZmllbGQgKgorIGZp bmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIgKm1ldGhvZCwK Ky0JCSAgaW50IG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUsIGludCAqbnVtX2ZucywKKy0JCSAg c3RydWN0IHR5cGUgKipiYXNldHlwZSwgaW50ICpib2Zmc2V0KQorKwkJICBMT05HRVNUIG9mZnNl dCwgc3RydWN0IHR5cGUgKnR5cGUsIGludCAqbnVtX2ZucywKKysJCSAgc3RydWN0IHR5cGUgKipi YXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKKyB7CisgICBpbnQgaTsKKyAgIHN0cnVjdCBmbl9m aWVsZCAqZjsKK0BAIC0yNTc5LDcgKzI1ODEsNyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3Qg dmFsdWUgKiphcmdwLCBjCisgICAvKiBOb3QgZm91bmQgaW4gb2JqZWN0LCBjaGVjayBpbiBiYXNl IHN1Ym9iamVjdHMuICAqLworICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAt IDE7IGkgPj0gMDsgaS0tKQorICAgICB7CistICAgICAgaW50IGJhc2Vfb2Zmc2V0OworKyAgICAg IExPTkdFU1QgYmFzZV9vZmZzZXQ7CisgCisgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFM ICh0eXBlLCBpKSkKKyAJeworQEAgLTI2MTUsNyArMjYxNyw3IEBAIGZpbmRfbWV0aG9kX2xpc3Qg KHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGMKKyBzdGF0aWMgc3RydWN0IGZuX2ZpZWxkICoKKyB2YWx1 ZV9maW5kX29sb2FkX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBjb25zdCBjaGFy ICptZXRob2QsCisgCQkJICAgICAgaW50IG9mZnNldCwgaW50ICpudW1fZm5zLCAKKy0JCQkgICAg ICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBpbnQgKmJvZmZzZXQpCisrCQkJICAgICAgc3RydWN0 IHR5cGUgKipiYXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKKyB7CisgICBzdHJ1Y3QgdHlwZSAq dDsKKyAKK0BAIC0yNzA3LDcgKzI3MDksNyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3Qg dmFsdWUgKiphcmdzCisgICAvKiBOdW1iZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0YW5jZXMgYmVpbmcg Y29uc2lkZXJlZC4gICovCisgICBpbnQgbnVtX2ZucyA9IDA7CisgICBzdHJ1Y3QgdHlwZSAqYmFz ZXR5cGUgPSBOVUxMOworLSAgaW50IGJvZmZzZXQ7CisrICBMT05HRVNUIGJvZmZzZXQ7CisgCisg ICBzdHJ1Y3QgY2xlYW51cCAqYWxsX2NsZWFudXBzID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFu dXAsIE5VTEwpOworIAorQEAgLTM0MTMsNyArMzQxNSw3IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAo c3RydWN0IHR5cGUgKnQxLCBzdHIKKyAgICB0aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4gICovCisg Cisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNl IChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBpbnQgb2Zmc2V0LAorK3ZhbHVlX3N0cnVjdF9lbHRfZm9y X3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwgTE9OR0VTVCBvZmZzZXQsCisgCQkJCXN0 cnVjdCB0eXBlICpjdXJ0eXBlLCBjaGFyICpuYW1lLAorIAkJCQlzdHJ1Y3QgdHlwZSAqaW50eXBl LCAKKyAJCQkJaW50IHdhbnRfYWRkcmVzcywKK0BAIC0zNDUwLDcgKzM0NTIsNyBAQCB2YWx1ZV9z dHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CisgCSAgaWYgKHdhbnRfYWRkcmVzcykK KyAJICAgIHJldHVybiB2YWx1ZV9mcm9tX2xvbmdlc3QKKyAJICAgICAgKGxvb2t1cF9tZW1iZXJw dHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKKy0JICAgICAgIG9mZnNl dCArIChMT05HRVNUKSAoVFlQRV9GSUVMRF9CSVRQT1MgKHQsIGkpID4+IDMpKTsKKysJICAgICAg IG9mZnNldCArIChUWVBFX0ZJRUxEX0JJVFBPUyAodCwgaSkgPj4gMykpOworIAkgIGVsc2UgaWYg KG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUykKKyAJICAgIHJldHVybiBhbGxvY2F0 ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7CisgCSAgZWxzZQorQEAgLTM1OTMsNyAr MzU5NSw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKKyAgIGZv ciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkKKyAgICAgewor ICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKKy0gICAgICBpbnQgYmFzZV9vZmZzZXQ7CisrICAgICAg TE9OR0VTVCBiYXNlX29mZnNldDsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwg KHQsIGkpKQorIAliYXNlX29mZnNldCA9IDA7CitAQCAtMzY4Myw3ICszNjg1LDcgQEAgdmFsdWVf bWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0CisgCisgc3RydWN0IHR5cGUgKgorIHZh bHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIAorLQkJ CSAgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKQorKwkJCSAgTE9OR0VTVCAqdG9wLCBpbnQgKnVz aW5nX2VuYykKKyB7CisgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldDsKKyAgIHN0cnVjdCB0eXBlICp0 eXBlLCAqcmVhbF90eXBlLCAqdGFyZ2V0X3R5cGU7CitAQCAtMzczMywxMiArMzczNSwxMiBAQCB2 YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCisgc3RydWN0IHZhbHVlICoK KyB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZhbHVlICphcmdwLCAKKyAJCSAgIHN0cnVjdCB0 eXBlICpydHlwZSwgCistCQkgICBpbnQgeGZ1bGwsIGludCB4dG9wLAorKwkJICAgaW50IHhmdWxs LCBMT05HRVNUIHh0b3AsCisgCQkgICBpbnQgeHVzaW5nX2VuYykKKyB7CisgICBzdHJ1Y3QgdHlw ZSAqcmVhbF90eXBlOworICAgaW50IGZ1bGwgPSAwOworLSAgaW50IHRvcCA9IC0xOworKyAgTE9O R0VTVCB0b3AgPSAtMTsKKyAgIGludCB1c2luZ19lbmMgPSAwOworICAgc3RydWN0IHZhbHVlICpu ZXdfdmFsOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFscHJpbnQuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTIt MTEtMDcgMjI6MDA6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi92YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MTE6NDkuMzEzOTM4MTMzICswMTAwCitAQCAtMjY0 LDcgKzI2NCw3IEBAIHNjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKQorIGludAorIHZh bHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJCSBzdHJ1 Y3QgdHlwZSAqdHlwZSwKKy0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQorIHsKKyAgIENI RUNLX1RZUEVERUYgKHR5cGUpOworQEAgLTMyOCw3ICszMjgsNyBAQCB2YWxfcHJpbnRfaW52YWxp ZF9hZGRyZXNzIChzdHJ1Y3QgdWlfZmlsCisgCisgdm9pZAorIGdlbmVyaWNfdmFsX3ByaW50IChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICBpbnQgZW1i ZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCSAgIExPTkdFU1QgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAorIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwK KyAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorQEAgLTY5 MSw3ICs2OTEsNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCisg ICAgUkVDVVJTRS4gICovCisgCisgdm9pZAorLXZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorK3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVt YmVkZGVkX29mZnNldCwKKyAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAorIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitAQCAtOTAzLDcgKzkw Myw3IEBAIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKKyAKKyB2b2lk CisgdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICp0eXBlLAorLQkJCSAg ICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgICAg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJCSAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMsCisgCQkJICAgIGludCBzaXplLAorQEAgLTE0NDQsNyArMTQ0 NCw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpzdHIKKyAKKyB2b2lk CisgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKKy0JCSB1bnNpZ25lZCBsZW4sIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy KQorKwkJIFVMT05HRVNUIGxlbiwgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIpCisgeworICAg Y29uc3QgZ2RiX2J5dGUgKnA7CisgCitAQCAtMTU2MSwyMyArMTU2MSwyMyBAQCBtYXliZV9wcmlu dF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCisgCisgdm9pZAorIHZhbF9wcmludF9hcnJh eV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCistCQkJICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJCSAgaW50IHJlY3Vyc2UsCisgCQkJICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zLAorLQkJCSAgdW5zaWduZWQgaW50IGkpCisrCQkJICBVTE9OR0VTVCBpKQorIHsKKyAg IHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CistICB1bnNpZ25lZCBsZW47CisrICBV TE9OR0VTVCBsZW47CisgICBzdHJ1Y3QgdHlwZSAqc2F2ZWRfdHlwZSA9IHR5cGU7CisgICBzdHJ1 Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4X3R5cGU7CistICB1bnNpZ25lZCBlbHRsZW47CisrICBV TE9OR0VTVCBlbHRsZW47CisgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkgZWxlbWVudCB3ZSBh cmUgZXhhbWluaW5nIHRvIHNlZQorICAgICAgd2hldGhlciBpdCBpcyByZXBlYXRlZC4gICovCist ICB1bnNpZ25lZCBpbnQgcmVwMTsKKysgIFVMT05HRVNUIHJlcDE7CisgICAvKiBOdW1iZXIgb2Yg cmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAqLworLSAgdW5zaWduZWQgaW50 IHJlcHM7CisrICBVTE9OR0VTVCByZXBzOworICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQ7CisgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKyAgIENPUkVfQUREUiBzYXZlZF9hZGRy ZXNzID0gYWRkcmVzczsKK0BAIC0xNjcyLDcgKzE2NzIsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxl bWVudHMgKHN0cnVjdCB0eXBlICp0CisgCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSAr IDEsIHZhbCwgb3B0aW9ucywKKyAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7CisgCSAgYW5ub3Rh dGVfZWx0X3JlcCAocmVwcyk7CistCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiIDxyZXBl YXRzICV1IHRpbWVzPiIsIHJlcHMpOworKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8 cmVwZWF0cyAlcyB0aW1lcz4iLCBwdWxvbmdlc3QgKHJlcHMpKTsKKyAJICBhbm5vdGF0ZV9lbHRf cmVwX2VuZCAoKTsKKyAKKyAJICBpID0gcmVwMSAtIDE7CitAQCAtMjA4NSw3ICsyMDg1LDcgQEAg Z2VuZXJpY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdAorIAorIHZvaWQKKyBnZW5l cmljX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg CistCQkgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsIAorKwkJ ICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBsZW5ndGgsCisgCQkgIGNvbnN0IGNo YXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCQkgIGludCBxdW90ZV9jaGFyLCBp bnQgY19zdHlsZV90ZXJtaW5hdG9yLAorIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHByaW50LmgK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFscHJpbnQuaAky MDEyLTA1LTE4IDE3OjMxOjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvdmFscHJpbnQuaAkyMDEyLTExLTA3IDIyOjA5OjMwLjA5MzE0MDQxOCArMDEwMAorQEAg LTExNywxMSArMTE3LDExIEBAIGV4dGVybiB2b2lkIG1heWJlX3ByaW50X2FycmF5X2luZGV4IChz dHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwKKyAJCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsK KyAKKy1leHRlcm4gdm9pZCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICos IGNvbnN0IGdkYl9ieXRlICosIGludCwKKytleHRlcm4gdm9pZCB2YWxfcHJpbnRfYXJyYXlfZWxl bWVudHMgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCisgCQkJCSAg ICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCQkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKiwKKyAJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKiwKKy0JCQkJICAgICAgdW5zaWduZWQgaW50KTsKKysJCQkJICAgICAgVUxPTkdFU1QpOwor IAorIGV4dGVybiB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVfaW50IChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBnZGJfYnl0ZSAqLAorIAkJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOworQEAgLTEzMSw3 ICsxMzEsNyBAQCBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzCisgCQkJ CSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKKyAKKyBleHRlcm4gdm9pZCB2YWxfcHJp bnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKiwKKy0JCQkJCWNvbnN0IGdkYl9ieXRl ICosIGludCwKKysJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCisgCQkJCQljb25zdCBz dHJ1Y3QgdmFsdWUgKiwKKyAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICos CisgCQkJCQlpbnQsCitAQCAtMTQ3LDcgKzE0Nyw3IEBAIGV4dGVybiB2b2lkIHByaW50X2RlY2lt YWxfY2hhcnMgKHN0cnVjdAorIAkJCQkgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwor IAorIGV4dGVybiB2b2lkIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKiwgY29uc3Qg Z2RiX2J5dGUgKiwKKy0JCQkgICAgIHVuc2lnbmVkIGludCwgZW51bSBiZmRfZW5kaWFuKTsKKysJ CQkgICAgIFVMT05HRVNULCBlbnVtIGJmZF9lbmRpYW4pOworIAorIGV4dGVybiB2b2lkIHByaW50 X2NoYXJfY2hhcnMgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosCisgCQkJICAgICAg Y29uc3QgZ2RiX2J5dGUgKiwgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOworQEAgLTE5 MSw3ICsxOTEsNyBAQCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGVjb3JhdGlvbnMKKyAKKyAK KyBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKKysJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKKyAJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKyAJ CQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitAQCAt MjAxLDcgKzIwMSw3IEBAIGV4dGVybiB2b2lkIGdlbmVyaWNfZW1pdF9jaGFyIChpbnQgYywgc3QK KyAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2RpbmcpOworIAorIGV4dGVy biB2b2lkIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLCAKKy0JCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCB1bnNpZ25lZCBp bnQgbGVuZ3RoLCAKKysJCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBs ZW5ndGgsCisgCQkJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNl cywKKyAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwKKyAJ CQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7CitJbmRl eDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAy MjowOTozMC4wOTYxNDA0MTQgKzAxMDAKK0BAIC02OCwxMCArNjgsMTAgQEAgc3RydWN0IGludGVy bmFsX2Z1bmN0aW9uCisgc3RydWN0IHJhbmdlCisgeworICAgLyogTG93ZXN0IG9mZnNldCBpbiB0 aGUgcmFuZ2UuICAqLworLSAgaW50IG9mZnNldDsKKysgIExPTkdFU1Qgb2Zmc2V0OworIAorICAg LyogTGVuZ3RoIG9mIHRoZSByYW5nZS4gICovCistICBpbnQgbGVuZ3RoOworKyAgTE9OR0VTVCBs ZW5ndGg7CisgfTsKKyAKKyB0eXBlZGVmIHN0cnVjdCByYW5nZSByYW5nZV9zOworQEAgLTgyLDgg KzgyLDggQEAgREVGX1ZFQ19PKHJhbmdlX3MpOworICAgIFtvZmZzZXQyLCBvZmZzZXQyK2xlbjIp IG92ZXJsYXAuICAqLworIAorIHN0YXRpYyBpbnQKKy1yYW5nZXNfb3ZlcmxhcCAoaW50IG9mZnNl dDEsIGludCBsZW4xLAorLQkJaW50IG9mZnNldDIsIGludCBsZW4yKQorK3Jhbmdlc19vdmVybGFw IChMT05HRVNUIG9mZnNldDEsIExPTkdFU1QgbGVuMSwKKysJCUxPTkdFU1Qgb2Zmc2V0MiwgTE9O R0VTVCBsZW4yKQorIHsKKyAgIFVMT05HRVNUIGgsIGw7CisgCitAQCAtMTA3LDcgKzEwNyw3IEBA IHJhbmdlX2xlc3N0aGFuIChjb25zdCByYW5nZV9zICpyMSwgY29uc3QKKyAgICBPRkZTRVQrTEVO R1RIKS4gICovCisgCisgc3RhdGljIGludAorLXJhbmdlc19jb250YWluIChWRUMocmFuZ2Vfcykg KnJhbmdlcywgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKytyYW5nZXNfY29udGFpbiAoVkVDKHJh bmdlX3MpICpyYW5nZXMsIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKKyB7CisgICBy YW5nZV9zIHdoYXQ7CisgICBpbnQgaTsKK0BAIC0yNDAsNyArMjQwLDcgQEAgc3RydWN0IHZhbHVl CisgICAgICBsdmFsID09IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9mZnNldCBm cm9tCisgICAgICBsb2NhdGlvbi5hZGRyZXNzIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVy ZS4gIE5vdGUgYWxzbyB0aGUKKyAgICAgIG1lbWJlciBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAq LworLSAgaW50IG9mZnNldDsKKysgIExPTkdFU1Qgb2Zmc2V0OworIAorICAgLyogT25seSB1c2Vk IGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5lZCBpbiB0aGVtLiAgKi8KKyAg IGludCBiaXRzaXplOworQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1Y3QgdmFsdWUKKyAgICAgIGB0 eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNvIGV2ZXJ5dGhpbmcgd29ya3MK KyAgICAgIG5vcm1hbGx5LiAgKi8KKyAgIHN0cnVjdCB0eXBlICplbmNsb3NpbmdfdHlwZTsKKy0g IGludCBlbWJlZGRlZF9vZmZzZXQ7CistICBpbnQgcG9pbnRlZF90b19vZmZzZXQ7CisrICBMT05H RVNUIGVtYmVkZGVkX29mZnNldDsKKysgIExPTkdFU1QgcG9pbnRlZF90b19vZmZzZXQ7CisgCisg ICAvKiBWYWx1ZXMgYXJlIHN0b3JlZCBpbiBhIGNoYWluLCBzbyB0aGF0IHRoZXkgY2FuIGJlIGRl bGV0ZWQgZWFzaWx5CisgICAgICBvdmVyIGNhbGxzIHRvIHRoZSBpbmZlcmlvci4gIFZhbHVlcyBh c3NpZ25lZCB0byBpbnRlcm5hbAorQEAgLTMzMyw3ICszMzMsOCBAQCBzdHJ1Y3QgdmFsdWUKKyB9 OworIAorIGludAorLXZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2 YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyt2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAorKwkJICAgICAgIExPTkdF U1QgbGVuZ3RoKQorIHsKKyAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7CisgCitAQCAtMzU0 LDcgKzM1NSw4IEBAIHZhbHVlX2VudGlyZWx5X2F2YWlsYWJsZSAoc3RydWN0IHZhbHVlICoKKyB9 CisgCisgdm9pZAorLW1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCisrbWFya192YWx1ZV9ieXRlc191bmF2YWls YWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCisrCQkJICAgICAgTE9O R0VTVCBsZW5ndGgpCisgeworICAgcmFuZ2VfcyBuZXdyOworICAgaW50IGk7CitAQCAtNTI1LDcg KzUyNyw3IEBAIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKKyAKKyBz dGF0aWMgaW50CisgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwIChWRUMocmFuZ2VfcykgKnJhbmdl cywgaW50IHBvcywKKy0JCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCisrCQkJICBMT05HRVNU IG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmFuZ2VfcyAqcjsKKyAgIGludCBpOwor QEAgLTUzOCw5ICs1NDAsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5nZV9z KSAqCisgfQorIAorIGludAorLXZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKKy0JCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsMiwgaW50IG9mZnNldDIsCistCQkJICAgICBpbnQgbGVuZ3RoKQorK3ZhbHVlX2F2YWls YWJsZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBMT05HRVNUIG9mZnNl dDEsCisrCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdFU1Qgb2Zmc2V0MiwK KysJCQkgICAgIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIGludCBpZHgxID0gMCwgaWR4MiA9IDA7 CisgCitAQCAtNzY4LDEzICs3NzAsMTMgQEAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoc3Ry dWN0IHZhbHVlCisgICB2YWx1ZS0+dHlwZSA9IHR5cGU7CisgfQorIAorLWludAorK0xPTkdFU1QK KyB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUpCisgeworICAgcmV0dXJu IHZhbHVlLT5vZmZzZXQ7CisgfQorIHZvaWQKKy1zZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBpbnQgb2Zmc2V0KQorK3NldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIExPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIHZhbHVlLT5vZmZzZXQgPSBvZmZzZXQ7Cisg fQorQEAgLTkyNCw4ICs5MjYsOSBAQCB2YWx1ZV9jb250ZW50c19hbGwgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpCisgICAgRFNUX09GRlNFVCtMRU5HVEgpIHJhbmdlIGFyZSB3aG9sbHkgYXZhaWxhYmxl LiAgKi8KKyAKKyB2b2lkCistdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAq ZHN0LCBpbnQgZHN0X29mZnNldCwKKy0JCQkgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNfb2Zm c2V0LCBpbnQgbGVuZ3RoKQorK3ZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUg KmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAorKwkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVf dCBzcmNfb2Zmc2V0LAorKwkJCSBzc2l6ZV90IGxlbmd0aCkKKyB7CisgICByYW5nZV9zICpyOwor ICAgaW50IGk7CitAQCAtOTczLDggKzk3Niw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmQKKyAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBh dmFpbGFibGUuICAqLworIAorIHZvaWQKKy12YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFs dWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCistCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQg c3JjX29mZnNldCwgaW50IGxlbmd0aCkKKyt2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFs dWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAorKwkJICAgICBzdHJ1Y3QgdmFsdWUgKnNyYywg c3NpemVfdCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxlbmd0aCkKKyB7CisgICByZXF1aXJlX25vdF9v cHRpbWl6ZWRfb3V0IChzcmMpOworIAorQEAgLTEwNjgsNyArMTA3MSw3IEBAIHZhbHVlX2VudGly ZWx5X29wdGltaXplZF9vdXQgKGNvbnN0IHN0cnUKKyB9CisgCisgaW50CistdmFsdWVfYml0c192 YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkK Kyt2YWx1ZV9iaXRzX3ZhbGlkIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9m ZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgaWYgKCF2YWx1ZS0+b3B0aW1pemVkX291dCkK KyAgICAgcmV0dXJuIDE7CitAQCAtMTA4MSw3ICsxMDg0LDcgQEAgdmFsdWVfYml0c192YWxpZCAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YQorIAorIGludAorIHZhbHVlX2JpdHNfc3ludGhldGljX3Bv aW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCistCQkJICAgICAgaW50IG9mZnNldCwg aW50IGxlbmd0aCkKKysJCQkgICAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisg eworICAgaWYgKHZhbHVlLT5sdmFsICE9IGx2YWxfY29tcHV0ZWQKKyAgICAgICB8fCAhdmFsdWUt PmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzLT5jaGVja19zeW50aGV0aWNfcG9pbnRlcikKK0BAIC0x MDkxLDI2ICsxMDk0LDI2IEBAIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0 cnUKKyAJCQkJCQkJCSAgbGVuZ3RoKTsKKyB9CisgCistaW50CisrTE9OR0VTVAorIHZhbHVlX2Vt YmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKKyB7CisgICByZXR1cm4gdmFsdWUt PmVtYmVkZGVkX29mZnNldDsKKyB9CisgCisgdm9pZAorLXNldF92YWx1ZV9lbWJlZGRlZF9vZmZz ZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCisrc2V0X3ZhbHVlX2VtYmVkZGVkX29m ZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCisgeworICAgdmFsdWUtPmVt YmVkZGVkX29mZnNldCA9IHZhbDsKKyB9CisgCistaW50CisrTE9OR0VTVAorIHZhbHVlX3BvaW50 ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorIHsKKyAgIHJldHVybiB2YWx1ZS0+ cG9pbnRlZF90b19vZmZzZXQ7CisgfQorIAorIHZvaWQKKy1zZXRfdmFsdWVfcG9pbnRlZF90b19v ZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCisrc2V0X3ZhbHVlX3BvaW50ZWRf dG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCkKKyB7CisgICB2YWx1 ZS0+cG9pbnRlZF90b19vZmZzZXQgPSB2YWw7CisgfQorQEAgLTE5NzAsNyArMTk3Myw3IEBAIGdl dF9pbnRlcm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKKyB9CisgCisgdm9pZAorLXNl dF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBpbnQgb2Zm c2V0LCBpbnQgYml0cG9zLAorK3NldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRl cm5hbHZhciAqdmFyLCBMT05HRVNUIG9mZnNldCwgaW50IGJpdHBvcywKKyAJCQkgICBpbnQgYml0 c2l6ZSwgc3RydWN0IHZhbHVlICpuZXd2YWwpCisgeworICAgZ2RiX2J5dGUgKmFkZHI7CitAQCAt MjY3MSw3ICsyNjc0LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUg KgorICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCisgCisgc3RydWN0IHZhbHVlICoK Ky12YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwK Kyt2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZz ZXQsCisgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKKyB7Cisg ICBzdHJ1Y3QgdmFsdWUgKnY7CitAQCAtMjcwMSw3ICsyNzA0LDcgQEAgdmFsdWVfcHJpbWl0aXZl X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworIAkgYml0LiAgQXNzdW1lIHRoYXQgdGhlIGFkZHJl c3MsIG9mZnNldCwgYW5kIGVtYmVkZGVkIG9mZnNldAorIAkgYXJlIHN1ZmZpY2llbnRseSBhbGln bmVkLiAgKi8KKyAKKy0gICAgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190 eXBlLCBmaWVsZG5vKTsKKysgICAgICBMT05HRVNUIGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9T IChhcmdfdHlwZSwgZmllbGRubyk7CisgICAgICAgaW50IGNvbnRhaW5lcl9iaXRzaXplID0gVFlQ RV9MRU5HVEggKHR5cGUpICogODsKKyAKKyAgICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAo dHlwZSk7CitAQCAtMjcyNCw3ICsyNzI3LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKmFyZworICAgICAgIC8qIFRoaXMgZmllbGQgaXMgYWN0dWFsbHkgYSBiYXNlIHN1 Ym9iamVjdCwgc28gcHJlc2VydmUgdGhlCisgCSBlbnRpcmUgb2JqZWN0J3MgY29udGVudHMgZm9y IGxhdGVyIHJlZmVyZW5jZXMgdG8gdmlydHVhbAorIAkgYmFzZXMsIGV0Yy4gICovCistICAgICAg aW50IGJvZmZzZXQ7CisrICAgICAgTE9OR0VTVCBib2Zmc2V0OworIAorICAgICAgIC8qIExhenkg cmVnaXN0ZXIgdmFsdWVzIHdpdGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZC4gICovCisgICAg ICAgaWYgKFZBTFVFX0xWQUwgKGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAo YXJnMSkpCitAQCAtMjgwMSw3ICsyODA0LDcgQEAgdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgaW50IGZpZQorIHN0cnVjdCB2YWx1ZSAqCisgdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2 YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCisgCQlpbnQgaiwgc3RydWN0IHR5cGUg KnR5cGUsCistCQlpbnQgb2Zmc2V0KQorKwkJTE9OR0VTVCBvZmZzZXQpCisgeworICAgc3RydWN0 IHZhbHVlICp2OworICAgc3RydWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChm LCBqKTsKK0BAIC0yODYxLDggKzI4NjQsOCBAQCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVl ICoqYXJnMXAsIHN0CisgCisgc3RhdGljIGludAorIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmdf MSAoc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJ CSAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCistCQkJ ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorKwkJCSAgICAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsIExPTkdFU1QgYml0cG9zLAorKwkJCSAgICAgaW50IGJpdHNpemUs IGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkJICAgICBMT05HRVNUICpy ZXN1bHQpCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKGZpZWxkX3R5cGUpKTsKK0BAIC0yODcwLDcgKzI4NzMsNyBA QCB1bnBhY2tfdmFsdWVfYml0c19hc19sb25nXzEgKHN0cnVjdCB0eXBlCisgICBVTE9OR0VTVCB2 YWxtYXNrOworICAgaW50IGxzYmNvdW50OworICAgaW50IGJ5dGVzX3JlYWQ7CistICBpbnQgcmVh ZF9vZmZzZXQ7CisrICBMT05HRVNUIHJlYWRfb2Zmc2V0OworIAorICAgLyogUmVhZCB0aGUgbWlu aW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7IHRoZXJlIG1heSBub3QgYmUKKyAgICAgIGVu b3VnaCBieXRlcyB0byByZWFkIGFuIGVudGlyZSBVTE9OR0VTVC4gICovCitAQCAtMjk0MCw3ICsy OTQzLDcgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZQorIAorIGlu dAorIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQg Yml0cG9zLCBpbnQgYml0c2l6ZSwKKysJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgaW50 IGJpdHBvcywgaW50IGJpdHNpemUsCisgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKKyAJCQkgICBMT05HRVNUICpyZXN1bHQpCisgeworQEAgLTI5NTgsMTAgKzI5NjEs MTAgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKgorIAorIHN0YXRp YyBpbnQKKyB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwg aW50IGZpZWxkbm8sCisrCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVs ZG5vLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUICpyZXN1bHQp CisgeworLSAgaW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBmaWVsZG5vKTsK KysgIExPTkdFU1QgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwor ICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOworICAg c3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8p OworIAorQEAgLTI5NzcsNyArMjk4MCw3IEBAIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nXzEg KHN0cnVjdCB0eXAKKyAKKyBpbnQKKyB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZyAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgICBpbnQgZW1iZWRk ZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKKysJCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IGludCBmaWVsZG5vLAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAq cmVzdWx0KQorIHsKKyAgIGdkYl9hc3NlcnQgKHZhbCAhPSBOVUxMKTsKK0BAIC0zMDA5LDcgKzMw MTIsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCisgc3RydWN0 IHZhbHVlICoKKyB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBm aWVsZG5vLAorIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICAgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKysJCSAgICAgIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICBMT05H RVNUIGw7CisgCitAQCAtMzAzNiwxMiArMzAzOSwxMiBAQCB2YWx1ZV9maWVsZF9iaXRmaWVsZCAo c3RydWN0IHR5cGUgKnR5cGUsCisgCisgdm9pZAorIG1vZGlmeV9maWVsZCAoc3RydWN0IHR5cGUg KnR5cGUsIGdkYl9ieXRlICphZGRyLAorLQkgICAgICBMT05HRVNUIGZpZWxkdmFsLCBpbnQgYml0 cG9zLCBpbnQgYml0c2l6ZSkKKysJICAgICAgTE9OR0VTVCBmaWVsZHZhbCwgTE9OR0VTVCBiaXRw b3MsIGludCBiaXRzaXplKQorIHsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2Ri YXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CisgICBVTE9OR0VTVCBvd29y ZDsKKyAgIFVMT05HRVNUIG1hc2sgPSAoVUxPTkdFU1QpIC0xID4+ICg4ICogc2l6ZW9mIChVTE9O R0VTVCkgLSBiaXRzaXplKTsKKy0gIGludCBieXRlc2l6ZTsKKysgIExPTkdFU1QgYnl0ZXNpemU7 CisgCisgICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KKyAgIGFkZHIgKz0gYml0cG9zIC8gODsK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFsdWUuaAkyMDEyLTExLTA3IDIyOjAwOjQxLjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsdWUuaAkyMDEyLTEx LTA3IDIyOjA5OjMwLjEwNDE0MDQwMyArMDEwMAorQEAgLTgyLDggKzgyLDggQEAgZXh0ZXJuIHZv aWQgc2V0X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAorICAgIHdpdGhpbiB0aGUgcmVnaXN0ZXJz IHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVtYmVyCisgICAgZW1iZWRkZWRfb2Zmc2V0IGJl bG93LiAgKi8KKyAKKy1leHRlcm4gaW50IHZhbHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVl ICopOworLWV4dGVybiB2b2lkIHNldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQg b2Zmc2V0KTsKKytleHRlcm4gTE9OR0VTVCB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqKTsKKytleHRlcm4gdm9pZCBzZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKiwgTE9O R0VTVCBvZmZzZXQpOworIAorIC8qIFRoZSBjb21tZW50IGZyb20gInN0cnVjdCB2YWx1ZSIgcmVh ZHM6IGBgSXMgaXQgbW9kaWZpYWJsZT8gIE9ubHkKKyAgICByZWxldmFudCBpZiBsdmFsICE9IG5v dF9sdmFsLicnLiAgU2hvdWxkbid0IHRoZSB2YWx1ZSBpbnN0ZWFkIGJlCitAQCAtMTU0LDEwICsx NTQsMTAgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9hY3R1YWxfdHlwZSAocworIAkJCQkg ICAgICAgaW50IHJlc29sdmVfc2ltcGxlX3R5cGVzLAorIAkJCQkgICAgICAgaW50ICpyZWFsX3R5 cGVfZm91bmQpOworIAorLWV4dGVybiBpbnQgdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVj dCB2YWx1ZSAqdmFsdWUpOworLWV4dGVybiB2b2lkIHNldF92YWx1ZV9wb2ludGVkX3RvX29mZnNl dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IHZhbCk7CistZXh0ZXJuIGludCB2YWx1ZV9lbWJl ZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworLWV4dGVybiB2b2lkIHNldF92YWx1 ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpOworK2V4dGVy biBMT05HRVNUIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsK KytleHRlcm4gdm9pZCBzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIExPTkdFU1QgdmFsKTsKKytleHRlcm4gTE9OR0VTVCB2YWx1ZV9lbWJlZGRlZF9vZmZz ZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworK2V4dGVybiB2b2lkIHNldF92YWx1ZV9lbWJlZGRl ZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgdmFsKTsKKyAKKyAvKiBGb3Ig bHZhbF9jb21wdXRlZCB2YWx1ZXMsIHRoaXMgc3RydWN0dXJlIGhvbGRzIGZ1bmN0aW9ucyB1c2Vk IHRvCisgICAgcmV0cmlldmUgYW5kIHNldCB0aGUgdmFsdWUgKG9yIHBvcnRpb25zIG9mIHRoZSB2 YWx1ZSkuCitAQCAtMTg1LDcgKzE4NSw4IEBAIHN0cnVjdCBsdmFsX2Z1bmNzCisgICAvKiBDaGVj ayB0aGUgdmFsaWRpdHkgb2Ygc29tZSBiaXRzIGluIFZBTFVFLiAgVGhpcyBzaG91bGQgcmV0dXJu IDEKKyAgICAgIGlmIGFsbCB0aGUgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGlu ZyBmb3IgTEVOR1RIIGJpdHMKKyAgICAgIGFyZSB2YWxpZCwgb3IgMCBpZiBhbnkgYml0IGlzIGlu dmFsaWQuICAqLworLSAgaW50ICgqY2hlY2tfdmFsaWRpdHkpIChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKKysgIGludCAoKmNoZWNrX3ZhbGlkaXR5 KSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCisrCQkJIExPTkdF U1QgbGVuZ3RoKTsKKyAKKyAgIC8qIFJldHVybiAxIGlmIGFueSBiaXQgaW4gVkFMVUUgaXMgdmFs aWQsIDAgaWYgdGhleSBhcmUgYWxsIGludmFsaWQuICAqLworICAgaW50ICgqY2hlY2tfYW55X3Zh bGlkKSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSk7CitAQCAtMjAzLDcgKzIwNCw3IEBAIHN0 cnVjdCBsdmFsX2Z1bmNzCisgICAvKiBJZiBub24tTlVMTCwgdGhpcyBpcyB1c2VkIHRvIGRldGVy bWluZSB3aGV0aGVyIHRoZSBpbmRpY2F0ZWQgYml0cworICAgICAgb2YgVkFMVUUgYXJlIGEgc3lu dGhldGljIHBvaW50ZXIuICAqLworICAgaW50ICgqY2hlY2tfc3ludGhldGljX3BvaW50ZXIpIChj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgp OworKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgCisgICAvKiBSZXR1 cm4gYSBkdXBsaWNhdGUgb2YgVkFMVUUncyBjbG9zdXJlLCBmb3IgdXNlIGluIGEgbmV3IHZhbHVl LgorICAgICAgVGhpcyBtYXkgc2ltcGx5IHJldHVybiB0aGUgc2FtZSBjbG9zdXJlLCBpZiBWQUxV RSdzIGlzCitAQCAtMjQwLDcgKzI0MSw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRl X2NvbXB1dGVkX3YKKyAgICBPdGhlcndpc2UsIHJldHVybiAxLiAgKi8KKyAKKyBleHRlcm4gaW50 IHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKKy0JCQkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJCSAgICBMT05H RVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsK KyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9vcHRpbWl6ZWRfb3V0X3ZhbHVlIChz dHJ1Y3QgdHlwZSAqdHlwZSk7CitAQCAtNDExLDEzICs0MTIsMTMgQEAgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqY29lcmNlX2FycmF5IChzdHJ1YworICAgIGJpdHMgaW4gdGhlIGdpdmVuIHJhbmdlIGFy ZSB2YWxpZCwgemVybyBpZiBhbnkgYml0IGlzIGludmFsaWQuICAqLworIAorIGV4dGVybiBpbnQg dmFsdWVfYml0c192YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKKy0JCQkgICAgIGlu dCBvZmZzZXQsIGludCBsZW5ndGgpOworKwkJCSAgICAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1Qg bGVuZ3RoKTsKKyAKKyAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgYml0 cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kCisgICAgZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0cyBh cmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCisgCisgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5 bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkJIGludCBv ZmZzZXQsIGludCBsZW5ndGgpOworKwkJCQkJIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0 aCk7CisgCisgLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRz IGJ5dGVzIHN0YXJ0aW5nIGF0CisgICAgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yIExFTkdUSCBi eXRlcyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCitAQCAtNDI1LDcgKzQyNiw3IEBAIGV4 dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlcgorICAgIGJ5dGUgaXMgdW5hdmFp bGFibGUuICAqLworIAorIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpOworKwkJ CQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgCisgLyogTGlrZSB2YWx1ZV9i eXRlc19hdmFpbGFibGUsIGJ1dCByZXR1cm4gZmFsc2UgaWYgYW55IGJ5dGUgaW4gdGhlCisgICAg d2hvbGUgb2JqZWN0IGlzIHVuYXZhaWxhYmxlLiAgKi8KK0BAIC00MzUsNyArNDM2LDcgQEAgZXh0 ZXJuIGludCB2YWx1ZV9lbnRpcmVseV9hdmFpbGFibGUgKHN0cgorICAgIExFTkdUSCBieXRlcyBh cyB1bmF2YWlsYWJsZS4gICovCisgCisgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc191bmF2 YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKKy0JCQkJCSAgaW50IG9mZnNldCwgaW50IGxl bmd0aCk7CisrCQkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgCisgLyog Q29tcGFyZSBMRU5HVEggYnl0ZXMgb2YgVkFMMSdzIGNvbnRlbnRzIHN0YXJ0aW5nIGF0IE9GRlNF VDEgd2l0aAorICAgIExFTkdUSCBieXRlcyBvZiBWQUwyJ3MgY29udGVudHMgc3RhcnRpbmcgYXQg T0ZGU0VUMi4KK0BAIC00NDUsNyArNDQ2LDcgQEAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRl c191bmF2YWlsYWJsZQorICAgIGV4YW1wbGUsIHRvIGNvbXBhcmUgYSBjb21wbGV0ZSBvYmplY3Qg dmFsdWUgd2l0aCBpdHNlbGYsIGluY2x1ZGluZworICAgIGl0cyBlbmNsb3NpbmcgdHlwZSBjaHVu aywgeW91J2QgZG86CisgCistICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVk ZWYgKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSk7CisrICAgICBVTE9OR0VTVCBsZW4gPSBU WVBFX0xFTkdUSCAoY2hlY2tfdHlwZWRlZiAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbCkpKTsK KyAgICAgIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50cyAodmFsLCAwLCB2YWwsIDAsIGxlbik7Cisg CisgICAgUmV0dXJucyB0cnVlIGlmZiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBjb250ZW50cyBtYXRj aC4gIFVuYXZhaWxhYmxlCitAQCAtNDY3LDkgKzQ2OCwxMCBAQCBleHRlcm4gdm9pZCBtYXJrX3Zh bHVlX2J5dGVzX3VuYXZhaWxhYmxlCisgICAgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxKHZh bCwgMywgdmFsLCA0LCA0KSA9PiAwCisgKi8KKyAKKy1leHRlcm4gaW50IHZhbHVlX2F2YWlsYWJs ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKKy0J CQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCistCQkJCQlpbnQgbGVu Z3RoKTsKKytleHRlcm4gaW50IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwxLAorKwkJCQkJTE9OR0VTVCBvZmZzZXQxLAorKwkJCQkJY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwyLAorKwkJCQkJTE9OR0VTVCBvZmZzZXQyLCBMT05HRVNUIGxlbmd0aCk7 CisgCisgLyogUmVhZCBMRU5HVEggYnl0ZXMgb2YgbWVtb3J5IHN0YXJ0aW5nIGF0IE1FTUFERFIg aW50byBCVUZGRVIsIHdoaWNoCisgICAgaXMgKG9yIHdpbGwgYmUgY29waWVkIHRvKSBWQUwncyBj b250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5CitAQCAtNDc4LDcgKzQ4MCw3IEBAIGV4dGVybiBpbnQg dmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICgKKyAgICBtZW1vcnkgaXMgbGlrZXdpc2UgdW5h dmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVtb3J5CisgICAgaXMga25v d24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KKyAKKy1leHRlcm4gdm9pZCByZWFkX3ZhbHVlX21l bW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIGludCBlbWJlZGRlZF9vZmZzZXQsCisrZXh0ZXJuIHZv aWQgcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUIGVtYmVkZGVk X29mZnNldCwKKyAJCQkgICAgICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKKyAJCQkg ICAgICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisgCitAQCAtNTA2LDcgKzUw OCw3IEBAIGV4dGVybiBDT1JFX0FERFIgdW5wYWNrX3BvaW50ZXIgKHN0cnVjdAorIAorIGV4dGVy biBpbnQgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUs CisgCQkJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCQkgICAgICBpbnQgZW1i ZWRkZWRfb2Zmc2V0LCBpbnQgYml0cG9zLAorKwkJCQkgICAgICBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwgaW50IGJpdHBvcywKKyAJCQkJICAgICAgaW50IGJpdHNpemUsCisgCQkJCSAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkJCSAgICAgIExPTkdFU1QgKnJl c3VsdCk7CitAQCAtNTE1LDEyICs1MTcsMTIgQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2ZpZWxk X2FzX2xvbmcgKHN0cgorIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIAkJCQkg ICAgIGludCBmaWVsZG5vKTsKKyBleHRlcm4gaW50IHVucGFja192YWx1ZV9maWVsZF9hc19sb25n IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJCWludCBl bWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAorKwkJCQlMT05HRVNUIGVtYmVkZGVkX29mZnNl dCwgaW50IGZpZWxkbm8sCisgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUICpy ZXN1bHQpOworIAorIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkX2JpdGZpZWxkIChz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCisgCQkJCQkgICBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKKy0JCQkJCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJCQkgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwKKyAJCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAK KyBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0eXBlICp0eXBl LCBMT05HRVNUIG51bSk7CitAQCAtNTc4LDEyICs1ODAsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3Zh bHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CisgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVf dmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOworIGV4dGVybiB2b2lkIGFsbG9jYXRlX3Zh bHVlX2NvbnRlbnRzIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKKy1leHRlcm4gdm9pZCB2YWx1ZV9j b250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCistCQkJCSBz dHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsCistCQkJCSBpbnQgbGVuZ3RoKTsKKy1l eHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIGlu dCBkc3Rfb2Zmc2V0LAorLQkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNl dCwKKy0JCQkJICAgICBpbnQgbGVuZ3RoKTsKKytleHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19j b3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAorKwkJCQkgc3RydWN0 IHZhbHVlICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwKKysJCQkJIHNzaXplX3QgbGVuZ3RoKTsK KytleHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3Qs IHNzaXplX3QgZHN0X29mZnNldCwKKysJCQkJICAgICBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVf dCBzcmNfb2Zmc2V0LAorKwkJCQkgICAgIHNzaXplX3QgbGVuZ3RoKTsKKyAKKyBleHRlcm4gc3Ry dWN0IHZhbHVlICphbGxvY2F0ZV9yZXBlYXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg Y291bnQpOworIAorQEAgLTY1NywxNiArNjU5LDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9h ZF9tYXRjaCAoc3RydWN0IHYKKyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZCAo c3RydWN0IHZhbHVlICphcmcxLCBpbnQgZmllbGRubyk7CisgCistZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQs CisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAorIAkJCQkJICAgIGludCBmaWVsZG5vLAorIAkJCQkJ ICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSk7CisgCisgCistZXh0ZXJuIHN0cnVjdCB0eXBlICp2 YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqLCBpbnQgKiwgaW50ICosCisr ZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1 ZSAqLCBpbnQgKiwgTE9OR0VTVCAqLAorIAkJCQkJICAgICAgaW50ICopOworIAorIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHR5 cGUgKiwgaW50LAorLQkJCQkJaW50LCBpbnQpOworKwkJCQkJTE9OR0VTVCwgaW50KTsKKyAKKyBl eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBz dHJ1Y3QgdmFsdWUgKiwgaW50KTsKKyAKK0BAIC03NTYsNyArNzU4LDcgQEAgZXh0ZXJuIHZvaWQg c2V0X2ludGVybmFsdmFyX3N0cmluZyAoc3RydQorIGV4dGVybiB2b2lkIGNsZWFyX2ludGVybmFs dmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhcik7CisgCisgZXh0ZXJuIHZvaWQgc2V0X2ludGVy bmFsdmFyX2NvbXBvbmVudCAoc3RydWN0IGludGVybmFsdmFyICp2YXIsCistCQkJCSAgICAgICBp bnQgb2Zmc2V0LAorKwkJCQkgICAgICAgTE9OR0VTVCBvZmZzZXQsCisgCQkJCSAgICAgICBpbnQg Yml0cG9zLCBpbnQgYml0c2l6ZSwKKyAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqbmV3dmFsdWUp OworIAorQEAgLTgzOCw3ICs4NDAsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94X3Vu b3AgKHN0cnVjCisgCQkJCSAgIGVudW0gbm9zaWRlIG5vc2lkZSk7CisgCisgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5f ZmllbGQgKmYsCistCQkJCSAgICAgaW50IGosIHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgb2Zmc2V0 KTsKKysJCQkJICAgICBpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qgb2Zmc2V0KTsK KyAKKyBleHRlcm4gaW50IGJpbm9wX3R5cGVzX3VzZXJfZGVmaW5lZF9wIChlbnVtIGV4cF9vcGNv ZGUgb3AsCisgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTEsCitAQCAtODY2LDcgKzg2OCw4 IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVfb3JfaW5jcmVmIChzdHIKKyBleHRlcm4gaW50 IHJlY29yZF9sYXRlc3RfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAKKyBleHRlcm4gdm9p ZCBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRkciwKKy0JCQkg IExPTkdFU1QgZmllbGR2YWwsIGludCBiaXRwb3MsIGludCBiaXRzaXplKTsKKysJCQkgIExPTkdF U1QgZmllbGR2YWwsIExPTkdFU1QgYml0cG9zLAorKwkJCSAgaW50IGJpdHNpemUpOworIAorIGV4 dGVybiB2b2lkIHR5cGVfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjaGFyICp2YXJz dHJpbmcsCisgCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3cpOworQEAgLTg5Niw3 ICs4OTksNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50cyAoCisgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcmVsZWFzZV90b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1h cmspOworIAorIGV4dGVybiB2b2lkIHZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorKwkJICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FE RFIgYWRkcmVzcywKKyAJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKKyAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKK0BAIC05NDcsMTAgKzk1MCwxMSBA QCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCisgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAorIAkJCQkJ CXN0cnVjdCBvYmpmaWxlICoqKTsKKyAKKy1leHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hbGxv Y2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50KTsKKytleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1 ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoTE9OR0VTVCk7CisgCisgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LAor LQkJCQkJICAgICAgIExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKTsKKysJCQkJCSAgICAg ICBMT05HRVNUIGluZGV4LAorKwkJCQkJICAgICAgIExPTkdFU1QgbG93ZXJib3VuZCk7CisgCisg LyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5 NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWVhNWVmCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaApAQCAtMCwwICsx LDIyNCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDkvbXNn MDA2MzIuaHRtbAorU3ViamVjdDogW1BBVENIIDIvNF0gQWRkIGEgY2hlY2sgdG8gZW5zdXJlIHRo YXQgYSB0eXBlIG1heSBmaXQgaW50byBob3N0IG1lbW9yeQorCisKKy0tTVBfL1BuTDZsM0xVc1hX cFovb2xxYXdXbHpiCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlu bGluZQorCitIaSwKKworVGhpcyBpcyBwYXJ0IHR3byBvZiB0aGUgYml0cG9zIGV4cGFuc2lvbiBw YXRjaC4gIFRoaXMgaW1wbGVtZW50cyBjaGVja3MKK2luIHNvbWUgcGxhY2VzIGluIHRoZSBjb2Rl IHRvIGVuc3VyZSB0aGF0IGEgdHlwZSBzaXplIGluIFVMT05HRVNUIGlzCitzbWFsbCBlbm91Z2gg dG8gZml0IGludG8gaG9zdCBtZW1vcnkuICBUZXN0ZWQgZm9yIHJlZ3Jlc3Npb25zIG9uIHg4Nl82 NAorRmVkb3JhIDE2LgorCitSZWdhcmRzLAorU2lkZGhlc2gKKworLS1NUF8vUG5MNmwzTFVzWFdw Wi9vbHFhd1dsemIKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgorQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogcXVvdGVkLXByaW50YWJsZQorQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVu dDsgZmlsZW5hbWU9Q2hhbmdlTG9nLWVuc3VyZV9zaXpldAorCitnZGIvQ2hhbmdlTG9nCisKKwkq IGFscGhhLXRkZXAuYyAoYWxwaGFfcHVzaF9kdW1teV9jYWxsKSBDaGVjayBmb3IgdW5kZXJmbG93 IGluCisJU1AuCisJKiBjcC12YWxwcmludCAoY3BfcHJpbnRfdmFsdWUpOiBFbnN1cmUgQkFTRUNM QVNTIGZpdHMgaW50bworCXNpemVfdC4KKwkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1 ZSk6IEVuc3VyZSB0aGF0IFRISVNfU0laRSBmaXRzCisJaW50byBzaXplX3QuCisJKHdyaXRlX3Bp ZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorCSogZmluZGNtZC5jIChwYXJzZV9maW5kX2FyZ3MpOiBF bnN1cmUgUEFUVEVSTl9CVUZfU0laRSBmaXRzIGludG8KKwlzaXplX3QuCisJKiBwLXZhbHByaW50 IChwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlKTogRW5zdXJlIEJBU0VDTEFTUyBmaXRzCisJaW50 byBzaXplX3QuCisJKiB1dGlscy5jICh1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IpOiBOZXcg ZnVuY3Rpb24gdG8gZmluZCBpZgorCWEgVUxPTkdFU1QgbnVtYmVyIGZpdHMgaW50byBzaXplX3Qu CisJKiB1dGlscy5oOiBEZWNsYXJlIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvci4KKwkqIHZh bG9wcy5jIChzZWFyY2hfc3RydWN0X21ldGhvZCk6IEVuc3VyZSBCQVNFQ0xBU1MgZml0cyBpbnRv CisJc2l6ZV90LgorCSogdmFsdWUuYyAoYWxsb2NhdGVfdmFsdWVfbGF6eSk6IEVuc3VyZSBUWVBF IGZpdHMgaW50byBzaXplX3QuCisJKGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzKTogTGlrZXdpc2Uu CisJKHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSk6IEVuc3VyZSBORVdfRU5DTF9UWVBFIGZpdHMg aW50bworCXNpemVfdC4KKwkqIHZheC10ZGVwLmMgKHZheF9yZXR1cm5fdmFsdWUpOiBFbnN1cmUg dGhhdCBUWVBFIGZpdHMgaW50bworCXNpemVfdC4KKworLS1NUF8vUG5MNmwzTFVzWFdwWi9vbHFh d1dsemIKK0NvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCitDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA3Yml0CitDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRw b3MtZW5zdXJlLXNpemVfdC5wYXRjaAorCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9h bHBoYS10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv YWxwaGEtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wNDI5 MDIzODIgKzAxMDAKK0BAIC00MTQsNiArNDE0LDEzIEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmcKKyAgICAgYWNjdW11bGF0ZV9zaXplID0gMDsKKyAgIGVsc2UKKyAg ICAgYWNjdW11bGF0ZV9zaXplIC09IHNpemVvZihhcmdfcmVnX2J1ZmZlcik7CisrCisrICAvKiBD aGVjayBmb3IgdW5kZXJmbG93LiAgKi8KKysgIGlmIChzcCAtIGFjY3VtdWxhdGVfc2l6ZSA+IHNw KQorKyAgICBlcnJvciAoXygiSW5zdWZmaWNpZW50IG1lbW9yeSBpbiBHREIgaG9zdCBmb3IgYXJn dW1lbnRzLCAiCisrCSAgICAgIm5lZWQgJXMgYnl0ZXMsIGJ1dCBsZXNzIHRoYW4gJXMgYnl0ZXMg YXZhaWxhYmxlLiIpLAorKwkgICBwbG9uZ2VzdCAoYWNjdW11bGF0ZV9zaXplKSwgcGxvbmdlc3Qg KENPUkVfQUREUl9NQVggLSBzcCkpOworKworICAgc3AgLT0gYWNjdW11bGF0ZV9zaXplOworIAor ICAgLyogS2VlcCBzcCBhbGlnbmVkIHRvIGEgbXVsdGlwbGUgb2YgMTYgYXMgdGhlIEFCSSByZXF1 aXJlcy4gICovCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcC12YWxwcmludC5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJ MjAxMi0xMS0wNyAyMjoxMjoxNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2NwLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wNDM5MDIzODEgKzAxMDAK K0BAIC01NjEsNiArNTYxLDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1YworIAkJICBnZGJfYnl0ZSAqYnVmOworIAkJICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsK KyAKKysJCSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xFTkdUSCAoYmFzZWNs YXNzKSk7CisrCisgCQkgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNlY2xhc3MpKTsK KyAJCSAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7CisgCitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9kd2FyZjJsb2MuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUu MC4yMDEyMDkyNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZHdhcmYybG9jLmMJMjAxMi0x MS0wNyAyMjo0NjowMC4wNzA5MDIzNDIgKzAxMDAKK0BAIC0xNzg0LDYgKzE3ODQsOCBAQCByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAorICAgICAgIHRoaXNfc2l6ZSA9ICh0 aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisgICAgICAg c291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisrICAgICAgdWxvbmdlc3Rf Zml0c19ob3N0X29yX2Vycm9yICh0aGlzX3NpemUpOworKworICAgICAgIGlmIChidWZmZXJfc2l6 ZSA8IHRoaXNfc2l6ZSkKKyAJeworIAkgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworQEAgLTE5 NzUsNiArMTk3Nyw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QK KyAJfQorICAgICAgIGVsc2UKKyAJeworKwkgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAo dGhpc19zaXplKTsKKyAJICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3NpemUpCisgCSAgICB7Cisg CSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvZmluZGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcv Z2RiL2ZpbmRjbWQuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZGNtZC5jCTIwMTItMTEtMDcgMjI6NDY6MDAuMTUzOTAy MjQ5ICswMTAwCitAQCAtMTg3LDYgKzE4Nyw3IEBAIHBhcnNlX2ZpbmRfYXJncyAoY2hhciAqYXJn cywgVUxPTkdFU1QgKm0KKyAJICBzaXplX3QgY3VycmVudF9vZmZzZXQgPSBwYXR0ZXJuX2J1Zl9l bmQgLSBwYXR0ZXJuX2J1ZjsKKyAKKyAJICBwYXR0ZXJuX2J1Zl9zaXplID0gcGF0dGVybl9idWZf c2l6ZV9uZWVkICogMjsKKysJICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKHBhdHRlcm5f YnVmX3NpemUpOworIAkgIHBhdHRlcm5fYnVmID0geHJlYWxsb2MgKHBhdHRlcm5fYnVmLCBwYXR0 ZXJuX2J1Zl9zaXplKTsKKyAJICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1ZiArIGN1cnJl bnRfb2Zmc2V0OworIAl9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wLXZhbHByaW50 LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvcC12YWxwcmlu dC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9wLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjo0NjowMC4xNjM5MDIyMDggKzAx MDAKK0BAIC04MjcsNiArODI3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0 IHR5cGUgKgorIAkgICAgICBnZGJfYnl0ZSAqYnVmOworIAkgICAgICBzdHJ1Y3QgY2xlYW51cCAq YmFja190bzsKKyAKKysJICAgICAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xF TkdUSCAoYmFzZWNsYXNzKSk7CisgCSAgICAgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChi YXNlY2xhc3MpKTsKKyAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7 CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi91dGlscy5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxMi0xMS0wNyAyMjowMDo0 My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3V0aWxzLmMJMjAx Mi0xMS0wNyAyMjo0NjowMC4xNjY5MDIyMDIgKzAxMDAKK0BAIC0zMTM1LDYgKzMxMzUsMTggQEAg aG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoY29uc3Qgdm9pZCAqYWRkcgorICAgcmV0dXJuIHN0cjsK KyB9CisgCisrLyogRW5zdXJlIHRoYXQgdGhlIGlucHV0IE5VTSBpcyBub3QgbGFyZ2VyIHRoYW4g dGhlIG1heGltdW0gY2FwYWNpdHkgb2YgdGhlCisrICAgaG9zdCBzeXN0ZW0uICBXZSBjaG9vc2Ug U0laRV9NQVggLyA4IGFzIGEgY29uc2VydmF0aXZlIGVzdGltYXRlIG9mIHRoZSBzaXplCisrICAg b2YgYSByZXNvdXJjZSB0aGF0IGEgc3lzdGVtIG1heSBhbGxvY2F0ZS4gICovCisrdm9pZAorK3Vs b25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVUxPTkdFU1QgbnVtKQorK3sKKysgIGlmIChudW0g PiBTSVpFX01BWCAvIDgpCisrICAgIGVycm9yIChfKCJJbnN1ZmZpY2llbnQgbWVtb3J5IGluIGhv c3QgR0RCIGZvciBvYmplY3Qgb2Ygc2l6ZSAlcyBieXRlcywgIgorKwkgICAgICJtYXhpbXVtIGFs bG93ZWQgJXMgYnl0ZXMuIiksIHB1bG9uZ2VzdCAobnVtKSwKKysJICAgcHVsb25nZXN0IChTSVpF X01BWCAvIDgpKTsKKyt9CisrCisgY2hhciAqCisgZ2RiX3JlYWxwYXRoIChjb25zdCBjaGFyICpm aWxlbmFtZSkKKyB7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWxvcHMuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi92YWxvcHMuYwkyMDEyLTEx LTA3IDIyOjA5OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv dmFsb3BzLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4xODE5MDIxODEgKzAxMDAKK0BAIC0yMzgzLDYg KzIzODMsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwKKyAJICAg ICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisgCSAgICAgIENPUkVfQUREUiBhZGRyZXNzOwor IAorKwkgICAgICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVfTEVOR1RIIChiYXNl Y2xhc3MpKTsKKyAJICAgICAgdG1wID0geG1hbGxvYyAoVFlQRV9MRU5HVEggKGJhc2VjbGFzcykp OworIAkgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdG1wKTsKKyAJICAgICAg YWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCphcmcxcCk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi92YWx1ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcv Z2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjowOTozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4xODQ5MDIxNzYg KzAxMDAKK0BAIC02NjMsNiArNjYzLDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5 cGUgKnR5cGUpCisgICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLworICAgY2hlY2tfdHlw ZWRlZiAodHlwZSk7CisgCisrICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVfTEVO R1RIICh0eXBlKSk7CisgICB2YWwgPSAoc3RydWN0IHZhbHVlICopIHh6YWxsb2MgKHNpemVvZiAo c3RydWN0IHZhbHVlKSk7CisgICB2YWwtPmNvbnRlbnRzID0gTlVMTDsKKyAgIHZhbC0+bmV4dCA9 IGFsbF92YWx1ZXM7CitAQCAtNjk0LDYgKzY5NSw4IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0 cnVjdCB0eXBlICp0eXBlKQorIHZvaWQKKyBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cyAoc3RydWN0 IHZhbHVlICp2YWwpCisgeworKyAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xF TkdUSCAodmFsLT5lbmNsb3NpbmdfdHlwZSkpOworKworICAgaWYgKCF2YWwtPmNvbnRlbnRzKQor ICAgICB2YWwtPmNvbnRlbnRzID0gKGdkYl9ieXRlICopIHh6YWxsb2MgKFRZUEVfTEVOR1RIICh2 YWwtPmVuY2xvc2luZ190eXBlKSk7CisgfQorQEAgLTI2NjIsOCArMjY2NSwxMiBAQCB2b2lkCisg c2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHR5cGUg Km5ld19lbmNsX3R5cGUpCisgeworICAgaWYgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSA+ IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSkpIAorLSAgICB2YWwtPmNv bnRlbnRzID0KKy0gICAgICAoZ2RiX2J5dGUgKikgeHJlYWxsb2MgKHZhbC0+Y29udGVudHMsIFRZ UEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSk7CisrICAgIHsKKysgICAgICB1bG9uZ2VzdF9maXRz X2hvc3Rfb3JfZXJyb3IgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSk7CisrCisrICAgICAg dmFsLT5jb250ZW50cyA9CisrCShnZGJfYnl0ZSAqKSB4cmVhbGxvYyAodmFsLT5jb250ZW50cywg VFlQRV9MRU5HVEggKG5ld19lbmNsX3R5cGUpKTsKKysgICAgfQorIAorICAgdmFsLT5lbmNsb3Np bmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CisgfQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvdmF4LXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi92YXgtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi92YXgtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDY6NTYuODEwODE5 ODc4ICswMTAwCitAQCAtMjIzLDYgKzIyMyw3IEBAIHZheF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmMKKyAJICBVTE9OR0VTVCBhZGRyOworIAorIAkgIHJlZ2NhY2hlX3Jhd19y ZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgVkFYX1IwX1JFR05VTSwgJmFkZHIpOworKwkgIHVsb25n ZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsKKyAJICByZWFkX21l bW9yeSAoYWRkciwgcmVhZGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpKTsKKyAJfQorIAorSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZGVmcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL2RlZnMuaAkyMDEyLTExLTA3IDIyOjAwOjQzLjExMTkwNjEwOSAr MDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZGVmcy5oCTIwMTItMTEtMDcgMjI6NDc6 NDYuMDAxMDAxMjM5ICswMTAwCitAQCAtMTE3MCw0ICsxMTcwLDYgQEAgZW51bSBibG9ja19lbnVt CisgICBGSVJTVF9MT0NBTF9CTE9DSyA9IDIKKyB9OworIAorK2V4dGVybiB2b2lkIHVsb25nZXN0 X2ZpdHNfaG9zdF9vcl9lcnJvciAoVUxPTkdFU1QgbnVtKTsKKysKKyAjZW5kaWYgLyogI2lmbmRl ZiBERUZTX0ggKi8KCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBh dGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5kZDc3ZjAzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaApAQCAtMCwwICsxLDcwMSBAQAoraHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDkvbXNnMDA2MjkuaHRtbAorU3ViamVjdDog W1BBVENIIDMvNF0gRXhwYW5kIHdhdGNocG9pbnQgbGVuZ3RocyB0byBMT05HRVNUCisKKworLS1N UF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjIKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VUy1BU0NJSQorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAorQ29udGVudC1E aXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAorCitUaGlzIGlzIHBhcnQgdGhyZWUgb2YgdGhlIGJp dHBvcyBleHBhbnNpb24gY2hhbmdlLiAgU29tZSBhcmNoaXRlY3R1cmVzCithbGxvdyBhcmJpdHJh cnkgbGVuZ3RoIHdhdGNocG9pbnRzIGFuZCBjb21iaW5lZCB3aXRoIHRoZSBmYWN0IHRoYXQgdHlw ZQorbGVuZ3RocyBjb3VsZCBiZSBsYXJnZSBlbm91Z2gsIHdlIG5lZWQgTE9OR0VTVCBmb3Igd2F0 Y2hwb2ludCBsZW5ndGhzLgorSXQgaXMgYXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBob3dldmVyLCB3 aGV0aGVyIHRoZSBMT05HRVNUIGlzIG5lZWRlZCBvcgorbm90LiAgVGhpcyBwYXRjaCB1cGRhdGVz IHRoZSBzaWduYXR1cmVzIG9mIHdhdGNocG9pbnQgaW5zZXJ0aW9uIGFuZAorcmVtb3ZhbCBmdW5j dGlvbnMgb2YgYWxsIGFyY2hpdGVjdHVyZXMgKHRvIGNvbXBseSB3aXRoIHRoZSBmdW5jdGlvbgor c2lnbmF0dXJlcyBpbiB0aGUgY2FsbGJhY2sgc3RydWN0KSwgYnV0IGV4cGFuZHMgdHlwZXMgb25s eSBpbgorYXJjaGl0ZWN0dXJlcyB0aGF0IG5lZWQgaXQuICBUZXN0ZWQgb24gRmVkb3JhIDE2IHg4 Nl82NC4KKworUmVnYXJkcywKK1NpZGRoZXNoCistLU1QXy82SFJsSDZ2cHlxdFN5NENZeU1yWDZi MgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBx dW90ZWQtcHJpbnRhYmxlCitDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFt ZT1DaGFuZ2VMb2ctd3AKKworZ2RiL0NoYW5nZUxvZzoKKworCSogYXJtLWxpbnV4LW5hdC5jIChh cm1fbGludXhfaW5zZXJ0X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJhbWV0ZXIgTEVOIHRvIExP TkdFU1QuCisJKGFybV9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgorCShhcm1f bGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBwYXJhbWV0ZXIKKwlM RU5HVEggdG8gTE9OR0VTVC4KKwkqIGkzODYtbmF0LmMgKGkzODZfaW5zZXJ0X3dhdGNocG9pbnQp OiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCUxPTkdFU1QuCisJKGkzODZfcmVtb3ZlX3dhdGNo cG9pbnQpOiBMaWtld2lzZS4KKwkqIGlhNjQtbGludXgtbmF0LmMgKGlhNjRfbGludXhfaW5zZXJ0 X3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkoaWE2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCk6 IExpa2V3aXNlLgorCSogaW5mLXR0cmFjZS5jIChpbmZfdHRyYWNlX2luc2VydF93YXRjaHBvaW50 KTogTGlrZXdpc2UuCisJRXhwYW5kIE5VTV9QQUdFUywgUEFHRSB0byBMT05HRVNULgorCShpbmZf dHRyYWNlX3JlbW92ZV93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJKiBtaXBzLWxpbnV4LW5hdC5j IChtaXBzX2xpbnV4X2luc2VydF93YXRjaHBvaW50KTogRXhwYW5kCisJcGFyYW1ldGVyIExFTiB0 byBMT05HRVNULgorCShtaXBzX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJ KiBudG8tcHJvY2ZzLmMgKHByb2Nmc19yZW1vdmVfaHdfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgor CShwcm9jZnNfaW5zZXJ0X2h3X3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkqIHBwYy1saW51eC1u YXQuYyAoY2FsY3VsYXRlX2R2Yyk6IExpa2V3aXNlLiAgRXhwYW5kIEksCisJTlVNX0JZVEVfRU5B QkxFIHRvIExPTkdFU1QuCisJKGNoZWNrX2NvbmRpdGlvbik6IEV4cGFuZCBwYXJhbWV0ZXIgTEVO IHRvIHBvaW50IHRvIExPTkdFU1QuCisJKHBwY19saW51eF9jYW5fYWNjZWxfd2F0Y2hwb2ludF9j b25kaXRpb24pOiBFeHBhbmQgcGFyYW1ldGVyCisJTEVOIHRvIExPTkdFU1QuCisJKGNyZWF0ZV93 YXRjaHBvaW50X3JlcXVlc3QpOiBMaWtld2lzZS4KKwkocHBjX2xpbnV4X2luc2VydF93YXRjaHBv aW50KTogTGlrZXdpc2UuCisJKHBwY19saW51eF9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNl LgorCShwcGNfbGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBwYXJh bWV0ZXIKKwlMRU5HVEggdG8gTE9OR0VTVC4KKwkqIHByb2Nmcy5jIChwcm9jX3NldF93YXRjaHBv aW50KTogRXhwYW5kIHBhcmFtZXRlciBMRU4gdG8KKwlMT05HRVNULgorCShwcm9jZnNfc2V0X3dh dGNocG9pbnQpOiBMaWtld2lzZS4KKwkocHJvY2ZzX2luc2VydF93YXRjaHBvaW50KTogTGlrZXdp c2UuCisJKHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgorCSogcmVtb3RlLW0z MnItc2RpLmMgKG0zMnJfaW5zZXJ0X3dhdGNocG9pbnQpOiBMaWtld2lzZS4gIFVzZQorCXBsb25n ZXN0IHRvIGZvcm1hdCBwcmludCBMRU4uCisJKG0zMnJfcmVtb3ZlX3dhdGNocG9pbnQpOiBMaWtl d2lzZS4KKwkqIHJlbW90ZS1taXBzLmMgKG1pcHNfaW5zZXJ0X3dhdGNocG9pbnQpOiBFeHBhbmQg cGFyYW1ldGVyIExFTgorCXRvIExPTkdFU1QuCisJKG1pcHNfcmVtb3ZlX3dhdGNocG9pbnQpOiBM aWtld2lzZS4KKwkqIHJlbW90ZS5jIChyZW1vdGVfaW5zZXJ0X3dhdGNocG9pbnQpOiBMaWtld2lz ZS4KKwlVc2UgcGhleF9ueiB0byBmb3JtYXQgcHJpbnQgTEVOLgorCShyZW1vdGVfcmVtb3ZlX3dh dGNocG9pbnQpOiBMaWtld2lzZS4KKwkocmVtb3RlX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSAorCXRvIExPTkdFU1QuCisJKiBzMzkwLW5hdC5j IChzMzkwX2luc2VydF93YXRjaHBvaW50KTogRXhwYW5kIHBhcmFtZXRlciBMRU4gdG8KKwlMT05H RVNULgorCShzMzkwX3JlbW92ZV93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJKiB0YXJnZXQuYyAo dXBkYXRlX2N1cnJlbnRfdGFyZ2V0KTogRXhwYW5kIHBhcmFtZXRlciBMRU4gZm9yCisJY2FsbGJh Y2tzIHRvIFRPX0lOU0VSVF9XQVRDSFBPSU5ULCBUT19SRU1PVkVfV0FUQ0hQT0lOVCwKKwlUT19D QU5fQUNDRUxfV0FUQ0hQT0lOVF9DT05ESVRJT04sIHRvIExPTkdFU1QuCisJKGRlZmF1bHRfd2F0 Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBwYXJhbWV0ZXIKKwlMRU5HVEggdG8g TE9OR0VTVC4KKwkoZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uKTogRXhw YW5kIHBhcmFtZXRlciBMRU4KKwl0byBMT05HRVNULiAgVXNlIHBsb25nZXN0IHRvIGZvcm1hdCBw cmludCBMRU4uCisJKGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UpOiBFeHBh bmQgcGFyYW1ldGVyIExFTkdUSAorCXRvIExPTkdFU1QuICBVc2UgcGxvbmdlc3QgdG8gZm9ybWF0 IHByaW50IExFTkdUSC4KKwkoZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQpOiBFeHBhbmQgcGFy YW1ldGVyIExFTiB0byBMT05HRVNULgorCVVzZSBwbG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQgTEVO LgorCShkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgorCSogdGFyZ2V0Lmgg KHN0cnVjdCB0YXJnZXRfb3BzKTogRXhwYW5kIHBhcmFtZXRlciBMRU4gb2YKKwlUT19SRU1PVkVf V0FUQ0hQT0lOVCwgVE9fSU5TRVJUX1dBVENIUE9JTlQsCisJVE9fV0FUQ0hQT0lOVF9BRERSX1dJ VEhJTl9SQU5HRSBhbmQKKwlUT19DQU5fQUNDRUxfV0FUQ0hQT0lOVF9DT05ESVRJT04gdG8gTE9O R0VTVC4KKworLS1NUF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjIKK0NvbnRlbnQtVHlwZTogdGV4 dC94LXBhdGNoCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CitDb250ZW50LURpc3Bv c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3Mtd3AucGF0Y2gKKworZGlmZiAtLWdp dCBhL2dkYi9hcm0tbGludXgtbmF0LmMgYi9nZGIvYXJtLWxpbnV4LW5hdC5jCitpbmRleCAyMzFi MDA4Li42ZGViMjNkIDEwMDY0NAorLS0tIGEvZ2RiL2FybS1saW51eC1uYXQuYworKysrIGIvZ2Ri L2FybS1saW51eC1uYXQuYworQEAgLTExMDUsNyArMTEwNSw3IEBAIGFybV9saW51eF9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKKyAKKyAv KiBJbnNlcnQgYSBIYXJkd2FyZSBicmVha3BvaW50LiAgKi8KKyBzdGF0aWMgaW50CistYXJtX2xp bnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAor K2FybV9saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVu LCBpbnQgcncsCisgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1 Y3QgbHdwX2luZm8gKmxwOworQEAgLTExMjMsNyArMTEyMyw3IEBAIGFybV9saW51eF9pbnNlcnRf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKyAKKyAvKiBSZW1v dmUgYSBoYXJkd2FyZSBicmVha3BvaW50LiAgKi8KKyBzdGF0aWMgaW50CistYXJtX2xpbnV4X3Jl bW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorK2FybV9s aW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQg cncsCisgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgbHdw X2luZm8gKmxwOworQEAgLTExODAsNyArMTE4MCw3IEBAIGFybV9saW51eF9zdG9wcGVkX2J5X3dh dGNocG9pbnQgKHZvaWQpCisgc3RhdGljIGludAorIGFybV9saW51eF93YXRjaHBvaW50X2FkZHJf d2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAorIAkJCQkJQ09SRV9BRERS IGFkZHIsCistCQkJCQlDT1JFX0FERFIgc3RhcnQsIGludCBsZW5ndGgpCisrCQkJCQlDT1JFX0FE RFIgc3RhcnQsIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIHJldHVybiBzdGFydCA8PSBhZGRyICYm IHN0YXJ0ICsgbGVuZ3RoIC0gMSA+PSBhZGRyOworIH0KK2RpZmYgLS1naXQgYS9nZGIvaTM4Ni1u YXQuYyBiL2dkYi9pMzg2LW5hdC5jCitpbmRleCA3NmM1MWE4Li45ZTI5M2ZlIDEwMDY0NAorLS0t IGEvZ2RiL2kzODYtbmF0LmMKKysrKyBiL2dkYi9pMzg2LW5hdC5jCitAQCAtNTkyLDcgKzU5Miw3 IEBAIGkzODZfdXBkYXRlX2luZmVyaW9yX2RlYnVnX3JlZ3MgKHN0cnVjdCBpMzg2X2RlYnVnX3Jl Z19zdGF0ZSAqbmV3X3N0YXRlKQorICAgIG9mIHRoZSB0eXBlIFRZUEUuICBSZXR1cm4gMCBvbiBz dWNjZXNzLCAtMSBvbiBmYWlsdXJlLiAgKi8KKyAKKyBzdGF0aWMgaW50CistaTM4Nl9pbnNlcnRf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK2kzODZfaW5z ZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHR5cGUsCisg CQkJc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgc3RydWN0IGkzODZfZGVidWdfcmVn X3N0YXRlICpzdGF0ZSA9IGkzODZfZGVidWdfcmVnX3N0YXRlICgpOworQEAgLTYyOSw3ICs2Mjks NyBAQCBpMzg2X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50 IHR5cGUsCisgICAgYWRkcmVzcyBBRERSLCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLCBhbmQg Zm9yIGFjY2Vzc2VzIG9mIHRoZQorICAgIHR5cGUgVFlQRS4gIFJldHVybiAwIG9uIHN1Y2Nlc3Ms IC0xIG9uIGZhaWx1cmUuICAqLworIHN0YXRpYyBpbnQKKy1pMzg2X3JlbW92ZV93YXRjaHBvaW50 IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisraTM4Nl9yZW1vdmVfd2F0Y2hw b2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQlzdHJ1Y3Qg ZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgaTM4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0 YXRlID0gaTM4Nl9kZWJ1Z19yZWdfc3RhdGUgKCk7CitkaWZmIC0tZ2l0IGEvZ2RiL2lhNjQtbGlu dXgtbmF0LmMgYi9nZGIvaWE2NC1saW51eC1uYXQuYworaW5kZXggOWI1ZmJmMy4uNjA2MWVhZSAx MDA2NDQKKy0tLSBhL2dkYi9pYTY0LWxpbnV4LW5hdC5jCisrKysgYi9nZGIvaWE2NC1saW51eC1u YXQuYworQEAgLTU0Miw3ICs1NDIsNyBAQCBpc19wb3dlcl9vZl8yIChpbnQgdmFsKQorIH0KKyAK KyBzdGF0aWMgaW50CistaWE2NF9saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIGludCBsZW4sIGludCBydywKKytpYTY0X2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCBydywKKyAJCQkgICAgICBzdHJ1Y3QgZXhwcmVz c2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgbHdwX2luZm8gKmxwOworQEAgLTU5Niw3ICs1OTYs NyBAQCBpYTY0X2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl biwgaW50IHJ3LAorIH0KKyAKKyBzdGF0aWMgaW50CistaWE2NF9saW51eF9yZW1vdmVfd2F0Y2hw b2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK2lhNjRfbGludXhfcmVt b3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHR5cGUsCisg CQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgaW50IGlkeDsKK2RpZmYg LS1naXQgYS9nZGIvaW5mLXR0cmFjZS5jIGIvZ2RiL2luZi10dHJhY2UuYworaW5kZXggZDYwZWRk Yi4uYzMzZGI0NSAxMDA2NDQKKy0tLSBhL2dkYi9pbmYtdHRyYWNlLmMKKysrKyBiL2dkYi9pbmYt dHRyYWNlLmMKK0BAIC0zMTMsMTQgKzMxMywxNCBAQCBpbmZfdHRyYWNlX2Rpc2FibGVfcGFnZV9w cm90ZWN0aW9ucyAocGlkX3QgcGlkKQorICAgIHR5cGUgVFlQRS4gICovCisgCisgc3RhdGljIGlu dAorLWluZl90dHJhY2VfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVu LCBpbnQgdHlwZSwKKytpbmZfdHRyYWNlX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRk ciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCSAgICAgIHN0cnVjdCBleHByZXNzaW9uICpj b25kKQorIHsKKyAgIGNvbnN0IGludCBwYWdlc2l6ZSA9IGluZl90dHJhY2VfcGFnZV9kaWN0LnBh Z2VzaXplOworICAgcGlkX3QgcGlkID0gcHRpZF9nZXRfcGlkIChpbmZlcmlvcl9wdGlkKTsKKyAg IENPUkVfQUREUiBwYWdlX2FkZHI7CistICBpbnQgbnVtX3BhZ2VzOworLSAgaW50IHBhZ2U7Cisr ICBMT05HRVNUIG51bV9wYWdlczsKKysgIExPTkdFU1QgcGFnZTsKKyAKKyAgIGdkYl9hc3NlcnQg KHR5cGUgPT0gaHdfd3JpdGUpOworIAorQEAgLTMzNywxNCArMzM3LDE0IEBAIGluZl90dHJhY2Vf aW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyAg ICB0eXBlIFRZUEUuICAqLworIAorIHN0YXRpYyBpbnQKKy1pbmZfdHRyYWNlX3JlbW92ZV93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisraW5mX3R0cmFjZV9y ZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwK KyAJCQkgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBjb25zdCBpbnQgcGFn ZXNpemUgPSBpbmZfdHRyYWNlX3BhZ2VfZGljdC5wYWdlc2l6ZTsKKyAgIHBpZF90IHBpZCA9IHB0 aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCk7CisgICBDT1JFX0FERFIgcGFnZV9hZGRyOworLSAg aW50IG51bV9wYWdlczsKKy0gIGludCBwYWdlOworKyAgTE9OR0VTVCBudW1fcGFnZXM7CisrICBM T05HRVNUIHBhZ2U7CisgCisgICBnZGJfYXNzZXJ0ICh0eXBlID09IGh3X3dyaXRlKTsKKyAKK2Rp ZmYgLS1naXQgYS9nZGIvbWlwcy1saW51eC1uYXQuYyBiL2dkYi9taXBzLWxpbnV4LW5hdC5jCitp bmRleCA1NTY2ZDBjLi43NDY3ZDExIDEwMDY0NAorLS0tIGEvZ2RiL21pcHMtbGludXgtbmF0LmMK KysrKyBiL2dkYi9taXBzLWxpbnV4LW5hdC5jCitAQCAtMTAxNyw3ICsxMDE3LDcgQEAgcG9wdWxh dGVfcmVnc19mcm9tX3dhdGNoZXMgKHN0cnVjdCBwdF93YXRjaF9yZWdzICpyZWdzKQorICAgIHdh dGNoLiAgUmV0dXJuIHplcm8gb24gc3VjY2Vzcy4gICovCisgCisgc3RhdGljIGludAorLW1pcHNf bGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlw ZSwKKyttaXBzX2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VT VCBsZW4sIGludCB0eXBlLAorIAkJCSAgICAgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsK KyAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIHJlZ3M7CitAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgbWlw c19saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0 eXBlLAorICAgIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MuICAqLworIAorIHN0YXRpYyBpbnQKKy1t aXBzX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50 IHR5cGUsCisrbWlwc19saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExP TkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkK KyB7CisgICBpbnQgcmV0dmFsOworZGlmZiAtLWdpdCBhL2dkYi9udG8tcHJvY2ZzLmMgYi9nZGIv bnRvLXByb2Nmcy5jCitpbmRleCBiNThmMzE4Li4yNWZlY2YzIDEwMDY0NAorLS0tIGEvZ2RiL250 by1wcm9jZnMuYworKysrIGIvZ2RiL250by1wcm9jZnMuYworQEAgLTY5LDEwICs2OSwxMCBAQCBz dGF0aWMgcHRpZF90IGRvX2F0dGFjaCAocHRpZF90IHB0aWQpOworIAorIHN0YXRpYyBpbnQgcHJv Y2ZzX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50LCBpbnQsIGludCk7CisgCistc3RhdGljIGlu dCBwcm9jZnNfaW5zZXJ0X2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBp bnQgdHlwZSwKKytzdGF0aWMgaW50IHByb2Nmc19pbnNlcnRfaHdfd2F0Y2hwb2ludCAoQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkJCXN0cnVjdCBleHByZXNzaW9u ICpjb25kKTsKKyAKKy1zdGF0aWMgaW50IHByb2Nmc19yZW1vdmVfaHdfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3N0YXRpYyBpbnQgcHJvY2ZzX3JlbW92 ZV9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAor IAkJCQkJc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpOworIAorIHN0YXRpYyBpbnQgcHJvY2ZzX3N0 b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCk7CitAQCAtMTQ5MywxNCArMTQ5MywxNCBAQCBwcm9j ZnNfY2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHlwZSwgaW50IGNudCwgaW50IG90aGVydHlw ZSkKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nmc19yZW1vdmVfaHdfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3Byb2Nmc19yZW1vdmVfaHdfd2F0Y2hw b2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgICAgIHN0 cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHJldHVybiBwcm9jZnNfaHdfd2F0Y2hwb2lu dCAoYWRkciwgLTEsIHR5cGUpOworIH0KKyAKKyBzdGF0aWMgaW50CistcHJvY2ZzX2luc2VydF9o d193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisrcHJvY2Zz X2luc2VydF9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0 eXBlLAorIAkJCSAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgcmV0dXJuIHBy b2Nmc19od193YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUpOworZGlmZiAtLWdpdCBhL2dkYi9w cGMtbGludXgtbmF0LmMgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCitpbmRleCA2N2UxY2FjLi5hYmZi MmZjIDEwMDY0NAorLS0tIGEvZ2RiL3BwYy1saW51eC1uYXQuYworKysrIGIvZ2RiL3BwYy1saW51 eC1uYXQuYworQEAgLTE4MzksMTEgKzE4MzksMTEgQEAgY2FuX3VzZV93YXRjaHBvaW50X2NvbmRf YWNjZWwgKHZvaWQpCisgICAgQ09ORElUSU9OX1ZBTFVFIHdpbGwgaG9sZCB0aGUgdmFsdWUgd2hp Y2ggc2hvdWxkIGJlIHB1dCBpbiB0aGUKKyAgICBEVkMgcmVnaXN0ZXIuICAqLworIHN0YXRpYyB2 b2lkCistY2FsY3VsYXRlX2R2YyAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIENPUkVfQUREUiBk YXRhX3ZhbHVlLAorK2NhbGN1bGF0ZV9kdmMgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwg Q09SRV9BRERSIGRhdGFfdmFsdWUsCisgCSAgICAgICB1aW50MzJfdCAqY29uZGl0aW9uX21vZGUs IHVpbnQ2NF90ICpjb25kaXRpb25fdmFsdWUpCisgeworLSAgaW50IGksIG51bV9ieXRlX2VuYWJs ZSwgYWxpZ25fb2Zmc2V0LCBudW1fYnl0ZXNfb2ZmX2R2YywKKy0gICAgICByaWdodG1vc3RfZW5h YmxlZF9ieXRlOworKyAgTE9OR0VTVCBpLCBudW1fYnl0ZV9lbmFibGU7CisrICBpbnQgYWxpZ25f b2Zmc2V0LCBudW1fYnl0ZXNfb2ZmX2R2YywgcmlnaHRtb3N0X2VuYWJsZWRfYnl0ZTsKKyAgIENP UkVfQUREUiBhZGRyX2VuZF9kYXRhLCBhZGRyX2VuZF9kdmM7CisgCisgICAvKiBUaGUgRFZDIHJl Z2lzdGVyIGNvbXBhcmVzIGJ5dGVzIHdpdGhpbiBmaXhlZC1sZW5ndGggd2luZG93cyB3aGljaAor QEAgLTE5MzAsNyArMTkzMCw3IEBAIG51bV9tZW1vcnlfYWNjZXNzZXMgKHN0cnVjdCB2YWx1ZSAq dikKKyAgICBvZiB0aGUgY29uc3RhbnQuICAqLworIHN0YXRpYyBpbnQKKyBjaGVja19jb25kaXRp b24gKENPUkVfQUREUiB3YXRjaF9hZGRyLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCwKKy0JCSBD T1JFX0FERFIgKmRhdGFfdmFsdWUsIGludCAqbGVuKQorKwkJIENPUkVfQUREUiAqZGF0YV92YWx1 ZSwgTE9OR0VTVCAqbGVuKQorIHsKKyAgIGludCBwYyA9IDEsIG51bV9hY2Nlc3Nlc19sZWZ0LCBu dW1fYWNjZXNzZXNfcmlnaHQ7CisgICBzdHJ1Y3QgdmFsdWUgKmxlZnRfdmFsLCAqcmlnaHRfdmFs LCAqbGVmdF9jaGFpbiwgKnJpZ2h0X2NoYWluOworQEAgLTE5OTcsNyArMTk5Nyw3IEBAIGNoZWNr X2NvbmRpdGlvbiAoQ09SRV9BRERSIHdhdGNoX2FkZHIsIHN0cnVjdCBleHByZXNzaW9uICpjb25k LAorICAgIHRoZSBjb25kaXRpb24gZXhwcmVzc2lvbiwgdGh1cyBvbmx5IHRyaWdnZXJpbmcgdGhl IHdhdGNocG9pbnQgd2hlbiBpdCBpcworICAgIHRydWUuICAqLworIHN0YXRpYyBpbnQKKy1wcGNf bGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FERFIgYWRkciwgaW50 IGxlbiwgaW50IHJ3LAorK3BwY19saW51eF9jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24g KENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHJ3LAorIAkJCQkJICBzdHJ1Y3QgZXhw cmVzc2lvbiAqY29uZCkKKyB7CisgICBDT1JFX0FERFIgZGF0YV92YWx1ZTsKK0BAIC0yMDE0LDcg KzIwMTQsNyBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JF X0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorIAorIHN0YXRpYyB2b2lkCisgY3JlYXRlX3dh dGNocG9pbnRfcmVxdWVzdCAoc3RydWN0IHBwY19od19icmVha3BvaW50ICpwLCBDT1JFX0FERFIg YWRkciwKKy0JCQkgICBpbnQgbGVuLCBpbnQgcncsIHN0cnVjdCBleHByZXNzaW9uICpjb25kLAor KwkJCSAgIExPTkdFU1QgbGVuLCBpbnQgcncsIHN0cnVjdCBleHByZXNzaW9uICpjb25kLAorIAkJ CSAgIGludCBpbnNlcnQpCisgeworICAgaWYgKGxlbiA9PSAxCitAQCAtMjA1OSw3ICsyMDU5LDcg QEAgY3JlYXRlX3dhdGNocG9pbnRfcmVxdWVzdCAoc3RydWN0IHBwY19od19icmVha3BvaW50ICpw LCBDT1JFX0FERFIgYWRkciwKKyB9CisgCisgc3RhdGljIGludAorLXBwY19saW51eF9pbnNlcnRf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKytwcGNfbGludXhf aW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHJ3LAor IAkJCSAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgc3RydWN0IGx3cF9pbmZv ICpscDsKK0BAIC0yMTI3LDcgKzIxMjcsNyBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCisgfQorIAorIHN0YXRpYyBpbnQKKy1w cGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQg cncsCisrcHBjX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VT VCBsZW4sIGludCBydywKKyAJCQkgICAgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAg IHN0cnVjdCBsd3BfaW5mbyAqbHA7CitAQCAtMjI2Nyw3ICsyMjY3LDcgQEAgcHBjX2xpbnV4X3N0 b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCkKKyBzdGF0aWMgaW50CisgcHBjX2xpbnV4X3dhdGNo cG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCisgCQkJ CQlDT1JFX0FERFIgYWRkciwKKy0JCQkJCUNPUkVfQUREUiBzdGFydCwgaW50IGxlbmd0aCkKKysJ CQkJCUNPUkVfQUREUiBzdGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgaW50IG1hc2s7Cisg CitkaWZmIC0tZ2l0IGEvZ2RiL3Byb2Nmcy5jIGIvZ2RiL3Byb2Nmcy5jCitpbmRleCA0YTkzMzZm Li4yNmFjY2Q4IDEwMDY0NAorLS0tIGEvZ2RiL3Byb2Nmcy5jCisrKysgYi9nZGIvcHJvY2ZzLmMK K0BAIC0yNDcwLDcgKzI0NzAsNyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0X3BvaW50ZXIgKENP UkVfQUREUiBhZGRyKQorICNlbmRpZgorIAorIHN0YXRpYyBpbnQKKy1wcm9jX3NldF93YXRjaHBv aW50IChwcm9jaW5mbyAqcGksIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgd2ZsYWdzKQor K3Byb2Nfc2V0X3dhdGNocG9pbnQgKHByb2NpbmZvICpwaSwgQ09SRV9BRERSIGFkZHIsIExPTkdF U1QgbGVuLCBpbnQgd2ZsYWdzKQorIHsKKyAjaWYgIWRlZmluZWQgKFBDV0FUQ0gpICYmICFkZWZp bmVkIChQSU9DU1dBVENIKQorICAgLyogSWYgbmVpdGhlciBvciB0aGVzZSBpcyBkZWZpbmVkLCB3 ZSBjYW4ndCBzdXBwb3J0IHdhdGNocG9pbnRzLgorQEAgLTQ4MTYsNyArNDgxNiw3IEBAIHByb2Nm c19waWRfdG9fc3RyIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBwdGlkX3QgcHRpZCkKKyAvKiBJ bnNlcnQgYSB3YXRjaHBvaW50LiAgKi8KKyAKKyBzdGF0aWMgaW50CistcHJvY2ZzX3NldF93YXRj aHBvaW50IChwdGlkX3QgcHRpZCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCByd2ZsYWcs CisrcHJvY2ZzX3NldF93YXRjaHBvaW50IChwdGlkX3QgcHRpZCwgQ09SRV9BRERSIGFkZHIsIExP TkdFU1QgbGVuLCBpbnQgcndmbGFnLAorIAkJICAgICAgIGludCBhZnRlcikKKyB7CisgI2lmbmRl ZiBVTklYV0FSRQorQEAgLTQ5MzgsNyArNDkzOCw3IEBAIHByb2Nmc19zdG9wcGVkX2RhdGFfYWRk cmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmcsIENPUkVfQUREUiAqYWRkcikKKyB9CisgCisg c3RhdGljIGludAorLXByb2Nmc19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGlu dCBsZW4sIGludCB0eXBlLAorK3Byb2Nmc19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25k KQorIHsKKyAgIGlmICghdGFyZ2V0X2hhdmVfc3RlcHBhYmxlX3dhdGNocG9pbnQKK0BAIC00OTYw LDcgKzQ5NjAsNyBAQCBwcm9jZnNfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBp bnQgbGVuLCBpbnQgdHlwZSwKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nmc19yZW1vdmVfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3Byb2Nmc19yZW1v dmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJ CQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHJldHVybiBwcm9jZnNfc2V0X3dh dGNocG9pbnQgKGluZmVyaW9yX3B0aWQsIGFkZHIsIDAsIDAsIDApOworZGlmZiAtLWdpdCBhL2dk Yi9yZW1vdGUtbTMyci1zZGkuYyBiL2dkYi9yZW1vdGUtbTMyci1zZGkuYworaW5kZXggNzQ4YWVi YS4uYjM4NWMzZiAxMDA2NDQKKy0tLSBhL2dkYi9yZW1vdGUtbTMyci1zZGkuYworKysrIGIvZ2Ri L3JlbW90ZS1tMzJyLXNkaS5jCitAQCAtMTQxNywxNCArMTQxNywxNCBAQCBtMzJyX2Nhbl91c2Vf aHdfd2F0Y2hwb2ludCAoaW50IHR5cGUsIGludCBjbnQsIGludCBvdGhlcnR5cGUpCisgICAgd2F0 Y2hwb2ludC4gICovCisgCisgc3RhdGljIGludAorLW0zMnJfaW5zZXJ0X3dhdGNocG9pbnQgKENP UkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttMzJyX2luc2VydF93YXRjaHBvaW50 IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0cnVjdCBleHBy ZXNzaW9uICpjb25kKQorIHsKKyAgIGludCBpOworIAorICAgaWYgKHJlbW90ZV9kZWJ1ZykKKy0g ICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9pbnNlcnRfd2F0Y2hwb2lu dCglcywlZCwlZClcbiIsCistCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBhZGRyKSwgbGVu LCB0eXBlKTsKKysgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9pbnNl cnRfd2F0Y2hwb2ludCglcywlcywlZClcbiIsCisrCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNo LCBhZGRyKSwgcGxvbmdlc3QgKGxlbiksIHR5cGUpOworIAorICAgZm9yIChpID0gMDsgaSA8IE1B WF9BQ0NFU1NfQlJFQUtTOyBpKyspCisgICAgIHsKK0BAIC0xNDQyLDE0ICsxNDQyLDE0IEBAIG0z MnJfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwK KyB9CisgCisgc3RhdGljIGludAorLW0zMnJfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttMzJyX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0cnVjdCBleHByZXNzaW9uICpj b25kKQorIHsKKyAgIGludCBpOworIAorICAgaWYgKHJlbW90ZV9kZWJ1ZykKKy0gICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9yZW1vdmVfd2F0Y2hwb2ludCglcywlZCwl ZClcbiIsCistCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBhZGRyKSwgbGVuLCB0eXBlKTsK KysgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9yZW1vdmVfd2F0Y2hw b2ludCglcywlcywlZClcbiIsCisrCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBhZGRyKSwg cGxvbmdlc3QgKGxlbiksIHR5cGUpOworIAorICAgZm9yIChpID0gMDsgaSA8IE1BWF9BQ0NFU1Nf QlJFQUtTOyBpKyspCisgICAgIHsKK2RpZmYgLS1naXQgYS9nZGIvcmVtb3RlLW1pcHMuYyBiL2dk Yi9yZW1vdGUtbWlwcy5jCitpbmRleCBlZWUyNDYwLi45YTkyNjVhIDEwMDY0NAorLS0tIGEvZ2Ri L3JlbW90ZS1taXBzLmMKKysrKyBiL2dkYi9yZW1vdGUtbWlwcy5jCitAQCAtMjQxOSw3ICsyNDE5 LDcgQEAgY2FsY3VsYXRlX21hc2sgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQorICAgIHdhdGNo cG9pbnQuICAqLworIAorIHN0YXRpYyBpbnQKKy1taXBzX2luc2VydF93YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisrbWlwc19pbnNlcnRfd2F0Y2hwb2ludCAo Q09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQlzdHJ1Y3QgZXhwcmVz c2lvbiAqY29uZCkKKyB7CisgICBpZiAobWlwc19zZXRfYnJlYWtwb2ludCAoYWRkciwgbGVuLCB0 eXBlKSkKK0BAIC0yNDMxLDcgKzI0MzEsNyBAQCBtaXBzX2luc2VydF93YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisgLyogUmVtb3ZlIGEgd2F0Y2hwb2ludC4g ICovCisgCisgc3RhdGljIGludAorLW1pcHNfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttaXBzX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0cnVjdCBleHByZXNzaW9uICpj b25kKQorIHsKKyAgIGlmIChtaXBzX2NsZWFyX2JyZWFrcG9pbnQgKGFkZHIsIGxlbiwgdHlwZSkp CitkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCitpbmRleCA4YzI3Mzkw Li5iY2VjMzMxIDEwMDY0NAorLS0tIGEvZ2RiL3JlbW90ZS5jCisrKysgYi9nZGIvcmVtb3RlLmMK K0BAIC04MDM1LDcgKzgwMzUsNyBAQCB3YXRjaHBvaW50X3RvX1pfcGFja2V0IChpbnQgdHlwZSkK KyB9CisgCisgc3RhdGljIGludAorLXJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3JlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgIHN0cnVjdCBleHByZXNz aW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCByZW1vdGVfc3RhdGUgKnJzID0gZ2V0X3JlbW90ZV9z dGF0ZSAoKTsKK0BAIC04MDUwLDcgKzgwNTAsNyBAQCByZW1vdGVfaW5zZXJ0X3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyAgIHAgPSBzdHJjaHIgKHJzLT5i dWYsICdcMCcpOworICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkcik7CisgICBw ICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKKy0gIHhzbnByaW50ZiAocCwgZW5k YnVmIC0gcCwgIiwleCIsIGxlbik7CisrICB4c25wcmludGYgKHAsIGVuZGJ1ZiAtIHAsICIsJXMi LCBwaGV4X256IChsZW4sIHNpemVvZiAobGVuKSkpOworIAorICAgcHV0cGt0IChycy0+YnVmKTsK KyAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOworQEAgLTgwNzAsNyArODA3 MCw3IEBAIHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4s IGludCB0eXBlLAorIAorIHN0YXRpYyBpbnQKKyByZW1vdGVfd2F0Y2hwb2ludF9hZGRyX3dpdGhp bl9yYW5nZSAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgQ09SRV9BRERSIGFkZHIsCistCQkJ CSAgICAgQ09SRV9BRERSIHN0YXJ0LCBpbnQgbGVuZ3RoKQorKwkJCQkgICAgIENPUkVfQUREUiBz dGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgQ09SRV9BRERSIGRpZmYgPSByZW1vdGVfYWRk cmVzc19tYXNrZWQgKGFkZHIgLSBzdGFydCk7CisgCitAQCAtODA3OSw3ICs4MDc5LDcgQEAgcmVt b3RlX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJn ZXQsIENPUkVfQUREUiBhZGRyLAorIAorIAorIHN0YXRpYyBpbnQKKy1yZW1vdGVfcmVtb3ZlX3dh dGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytyZW1vdGVfcmVt b3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHR5cGUsCisg CQkJICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgcmVtb3RlX3N0YXRl ICpycyA9IGdldF9yZW1vdGVfc3RhdGUgKCk7CitAQCAtODA5NCw3ICs4MDk0LDcgQEAgcmVtb3Rl X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisg ICBwID0gc3RyY2hyIChycy0+YnVmLCAnXDAnKTsKKyAgIGFkZHIgPSByZW1vdGVfYWRkcmVzc19t YXNrZWQgKGFkZHIpOworICAgcCArPSBoZXhudW1zdHIgKHAsIChVTE9OR0VTVCkgYWRkcik7Cist ICB4c25wcmludGYgKHAsIGVuZGJ1ZiAtIHAsICIsJXgiLCBsZW4pOworKyAgeHNucHJpbnRmIChw LCBlbmRidWYgLSBwLCAiLCVzIiwgcGhleF9ueiAobGVuLCBzaXplb2YgKGxlbikpKTsKKyAgIHB1 dHBrdCAocnMtPmJ1Zik7CisgICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsK KyAKK2RpZmYgLS1naXQgYS9nZGIvczM5MC1uYXQuYyBiL2dkYi9zMzkwLW5hdC5jCitpbmRleCA0 OTc0YmFkLi4zZjQxNTE5IDEwMDY0NAorLS0tIGEvZ2RiL3MzOTAtbmF0LmMKKysrKyBiL2dkYi9z MzkwLW5hdC5jCitAQCAtNTE3LDcgKzUxNyw3IEBAIHMzOTBfZml4X3dhdGNoX3BvaW50cyAoc3Ry dWN0IGx3cF9pbmZvICpscCkKKyB9CisgCisgc3RhdGljIGludAorLXMzOTBfaW5zZXJ0X3dhdGNo cG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytzMzkwX2luc2VydF93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0 cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCBsd3BfaW5mbyAqbHA7CitAQCAt NTM4LDcgKzUzOCw3IEBAIHMzOTBfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBp bnQgbGVuLCBpbnQgdHlwZSwKKyB9CisgCisgc3RhdGljIGludAorLXMzOTBfcmVtb3ZlX3dhdGNo cG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytzMzkwX3JlbW92ZV93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0 cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCBsd3BfaW5mbyAqbHA7CitkaWZm IC0tZ2l0IGEvZ2RiL3RhcmdldC5jIGIvZ2RiL3RhcmdldC5jCitpbmRleCBmNzIwN2MwLi5hNjlm YjA2IDEwMDY0NAorLS0tIGEvZ2RiL3RhcmdldC5jCisrKysgYi9nZGIvdGFyZ2V0LmMKK0BAIC00 OSw3ICs0OSw4IEBAIHN0YXRpYyB2b2lkIHRhcmdldF9pbmZvIChjaGFyICosIGludCk7Cisgc3Rh dGljIHZvaWQgZGVmYXVsdF90ZXJtaW5hbF9pbmZvIChjaGFyICosIGludCk7CisgCisgc3RhdGlj IGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRf b3BzICosCistCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworKwkJCQkJCSBDT1JF X0FERFIsIENPUkVfQUREUiwKKysJCQkJCQkgTE9OR0VTVCk7CisgCisgc3RhdGljIGludCBkZWZh dWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBMT05HRVNUKTsKKyAK K0BAIC0xMTQsMTAgKzExNSwxMCBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX2luc2VydF9od19icmVh a3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqLAorIHN0YXRpYyBpbnQgZGVidWdfdG9fcmVtb3ZlX2h3 X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICosCisgCQkJCQkgIHN0cnVjdCBicF90YXJnZXRf aW5mbyAqKTsKKyAKKy1zdGF0aWMgaW50IGRlYnVnX3RvX2luc2VydF93YXRjaHBvaW50IChDT1JF X0FERFIsIGludCwgaW50LAorK3N0YXRpYyBpbnQgZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQg KENPUkVfQUREUiwgTE9OR0VTVCwgaW50LAorIAkJCQkgICAgICAgc3RydWN0IGV4cHJlc3Npb24g Kik7CisgCistc3RhdGljIGludCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERS LCBpbnQsIGludCwKKytzdGF0aWMgaW50IGRlYnVnX3RvX3JlbW92ZV93YXRjaHBvaW50IChDT1JF X0FERFIsIExPTkdFU1QsIGludCwKKyAJCQkJICAgICAgIHN0cnVjdCBleHByZXNzaW9uICopOwor IAorIHN0YXRpYyBpbnQgZGVidWdfdG9fc3RvcHBlZF9ieV93YXRjaHBvaW50ICh2b2lkKTsKK0BA IC0xMjUsMTEgKzEyNiwxMiBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX3N0b3BwZWRfYnlfd2F0Y2hw b2ludCAodm9pZCk7Cisgc3RhdGljIGludCBkZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcyAo c3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopOworIAorIHN0YXRpYyBpbnQgZGVidWdf dG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydWN0IHRhcmdldF9vcHMgKiwKKy0J CQkJCQkgIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworKwkJCQkJCSAgQ09SRV9BRERSLCBD T1JFX0FERFIsCisrCQkJCQkJICBMT05HRVNUKTsKKyAKKyBzdGF0aWMgaW50IGRlYnVnX3RvX3Jl Z2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBMT05HRVNUKTsKKyAKKy1zdGF0 aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERS LCBpbnQsIGludCwKKytzdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2Nv bmRpdGlvbiAoQ09SRV9BRERSLCBMT05HRVNULCBpbnQsCisgCQkJCQkJICAgIHN0cnVjdCBleHBy ZXNzaW9uICopOworIAorIHN0YXRpYyB2b2lkIGRlYnVnX3RvX3Rlcm1pbmFsX2luaXQgKHZvaWQp OworQEAgLTc1MSwxMCArNzUzLDEwIEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9pZCkKKyAJ ICAgIChpbnQgKCopIChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8gKikp CisgCSAgICByZXR1cm5fbWludXNfb25lKTsKKyAgIGRlX2ZhdWx0ICh0b19pbnNlcnRfd2F0Y2hw b2ludCwKKy0JICAgIChpbnQgKCopIChDT1JFX0FERFIsIGludCwgaW50LCBzdHJ1Y3QgZXhwcmVz c2lvbiAqKSkKKysJICAgIChpbnQgKCopIChDT1JFX0FERFIsIExPTkdFU1QsIGludCwgc3RydWN0 IGV4cHJlc3Npb24gKikpCisgCSAgICByZXR1cm5fbWludXNfb25lKTsKKyAgIGRlX2ZhdWx0ICh0 b19yZW1vdmVfd2F0Y2hwb2ludCwKKy0JICAgIChpbnQgKCopIChDT1JFX0FERFIsIGludCwgaW50 LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSkKKysJICAgIChpbnQgKCopIChDT1JFX0FERFIsIExPTkdF U1QsIGludCwgc3RydWN0IGV4cHJlc3Npb24gKikpCisgCSAgICByZXR1cm5fbWludXNfb25lKTsK KyAgIGRlX2ZhdWx0ICh0b19zdG9wcGVkX2J5X3dhdGNocG9pbnQsCisgCSAgICAoaW50ICgqKSAo dm9pZCkpCitAQCAtNzY3LDcgKzc2OSw3IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9pZCkK KyAgIGRlX2ZhdWx0ICh0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQsCisgCSAgICBkZWZh dWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CisgICBkZV9mYXVsdCAodG9fY2FuX2Fj Y2VsX3dhdGNocG9pbnRfY29uZGl0aW9uLAorLSAgICAgICAgICAgIChpbnQgKCopIChDT1JFX0FE RFIsIGludCwgaW50LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSkKKysgICAgICAgICAgICAoaW50ICgq KSAoQ09SRV9BRERSLCBMT05HRVNULCBpbnQsIHN0cnVjdCBleHByZXNzaW9uICopKQorICAgICAg ICAgICAgIHJldHVybl96ZXJvKTsKKyAgIGRlX2ZhdWx0ICh0b190ZXJtaW5hbF9pbml0LAorIAkg ICAgKHZvaWQgKCopICh2b2lkKSkKK0BAIC0zNTU4LDcgKzM1NjAsNyBAQCBkZWZhdWx0X3JlZ2lv bl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHN0 YXRpYyBpbnQKKyBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0 YXJnZXRfb3BzICp0YXJnZXQsCisgCQkJCSAgICAgIENPUkVfQUREUiBhZGRyLAorLQkJCQkgICAg ICBDT1JFX0FERFIgc3RhcnQsIGludCBsZW5ndGgpCisrCQkJCSAgICAgIENPUkVfQUREUiBzdGFy dCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmV0dXJuIGFkZHIgPj0gc3RhcnQgJiYgYWRkciA8 IHN0YXJ0ICsgbGVuZ3RoOworIH0KK0BAIC00MjYzLDcgKzQyNjUsNyBAQCBkZWJ1Z190b19yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKKyB9 CisgCisgc3RhdGljIGludAorLWRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlv biAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKytkZWJ1Z190b19jYW5fYWNjZWxf d2F0Y2hwb2ludF9jb25kaXRpb24gKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHJ3 LAorIAkJCQkJIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIGludCByZXR2YWw7CitA QCAtNDI3Myw4ICs0Mjc1LDggQEAgZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0 aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorIAorICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAorIAkJICAgICAgInRhcmdldF9jYW5fYWNjZWxfd2F0Y2hwb2lu dF9jb25kaXRpb24gIgorLQkJICAgICAgIiglcywgJWQsICVkLCAlcykgPSAlbGRcbiIsCistCQkg ICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgbGVuLCBydywKKysJCSAgICAgICIoJXMs ICVzLCAlZCwgJXMpID0gJWxkXG4iLAorKwkJICAgICAgY29yZV9hZGRyX3RvX3N0cmluZyAoYWRk ciksIHBsb25nZXN0IChsZW4pLCBydywKKyAJCSAgICAgIGhvc3RfYWRkcmVzc190b19zdHJpbmcg KGNvbmQpLCAodW5zaWduZWQgbG9uZykgcmV0dmFsKTsKKyAgIHJldHVybiByZXR2YWw7CisgfQor QEAgLTQzMDksNyArNDMxMSw3IEBAIGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1 Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LCBDT1JFX0FERFIgKmFkZHIpCisgc3RhdGljIGludAorIGRl YnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0 YXJnZXQsCisgCQkJCSAgICAgICBDT1JFX0FERFIgYWRkciwKKy0JCQkJICAgICAgIENPUkVfQURE UiBzdGFydCwgaW50IGxlbmd0aCkKKysJCQkJICAgICAgIENPUkVfQUREUiBzdGFydCwgTE9OR0VT VCBsZW5ndGgpCisgeworICAgaW50IHJldHZhbDsKKyAKK0BAIC00MzE3LDkgKzQzMTksOSBAQCBk ZWJ1Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAq dGFyZ2V0LAorIAkJCQkJCQkgc3RhcnQsIGxlbmd0aCk7CisgCisgICBmcHJpbnRmX2ZpbHRlcmVk IChnZGJfc3RkbG9nLAorLQkJICAgICJ0YXJnZXRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5n ZSAoJXMsICVzLCAlZCkgPSAlZFxuIiwKKysJCSAgICAidGFyZ2V0X3dhdGNocG9pbnRfYWRkcl93 aXRoaW5fcmFuZ2UgKCVzLCAlcywgJXMpID0gJWRcbiIsCisgCQkgICAgY29yZV9hZGRyX3RvX3N0 cmluZyAoYWRkciksIGNvcmVfYWRkcl90b19zdHJpbmcgKHN0YXJ0KSwKKy0JCSAgICBsZW5ndGgs IHJldHZhbCk7CisrCQkgICAgcGxvbmdlc3QgKGxlbmd0aCksIHJldHZhbCk7CisgICByZXR1cm4g cmV0dmFsOworIH0KKyAKK0BAIC00MzU0LDcgKzQzNTYsNyBAQCBkZWJ1Z190b19yZW1vdmVfaHdf YnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgfQorIAorIHN0YXRpYyBpbnQK Ky1kZWJ1Z190b19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGlu dCB0eXBlLAorK2RlYnVnX3RvX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9O R0VTVCBsZW4sIGludCB0eXBlLAorIAkJCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7 CisgICBpbnQgcmV0dmFsOworQEAgLTQzNjIsMTQgKzQzNjQsMTQgQEAgZGVidWdfdG9faW5zZXJ0 X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyAgIHJldHZh bCA9IGRlYnVnX3RhcmdldC50b19pbnNlcnRfd2F0Y2hwb2ludCAoYWRkciwgbGVuLCB0eXBlLCBj b25kKTsKKyAKKyAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKy0JCSAgICAgICJ0 YXJnZXRfaW5zZXJ0X3dhdGNocG9pbnQgKCVzLCAlZCwgJWQsICVzKSA9ICVsZFxuIiwKKy0JCSAg ICAgIGNvcmVfYWRkcl90b19zdHJpbmcgKGFkZHIpLCBsZW4sIHR5cGUsCisrCQkgICAgICAidGFy Z2V0X2luc2VydF93YXRjaHBvaW50ICglcywgJXMsICVkLCAlcykgPSAlbGRcbiIsCisrCQkgICAg ICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgcGxvbmdlc3QgKGxlbiksIHR5cGUsCisgCQkg ICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChjb25kKSwgKHVuc2lnbmVkIGxvbmcpIHJldHZh bCk7CisgICByZXR1cm4gcmV0dmFsOworIH0KKyAKKyBzdGF0aWMgaW50CistZGVidWdfdG9fcmVt b3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytkZWJ1 Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQg dHlwZSwKKyAJCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgaW50IHJldHZh bDsKK0BAIC00Mzc3LDggKzQzNzksOCBAQCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0 LnRvX3JlbW92ZV93YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUsIGNvbmQpOworIAorICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJICAgICAgInRhcmdldF9yZW1vdmVfd2F0 Y2hwb2ludCAoJXMsICVkLCAlZCwgJXMpID0gJWxkXG4iLAorLQkJICAgICAgY29yZV9hZGRyX3Rv X3N0cmluZyAoYWRkciksIGxlbiwgdHlwZSwKKysJCSAgICAgICJ0YXJnZXRfcmVtb3ZlX3dhdGNo cG9pbnQgKCVzLCAlcywgJWQsICVzKSA9ICVsZFxuIiwKKysJCSAgICAgIGNvcmVfYWRkcl90b19z dHJpbmcgKGFkZHIpLCBwbG9uZ2VzdCAobGVuKSwgdHlwZSwKKyAJCSAgICAgIGhvc3RfYWRkcmVz c190b19zdHJpbmcgKGNvbmQpLCAodW5zaWduZWQgbG9uZykgcmV0dmFsKTsKKyAgIHJldHVybiBy ZXR2YWw7CisgfQorZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAoraW5k ZXggNjkyMjhlMS4uNGI1MmQ1MyAxMDA2NDQKKy0tLSBhL2dkYi90YXJnZXQuaAorKysrIGIvZ2Ri L3RhcmdldC5oCitAQCAtNDY2LDggKzQ2Niw4IEBAIHN0cnVjdCB0YXJnZXRfb3BzCisgCisgICAg IC8qIERvY3VtZW50YXRpb24gb2Ygd2hhdCB0aGUgdHdvIHJvdXRpbmVzIGJlbG93IGFyZSBleHBl Y3RlZCB0byBkbyBpcworICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHRh cmdldF8qIG1hY3Jvcy4gICovCistICAgIGludCAoKnRvX3JlbW92ZV93YXRjaHBvaW50KSAoQ09S RV9BRERSLCBpbnQsIGludCwgc3RydWN0IGV4cHJlc3Npb24gKik7CistICAgIGludCAoKnRvX2lu c2VydF93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCwgc3RydWN0IGV4cHJlc3Npb24g Kik7CisrICAgIGludCAoKnRvX3JlbW92ZV93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBMT05HRVNU LCBpbnQsIHN0cnVjdCBleHByZXNzaW9uICopOworKyAgICBpbnQgKCp0b19pbnNlcnRfd2F0Y2hw b2ludCkgKENPUkVfQUREUiwgTE9OR0VTVCwgaW50LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqKTsKKyAK KyAgICAgaW50ICgqdG9faW5zZXJ0X21hc2tfd2F0Y2hwb2ludCkgKHN0cnVjdCB0YXJnZXRfb3Bz ICosCisgCQkJCSAgICAgIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworQEAgLTQ3OCwxMyAr NDc4LDEzIEBAIHN0cnVjdCB0YXJnZXRfb3BzCisgICAgIGludCB0b19oYXZlX2NvbnRpbnVhYmxl X3dhdGNocG9pbnQ7CisgICAgIGludCAoKnRvX3N0b3BwZWRfZGF0YV9hZGRyZXNzKSAoc3RydWN0 IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopOworICAgICBpbnQgKCp0b193YXRjaHBvaW50X2Fk ZHJfd2l0aGluX3JhbmdlKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKKy0JCQkJCSAgICBDT1JFX0FE RFIsIENPUkVfQUREUiwgaW50KTsKKysJCQkJCSAgICBDT1JFX0FERFIsIENPUkVfQUREUiwgTE9O R0VTVCk7CisgCisgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3Zp ZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLwor ICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChDT1JFX0FERFIsIExP TkdFU1QpOworIAorLSAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24p IChDT1JFX0FERFIsIGludCwgaW50LAorKyAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2lu dF9jb25kaXRpb24pIChDT1JFX0FERFIsIExPTkdFU1QsIGludCwKKyAJCQkJCSAgICAgIHN0cnVj dCBleHByZXNzaW9uICopOworICAgICBpbnQgKCp0b19tYXNrZWRfd2F0Y2hfbnVtX3JlZ2lzdGVy cykgKHN0cnVjdCB0YXJnZXRfb3BzICosCisgCQkJCQkgIENPUkVfQUREUiwgQ09SRV9BRERSKTsK KworLS1NUF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjItLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29m MjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFmNmFkNQotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKQEAgLTAs MCArMSwxMzI0IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMi0w OS9tc2cwMDYzMC5odG1sCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBCaXRwb3MgZXhwYW5zaW9uIC0g dGRlcCBjaGFuZ2VzCisKKworLS1NUF8vWF9XakRPdnovQl9mdmxzcm1Dd1JkeGUKK0NvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQorQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogN2JpdAorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAorCitUaGlzIGlz IHRoZSBsYXN0IHBhcnQgb2YgdGhlIGJpdHBvcyBjaGFuZ2UuICBUaGlzIHBhdGNoIGRvZXMgdGhl IHNhbWUKK3RoaW5nIHRoYXQgcGF0Y2ggMS80IGRvZXMsIGV4Y2VwdCB0aGF0IGl0IGRvZXMgc28g aW4gdGhlICotdGRlcCBmaWxlcword2hlcmV2ZXIgbmVjZXNzYXJ5LiAgSSBzZXBhcmF0ZWQgdGhl c2UgY2hhbmdlcyBtYWlubHkgYmVjYXVzZSB0aGV5IGFyZQorcmVsYXRlZCBhbmQgY2FuIGJlIHJl dmlld2VkIGluZGVwZW5kZW50bHkuICBUZXN0ZWQgb24gRmVkb3JhIDE2IHg4Nl82NC4KKworUmVn YXJkcywKK1NpZGRoZXNoCisKKy0tTVBfL1hfV2pET3Z6L0JfZnZsc3JtQ3dSZHhlCitDb250ZW50 LVR5cGU6IHRleHQvcGxhaW4KK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmlu dGFibGUKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPUNoYW5nZUxv Zy10ZGVwCisKK2dkYi9DaGFuZ2VMb2cKKworCSogYWxwaGEtdGRlcC5jIChhbHBoYV9wdXNoX2R1 bW15X2NhbGwpOiBFeHBhbmQgQUNDVU1VTEFURV9TSVpFLAorCVJFUVVJUkVEX0FSR19SRUdTLCBP RkZTRVQsIExFTiwgVExFTiB0byBzc2l6ZV90LgorCShzdHJ1Y3QgYWxwaGFfYXJnKTogRXhwYW5k IG1lbWJlcnMgTEVOLCBPRkZTRVQgdG8gc3NpemVfdC4KKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRf cHVzaF9hcmd1bWVudHMpOiBFeHBhbmQgTlVNX0VMRU1FTlRTLAorCUVMRU1FTlQgYW5kIExFTiB0 byBMT05HRVNULgorCShhbWQ2NF9yZXR1cm5fdmFsdWUpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1Qu CisJKiBhbWQ2NC13aW5kb3dzLXRkZXAuYyAoYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUpOiBF eHBhbmQgTEVOCisJdG8gTE9OR0VTVC4KKwkqIGFybS10ZGVwLmMgKGFybV92ZnBfY3ByY19zdWJf Y2FuZGlkYXRlKTogUmV0dXJuIExPTkdFU1QuCisJRXhwYW5kIENPVU5ULCBTVUJfQ09VTlQgdG8g TE9OR0VTVC4KKwkoYXJtX3ZmcF9jYWxsX2NhbmRpZGF0ZSk6IEV4cGFuZCBDIHRvIExPTkdFU1Qu CisJKGFybV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKiBhdnIt dGRlcC5jIChzdHJ1Y3Qgc3RhY2tfaXRlbSk6IEV4cGFuZCBtZW1iZXIgTEVOIHRvIHNzaXplX3Qu CisJKHB1c2hfc3RhY2tfaXRlbSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvIHNzaXplX3QuCisJ KGF2cl9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEFTVF9SRUdOVU0sIEosIExFTiB0byBzc2l6 ZV90LgorCSogYmZpbi10ZGVwLmMgKGJmaW5fcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIFRPVEFM X0xFTiwKKwlDT05UQUlORVJfTEVOIHRvIHNzaXplX3QuCisJKiBjcmlzLXRkZXAuYyAoc3RydWN0 IHN0YWNrX2l0ZW0pOiBFeHBhbmQgbWVtYmVyIExFTiB0byBzc2l6ZV90LgorCShwdXNoX3N0YWNr X2l0ZW0pOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBzc2l6ZV90LgorCShjcmlzX3B1c2hfZHVt bXlfY2FsbCk6IEV4cGFuZCBMRU4sIFJFR19ERU1BTkQsIEkgdG8gc3NpemVfdC4KKwkqIGg4MzAw LXRkZXAuYyAoaDgzMDBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIFNUQUNLX0FMTE9DLAorCVNU QUNLX09GRlNFVCB0byBMT05HRVNULiAgRXhwYW5kIExFTiwgUEFEREVEX0xFTiwgT0ZGU0VUIHRv CisJc3NpemVfdC4KKwkqIGhwcGEtdGRlcC5jIChocHBhNjRfcHVzaF9kdW1teV9jYWxsKTogRXhw YW5kIExFTiB0byBMT05HRVNULgorCShocHBhNjRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisJ KiBpMzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2luX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFu ZAorCUFSR1NfU1BBQ0UgdG8gTE9OR0VTVC4KKwkqIGkzODYtdGRlcC5jIChpMzg2X3B1c2hfZHVt bXlfY2FsbCk6IEV4cGFuZCBBUkdfU1BBQ0UsCisJQVJHX1NQQUNFX1VTRUQsIExFTiB0byBMT05H RVNULgorCShpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3ApOiBFeHBhbmQgTEVOIHRvIExPTkdFU1Qu CisJKGkzODZfY29udmVydF9yZWdpc3Rlcl9wKTogTGlrZXdpc2UuCisJKGkzODZfcmVnaXN0ZXJf dG9fdmFsdWUpOiBMaWtld2lzZS4KKwkoaTM4Nl92YWx1ZV90b19yZWdpc3Rlcik6IExpa2V3aXNl LgorCSogaWE2NC10ZGVwLmMgKGlhNjRfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIEFSR09GRlNF VCwgTEVOLAorCU5TTE9UUywgTUVNU0xPVFMgdG8gTE9OR0VTVC4KKwkqIGlxMjAwMC10ZGVwLmMg KGlxMjAwMF9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgVFlQRUxFTiwKKwlTVEFDS1NQQUNFIHRv IExPTkdFU1QuCisJKiBtMzJyLXRkZXAuYyAobTMycl9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQg TEVOIHRvIExPTkdFU1QuCisJKiBtNjhrLXRkZXAuYyAobTY4a19yZWdfc3RydWN0X3JldHVybl9w KTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCShtNjhrX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFu ZCBMRU4sIENPTlRBSU5FUl9MRU4sIE9GRlNFVCB0bworCUxPTkdFU1QuCisJKiBtODhrLXRkZXAu YyAobTg4a19zdG9yZV9hcmd1bWVudHMpOiBFeHBhbmQgTlVNX1NUQUNLX1dPUkRTLAorCUxFTiwg U1RBQ0tfV09SRCB0byBMT05HRVNULgorCSogbWVwLXRkZXAuYyAocHVzaF9sYXJnZV9hcmd1bWVu dHMpOiBFeHBhbmQgQVJHX0xFTiB0byBVTE9OR0VTVC4KKwkqIG1pY3JvYmxhemUtdGRlcC5jICht aWNyb2JsYXplX3N0b3JlX3JldHVybl92YWx1ZSk6IEV4cGFuZCBMRU4gdG8KKwlMT05HRVNULgor CSogbWlwcy10ZGVwLmMgKG1pcHNfeGZlcl9yZWdpc3Rlcik6IEV4cGFuZCBwYXJhbWV0ZXIgQlVG X09GRlNFVCB0bworCUxPTkdFU1QuICBVc2UgcGxvbmdlc3QgdG8gZm9ybWF0IHByaW50IEJVRl9P RkZTRVQuCisJKG1pcHNfZWFiaV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEVOIHRvIExPTkdF U1QuICBVc2UgcGxvbmdlc3QKKwl0byBmb3JtYXQgcHJpbnQgTEVOLgorCShtaXBzX24zMm42NF9m cF9hcmdfY2h1bmtfcCk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvIExPTkdFU1QuCisJRXhw YW5kIFBPUyB0byBMT05HRVNULgorCShtaXBzX24zMm42NF9wdXNoX2R1bW15X2NhbGwpOiBFeHBh bmQgTEVOIHRvIExPTkdFU1QuCisJKG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSk6IEV4cGFuZCBP RkZTRVQgdG8gTE9OR0VTVC4gIFVzZQorCXBsb25nZXN0IHRvIGZvcm1hdCBwcmludCBPRkZTRVQu CisJKG1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4gIFVz ZSBwbG9uZ2VzdAorCXRvIGZvcm1hdCBwcmludCBMRU4uCisJKG1pcHNfbzY0X3B1c2hfZHVtbXlf Y2FsbCk6IEV4cGFuZCBMRU4sIFNUQUNLX09GRlNFVCB0byBMT05HRVNULgorCVVzZSBwbG9uZ2Vz dCB0byBmb3JtYXQgcHJpbnQgTEVOLgorCSogbW4xMDMwMC10ZGVwLmMgKG1uMTAzMDBfcHVzaF9k dW1teV9jYWxsKTogRXhwYW5kIExFTiB0bworCUxPTkdFU1QuCisJKiBtdC10ZGVwLmMgKG10X3B1 c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBTVEFDS19ERVNULCBUWVBFTEVOIHRvCisJTE9OR0VTVC4K KwkqIHBwYy1zeXN2LXRkZXAuYyAocHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFu ZAorCUFSR1NQQUNFLCBBUkdPRkZTRVQsIFNUUlVDVE9GRlNFVCwgTEVOLCB0byBMT05HRVNULgor CShwcGM2NF9zeXN2X2FiaV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgQllURSwgTEVOIHRvIHNz aXplX3QuCisJKiBybDc4LXRkZXAuYyAocmw3OF9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEVO LCBDT05UQUlORVJfTEVOCisJdG8gTE9OR0VTVC4KKwkqIHJzNjAwMC1haXgtdGRlcC5jIChyczYw MDBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIEFSR0JZVEVTLAorCUxFTiB0byBMT05HRVNULgor CShyYW5fb3V0X29mX3JlZ2lzdGVyc19mb3JfYXJndW1lbnRzKTogRXhwYW5kIFNQQUNFLCBKSiB0 bworCUxPTkdFU1QuCisJKiBzMzkwLXRkZXAuYyAoczM5MF92YWx1ZV9mcm9tX3JlZ2lzdGVyKTog RXhwYW5kIExFTiB0byBMT05HRVNULgorCShpc19wb3dlcl9vZl90d28pOiBFeHBhbmQgcGFyYW1l dGVyIE4gdG8gVUxPTkdFU1QuCisJKHMzOTBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIExFTkdU SCB0byBVTE9OR0VTVC4KKwkqIHNjb3JlLXRkZXAuYyAoc2NvcmVfcHVzaF9kdW1teV9jYWxsKTog RXhwYW5kIEFSR0xFTiB0bworCUxPTkdFU1QuCisJKiBzaC10ZGVwLmMgKHNoX3VzZV9zdHJ1Y3Rf Y29udmVudGlvbikgRXhwYW5kIGxlbiB0byBMT05HRVNULgorCShzaF9qdXN0aWZ5X3ZhbHVlX2lu X3JlZyk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvIExPTkdFU1QuCisJKHNoX3B1c2hfZHVtbXlf Y2FsbF9mcHUpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuICBFeHBhbmQgUkVHX1NJWkUKKwl0byBz c2l6ZV90LgorCShzaF9wdXNoX2R1bW15X2NhbGxfbm9mcHUpOiBMaWtld2lzZS4KKwkqIHNoNjQt dGRlcC5jIChzaDY0X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBTVEFDS19PRkZTRVQsCisJU1RB Q0tfQUxMT0MsIExFTiB0byBMT05HRVNULgorCSogc3BhcmMtdGRlcC5jIChzcGFyYzMyX3N0b3Jl X2FyZ3VtZW50cyk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwYXJjNjQtdGRlcC5jIChz cGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyk6IEV4cGFuZAorCXBhcmFtZXRlciBCSVRQT1Mg dG8gTE9OR0VTVC4gIEV4cGFuZCBTVUJQT1MgdG8gTE9OR0VTVC4KKwkoc3BhcmM2NF9leHRyYWN0 X2Zsb2F0aW5nX2ZpZWxkcyk6IExpa2V3aXNlLgorCShzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyk6 IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwdS10ZGVwLmMgKHNwdV9wdXNoX2R1bW15X2Nh bGwpOiBFeHBhbmQgTl9SRUdTLCBMRU4gdG8gTE9OR0VTVC4KKwkoc3B1X3ZhbHVlX2Zyb21fcmVn aXN0ZXIpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKiB0aWM2eC10ZGVwLmMgKHRpYzZ4X3B1 c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBSRUZFUkVOQ0VTX09GRlNULAorCUxFTiB0byBMT05HRVNU LiAgRXhwYW5kIExFTiB0byBzc2l6ZV90LiAgVXNlIHBsb25nZXN0IHRvIGZvcm1hdAorCXByaW50 IExFTi4KKwkqIHRpbGVneC10ZGVwLmMgKHRpbGVneF9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQg VFlQRUxFTiwKKwlTTEFDS0xFTiwgQUxJR05MRU4gdG8gTE9OR0VTVC4KKwkqIHY4NTAtdGRlcC5j ICh2ODUwX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIHZheC10 ZGVwLmMgKHZheF9zdG9yZV9hcmd1bWVudHMpOiBFeHBhbmQgQ09VTlQsIExFTiB0byBMT05HRVNU LgorCSh2YXhfcmV0dXJuX3ZhbHVlKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCSogeHN0b3Jt eTE2LXRkZXAuYyAoeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBKLCBUWVBFTEVO CisJdG8gTE9OR0VTVC4KKwkqIHh0ZW5zYS10ZGVwLmMgKHh0ZW5zYV9zdG9yZV9yZXR1cm5fdmFs dWUpOiBQcmludCBMRU4gaW5zdGVhZCBvZgorCVRZUEVfTEVOR1RILi4KKwkoc3RydWN0IGFyZ3Vt ZW50X2luZm8pOiBFeHBvYW5kIG1lbWJlciBMRU5HVEggdG8gc3NpemVfdC4KKwkoc3RydWN0IGFy Z3VtZW50X2luZm8udSk6IEV4cGFuZCBtZW1iZXIgT0ZGU0VUIHRvIHNzaXplX3QuCisJKHh0ZW5z YV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgU0laRSwgT05TVEFDS19TSVpFIHRvIExPTkdFU1Qu CisJRXhwYW5kIE4gdG8gc3NpemVfdC4gIFVzZSBwdWxvbmdlc3QgdG8gZm9ybWF0IHByaW50IFRZ UEVfTEVOR1RILgorCistLU1QXy9YX1dqRE92ei9CX2Z2bHNybUN3UmR4ZQorQ29udGVudC1UeXBl OiB0ZXh0L3gtcGF0Y2gKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKK0NvbnRlbnQt RGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCisKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FscGhhLXRkZXAuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0 NjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FscGhhLXRk ZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjM3MTk4NDkyOSArMDEwMAorQEAgLTI5OSwxOCArMjk5 LDE4IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyB7CisgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7 CisgICBpbnQgaTsKKy0gIGludCBhY2N1bXVsYXRlX3NpemUgPSBzdHJ1Y3RfcmV0dXJuID8gOCA6 IDA7CisrICBzc2l6ZV90IGFjY3VtdWxhdGVfc2l6ZSA9IHN0cnVjdF9yZXR1cm4gPyA4IDogMDsK KyAgIHN0cnVjdCBhbHBoYV9hcmcKKyAgICAgeworICAgICAgIGNvbnN0IGdkYl9ieXRlICpjb250 ZW50czsKKy0gICAgICBpbnQgbGVuOworLSAgICAgIGludCBvZmZzZXQ7CisrICAgICAgc3NpemVf dCBsZW47CisrICAgICAgc3NpemVfdCBvZmZzZXQ7CisgICAgIH07CisgICBzdHJ1Y3QgYWxwaGFf YXJnICphbHBoYV9hcmdzCisgICAgID0gKHN0cnVjdCBhbHBoYV9hcmcgKikgYWxsb2NhIChuYXJn cyAqIHNpemVvZiAoc3RydWN0IGFscGhhX2FyZykpOworICAgc3RydWN0IGFscGhhX2FyZyAqbV9h cmc7CisgICBnZGJfYnl0ZSBhcmdfcmVnX2J1ZmZlcltBTFBIQV9SRUdJU1RFUl9TSVpFICogQUxQ SEFfTlVNX0FSR19SRUdTXTsKKy0gIGludCByZXF1aXJlZF9hcmdfcmVnczsKKysgIHNzaXplX3Qg cmVxdWlyZWRfYXJnX3JlZ3M7CisgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlv bl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CisgCisgICAvKiBUaGUgQUJJIHBsYWNlcyB0aGUgYWRk cmVzcyBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIFQxMi4gICovCitAQCAtNDMwLDggKzQzMCw4 IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgIGZvciAoaSA9 IG5hcmdzOyBtX2FyZy0tLCAtLWkgPj0gMDspCisgICAgIHsKKyAgICAgICBjb25zdCBnZGJfYnl0 ZSAqY29udGVudHMgPSBtX2FyZy0+Y29udGVudHM7CistICAgICAgaW50IG9mZnNldCA9IG1fYXJn LT5vZmZzZXQ7CistICAgICAgaW50IGxlbiA9IG1fYXJnLT5sZW47CisrICAgICAgc3NpemVfdCBv ZmZzZXQgPSBtX2FyZy0+b2Zmc2V0OworKyAgICAgIHNzaXplX3QgbGVuID0gbV9hcmctPmxlbjsK KyAKKyAgICAgICAvKiBDb3B5IHRoZSBieXRlcyBkZXN0aW5lZCBmb3IgcmVnaXN0ZXJzIGludG8g YXJnX3JlZ19idWZmZXIuICAqLworICAgICAgIGlmIChvZmZzZXQgPCBzaXplb2YoYXJnX3JlZ19i dWZmZXIpKQorQEAgLTQ0Myw3ICs0NDMsNyBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnCisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgeworLQkgICAgICBpbnQgdGxl biA9IHNpemVvZihhcmdfcmVnX2J1ZmZlcikgLSBvZmZzZXQ7CisrCSAgICAgIHNzaXplX3QgdGxl biA9IHNpemVvZihhcmdfcmVnX2J1ZmZlcikgLSBvZmZzZXQ7CisgCSAgICAgIG1lbWNweSAoYXJn X3JlZ19idWZmZXIgKyBvZmZzZXQsIGNvbnRlbnRzLCB0bGVuKTsKKyAJICAgICAgb2Zmc2V0ICs9 IHRsZW47CisgCSAgICAgIGNvbnRlbnRzICs9IHRsZW47CitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9hbWQ2NC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbWQ2NC10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0 Nzo1Ny4zNzQ5ODQ5MjMgKzAxMDAKK0BAIC01OTksNyArNTk5LDcgQEAgYW1kNjRfcmV0dXJuX3Zh bHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRk ZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xh c3NbMl07CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4g PSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdGF0aWMgaW50IGludGVnZXJfcmVnbnVtW10gPSB7 IEFNRDY0X1JBWF9SRUdOVU0sIEFNRDY0X1JEWF9SRUdOVU0gfTsKKyAgIHN0YXRpYyBpbnQgc3Nl X3JlZ251bVtdID0geyBBTUQ2NF9YTU0wX1JFR05VTSwgQU1ENjRfWE1NMV9SRUdOVU0gfTsKKyAg IGludCBpbnRlZ2VyX3JlZyA9IDA7CitAQCAtNzI4LDggKzcyOCw4IEBAIGFtZDY0X3B1c2hfYXJn dW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKKyAgICAgIHRoYXQgcmVnaXN0ZXIgbnVtYmVyIChv ciBhIG5lZ2F0aXZlIHZhbHVlIG90aGVyd2lzZSkuICAqLworICAgaW50ICphcmdfYWRkcl9yZWdu byA9IGFsbG9jYSAobmFyZ3MgKiBzaXplb2YgKGludCkpOworICAgaW50IG51bV9zdGFja19hcmdz ID0gMDsKKy0gIGludCBudW1fZWxlbWVudHMgPSAwOworLSAgaW50IGVsZW1lbnQgPSAwOworKyAg TE9OR0VTVCBudW1fZWxlbWVudHMgPSAwOworKyAgTE9OR0VTVCBlbGVtZW50ID0gMDsKKyAgIGlu dCBpbnRlZ2VyX3JlZyA9IDA7CisgICBpbnQgc3NlX3JlZyA9IDA7CisgICBpbnQgaTsKK0BAIC03 NDMsNyArNzQzLDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgor ICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgdHlw ZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xF TkdUSCAodHlwZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Cisg ICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl07CisgICAgICAgaW50IG5lZWRlZF9p bnRlZ2VyX3JlZ3MgPSAwOworICAgICAgIGludCBuZWVkZWRfc3NlX3JlZ3MgPSAwOworSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJMjAx Mi0wNi0wNSAxNTo1MDo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNDEzOTg0ODY3ICsw MTAwCitAQCAtNzgsNyArNzgsNyBAQCBhbWQ2NF93aW5kb3dzX3JldHVybl92YWx1ZSAoc3RydWN0 IGdkYmFyCisgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLAorIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVm KQorIHsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICBMT05HRVNUIGxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIGludCByZWdudW0gPSAtMTsKKyAKKyAgIC8qIFNlZSBp ZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAgSWYgaXQgaXMsIHRo ZW4KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FybS10ZGVwLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDEyLTA2LTI1IDE0 OjMyOjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXJtLXRk ZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQyMjk4NDg1NSArMDEwMAorQEAgLTMzNzcsNyArMzM3 Nyw3IEBAIGFybV92ZnBfY3ByY19yZWdfY2hhciAoZW51bSBhcm1fdmZwX2NwcmMKKyAgICBhcnJh eSkuICBWZWN0b3JzIGFuZCBjb21wbGV4IHR5cGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRl ZCwKKyAgICBtYXRjaGluZyB0aGUgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAgKi8KKyAKKy1zdGF0 aWMgaW50Cisrc3RhdGljIExPTkdFU1QKKyBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3Ry dWN0IHR5cGUgKnQsCisgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90 eXBlKQorIHsKK0BAIC0zNDA4LDcgKzM0MDgsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0 ZSAoc3RydWN0IHR5cGUKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CisgICAgICAgewor LQlpbnQgY291bnQ7CisrCUxPTkdFU1QgY291bnQ7CisgCXVuc2lnbmVkIHVuaXRsZW47CisgCWNv dW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VUX1RZUEUgKHQpLCBi YXNlX3R5cGUpOworIAlpZiAoY291bnQgPT0gLTEpCitAQCAtMzQyOCwxMyArMzQyOCwxNSBAQCBh cm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKKyAKKyAgICAgY2FzZSBUWVBF X0NPREVfU1RSVUNUOgorICAgICAgIHsKKy0JaW50IGNvdW50ID0gMDsKKysJTE9OR0VTVCBjb3Vu dCA9IDA7CisgCXVuc2lnbmVkIHVuaXRsZW47CisgCWludCBpOworIAlmb3IgKGkgPSAwOyBpIDwg VFlQRV9ORklFTERTICh0KTsgaSsrKQorIAkgIHsKKy0JICAgIGludCBzdWJfY291bnQgPSBhcm1f dmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKKy0JCQkJCQkJ YmFzZV90eXBlKTsKKysJICAgIExPTkdFU1Qgc3ViX2NvdW50OworKworKwkgICAgc3ViX2NvdW50 ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksCisr CQkJCQkJICAgIGJhc2VfdHlwZSk7CisgCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQorIAkgICAg ICByZXR1cm4gLTE7CisgCSAgICBjb3VudCArPSBzdWJfY291bnQ7CitAQCAtMzQ1NCwxMyArMzQ1 NiwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKKyAKKyAgICAg Y2FzZSBUWVBFX0NPREVfVU5JT046CisgICAgICAgeworLQlpbnQgY291bnQgPSAwOworKwlMT05H RVNUIGNvdW50ID0gMDsKKyAJdW5zaWduZWQgdW5pdGxlbjsKKyAJaW50IGk7CisgCWZvciAoaSA9 IDA7IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKyspCisgCSAgeworLQkgICAgaW50IHN1Yl9jb3Vu dCA9IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAor LQkJCQkJCQliYXNlX3R5cGUpOworKwkgICAgTE9OR0VTVCBzdWJfY291bnQ7CisrCisrCSAgICBz dWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0 LCBpKSwKKysJCQkJCQkgICAgYmFzZV90eXBlKTsKKyAJICAgIGlmIChzdWJfY291bnQgPT0gLTEp CisgCSAgICAgIHJldHVybiAtMTsKKyAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8g Y291bnQgOiBzdWJfY291bnQpOworQEAgLTM0OTYsNyArMzUwMCw3IEBAIGFybV92ZnBfY2FsbF9j YW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAorIAkJCWludCAqY291bnQpCisgeworICAgZW51bSBh cm1fdmZwX2NwcmNfYmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOworLSAgaW50IGMgPSBh cm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAodCwgJmIpOworKyAgTE9OR0VTVCBjID0gYXJtX3Zm cF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHQsICZiKTsKKyAgIGlmIChjIDw9IDAgfHwgYyA+IDQpCisg ICAgIHJldHVybiAwOworICAgKmJhc2VfdHlwZSA9IGI7CitAQCAtMzU3Nyw3ICszNTgxLDcgQEAg YXJtX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorIAorICAgZm9yIChhcmdu dW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCisgICAgIHsKKy0gICAgICBpbnQgbGVu OworKyAgICAgIExPTkdFU1QgbGVuOworICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZTsKKyAg ICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CisgICAgICAgZW51bSB0eXBlX2NvZGUgdHlw ZWNvZGU7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hdnItdGRlcC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxMi0wNS0x OCAyMzowMjo0Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2F2 ci10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny40NDQ5ODQ4MjMgKzAxMDAKK0BAIC0xMTcwLDEz ICsxMTcwLDE0IEBAIGF2cl9kdW1teV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKKyAK KyBzdHJ1Y3Qgc3RhY2tfaXRlbQorIHsKKy0gIGludCBsZW47CisrICBzc2l6ZV90IGxlbjsKKyAg IHN0cnVjdCBzdGFja19pdGVtICpwcmV2OworICAgdm9pZCAqZGF0YTsKKyB9OworIAorIHN0YXRp YyBzdHJ1Y3Qgc3RhY2tfaXRlbSAqCistcHVzaF9zdGFja19pdGVtIChzdHJ1Y3Qgc3RhY2tfaXRl bSAqcHJldiwgY29uc3QgYmZkX2J5dGUgKmNvbnRlbnRzLCBpbnQgbGVuKQorK3B1c2hfc3RhY2tf aXRlbSAoc3RydWN0IHN0YWNrX2l0ZW0gKnByZXYsIGNvbnN0IGJmZF9ieXRlICpjb250ZW50cywK KysJCSBzc2l6ZV90IGxlbikKKyB7CisgICBzdHJ1Y3Qgc3RhY2tfaXRlbSAqc2k7CisgICBzaSA9 IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN0YWNrX2l0ZW0pKTsKK0BAIC0xMjY1LDEyICsxMjY2 LDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKKyAKKyAgIGZv ciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorICAgICB7CistICAgICAgaW50IGxhc3RfcmVnbnVt OworLSAgICAgIGludCBqOworKyAgICAgIHNzaXplX3QgbGFzdF9yZWdudW07CisrICAgICAgc3Np emVfdCBqOworICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAgICAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOworICAgICAg IGNvbnN0IGJmZF9ieXRlICpjb250ZW50cyA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOworLSAgICAg IGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAgICAgc3NpemVfdCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CisgCisgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBwb3RlbnRpYWwgbGFz dCByZWdpc3RlciBuZWVkZWQuICAqLworICAgICAgIGxhc3RfcmVnbnVtID0gcmVnbnVtIC0gKGxl biArIChsZW4gJiAxKSk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9iZmluLXRkZXAu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9iZmluLXRkZXAu YwkyMDEyLTExLTA3IDIyOjA5OjI0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvYmZpbi10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny40NTA5ODQ4MTQgKzAxMDAK K0BAIC01MDYsNyArNTA2LDcgQEAgYmZpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZAorICAgY2hhciBidWZbNF07CisgICBpbnQgaTsKKyAgIGxvbmcgcmVnX3IwLCByZWdfcjEs IHJlZ19yMjsKKy0gIGludCB0b3RhbF9sZW4gPSAwOworKyAgc3NpemVfdCB0b3RhbF9sZW4gPSAw OworICAgZW51bSBiZmluX2FiaSBhYmkgPSBiZmluX2FiaSAoZ2RiYXJjaCk7CisgICBDT1JFX0FE RFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CisgCitA QCAtNTMwLDcgKzUzMCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq Z2QKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9z aW5nX3R5cGUgKGFyZ3NbaV0pOworICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUpOworLSAgICAgIGludCBjb250YWluZXJfbGVuID0gKFRZUEVf TEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYgfjM7CisrICAgICAgc3NpemVfdCBjb250YWluZXJf bGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYgfjM7CisgCisgICAgICAgc3Ag LT0gY29udGFpbmVyX2xlbjsKKyAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50 c193cml0ZWFibGUgKGFyZ3NbaV0pLCBjb250YWluZXJfbGVuKTsKK0luZGV4OiBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2NyaXMtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIw OTI2Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcmlzLXRkZXAuYwkyMDEyLTExLTA3IDIy OjQ3OjU3LjQ1Mzk4NDgxMCArMDEwMAorQEAgLTY3MCwxMyArNjcwLDEzIEBAIHN0YXRpYyBDT1JF X0FERFIgY3Jpc191bndpbmRfc3AgKHN0cnVjdAorIAorIHN0cnVjdCBzdGFja19pdGVtCisgewor LSAgaW50IGxlbjsKKysgIHNzaXplX3QgbGVuOworICAgc3RydWN0IHN0YWNrX2l0ZW0gKnByZXY7 CisgICB2b2lkICpkYXRhOworIH07CisgCisgc3RhdGljIHN0cnVjdCBzdGFja19pdGVtICoKKy1w dXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19pdGVtICpwcmV2LCB2b2lkICpjb250ZW50cywg aW50IGxlbikKKytwdXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19pdGVtICpwcmV2LCB2b2lk ICpjb250ZW50cywgc3NpemVfdCBsZW4pCisgeworICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwor ICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7CitAQCAtODQ5LDEz ICs4NDksMTMgQEAgY3Jpc19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorIAor ICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCisgICAgIHsKKy0g ICAgICBpbnQgbGVuOworKyAgICAgIHNzaXplX3QgbGVuOworICAgICAgIGNoYXIgKnZhbDsKKy0g ICAgICBpbnQgcmVnX2RlbWFuZDsKKy0gICAgICBpbnQgaTsKKysgICAgICBzc2l6ZV90IHJlZ19k ZW1hbmQ7CisrICAgICAgc3NpemVfdCBpOworICAgICAgIAorLSAgICAgIGxlbiA9IFRZUEVfTEVO R1RIICh2YWx1ZV90eXBlIChhcmdzW2FyZ251bV0pKTsKKyAgICAgICB2YWwgPSAoY2hhciAqKSB2 YWx1ZV9jb250ZW50cyAoYXJnc1thcmdudW1dKTsKKysgICAgICBsZW4gPSBUWVBFX0xFTkdUSCAo dmFsdWVfdHlwZSAoYXJnc1thcmdudW1dKSk7CisgICAgICAgCisgICAgICAgLyogSG93IG1heSBy ZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3VtZW50PyAg Ki8KKyAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/IDEgOiAw KTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2g4MzAwLXRkZXAuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxMi0xMS0w NyAyMjowOToyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2g4 MzAwLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQ1Njk4NDgwNiArMDEwMAorQEAgLTY0MSw3 ICs2NDEsNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCisgCQkg ICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQUREUiBzdHJ1Y3RfYWRkcikKKyB7CisgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7 CistICBpbnQgc3RhY2tfYWxsb2MgPSAwLCBzdGFja19vZmZzZXQgPSAwOworKyAgTE9OR0VTVCBz dGFja19hbGxvYyA9IDAsIHN0YWNrX29mZnNldCA9IDA7CisgICBpbnQgd29yZHNpemUgPSBCSU5X T1JEIChnZGJhcmNoKTsKKyAgIGludCByZWcgPSBFX0FSRzBfUkVHTlVNOworICAgaW50IGFyZ3Vt ZW50OworQEAgLTY2OCwxMSArNjY4LDExIEBAIGg4MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmcKKyAgICAgeworICAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOworICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1thcmd1bWVudF0pOworLSAg ICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICAgICAgY2hhciAqY29udGVudHMg PSAoY2hhciAqKSB2YWx1ZV9jb250ZW50cyAoYXJnc1thcmd1bWVudF0pOworKyAgICAgIHNzaXpl X3QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAorICAgICAgIC8qIFBhZCB0aGUgYXJndW1l bnQgYXBwcm9wcmlhdGVseS4gICovCistICAgICAgaW50IHBhZGRlZF9sZW4gPSBhbGlnbl91cCAo bGVuLCB3b3Jkc2l6ZSk7CisrICAgICAgc3NpemVfdCBwYWRkZWRfbGVuID0gYWxpZ25fdXAgKGxl biwgd29yZHNpemUpOworICAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSB4bWFsbG9jIChwYWRkZWRf bGVuKTsKKyAgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsKKyAK K0BAIC03MDEsNyArNzAxLDcgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZworIAkgICAgICAvKiBIZWF2ZW5zIHRvIEJldHN5IC0tLSBpdCdzIHJlYWxseSBnb2luZyBp biByZWdpc3RlcnMhCisgCSAgICAgICAgIE5vdGUgdGhhdCBvbiB0aGUgaDgvMzAwcywgdGhlcmUg YXJlIGdhcHMgYmV0d2VlbiB0aGUKKyAJICAgICAgICAgcmVnaXN0ZXJzIGluIHRoZSByZWdpc3Rl ciBmaWxlLiAgKi8KKy0JICAgICAgaW50IG9mZnNldDsKKysJICAgICAgc3NpemVfdCBvZmZzZXQ7 CisgCisgCSAgICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgcGFkZGVkX2xlbjsgb2Zmc2V0 ICs9IHdvcmRzaXplKQorIAkJeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaHBwYS10 ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvaHBwYS10 ZGVwLmMJMjAxMi0xMS0wNyAyMjowOToyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2hwcGEtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDg6MzEuMzc4OTM2MDgzICsw MTAwCitAQCAtOTYyLDcgKzk2Miw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICoKKyAgICAgeworICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAg ICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7CistICAgICAgaW50IGxl biA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RI ICh0eXBlKTsKKyAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYnVmOworICAgICAgIGJmZF9ieXRl IGZwdHJidWZbOF07CisgICAgICAgaW50IHJlZ251bTsKK0BAIC0xMTU3LDcgKzExNTcsNyBAQCBo cHBhNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgCQkgICAgIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAorIAkJICAgICBnZGJfYnl0ZSAq cmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQorIHsKKy0gIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CisrICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAg IGludCByZWdudW0sIG9mZnNldDsKKyAKKyAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAxNikK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJ MjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQ3MDk4NDc4NiAr MDEwMAorQEAgLTE2Niw3ICsxNjYsNyBAQCBpMzg2X2Rhcndpbl9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhCisgCisgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3Jp dGVfcGFzcysrKQorICAgICB7CistICAgICAgaW50IGFyZ3Nfc3BhY2UgPSAwOworKyAgICAgIExP TkdFU1QgYXJnc19zcGFjZSA9IDA7CisgICAgICAgaW50IG51bV9tMTI4ID0gMDsKKyAKKyAgICAg ICBpZiAoc3RydWN0X3JldHVybikKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kzODYt dGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2kzODYt dGRlcC5jCTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9pMzg2LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQ3NDk4NDc4MCAr MDEwMAorQEAgLTIzNTgsNyArMjM1OCw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2QKKyAgIGdkYl9ieXRlIGJ1Zls0XTsKKyAgIGludCBpOworICAgaW50IHdyaXRl X3Bhc3M7CistICBpbnQgYXJnc19zcGFjZSA9IDA7CisrICBMT05HRVNUIGFyZ3Nfc3BhY2UgPSAw OworIAorICAgLyogRGV0ZXJtaW5lIHRoZSB0b3RhbCBzcGFjZSByZXF1aXJlZCBmb3IgYXJndW1l bnRzIGFuZCBzdHJ1Y3QKKyAgICAgIHJldHVybiBhZGRyZXNzIGluIGEgZmlyc3QgcGFzcyAoYWxs b3dpbmcgZm9yIDE2LWJ5dGUtYWxpZ25lZAorQEAgLTIzNjYsNyArMjM2Niw3IEBAIGkzODZfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAKKyAgIGZvciAod3JpdGVfcGFzcyA9 IDA7IHdyaXRlX3Bhc3MgPCAyOyB3cml0ZV9wYXNzKyspCisgICAgIHsKKy0gICAgICBpbnQgYXJn c19zcGFjZV91c2VkID0gMDsKKysgICAgICBMT05HRVNUIGFyZ3Nfc3BhY2VfdXNlZCA9IDA7Cisg CisgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCisgCXsKK0BAIC0yMzgzLDcgKzIzODMsNyBAQCBp Mzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgCisgICAgICAgZm9yIChp ID0gMDsgaSA8IG5hcmdzOyBpKyspCisgCXsKKy0JICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHZh bHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKSk7CisrCSAgTE9OR0VTVCBsZW4gPSBUWVBFX0xF TkdUSCAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pKTsKKyAKKyAJICBpZiAod3JpdGVf cGFzcykKKyAJICAgIHsKK0BAIC0yNTkwLDcgKzI1OTAsNyBAQCBpMzg2X3JlZ19zdHJ1Y3RfcmV0 dXJuX3AgKHN0cnVjdCBnZGJhcmNoCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9 IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisgICBlbnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9D T0RFICh0eXBlKTsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICBMT05HRVNU IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQ RV9DT0RFX1NUUlVDVAorICAgICAgICAgICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04K K0BAIC0zMDQyLDcgKzMwNDIsNyBAQCBzdGF0aWMgaW50CisgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVy X3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlw ZSAqdHlwZSkKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VT VCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgICAvKiBWYWx1ZXMgbWF5IGJlIHNwcmVh ZCBhY3Jvc3MgbXVsdGlwbGUgcmVnaXN0ZXJzLiAgTW9zdCBkZWJ1Z2dpbmcKKyAgICAgIGZvcm1h dHMgYXJlbid0IGV4cHJlc3NpdmUgZW5vdWdoIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9ucywgc28K K0BAIC0zMDc1LDcgKzMwNzUsNyBAQCBpMzg2X3JlZ2lzdGVyX3RvX3ZhbHVlIChzdHJ1Y3QgZnJh bWVfaW5mCisgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKKyB7CisgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CistICBpbnQg bGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAo dHlwZSk7CisgCisgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAg ICAgcmV0dXJuIGkzODdfcmVnaXN0ZXJfdG9fdmFsdWUgKGZyYW1lLCByZWdudW0sIHR5cGUsIHRv LAorQEAgLTMxMTEsNyArMzExMSw3IEBAIHN0YXRpYyB2b2lkCisgaTM4Nl92YWx1ZV90b19yZWdp c3RlciAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorIAkJCXN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqZnJvbSkKKyB7CistICBpbnQgbGVuID0gVFlQRV9M RU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisg ICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkK KyAgICAgeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaWE2NC10ZGVwLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxMi0x MS0wNyAyMjowMDo0Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2lhNjQtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNDkxOTg0NzU2ICswMTAwCitAQCAtMzk3 NCw4ICszOTc0LDEwIEBAIGlhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QK KyAgIGludCBhcmdubzsKKyAgIHN0cnVjdCB2YWx1ZSAqYXJnOworICAgc3RydWN0IHR5cGUgKnR5 cGU7CistICBpbnQgbGVuLCBhcmdvZmZzZXQ7CistICBpbnQgbnNsb3RzLCByc2VzbG90cywgbWVt c2xvdHMsIHNsb3RudW0sIG5mdW5jYXJnczsKKysgIExPTkdFU1QgYXJnb2Zmc2V0OworKyAgTE9O R0VTVCBsZW47CisrICBpbnQgcnNlc2xvdHMsIHNsb3RudW0sIG5mdW5jYXJnczsKKysgIExPTkdF U1QgbnNsb3RzLCBtZW1zbG90czsKKyAgIGludCBmbG9hdHJlZzsKKyAgIFVMT05HRVNUIGJzcDsK KyAgIENPUkVfQUREUiBmdW5jZGVzY2FkZHIsIHBjLCBnbG9iYWxfcG9pbnRlcjsKK0luZGV4OiBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL2lxMjAwMC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDEyLTA1LTE2IDE2OjM1OjA2 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaXEyMDAwLXRkZXAu YwkyMDEyLTExLTA3IDIyOjQ3OjU3LjUwOTk4NDcyOSArMDEwMAorQEAgLTY1NSw4ICs2NTUsOSBA QCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgICBjb25zdCBiZmRf Ynl0ZSAqdmFsOworICAgYmZkX2J5dGUgYnVmWzRdOworICAgc3RydWN0IHR5cGUgKnR5cGU7Cist ICBpbnQgaSwgYXJncmVnLCB0eXBlbGVuLCBzbGFja2xlbjsKKy0gIGludCBzdGFja3NwYWNlID0g MDsKKysgIGludCBpLCBhcmdyZWcsIHNsYWNrbGVuOworKyAgTE9OR0VTVCB0eXBlbGVuOworKyAg TE9OR0VTVCBzdGFja3NwYWNlID0gMDsKKyAgIC8qIFVzZWQgdG8gY29weSBzdHJ1Y3QgYXJndW1l bnRzIGludG8gdGhlIHN0YWNrLiAgKi8KKyAgIENPUkVfQUREUiBzdHJ1Y3RfcHRyOworIAorSW5k ZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTMyci10ZGVwLmMKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxMi0wNS0xOCAyMzowMjo0 OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL20zMnItdGRlcC5j CTIwMTItMTEtMDcgMjI6NDc6NTcuNTE2OTg0NzE5ICswMTAwCitAQCAtNjk2LDcgKzY5Niw3IEBA IG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAgIENPUkVfQUREUiBy ZWd2YWw7CisgICBnZGJfYnl0ZSAqdmFsOworICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RF Ul9TSVpFXTsKKy0gIGludCBsZW47CisrICBMT05HRVNUIGxlbjsKKyAKKyAgIC8qIEZpcnN0IGZv cmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCisgICBzcCA9IHNwICYgfjM7CitJbmRl eDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tNjhrLXRkZXAuYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAyOjMw LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTY4ay10ZGVwLmMJ MjAxMi0xMS0wNyAyMjo0OTo0NS44ODE4MjkwMzIgKzAxMDAKK0BAIC0zODQsNyArMzg0LDcgQEAg bTY4a19yZWdfc3RydWN0X3JldHVybl9wIChzdHJ1Y3QgZ2RiYXJjaAorIHsKKyAgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICAgZW51bSB0eXBl X2NvZGUgY29kZSA9IFRZUEVfQ09ERSAodHlwZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgICBnZGJf YXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1QgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5J T04pOworIAorQEAgLTUxMyw5ICs1MTMsOSBAQCBtNjhrX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICB7 CisgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAo YXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKTsKKy0g ICAgICBpbnQgY29udGFpbmVyX2xlbiA9IChsZW4gKyAzKSAmIH4zOworLSAgICAgIGludCBvZmZz ZXQ7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSk7CisrICAg ICAgTE9OR0VTVCBjb250YWluZXJfbGVuID0gKGxlbiArIDMpICYgfjM7CisrICAgICAgTE9OR0VT VCBvZmZzZXQ7CisgCisgICAgICAgLyogTm9uLXNjYWxhcnMgYmlnZ2VyIHRoYW4gNCBieXRlcyBh cmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJlCisgCSByaWdodCBhbGlnbmVkLiAgKi8KK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL204OGstdGRlcC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTItMDUtMTYgMTY6MzU6MDYu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tODhrLXRkZXAuYwky MDEyLTExLTA3IDIyOjQ3OjU3LjUyMDk4NDcxNCArMDEwMAorQEAgLTI2MCwxMyArMjYwLDEzIEBA IG04OGtfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKKyB7CisgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBpbnQg bnVtX3JlZ2lzdGVyX3dvcmRzID0gMDsKKy0gIGludCBudW1fc3RhY2tfd29yZHMgPSAwOworKyAg TE9OR0VTVCBudW1fc3RhY2tfd29yZHMgPSAwOworICAgaW50IGk7CisgCisgICBmb3IgKGkgPSAw OyBpIDwgbmFyZ3M7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK KysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgICAgICBpZiAo bTg4a19pbnRlZ3JhbF9vcl9wb2ludGVyX3AgKHR5cGUpICYmIGxlbiA8IDQpCisgCXsKK0BAIC0z MDgsOCArMzA4LDggQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgor ICAgICB7CisgICAgICAgY29uc3QgYmZkX2J5dGUgKnZhbGJ1ZiA9IHZhbHVlX2NvbnRlbnRzIChh cmdzW2ldKTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0p OworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CistICAgICAgaW50IHN0YWNr X3dvcmQgPSBudW1fc3RhY2tfd29yZHM7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CisrICAgICAgTE9OR0VTVCBzdGFja193b3JkID0gbnVtX3N0YWNrX3dvcmRzOwor IAorICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQorIAl7CitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9tZXAtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21lcC10ZGVwLmMJMjAxMi0xMS0w NyAyMjo0Nzo1Ny41MjI5ODQ3MTIgKzAxMDAKK0BAIC0yMjc5LDcgKzIyNzksNyBAQCBwdXNoX2xh cmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBh cmdjOyBpKyspCisgICAgIHsKKy0gICAgICB1bnNpZ25lZCBhcmdfbGVuID0gVFlQRV9MRU5HVEgg KHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKysgICAgICBVTE9OR0VTVCBhcmdfbGVuID0gVFlQRV9M RU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKyAKKyAgICAgICBpZiAoYXJnX2xlbiA+IE1F UF9HUFJfU0laRSkKKyAgICAgICAgIHsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21p cHMtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL21p cHMtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDI6MzAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9taXBzLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjUzNDk4NDY5 NCArMDEwMAorQEAgLTM5Niw3ICszOTYsNyBAQCBzdGF0aWMgdm9pZAorIG1pcHNfeGZlcl9yZWdp c3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUs CisgCQkgICAgaW50IHJlZ19udW0sIGludCBsZW5ndGgsCisgCQkgICAgZW51bSBiZmRfZW5kaWFu IGVuZGlhbiwgZ2RiX2J5dGUgKmluLAorLQkJICAgIGNvbnN0IGdkYl9ieXRlICpvdXQsIGludCBi dWZfb2Zmc2V0KQorKwkJICAgIGNvbnN0IGdkYl9ieXRlICpvdXQsIExPTkdFU1QgYnVmX29mZnNl dCkKKyB7CisgICBpbnQgcmVnX29mZnNldCA9IDA7CisgCitAQCAtNDE5LDggKzQxOSw4IEBAIG1p cHNfeGZlcl9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmEKKyAgICAgfQorICAgaWYgKG1p cHNfZGVidWcpCisgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwKKy0JCQkieGZl ciAkJWQsIHJlZyBvZmZzZXQgJWQsIGJ1ZiBvZmZzZXQgJWQsIGxlbmd0aCAlZCwgIiwKKy0JCQly ZWdfbnVtLCByZWdfb2Zmc2V0LCBidWZfb2Zmc2V0LCBsZW5ndGgpOworKwkJCSJ4ZmVyICQlZCwg cmVnIG9mZnNldCAlZCwgYnVmIG9mZnNldCAlcywgbGVuZ3RoICVkLCAiLAorKwkJCXJlZ19udW0s IHJlZ19vZmZzZXQsIHBsb25nZXN0IChidWZfb2Zmc2V0KSwgbGVuZ3RoKTsKKyAgIGlmIChtaXBz X2RlYnVnICYmIG91dCAhPSBOVUxMKQorICAgICB7CisgICAgICAgaW50IGk7CitAQCAtNDI5NSwx MyArNDI5NSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjCisg ICAgICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKKyAgICAgICBzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0gICAgICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKGFyZ190eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIIChh cmdfdHlwZSk7CisgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBUWVBFX0NPREUgKGFy Z190eXBlKTsKKyAKKyAgICAgICBpZiAobWlwc19kZWJ1ZykKKyAJZnByaW50Zl91bmZpbHRlcmVk IChnZGJfc3RkbG9nLAorLQkJCSAgICAibWlwc19lYWJpX3B1c2hfZHVtbXlfY2FsbDogJWQgbGVu PSVkIHR5cGU9JWQiLAorLQkJCSAgICBhcmdudW0gKyAxLCBsZW4sIChpbnQpIHR5cGVjb2RlKTsK KysJCQkgICAgIm1pcHNfZWFiaV9wdXNoX2R1bW15X2NhbGw6ICVkIGxlbj0lcyB0eXBlPSVkIiwK KysJCQkgICAgYXJnbnVtICsgMSwgcGxvbmdlc3QgKGxlbiksIChpbnQpIHR5cGVjb2RlKTsKKyAK KyAgICAgICAvKiBGdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cyB0byBtaXBzMTYgY29kZSBuZWVk IHRvIGJlIG1hZGUgaW50bworICAgICAgICAgIG1pcHMxNiBwb2ludGVycy4gICovCitAQCAtNDU4 Niw3ICs0NTg2LDcgQEAgbWlwc19lYWJpX3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKgor IAorIHN0YXRpYyBpbnQKKyBtaXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICphcmdfdHlwZSwKKy0JCQkgICAgaW50IG9mZnNldCkK KysJCQkgICAgTE9OR0VTVCBvZmZzZXQpCisgeworICAgaW50IGk7CisgCitAQCAtNDYwMSw3ICs0 NjAxLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcgorIAorICAg Zm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAoYXJnX3R5cGUpOyBpKyspCisgICAgIHsKKy0g ICAgICBpbnQgcG9zOworKyAgICAgIExPTkdFU1QgcG9zOworICAgICAgIHN0cnVjdCB0eXBlICpm aWVsZF90eXBlOworIAorICAgICAgIC8qIFdlJ3JlIG9ubHkgbG9va2luZyBhdCBub3JtYWwgZmll bGRzLiAgKi8KK0BAIC00NjQzLDcgKzQ2NDMsNyBAQCBtaXBzX24zMm42NF9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhCisgICBpbnQgYXJncmVnOworICAgaW50IGZsb2F0X2FyZ3JlZzsKKyAg IGludCBhcmdudW07CistICBpbnQgbGVuID0gMDsKKysgIExPTkdFU1QgbGVuID0gMDsKKyAgIGlu dCBzdGFja19vZmZzZXQgPSAwOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRf ZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOworQEAgLTQ5OTQsMTEgKzQ5OTQsMTEgQEAg bWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaAorIAkJCQk6IE1JUFNfVjBf UkVHTlVNKTsKKyAJICAgZmllbGQgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBmaWVsZCsrLCByZWdu dW0gKz0gMikKKyAJeworLQkgIGludCBvZmZzZXQgPSAoRklFTERfQklUUE9TIChUWVBFX0ZJRUxE UyAodHlwZSlbZmllbGRdKQorLQkJCS8gVEFSR0VUX0NIQVJfQklUKTsKKysJICBMT05HRVNUIG9m ZnNldCA9IChGSUVMRF9CSVRQT1MgKFRZUEVfRklFTERTICh0eXBlKVtmaWVsZF0pCisrCQkJICAg IC8gVEFSR0VUX0NIQVJfQklUKTsKKyAJICBpZiAobWlwc19kZWJ1ZykKKy0JICAgIGZwcmludGZf dW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIlJldHVybiBmbG9hdCBzdHJ1Y3QrJWRcbiIsCistCQkJ CW9mZnNldCk7CisrCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsICJSZXR1cm4g ZmxvYXQgc3RydWN0KyVzXG4iLAorKwkJCQlwbG9uZ2VzdCAob2Zmc2V0KSk7CisgCSAgaWYgKFRZ UEVfTEVOR1RIIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkKSkgPT0gMTYpCisgCSAgICB7 CisgCSAgICAgIC8qIEEgMTYtYnl0ZSBsb25nIGRvdWJsZSBmaWVsZCBnb2VzIGluIHR3byBjb25z ZWN1dGl2ZQorQEAgLTUwNDAsOCArNTA0MCw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2gKKyAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVfTEVOR1RIICh0eXBl KSkKKyAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7CisgCSAgaWYgKG1p cHNfZGVidWcpCistCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsICJSZXR1cm4g c3RydWN0KyVkOiVkIGluICQlZFxuIiwKKy0JCQkJb2Zmc2V0LCB4ZmVyLCByZWdudW0pOworKwkg ICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCAiUmV0dXJuIHN0cnVjdCslczolZCBp biAkJWRcbiIsCisrCQkJCXBsb25nZXN0IChvZmZzZXQpLCB4ZmVyLCByZWdudW0pOworIAkgIG1p cHNfeGZlcl9yZWdpc3RlciAoZ2RiYXJjaCwgcmVnY2FjaGUsCisgCQkJICAgICAgZ2RiYXJjaF9u dW1fcmVncyAoZ2RiYXJjaCkgKyByZWdudW0sCisgCQkJICAgICAgeGZlciwgQkZEX0VORElBTl9V TktOT1dOLCByZWFkYnVmLCB3cml0ZWJ1ZiwKK0BAIC01MDk5LDcgKzUwOTksNyBAQCBtaXBzX28z Ml9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCisgICBpbnQgYXJncmVnOworICAgaW50 IGZsb2F0X2FyZ3JlZzsKKyAgIGludCBhcmdudW07CistICBpbnQgbGVuID0gMDsKKysgIExPTkdF U1QgbGVuID0gMDsKKyAgIGludCBzdGFja19vZmZzZXQgPSAwOworICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgQ09SRV9BRERS IGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOworQEAgLTUx NjMsMTMgKzUxNjMsMTMgQEAgbWlwc19vMzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aAorICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CisgICAgICAgc3RydWN0IHZhbHVlICphcmcg PSBhcmdzW2FyZ251bV07CisgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIIChh cmdfdHlwZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpOwor ICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7Cisg CisgICAgICAgaWYgKG1pcHNfZGVidWcpCisgCWZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywKKy0JCQkgICAgIm1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbDogJWQgbGVuPSVkIHR5cGU9JWQi LAorLQkJCSAgICBhcmdudW0gKyAxLCBsZW4sIChpbnQpIHR5cGVjb2RlKTsKKysJCQkgICAgIm1p cHNfbzMyX3B1c2hfZHVtbXlfY2FsbDogJWQgbGVuPSVzIHR5cGU9JWQiLAorKwkJCSAgICBhcmdu dW0gKyAxLCBwbG9uZ2VzdCAobGVuKSwgKGludCkgdHlwZWNvZGUpOworIAorICAgICAgIHZhbCA9 IHZhbHVlX2NvbnRlbnRzIChhcmcpOworIAorQEAgLTU2MjcsOCArNTYyNyw4IEBAIG1pcHNfbzY0 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKyAgIGludCBhcmdyZWc7CisgICBpbnQg ZmxvYXRfYXJncmVnOworICAgaW50IGFyZ251bTsKKy0gIGludCBsZW4gPSAwOworLSAgaW50IHN0 YWNrX29mZnNldCA9IDA7CisrICBMT05HRVNUIGxlbiA9IDA7CisrICBMT05HRVNUIHN0YWNrX29m ZnNldCA9IDA7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9v cmRlciAoZ2RiYXJjaCk7CisgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9h ZGRyIChmdW5jdGlvbiwgTlVMTCk7CisgCitAQCAtNTY4OSwxMyArNTY4OSwxMyBAQCBtaXBzX282 NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCisgICAgICAgZ2RiX2J5dGUgdmFsYnVm W01BWF9SRUdJU1RFUl9TSVpFXTsKKyAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJn bnVtXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcmcpKTsKKy0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGFyZ190eXBlKTsK KysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7CisgICAgICAgZW51 bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBUWVBFX0NPREUgKGFyZ190eXBlKTsKKyAKKyAgICAgICBp ZiAobWlwc19kZWJ1ZykKKyAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJCSAg ICAibWlwc19vNjRfcHVzaF9kdW1teV9jYWxsOiAlZCBsZW49JWQgdHlwZT0lZCIsCistCQkJICAg IGFyZ251bSArIDEsIGxlbiwgKGludCkgdHlwZWNvZGUpOworKwkJCSAgICAibWlwc19vNjRfcHVz aF9kdW1teV9jYWxsOiAlZCBsZW49JXMgdHlwZT0lZCIsCisrCQkJICAgIGFyZ251bSArIDEsIHBs b25nZXN0IChsZW4pLCAoaW50KSB0eXBlY29kZSk7CisgCisgICAgICAgdmFsID0gdmFsdWVfY29u dGVudHMgKGFyZyk7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tbjEwMzAwLXRk ZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tbjEwMzAw LXRkZXAuYwkyMDEyLTA1LTE4IDIzOjAyOjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny41NDI5ODQ2 ODIgKzAxMDAKK0BAIC0xMjI4LDcgKzEyMjgsNyBAQCBtbjEwMzAwX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2gKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rlcl9z aXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CisgICBpbnQgcmVnc191c2VkOworLSAgaW50IGxl biwgYXJnX2xlbjsgCisrICBMT05HRVNUIGxlbiwgYXJnX2xlbjsKKyAgIGludCBzdGFja19vZmZz ZXQgPSAwOworICAgaW50IGFyZ251bTsKKyAgIGNoYXIgKnZhbCwgdmFsYnVmW01BWF9SRUdJU1RF Ul9TSVpFXTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL210LXRkZXAuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tdC10ZGVwLmMJMjAxMi0xMS0w NyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL210 LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU0NDk4NDY4MCArMDEwMAorQEAgLTc4Myw5ICs3 ODMsOSBAQCBtdF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhCisgICBnZGJf Ynl0ZSBidWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKKyAgIGludCBhcmdyZWcgPSBNVF8xU1RfQVJH UkVHOworICAgaW50IHNwbGl0X3BhcmFtX2xlbiA9IDA7CistICBpbnQgc3RhY2tfZGVzdCA9IHNw OworKyAgTE9OR0VTVCBzdGFja19kZXN0ID0gc3A7CisgICBpbnQgc2xhY2tsZW47CistICBpbnQg dHlwZWxlbjsKKysgIExPTkdFU1QgdHlwZWxlbjsKKyAgIGludCBpLCBqOworIAorICAgLyogRmly c3QgaGFuZGxlIGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJHUkVH IHRocnUKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3BwYy1zeXN2LXRkZXAuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJ MjAxMi0wNS0xOCAyMzowMjo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU1MTk4NDY2OSArMDEw MAorQEAgLTY5LDcgKzY5LDcgQEAgcHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYgorICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIg KGdkYmFyY2gpOworICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lzdl91c2Vfb3BlbmNsX2FiaSAo dmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKKyAgIFVMT05HRVNUIHNhdmVkX3NwOworLSAgaW50IGFy Z3NwYWNlID0gMDsJCS8qIDAgaXMgYW4gaW5pdGlhbCB3cm9uZyBndWVzcy4gICovCisrICBMT05H RVNUIGFyZ3NwYWNlID0gMDsJCS8qIDAgaXMgYW4gaW5pdGlhbCB3cm9uZyBndWVzcy4gICovCisg ICBpbnQgd3JpdGVfcGFzczsKKyAKKyAgIGdkYl9hc3NlcnQgKHRkZXAtPndvcmRzaXplID09IDQp OworQEAgLTEwMCw5ICsxMDAsOSBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiCisgICAgICAgLyogTmV4dCBhdmFpbGFibGUgdmVjdG9yIHJlZ2lzdGVyIGZvciB2ZWN0 b3IgYXJndW1lbnRzLiAgKi8KKyAgICAgICBpbnQgdnJlZyA9IDI7CisgICAgICAgLyogQXJndW1l bnRzIHN0YXJ0IGFib3ZlIHRoZSAiTFIgc2F2ZSB3b3JkIiBhbmQgIkJhY2sgY2hhaW4iLiAgKi8K Ky0gICAgICBpbnQgYXJnb2Zmc2V0ID0gMiAqIHRkZXAtPndvcmRzaXplOworKyAgICAgIExPTkdF U1QgYXJnb2Zmc2V0ID0gMiAqIHRkZXAtPndvcmRzaXplOworICAgICAgIC8qIFN0cnVjdHVyZXMg c3RhcnQgYWZ0ZXIgdGhlIGFyZ3VtZW50cy4gICovCistICAgICAgaW50IHN0cnVjdG9mZnNldCA9 IGFyZ29mZnNldCArIGFyZ3NwYWNlOworKyAgICAgIExPTkdFU1Qgc3RydWN0b2Zmc2V0ID0gYXJn b2Zmc2V0ICsgYXJnc3BhY2U7CisgCisgICAgICAgLyogSWYgdGhlIGZ1bmN0aW9uIGlzIHJldHVy bmluZyBhIGBzdHJ1Y3QnLCB0aGVuIHRoZSBmaXJzdCB3b3JkCisgICAgICAgICAgKHdoaWNoIHdp bGwgYmUgcGFzc2VkIGluIHIzKSBpcyB1c2VkIGZvciBzdHJ1Y3QgcmV0dXJuCitAQCAtMTIxLDcg KzEyMSw3IEBAIHBwY19zeXN2X2FiaV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGIKKyAJewor IAkgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdub107CisgCSAgc3RydWN0IHR5cGUgKnR5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHR5cGUpOworKwkgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwor IAkgIGNvbnN0IGJmZF9ieXRlICp2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKKyAKKyAJICBp ZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfRkxUICYmIGxlbiA8PSA4CitAQCAtMTU1 NywxNCArMTU1NywxNCBAQCBwcGM2NF9zeXN2X2FiaV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn CisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgeworLQkgICAgICBpbnQgYnl0ZTsKKysJICAgICAg c3NpemVfdCBieXRlOworIAkgICAgICBmb3IgKGJ5dGUgPSAwOyBieXRlIDwgVFlQRV9MRU5HVEgg KHR5cGUpOworIAkJICAgYnl0ZSArPSB0ZGVwLT53b3Jkc2l6ZSkKKyAJCXsKKyAJCSAgaWYgKHdy aXRlX3Bhc3MgJiYgZ3JlZyA8PSAxMCkKKyAJCSAgICB7CisgCQkgICAgICBnZGJfYnl0ZSByZWd2 YWxbTUFYX1JFR0lTVEVSX1NJWkVdOworLQkJICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0 eXBlKSAtIGJ5dGU7CisrCQkgICAgICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKSAt IGJ5dGU7CisgCQkgICAgICBpZiAobGVuID4gdGRlcC0+d29yZHNpemUpCisgCQkJbGVuID0gdGRl cC0+d29yZHNpemU7CisgCQkgICAgICBtZW1zZXQgKHJlZ3ZhbCwgMCwgc2l6ZW9mIHJlZ3ZhbCk7 CitAQCAtMTU5Miw3ICsxNTkyLDcgQEAgcHBjNjRfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZworIAkJICAgICByZWdpc3Rlci4gIFdvcmsgYXJvdW5kIHRoaXMgYnkgYWx3YXlzIHdy aXRpbmcgdGhlCisgCQkgICAgIHZhbHVlIHRvIG1lbW9yeS4gIEZvcnR1bmF0ZWx5LCBkb2luZyB0 aGlzCisgCQkgICAgIHNpbXBsaWZpZXMgdGhlIGNvZGUuICAqLworLQkJICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHR5cGUpOworKwkJICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK KyAJCSAgaWYgKGxlbiA8IHRkZXAtPndvcmRzaXplKQorIAkJICAgIHdyaXRlX21lbW9yeSAoZ3Bh cmFtICsgdGRlcC0+d29yZHNpemUgLSBsZW4sIHZhbCwgbGVuKTsKKyAJCSAgZWxzZQorSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcmw3OC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxMi0wNS0xOCAyMzowMjo1MC4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3JsNzgtdGRlcC5jCTIw MTItMTEtMDcgMjI6NDc6NTcuNTU3OTg0NjYwICswMTAwCitAQCAtMTAxOSw4ICsxMDE5LDggQEAg cmw3OF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAgZm9yIChpID0gbmFy Z3MgLSAxOyBpID49IDA7IGktLSkKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90 eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBsZW4gPSBU WVBFX0xFTkdUSCAodmFsdWVfdHlwZSk7CistICAgICAgaW50IGNvbnRhaW5lcl9sZW4gPSAobGVu ICsgMSkgJiB+MTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBl KTsKKysgICAgICBMT05HRVNUIGNvbnRhaW5lcl9sZW4gPSAobGVuICsgMSkgJiB+MTsKKyAKKyAg ICAgICBzcCAtPSBjb250YWluZXJfbGVuOworICAgICAgIHdyaXRlX21lbW9yeSAocmw3OF9tYWtl X2RhdGFfYWRkcmVzcyAoc3ApLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcnM2MDAw LWFpeC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv cnM2MDAwLWFpeC10ZGVwLmMJMjAxMi0wNS0xOCAyMzowMjo1MC4wMDAwMDAwMDAgKzAyMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTItMTEtMDcgMjI6 NDc6NTcuNTYwOTg0NjU3ICswMTAwCitAQCAtMTk3LDkgKzE5Nyw5IEBAIHJzNjAwMF9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAg PSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgaW50IGlpOworLSAgaW50IGxlbiA9 IDA7CisrICBMT05HRVNUIGxlbiA9IDA7CisgICBpbnQgYXJnbm87CQkJLyogY3VycmVudCBhcmd1 bWVudCBudW1iZXIgKi8KKy0gIGludCBhcmdieXRlczsJCQkvKiBjdXJyZW50IGFyZ3VtZW50IGJ5 dGUgKi8KKysgIExPTkdFU1QgYXJnYnl0ZXM7CQkvKiBjdXJyZW50IGFyZ3VtZW50IGJ5dGUgKi8K KyAgIGdkYl9ieXRlIHRtcF9idWZmZXJbNTBdOworICAgaW50IGZfYXJnbm8gPSAwOwkJLyogY3Vy cmVudCBmbG9hdGluZyBwb2ludCBhcmdubyAqLworICAgaW50IHdvcmRzaXplID0gZ2RiYXJjaF90 ZGVwIChnZGJhcmNoKS0+d29yZHNpemU7CitAQCAtMzI3LDcgKzMyNyw3IEBAIHJhbl9vdXRfb2Zf cmVnaXN0ZXJzX2Zvcl9hcmd1bWVudHM6CisgCisgICBpZiAoKGFyZ25vIDwgbmFyZ3MpIHx8IGFy Z2J5dGVzKQorICAgICB7CistICAgICAgaW50IHNwYWNlID0gMCwgamo7CisrICAgICAgTE9OR0VT VCBzcGFjZSA9IDAsIGpqOworIAorICAgICAgIGlmIChhcmdieXRlcykKKyAJeworSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvczM5MC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvczM5MC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3MzOTAtdGRlcC5jCTIwMTIt MTEtMDcgMjI6NDc6NTcuNTY5OTg0NjQ0ICswMTAwCitAQCAtMjQ4MSw3ICsyNDgxLDcgQEAgaXNf ZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCisgCisgCisgc3RhdGljIGludAorLWlzX3Bv d2VyX29mX3R3byAodW5zaWduZWQgaW50IG4pCisraXNfcG93ZXJfb2ZfdHdvIChVTE9OR0VTVCBu KQorIHsKKyAgIHJldHVybiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKKyB9CitAQCAtMjY2Nyw3ICsy NjY3LDcgQEAgczM5MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAgICAg IHsKKyAgICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAgICAgICAgIHN0cnVj dCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICAgICAg ICB1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAgICAgICBVTE9OR0VT VCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgCWlmIChzMzkwX2Z1bmN0aW9uX2Fy Z19wYXNzX2J5X3JlZmVyZW5jZSAodHlwZSkpCisgCSAgeworSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvc2NvcmUtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2 Lm9yaWcvZ2RiL3Njb3JlLXRkZXAuYwkyMDEyLTA1LTE4IDIzOjAyOjUwLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvc2NvcmUtdGRlcC5jCTIwMTItMTEtMDcgMjI6 NDc6NTcuNTcxOTg0NjQwICswMTAwCitAQCAtNTE1LDcgKzUxNSw3IEBAIHNjb3JlX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIGludCBhcmdudW07CisgICBpbnQg YXJncmVnOworLSAgaW50IGFyZ2xlbiA9IDA7CisrICBMT05HRVNUIGFyZ2xlbiA9IDA7CisgICBD T1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKKyAgIENPUkVfQUREUiBhZGRyID0gMDsKKyAKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NoLXRkZXAuYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NoLXRkZXAuYwkyMDEy LTExLTA3IDIyOjQ3OjU3LjU3OTk4NDYyOCArMDEwMAorQEAgLTgwNSw3ICs4MDUsNyBAQCBzaF9z a2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCisgc3RhdGljIGludAorIHNoX3Vz ZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkK KyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBU WVBFX0xFTkdUSCAodHlwZSk7CisgICBpbnQgbmVsZW0gPSBUWVBFX05GSUVMRFMgKHR5cGUpOwor IAorICAgLyogVGhlIFJlbmVzYXMgQUJJIHJldHVybnMgYWdncmVnYXRlIHR5cGVzIGFsd2F5cyBv biBzdGFjay4gICovCitAQCAtOTA3LDcgKzkwNyw3IEBAIHNoX2ZyYW1lX2FsaWduIChzdHJ1Y3Qg Z2RiYXJjaCAqaWdub3JlLAorIAorIC8qIEhlbHBlciBmdW5jdGlvbiB0byBqdXN0aWZ5IHZhbHVl IGluIHJlZ2lzdGVyIGFjY29yZGluZyB0byBlbmRpYW5lc3MuICAqLworIHN0YXRpYyBjaGFyICoK Ky1zaF9qdXN0aWZ5X3ZhbHVlX2luX3JlZyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVj dCB2YWx1ZSAqdmFsLCBpbnQgbGVuKQorK3NoX2p1c3RpZnlfdmFsdWVfaW5fcmVnIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgbGVuKQorIHsKKyAg IHN0YXRpYyBjaGFyIHZhbGJ1Zls0XTsKKyAKK0BAIC0xMDY3LDcgKzEwNjcsOCBAQCBzaF9wdXNo X2R1bW15X2NhbGxfZnB1IChzdHJ1Y3QgZ2RiYXJjaCAqCisgICBzdHJ1Y3QgdHlwZSAqdHlwZTsK KyAgIENPUkVfQUREUiByZWd2YWw7CisgICBjaGFyICp2YWw7CistICBpbnQgbGVuLCByZWdfc2l6 ZSA9IDA7CisrICBMT05HRVNUIGxlbjsKKysgIHNzaXplX3QgcmVnX3NpemUgPSAwOworICAgaW50 IHBhc3Nfb25fc3RhY2sgPSAwOworICAgaW50IHRyZWF0X2FzX2ZsdDsKKyAgIGludCBsYXN0X3Jl Z19hcmcgPSBJTlRfTUFYOworQEAgLTEyMDgsNyArMTIwOSw4IEBAIHNoX3B1c2hfZHVtbXlfY2Fs bF9ub2ZwdSAoc3RydWN0IGdkYmFyY2gKKyAgIHN0cnVjdCB0eXBlICp0eXBlOworICAgQ09SRV9B RERSIHJlZ3ZhbDsKKyAgIGNoYXIgKnZhbDsKKy0gIGludCBsZW4sIHJlZ19zaXplID0gMDsKKysg IExPTkdFU1QgbGVuOworKyAgc3NpemVfdCByZWdfc2l6ZSA9IDA7CisgICBpbnQgcGFzc19vbl9z dGFjayA9IDA7CisgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKKyAKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3NoNjQtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTItMDYtMDYgMjA6MDM6NTMuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zaDY0LXRkZXAuYwkyMDEyLTEx LTA3IDIyOjQ3OjU3LjU4Mjk4NDYyNSArMDEwMAorQEAgLTEwNTgsNyArMTA1OCw3IEBAIHNoNjRf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAJCSAgICAgIENPUkVfQUREUiBz dHJ1Y3RfYWRkcikKKyB7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CistICBpbnQgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxvYzsK KysgIExPTkdFU1Qgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxvYzsKKyAgIGludCBpbnRfYXJncmVn OworICAgaW50IGZsb2F0X2FyZ3JlZzsKKyAgIGludCBkb3VibGVfYXJncmVnOworQEAgLTEwNjks NyArMTA2OSw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAg IENPUkVfQUREUiByZWd2YWw7CisgICBjaGFyICp2YWw7CisgICBjaGFyIHZhbGJ1Zls4XTsKKy0g IGludCBsZW47CisrICBMT05HRVNUIGxlbjsKKyAgIGludCBhcmdyZWdfc2l6ZTsKKyAgIGludCBm cF9hcmdzWzEyXTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NwYXJjLXRkZXAu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9zcGFyYy10ZGVw LmMJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL3NwYXJjLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU5Mzk4NDYwOSArMDEw MAorQEAgLTQ3MCw3ICs0NzAsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJl Z2NhY2hlCisgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKKyAgICAgeworICAgICAgIHN0 cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0 eXBlKTsKKyAKKyAgICAgICBpZiAoc3BhcmNfc3RydWN0dXJlX29yX3VuaW9uX3AgKHR5cGUpCisg CSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAxNikKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3NwYXJjNjQtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTItMDUtMTYgMTY6MzU6MDcu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zcGFyYzY0LXRkZXAu YwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU5NTk4NDYwNSArMDEwMAorQEAgLTYzOSw3ICs2MzksOCBA QCBzcGFyYzY0XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5CisgCisgc3RhdGljIHZv aWQKKyBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCistCQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxi dWYsIGludCBlbGVtZW50LCBpbnQgYml0cG9zKQorKwkJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAq dmFsYnVmLCBpbnQgZWxlbWVudCwKKysJCQkgICAgICAgTE9OR0VTVCBiaXRwb3MpCisgeworICAg aW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKK0BAIC02ODEsNyArNjgyLDcgQEAgc3Bh cmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZQorICAgICAgIGZvciAoaSA9IDA7 IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpKyspCisgCXsKKyAJICBzdHJ1Y3QgdHlwZSAqc3Vi dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpOworLQkgIGlu dCBzdWJwb3MgPSBiaXRwb3MgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7CisrCSAgTE9O R0VTVCBzdWJwb3MgPSBiaXRwb3MgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7CisgCisg CSAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHJlZ2NhY2hlLCBzdWJ0eXBlLCB2YWxi dWYsCisgCQkJCQkgZWxlbWVudCwgc3VicG9zKTsKK0BAIC03MTMsNyArNzE0LDcgQEAgc3BhcmM2 NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZQorIAorIHN0YXRpYyB2b2lkCisgc3Bh cmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg c3RydWN0IHR5cGUgKnR5cGUsCistCQkJCSBnZGJfYnl0ZSAqdmFsYnVmLCBpbnQgYml0cG9zKQor KwkJCQkgZ2RiX2J5dGUgKnZhbGJ1ZiwgTE9OR0VTVCBiaXRwb3MpCisgeworICAgaWYgKHNwYXJj NjRfZmxvYXRpbmdfcCAodHlwZSkpCisgICAgIHsKK0BAIC03NTAsNyArNzUxLDcgQEAgc3BhcmM2 NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0CisgICAgICAgZm9yIChpID0gMDsgaSA8 IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkrKykKKyAJeworIAkgIHN0cnVjdCB0eXBlICpzdWJ0eXBl ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7CistCSAgaW50IHN1 YnBvcyA9IGJpdHBvcyArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpKTsKKysJICBMT05HRVNU IHN1YnBvcyA9IGJpdHBvcyArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpKTsKKyAKKyAJICBz cGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwgc3VidHlwZSwgdmFsYnVm LCBzdWJwb3MpOworIAl9CitAQCAtNzgzLDcgKzc4NCw3IEBAIHNwYXJjNjRfc3RvcmVfYXJndW1l bnRzIChzdHJ1Y3QgcmVnY2FjaGUKKyAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorICAg ICB7CisgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKKy0g ICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgICAgIExPTkdFU1QgbGVuID0g VFlQRV9MRU5HVEggKHR5cGUpOworIAorICAgICAgIGlmIChzcGFyYzY0X3N0cnVjdHVyZV9vcl91 bmlvbl9wICh0eXBlKQorIAkgIHx8IChzcGFyYzY0X2NvbXBsZXhfZmxvYXRpbmdfcCAodHlwZSkg JiYgbGVuID09IDMyKSkKK0BAIC04ODMsNyArODg0LDcgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVu dHMgKHN0cnVjdCByZWdjYWNoZQorICAgICB7CisgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGJ1 ZiA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlw ZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICAgICAgaW50 IHJlZ251bSA9IC0xOworICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CisgCitJbmRleDogZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9zcHUtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIw MTIwOTI2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxMi0xMS0wNyAyMjowOToyNC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NwdS10ZGVwLmMJMjAxMi0xMS0wNyAy Mjo0Nzo1Ny41OTg5ODQ2MDIgKzAxMDAKK0BAIC0xMzcyLDcgKzEzNzIsNyBAQCBzcHVfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgICAgICAgc3RydWN0IHZhbHVlICphcmcg PSBhcmdzW2ldOworICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs dWVfdHlwZSAoYXJnKSk7CisgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzID0gdmFsdWVf Y29udGVudHMgKGFyZyk7CistICAgICAgaW50IG5fcmVncyA9IGFsaWduX3VwIChUWVBFX0xFTkdU SCAodHlwZSksIDE2KSAvIDE2OworKyAgICAgIExPTkdFU1Qgbl9yZWdzID0gYWxpZ25fdXAgKFRZ UEVfTEVOR1RIICh0eXBlKSwgMTYpIC8gMTY7CisgCisgICAgICAgLyogSWYgdGhlIGFyZ3VtZW50 IGRvZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCisgCSBhbGwgc3Vic2Vx dWVudCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KK0BAIC0xNDA0LDcgKzE0MDQsNyBA QCBzcHVfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgCXsKKyAJICBzdHJ1 Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CisgCSAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5 cGUpOworKwkgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAkgIGludCBwcmVm ZXJyZWRfc2xvdDsKKyAJICAKKyAJICBpZiAoc3B1X3NjYWxhcl92YWx1ZV9wICh0eXBlKSkKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RpYzZ4LXRkZXAuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi90aWM2eC10ZGVwLmMJMjAxMi0wNi0wOCAxNjoy NDo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RpYzZ4LXRk ZXAuYwkyMDEyLTExLTA3IDIyOjUwOjMxLjc5Mjc2MzE3OCArMDEwMAorQEAgLTkxOCw3ICs5MTgs NyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCisgICBpbnQgYXJn bnVtOworICAgaW50IGxlbiA9IDA7CisgICBpbnQgc3RhY2tfb2Zmc2V0ID0gNDsKKy0gIGludCBy ZWZlcmVuY2VzX29mZnNldCA9IDQ7CisrICBMT05HRVNUIHJlZmVyZW5jZXNfb2Zmc2V0ID0gNDsK KyAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBO VUxMKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKKyAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1ZV90eXBlIChmdW5j dGlvbik7CitAQCAtOTUyLDcgKzk1Miw3IEBAIHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmcKKyAgIC8qIE5vdyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIGFy Z3MuICAqLworICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCisg ICAgIHsKKy0gICAgICBpbnQgbGVuID0gYWxpZ25fdXAgKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBl IChhcmdzW2FyZ251bV0pKSwgNCk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBhbGlnbl91cCAoVFlQ RV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3NbYXJnbnVtXSkpLCA0KTsKKyAgICAgICBpZiAoYXJn bnVtID49IDEwIC0gYXJncmVnKQorIAlyZWZlcmVuY2VzX29mZnNldCArPSBsZW47CisgICAgICAg c3RhY2tfb2Zmc2V0ICs9IGxlbjsKK0BAIC05NzEsNyArOTcxLDcgQEAgdGljNnhfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7Cisg ICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CisgICAgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICAgICAg aW50IGxlbiA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7CisrICAgICAgc3NpemVfdCBsZW4gPSBU WVBFX0xFTkdUSCAoYXJnX3R5cGUpOworICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0g VFlQRV9DT0RFIChhcmdfdHlwZSk7CisgCisgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFy Zyk7CitAQCAtMTEzMSw3ICsxMTMxLDggQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJ TEVfXywgX19MSU5FX18sCistCQkJICAgIF8oInVuZXhwZWN0ZWQgbGVuZ3RoICVkIG9mIGFyZyAl ZCIpLCBsZW4sIGFyZ251bSk7CisrCQkJICAgIF8oInVuZXhwZWN0ZWQgbGVuZ3RoICVzIG9mIGFy ZyAlZCIpLAorKwkJCSAgICBwbG9uZ2VzdCAobGVuKSwgYXJnbnVtKTsKKyAKKyAJICBhZGRyID0g c3AgKyBzdGFja19vZmZzZXQ7CisgCSAgd3JpdGVfbWVtb3J5IChhZGRyLCB2YWwsIGxlbik7CitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90aWxlZ3gtdGRlcC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxMi0xMS0wNyAy MjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RpbGVn eC10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny42MTA5ODQ1ODQgKzAxMDAKK0BAIC0yOTEsNyAr MjkxLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorICAgQ09S RV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKKyAgIGludCBhcmdyZWcgPSBUSUxFR1hfUjBfUkVHTlVN OworICAgaW50IGksIGo7CistICBpbnQgdHlwZWxlbiwgc2xhY2tsZW4sIGFsaWdubGVuOworKyAg TE9OR0VTVCB0eXBlbGVuLCBzbGFja2xlbiwgYWxpZ25sZW47CisgICBzdGF0aWMgY29uc3QgZ2Ri X2J5dGUgdHdvX3plcm9fd29yZHNbOF0gPSB7IDAgfTsKKyAKKyAgIC8qIElmIHN0cnVjdF9yZXR1 cm4gaXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNzIHdpbGwKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3Y4NTAtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTItMDUtMTggMjM6MDI6NTAuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92ODUwLXRkZXAuYwkyMDEyLTEx LTA3IDIyOjQ3OjU3LjYxNzk4NDU3NSArMDEwMAorQEAgLTgwOSw3ICs4MDksNyBAQCB2ODUwX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CisgICBpbnQgYXJncmVnOwor ICAgaW50IGFyZ251bTsKKy0gIGludCBsZW4gPSAwOworKyAgTE9OR0VTVCBsZW4gPSAwOworICAg aW50IHN0YWNrX29mZnNldDsKKyAKKyAgIC8qIFRoZSBvZmZzZXQgb250byB0aGUgc3RhY2sgYXQg d2hpY2ggd2Ugd2lsbCBzdGFydCBjb3B5aW5nIHBhcmFtZXRlcnMKK0BAIC04MzQsNyArODM0LDcg QEAgdjg1MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAgICAgaW4gZm91 ciByZWdpc3RlcnMgYXZhaWxhYmxlLiAgTG9vcCB0aHJ1IGFyZ3MgZnJvbSBmaXJzdCB0byBsYXN0 LiAgKi8KKyAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQorICAg ICB7CistICAgICAgaW50IGxlbjsKKysgICAgICBMT05HRVNUIGxlbjsKKyAgICAgICBnZGJfYnl0 ZSAqdmFsOworICAgICAgIGdkYl9ieXRlIHZhbGJ1Zlt2ODUwX3JlZ19zaXplXTsKKyAKK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZheC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmF4LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ2OjU2LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmF4LXRkZXAuYwkyMDEy LTExLTA3IDIyOjQ3OjU3LjYxODk4NDU3MyArMDEwMAorQEAgLTExNiw3ICsxMTYsNyBAQCB2YXhf c3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlCisgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CisgICBnZGJfYnl0 ZSBidWZbNF07CistICBpbnQgY291bnQgPSAwOworKyAgTE9OR0VTVCBjb3VudCA9IDA7CisgICBp bnQgaTsKKyAKKyAgIC8qIFdlIGNyZWF0ZSBhbiBhcmd1bWVudCBsaXN0IG9uIHRoZSBzdGFjaywg YW5kIG1ha2UgdGhlIGFyZ3VtZW50CitAQCAtMTI1LDcgKzEyNSw3IEBAIHZheF9zdG9yZV9hcmd1 bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKKyAgIC8qIFB1c2ggYXJndW1lbnRzIGluIHJldmVy c2Ugb3JkZXIuICAqLworICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKKyAgICAg eworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFy Z3NbaV0pKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3Np bmdfdHlwZSAoYXJnc1tpXSkpOworIAorICAgICAgIHNwIC09IChsZW4gKyAzKSAmIH4zOworICAg ICAgIGNvdW50ICs9IChsZW4gKyAzKSAvIDQ7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi94c3Rvcm15MTYtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMi0xMS0w NyAyMjo0Nzo1Ny42MjY5ODQ1NjIgKzAxMDAKK0BAIC0yMzUsOCArMjM1LDkgQEAgeHN0b3JteTE2 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgQ09SRV9BRERSIHN0YWNr X2Rlc3QgPSBzcDsKKyAgIGludCBhcmdyZWcgPSBFXzFTVF9BUkdfUkVHTlVNOworLSAgaW50IGks IGo7CistICBpbnQgdHlwZWxlbiwgc2xhY2tsZW47CisrICBpbnQgaSwgc2xhY2tsZW47CisrICBM T05HRVNUIGo7CisrICBMT05HRVNUIHR5cGVsZW47CisgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwor ICAgY2hhciBidWZbeHN0b3JteTE2X3BjX3NpemVdOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIveHRlbnNhLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTItMDUtMTggMjM6MDI6NTEuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi94dGVuc2EtdGRlcC5jCTIwMTItMTEtMDcg MjI6NDc6NTcuNjI5OTg0NTU3ICswMTAwCitAQCAtMTY1Myw4ICsxNjUzLDcgQEAgeHRlbnNhX3N0 b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorIAorICAgICAgIGlmIChsZW4gPiAoY2Fs bHNpemUgPiA4ID8gOCA6IDE2KSkKKyAJaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVf XywKKy0JCQlfKCJ1bmltcGxlbWVudGVkIGZvciB0aGlzIGxlbmd0aDogJWQiKSwKKy0JCQlUWVBF X0xFTkdUSCAodHlwZSkpOworKwkJCV8oInVuaW1wbGVtZW50ZWQgZm9yIHRoaXMgbGVuZ3RoOiAl ZCIpLCBsZW4pOworICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFyY2gsCisgCQkJICAg Z2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6ZSwgd2IpOworIAor QEAgLTE3MjgsMTggKzE3MjcsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKgorIHsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZGJhcmNoKTsKKyAgIGludCBpOworLSAgaW50IHNpemUsIG9uc3RhY2tfc2l6ZTsK KysgIExPTkdFU1Qgc2l6ZSwgb25zdGFja19zaXplOworICAgZ2RiX2J5dGUgKmJ1ZiA9IChnZGJf Ynl0ZSAqKSBhbGxvY2EgKDE2KTsKKyAgIENPUkVfQUREUiByYSwgcHM7CisgICBzdHJ1Y3QgYXJn dW1lbnRfaW5mbworICAgeworICAgICBjb25zdCBiZmRfYnl0ZSAqY29udGVudHM7CistICAgIGlu dCBsZW5ndGg7CisrICAgIHNzaXplX3QgbGVuZ3RoOworICAgICBpbnQgb25zdGFjazsJCS8qIG9u c3RhY2sgPT0gMCA9PiBpbiByZWcgKi8KKyAgICAgaW50IGFsaWduOwkJCS8qIGFsaWdubWVudCAq LworICAgICB1bmlvbgorICAgICB7CistICAgICAgaW50IG9mZnNldDsJCS8qIHN0YWNrIG9mZnNl dCBpZiBvbiBzdGFjay4gICovCisrICAgICAgc3NpemVfdCBvZmZzZXQ7CQkvKiBzdGFjayBvZmZz ZXQgaWYgb24gc3RhY2suICAqLworICAgICAgIGludCByZWdubzsJCS8qIHJlZ25vIGlmIGluIHJl Z2lzdGVyLiAgKi8KKyAgICAgfSB1OworICAgfTsKK0BAIC0xNzYzLDkgKzE3NjIsMTAgQEAgeHRl bnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorICAgICAgICAgeworIAkgIHN0 cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAJICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csICIlMmQ6ICVzICUzZCAiLCBpLAorLQkJCSAgICAgIGhvc3RfYWRkcmVzc190 b19zdHJpbmcgKGFyZyksCistCQkJICAgICAgVFlQRV9MRU5HVEggKGFyZ190eXBlKSk7CisrCSAg Y29uc3QgY2hhciAqYXJnX3R5cGVfbGVuX3MgPSBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIIChhcmdf dHlwZSkpOworKworKwkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIiUyZDogJXMg JXMgIiwgaSwKKysJCQkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChhcmcpLCBhcmdfdHlw ZV9sZW5fcyk7CisgCSAgc3dpdGNoIChUWVBFX0NPREUgKGFyZ190eXBlKSkKKyAJICAgIHsKKyAJ ICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoKK0BAIC0xODM1LDggKzE4MzUsOCBAQCB4dGVuc2FfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCSAgaW5mby0+YWxpZ24gPSBUWVBFX0xF TkdUSCAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9sb25nKTsKKyAJICBicmVhazsK KyAJfQorLSAgICAgIGluZm8tPmxlbmd0aCA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7CisgICAg ICAgaW5mby0+Y29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKKysgICAgICBpbmZvLT5s ZW5ndGggPSBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpOworIAorICAgICAgIC8qIEFsaWduIHNpemUg YW5kIG9uc3RhY2tfc2l6ZS4gICovCisgICAgICAgc2l6ZSA9IChzaXplICsgaW5mby0+YWxpZ24g LSAxKSAmIH4oaW5mby0+YWxpZ24gLSAxKTsKK0BAIC0xODgxLDcgKzE4ODEsNyBAQCB4dGVuc2Ff cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCisgICAgICAgaWYgKGluZm8tPm9u c3RhY2spCisgCXsKKy0JICBpbnQgbiA9IGluZm8tPmxlbmd0aDsKKysJICBzc2l6ZV90IG4gPSBp bmZvLT5sZW5ndGg7CisgCSAgQ09SRV9BRERSIG9mZnNldCA9IHNwICsgaW5mby0+dS5vZmZzZXQ7 CisgCisgCSAgLyogT2RkLXNpemVkIHN0cnVjdHMgYXJlIGFsaWduZWQgdG8gdGhlIGxvd2VyIHNp ZGUgb2YgYSBtZW1vcnkKK0BAIC0xODk3LDcgKzE4OTcsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCX0KKyAgICAgICBlbHNlCisgCXsKKy0JICBpbnQgbiA9 IGluZm8tPmxlbmd0aDsKKysJICBzc2l6ZV90IG4gPSBpbmZvLT5sZW5ndGg7CisgCSAgY29uc3Qg YmZkX2J5dGUgKmNwID0gaW5mby0+Y29udGVudHM7CisgCSAgaW50IHIgPSBpbmZvLT51LnJlZ25v OworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNG9mMjUucGF0Y2ggYi9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjRvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjU5ZDg0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMjRvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMTEzIEBACitodHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTYwLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdl TG9nCTIwMTIvMDkvMjYgMjM6NTM6NTMJMS4xNDcwOQorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIw MTIvMDkvMjcgMDg6NTc6MTQJMS4xNDcxMAorIyMgLTEsMyArMSwxNiBAQAorKzIwMTItMDktMjcg IFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogZ2RidHlw ZXMuYyAobG9va3VwX2FycmF5X3JhbmdlX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVycworKwlMT1df Qk9VTkQgYW5kIEhJR0hfQk9VTkQgdG8gTE9OR0VTVC4KKysJKGxvb2t1cF9zdHJpbmdfcmFuZ2Vf dHlwZSk6IExpa2V3aXNlLgorKwkqIGdkYnR5cGVzLmggKGxvb2t1cF9hcnJheV9yYW5nZV90eXBl KTogTGlrZXdpc2UuCisrCShsb29rdXBfc3RyaW5nX3JhbmdlX3R5cGUpOiBMaWtld2lzZS4KKysJ KiB2YWxvcHMuYyAodmFsdWVfY3N0cmluZyk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvIHNzaXpl X3QuCisrCUV4cGFuZCBISUdIQk9VTkQgdG8gc3NpemVfdC4KKysJKHZhbHVlX3N0cmluZyk6IExp a2V3aXNlLgorKwkqIHZhbHVlLmggKHZhbHVlX2NzdHJpbmcpOiBFeHBhbmQgcGFyYW1ldGVyIExF TiB0byBzc2l6ZV90LgorKwkodmFsdWVfc3RyaW5nKTogTGlrZXdpc2UuCisrCisgMjAxMi0wOS0y NyAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCVBSIGJyZWFrcG9pbnRzLzEz ODk4CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nZGJ0eXBlcy5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxMi0xMS0wNyAy MjowOTo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2dkYnR5 cGVzLmMJMjAxMi0xMS0wNyAyMjo1MDo0Ny4wNDg3NDExNjQgKzAxMDAKK0BAIC0xMDIyLDcgKzEw MjIsNyBAQCBjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90CisgCisgc3Ry dWN0IHR5cGUgKgorIGxvb2t1cF9hcnJheV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqZWxlbWVu dF90eXBlLAorLQkJCSBpbnQgbG93X2JvdW5kLCBpbnQgaGlnaF9ib3VuZCkKKysJCQkgTE9OR0VT VCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKGVsZW1lbnRfdHlwZSk7CisgICBzdHJ1Y3QgdHlwZSAq aW5kZXhfdHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50OworQEAgLTEw NTgsNyArMTA1OCw3IEBAIGNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF8K KyAKKyBzdHJ1Y3QgdHlwZSAqCisgbG9va3VwX3N0cmluZ19yYW5nZV90eXBlIChzdHJ1Y3QgdHlw ZSAqc3RyaW5nX2NoYXJfdHlwZSwKKy0JCQkgIGludCBsb3dfYm91bmQsIGludCBoaWdoX2JvdW5k KQorKwkJCSAgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKKyB7CisgICBz dHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGU7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9nZGJ0eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2Ri L2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjowOToyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjo1MTo0Ni40NDA2NTU4 MTcgKzAxMDAKK0BAIC0xNjQwLDcgKzE2NDAsNyBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0 ZV9yYW5nZV90eXBlIChzCisgCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKKyAJCQkJICAgICAgIHN0cnVjdCB0eXBl ICopOworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3JhbmdlX3R5cGUgKHN0cnVj dCB0eXBlICosIGludCwgaW50KTsKKytleHRlcm4gc3RydWN0IHR5cGUgKmxvb2t1cF9hcnJheV9y YW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULCBMT05HRVNUKTsKKyAKKyBleHRlcm4g Q09SRV9BRERSIHR5cGVfcmFuZ2VfYW55X2ZpZWxkX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqcmFu Z2VfdHlwZSwKKyAJCQkJCQlpbnQgZmllbGRubyk7CitAQCAtMTY1Niw3ICsxNjU2LDcgQEAgZXh0 ZXJuIHZvaWQgZmluYWxpemVfdHlwZSAoc3RydWN0IHR5cGUgKgorIAorIGV4dGVybiBzdHJ1Y3Qg dHlwZSAqY3JlYXRlX3N0cmluZ190eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAor IAkJCQkJc3RydWN0IHR5cGUgKik7CistZXh0ZXJuIHN0cnVjdCB0eXBlICpsb29rdXBfc3RyaW5n X3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKKytleHRlcm4gc3RydWN0IHR5 cGUgKmxvb2t1cF9zdHJpbmdfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgTE9O R0VTVCk7CisgCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfc2V0X3R5cGUgKHN0cnVjdCB0 eXBlICosIHN0cnVjdCB0eXBlICopOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv dmFsb3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFs b3BzLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL3ZhbG9wcy5jCTIwMTItMTEtMDcgMjI6NTA6NDcuMDkxNzQxMTA0ICswMTAw CitAQCAtMTkzNywxMSArMTkzNywxMSBAQCB2YWx1ZV9hcnJheSAoaW50IGxvd2JvdW5kLCBpbnQg aGlnaGJvdW5kCisgfQorIAorIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfY3N0cmluZyAoY2hhciAq cHRyLCBpbnQgbGVuLCBzdHJ1Y3QgdHlwZSAqY2hhcl90eXBlKQorK3ZhbHVlX2NzdHJpbmcgKGNo YXIgKnB0ciwgc3NpemVfdCBsZW4sIHN0cnVjdCB0eXBlICpjaGFyX3R5cGUpCisgeworICAgc3Ry dWN0IHZhbHVlICp2YWw7CisgICBpbnQgbG93Ym91bmQgPSBjdXJyZW50X2xhbmd1YWdlLT5zdHJp bmdfbG93ZXJfYm91bmQ7CistICBpbnQgaGlnaGJvdW5kID0gbGVuIC8gVFlQRV9MRU5HVEggKGNo YXJfdHlwZSk7CisrICBzc2l6ZV90IGhpZ2hib3VuZCA9IGxlbiAvIFRZUEVfTEVOR1RIIChjaGFy X3R5cGUpOworICAgc3RydWN0IHR5cGUgKnN0cmluZ3R5cGUKKyAgICAgPSBsb29rdXBfYXJyYXlf cmFuZ2VfdHlwZSAoY2hhcl90eXBlLCBsb3dib3VuZCwgaGlnaGJvdW5kICsgbG93Ym91bmQgLSAx KTsKKyAKK0BAIC0xOTYwLDExICsxOTYwLDExIEBAIHZhbHVlX2NzdHJpbmcgKGNoYXIgKnB0ciwg aW50IGxlbiwgc3RydWMKKyAgICBzdHJpbmcgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbCBieXRl cy4gICovCisgCisgc3RydWN0IHZhbHVlICoKKy12YWx1ZV9zdHJpbmcgKGNoYXIgKnB0ciwgaW50 IGxlbiwgc3RydWN0IHR5cGUgKmNoYXJfdHlwZSkKKyt2YWx1ZV9zdHJpbmcgKGNoYXIgKnB0ciwg c3NpemVfdCBsZW4sIHN0cnVjdCB0eXBlICpjaGFyX3R5cGUpCisgeworICAgc3RydWN0IHZhbHVl ICp2YWw7CisgICBpbnQgbG93Ym91bmQgPSBjdXJyZW50X2xhbmd1YWdlLT5zdHJpbmdfbG93ZXJf Ym91bmQ7CistICBpbnQgaGlnaGJvdW5kID0gbGVuIC8gVFlQRV9MRU5HVEggKGNoYXJfdHlwZSk7 CisrICBzc2l6ZV90IGhpZ2hib3VuZCA9IGxlbiAvIFRZUEVfTEVOR1RIIChjaGFyX3R5cGUpOwor ICAgc3RydWN0IHR5cGUgKnN0cmluZ3R5cGUKKyAgICAgPSBsb29rdXBfc3RyaW5nX3JhbmdlX3R5 cGUgKGNoYXJfdHlwZSwgbG93Ym91bmQsIGhpZ2hib3VuZCArIGxvd2JvdW5kIC0gMSk7CisgCitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxMi0xMS0wNyAyMjowOTozMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmgJMjAxMi0xMS0w NyAyMjo1MToxMS43NDQ3MDU2MTQgKzAxMDAKK0BAIC01OTMsOSArNTkzLDkgQEAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfbWFyayAodm9pZCk7CisgCisgZXh0ZXJuIHZvaWQgdmFsdWVfZnJl ZV90b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1hcmspOworIAorLWV4dGVybiBzdHJ1Y3QgdmFsdWUg KnZhbHVlX2NzdHJpbmcgKGNoYXIgKnB0ciwgaW50IGxlbiwKKytleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9jc3RyaW5nIChjaGFyICpwdHIsIHNzaXplX3QgbGVuLAorIAkJCQkgICAgc3RydWN0 IHR5cGUgKmNoYXJfdHlwZSk7CistZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3RyaW5nIChj aGFyICpwdHIsIGludCBsZW4sCisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3RyaW5nIChj aGFyICpwdHIsIHNzaXplX3QgbGVuLAorIAkJCQkgICBzdHJ1Y3QgdHlwZSAqY2hhcl90eXBlKTsK KyBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9iaXRzdHJpbmcgKGNoYXIgKnB0ciwgaW50IGxl biwKKyAJCQkJICAgICAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUpOwoKZGlmZiAtLWdpdCBhL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUtdGVzdC5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yNW9mMjUtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5lNDA2Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2Yy NS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsNjI3IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxMi0xMC9tc2cwMDIzMS5odG1sCitTdWJqZWN0OiBSZTogW1BBVENIXSBF eHBhbmQgZm9ydHJhbiBhcnJheSBib3VuZHMgc2l6ZXMgdG8gTE9OR0VTVAorCitPbiBNb24sIDE1 IE9jdCAyMDEyIDE1OjI1OjU1ICswMjAwLCBKYW4gS3JhdG9jaHZpbCB3cm90ZToKKz4gSSBoYXZl IGZpbGVkIGZvciBpdCBub3c6Cis+IAlJbnZhbGlkIGRlYnVnLyBhcnJheSBib3VuZHMgdy8tZm5v LXJhbmdlLWNoZWNrIGFuZCAzMi1iaXQgdGFyZ2V0Cis+IAlodHRwOi8vZ2NjLmdudS5vcmcvYnVn emlsbGEvc2hvd19idWcuY2dpP2lkPTU0OTM0CisKK1RoZXJlZm9yZSBpdCBsb29rcyBhcyBhIHZh bGlkIGdmb3J0cmFuIEZTRiBHQ0MgSEVBRCBidWcgc28gcHJvdmlkZWQKK2EgaGFuZC1wYXRjaGVk IC5TIGZpbGUgZm9yIGkzODY7IHBhdGNoZWQgR0RCIFBBU1NlcyB3aXRoIGl0LgorCisKK1RoYW5r cywKK0phbgorCisKKzIwMTItMTAtMTUgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJl ZGhhdC5jb20+CisJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKworCSogZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmV4cDogTmV3IHRlc3QgZmlsZS4KKwkq IGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOiBOZXcgdGVzdCBmaWxlLgorCSogZ2RiLmZvcnRy YW4vYXJyYXktYm91bmRzLlM6IE5ldyB0ZXN0IGZpbGUuCisKKy0tLSAvZGV2L251bGwJMjAxMi0w OS0yNiAxNTozMjoxNi4wOTg1MDYzMTAgKzAyMDAKKysrKyBnZGItNy4yL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmV4cAkyMDEyLTEwLTE1IDIwOjUzOjI2LjQyNzA3MjU4 MyArMDIwMAorQEAgLTAsMCArMSw0MyBAQAorKyMgQ29weXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor KyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuICBJdCBjb250YWlucyB0 ZXN0IHRvIGVuc3VyZSB0aGF0CisrIyBhcnJheSBib3VuZHMgYWNjZXB0IExPTkdFU1QuCisrCisr aWYgeyBbc2tpcF9mb3J0cmFuX3Rlc3RzXSB9IHsgcmV0dXJuIC0xIH0KKysKKytzZXQgdGVzdGZp bGUgImFycmF5LWJvdW5kcyIKKysKKytpZiB7IFtpc19pbHAzMl90YXJnZXRdICYmIChbaXN0YXJn ZXQgImlcWzM0NTY3XF04Ni0qLWxpbnV4KiJdCisrCQkJICAgfHwgW2lzdGFyZ2V0ICJ4ODZfNjQt Ki1saW51eCoiXSkgfSB7CisrICAgIHNldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMKKysgICAgc2V0 IG9wdHMge25vZGVidWcgZjkwfQorK30gZWxzZSB7CisrICAgIHNldCBzcmNmaWxlICR7dGVzdGZp bGV9LmYKKysgICAgc2V0IG9wdHMge2RlYnVnIGY5MH0KKyt9CisrCisraWYge1twcmVwYXJlX2Zv cl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXX0geworKyAg ICBwcmludCAiY29tcGlsZSBmYWlsZWQiCisrICAgIHJldHVybiAtMQorK30KKysKKytpZiB7ICFb cnVudG8gTUFJTl9fXSB9IHsKKysgICAgcGVycm9yICJDb3VsZCBub3QgcnVuIHRvIGJyZWFrcG9p bnQgYE1BSU5fXycuIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVzdCAicHJpbnQgJmZv byIgey4qXCg0Mjk0OTY3Mjk2OjQyOTQ5NjcyOTdcKS4qfQorK2dkYl90ZXN0ICJwcmludCAmYmFy IiB7LipcKC00Mjk0OTY3Mjk3Oi00Mjk0OTY3Mjk2XCkuKn0KKy0tLSAvZGV2L251bGwJMjAxMi0w OS0yNiAxNTozMjoxNi4wOTg1MDYzMTAgKzAyMDAKKysrKyBnZGItNy4yL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYJMjAxMi0xMC0xNSAxOTozNToxMi41MDAyNTQyNjEg KzAyMDAKK0BAIC0wLDAgKzEsMjIgQEAKKytjIENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKworK2MgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKytjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrYyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorK2MgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKytjCisrYyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKytjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrYyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrYyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorK2MKKytjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrYyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysg ICAgICAgIGRpbWVuc2lvbiBmb28oNDI5NDk2NzI5Nl84OjQyOTQ5NjcyOTdfOCkKKysgICAgICAg IGRpbWVuc2lvbiBiYXIoLTQyOTQ5NjcyOTdfODotNDI5NDk2NzI5Nl84KQorKyAgICAgICAgYmFy ID0gNDIKKysgICAgICAgIGZvbz1iYXIKKysgICAgICAgIHN0b3AKKysgICAgICAgIGVuZAorKwor LS0tIC9kZXYvbnVsbAkyMDEyLTA5LTI2IDE1OjMyOjE2LjA5ODUwNjMxMCArMDIwMAorKysrIGdk Yi03LjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1ib3VuZHMuUwkyMDEyLTEwLTE1 IDIwOjUyOjM2Ljg1MTExODIxNSArMDIwMAorQEAgLTAsMCArMSw1MjkgQEAKKysvKiBDb3B5cmln aHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg Z2RiIHRlc3RzdWl0ZS4gICovCisrCisrCS5maWxlCSJhcnJheS1ib3VuZHMuZiIKKysJLnRleHQK KysuTHRleHQwOgorKwkudHlwZQlNQUlOX18sIEBmdW5jdGlvbgorK01BSU5fXzoKKysuTEZCMDoK KysJLmZpbGUgMSAiZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYiCisrCSMgZ2RiLmZvcnRyYW4v YXJyYXktYm91bmRzLmY6MTYKKysJLmxvYyAxIDE2IDAKKysJLmNmaV9zdGFydHByb2MKKysjIEJM T0NLIDIgc2VxOjAKKysjIFBSRUQ6IEVOVFJZIChGQUxMVEhSVSkKKysJcHVzaGwJJWVicAorKy5M Q0ZJMDoKKysJLmNmaV9kZWZfY2ZhX29mZnNldCA4CisrCS5jZmlfb2Zmc2V0IDUsIC04CisrCW1v dmwJJWVzcCwgJWVicAorKy5MQ0ZJMToKKysJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDUKKysJc3Vi bAkkNDAsICVlc3AKKysuTEJCMjoKKysjIFNVQ0M6IDMgKEZBTExUSFJVKQorKwkjIGdkYi5mb3J0 cmFuL2FycmF5LWJvdW5kcy5mOjE4CisrCS5sb2MgMSAxOCAwCisrCW1vdmwJJC0xLCAlZWF4Cisr IyBCTE9DSyAzIHNlcToxCisrIyBQUkVEOiAyIChGQUxMVEhSVSkgNCBbMTAwLjAlXSAKKysuTDM6 CisrCSMgZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmY6MTgKKysJLmxvYyAxIDE4IDAgaXNfc3Rt dCAwIGRpc2NyaW1pbmF0b3IgMQorKwl0ZXN0bAklZWF4LCAlZWF4CisrIyBTVUNDOiA1IDQgKEZB TExUSFJVKQorKwlqZwkuTDIKKysjIEJMT0NLIDQgc2VxOjIKKysjIFBSRUQ6IDMgKEZBTExUSFJV KQorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjE4CisrCS5sb2MgMSAxOCAwIGRpc2Ny aW1pbmF0b3IgMgorKwlsZWFsCTEoJWVheCksICVlY3gKKysJbW92bAkuTEMwLCAlZWR4CisrCW1v dmwJJWVkeCwgLTE2KCVlYnAsJWVjeCw0KQorKwlhZGRsCSQxLCAlZWF4CisrIyBTVUNDOiAzIFsx MDAuMCVdIAorKwlqbXAJLkwzCisrIyBCTE9DSyA1IHNlcTozCisrIyBQUkVEOiAzCisrLkwyOgor Ky5MQkUyOgorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjE5CisrCS5sb2MgMSAxOSAw IGlzX3N0bXQgMQorKwltb3ZsCS0xNiglZWJwKSwgJWVheAorKwltb3ZsCS0xMiglZWJwKSwgJWVk eAorKwltb3ZsCSVlYXgsIC0yNCglZWJwKQorKwltb3ZsCSVlZHgsIC0yMCglZWJwKQorKwkjIGdk Yi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIwCisrCS5sb2MgMSAyMCAwCisrCW1vdmwJJDAsIDQo JWVzcCkKKysJbW92bAkkMCwgKCVlc3ApCisrIyBTVUNDOgorKwljYWxsCV9nZm9ydHJhbl9zdG9w X3N0cmluZworKwkuY2ZpX2VuZHByb2MKKysuTEZFMDoKKysJLnNpemUJTUFJTl9fLCAuLU1BSU5f XworKwkuZ2xvYmwJbWFpbgorKwkudHlwZQltYWluLCBAZnVuY3Rpb24KKyttYWluOgorKy5MRkIx OgorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIxCisrCS5sb2MgMSAyMSAwCisrCS5j Zmlfc3RhcnRwcm9jCisrIyBCTE9DSyAyIHNlcTowCisrIyBQUkVEOiBFTlRSWSAoRkFMTFRIUlUp CisrCXB1c2hsCSVlYnAKKysuTENGSTI6CisrCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAorKwkuY2Zp X29mZnNldCA1LCAtOAorKwltb3ZsCSVlc3AsICVlYnAKKysuTENGSTM6CisrCS5jZmlfZGVmX2Nm YV9yZWdpc3RlciA1CisrCWFuZGwJJC0xNiwgJWVzcAorKwlzdWJsCSQxNiwgJWVzcAorKwkjIGdk Yi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIxCisrCS5sb2MgMSAyMSAwCisrCW1vdmwJMTIoJWVi cCksICVlYXgKKysJbW92bAklZWF4LCA0KCVlc3ApCisrCW1vdmwJOCglZWJwKSwgJWVheAorKwlt b3ZsCSVlYXgsICglZXNwKQorKwljYWxsCV9nZm9ydHJhbl9zZXRfYXJncworKwltb3ZsCSRvcHRp b25zLjEuMTgyNCwgNCglZXNwKQorKwltb3ZsCSQ3LCAoJWVzcCkKKysJY2FsbAlfZ2ZvcnRyYW5f c2V0X29wdGlvbnMKKysJY2FsbAlNQUlOX18KKysJbW92bAkkMCwgJWVheAorKwlsZWF2ZQorKy5M Q0ZJNDoKKysJLmNmaV9yZXN0b3JlIDUKKysJLmNmaV9kZWZfY2ZhIDQsIDQKKysjIFNVQ0M6IEVY SVQgWzEwMC4wJV0gCisrCXJldAorKwkuY2ZpX2VuZHByb2MKKysuTEZFMToKKysJLnNpemUJbWFp biwgLi1tYWluCisrCS5zZWN0aW9uCS5yb2RhdGEKKysJLmFsaWduIDQKKysJLnR5cGUJb3B0aW9u cy4xLjE4MjQsIEBvYmplY3QKKysJLnNpemUJb3B0aW9ucy4xLjE4MjQsIDI4Cisrb3B0aW9ucy4x LjE4MjQ6CisrCS5sb25nCTY4CisrCS5sb25nCTEwMjMKKysJLmxvbmcJMAorKwkubG9uZwkwCisr CS5sb25nCTEKKysJLmxvbmcJMQorKwkubG9uZwkwCisrCS5hbGlnbiA0CisrLkxDMDoKKysJLmxv bmcJMTEwOTkxNzY5NgorKwkudGV4dAorKy5MZXRleHQwOgorKwkuc2VjdGlvbgkuZGVidWdfaW5m bywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2luZm8wOgorKwkubG9uZwkyZiAtIDFmCSMgTGVuZ3Ro IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKzE6CisrCS52YWx1ZQkweDIJIyBEV0FSRiB2ZXJz aW9uIG51bWJlcgorKwkubG9uZwkuTGRlYnVnX2FiYnJldjAJIyBPZmZzZXQgSW50byBBYmJyZXYu IFNlY3Rpb24KKysJLmJ5dGUJMHg0CSMgUG9pbnRlciBTaXplIChpbiBieXRlcykKKytkaWViOgku dWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3VuaXQpCisrCS5sb25nCS5M QVNGNQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEZvcnRyYW4gNC44LjAgMjAxMjEwMTUgKGV4cGVy aW1lbnRhbCkgLWZmaXhlZC1mb3JtIC1tMzIgLW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAt ZyAtZ2R3YXJmLTIgLWZpbnRyaW5zaWMtbW9kdWxlcy1wYXRoIC4uLi9nY2NoZWFkLXJvb3QvbGli L2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvNC44LjAvZmluY2x1ZGUiCisrCS5ieXRlCTB4 ZQkjIERXX0FUX2xhbmd1YWdlCisrCS5ieXRlCTB4MgkjIERXX0FUX2lkZW50aWZpZXJfY2FzZQor KwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYi CisrCS5sb25nCS5MQVNGNwkjIERXX0FUX2NvbXBfZGlyOiAiIgorKwkubG9uZwkuTHRleHQwCSMg RFdfQVRfbG93X3BjCisrCS5sb25nCS5MZXRleHQwCSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwku TGRlYnVnX2xpbmUwCSMgRFdfQVRfc3RtdF9saXN0CisrZGllMjY6CS51bGViMTI4IDB4MgkjIChE SUUgKDB4MjYpIERXX1RBR19zdWJwcm9ncmFtKQorKwkubG9uZwkuTEFTRjgJIyBEV19BVF9uYW1l OiAiTUFJTl9fIgorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2Fy cmF5LWJvdW5kcy5mKQorKwkuYnl0ZQkweDEwCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCS5M RkIwCSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MRkUwCSMgRFdfQVRfaGlnaF9wYworKwkubG9u ZwkuTExTVDAJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5ieXRlCTB4MQkjIERXX0FUX0dOVV9hbGxf dGFpbF9jYWxsX3NpdGVzCisrCS5ieXRlCTB4MQkjIERXX0FUX21haW5fc3VicHJvZ3JhbQorKwku Ynl0ZQkweDIJIyBEV19BVF9jYWxsaW5nX2NvbnZlbnRpb24KKysJLmxvbmcJZGllNjYgLSAuTGRl YnVnX2luZm8wCSMgRFdfQVRfc2libGluZworK2RpZTQwOgkudWxlYjEyOCAweDMJIyAoRElFICgw eDQwKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYmFyXDAiCSMgRFdfQVRfbmFtZQorKwku Ynl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mKQor KwkuYnl0ZQkweDExCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCWRpZTY2IC0gLkxkZWJ1Z19p bmZvMAkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyCSMgRFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJ MHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IC0yNAorK2RpZTRlOgkudWxlYjEyOCAweDMJ IyAoRElFICgweDRlKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiZm9vXDAiCSMgRFdfQVRf bmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2FycmF5LWJv dW5kcy5mKQorKwkuYnl0ZQkweDEwCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCWRpZTg4IC0g LkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyCSMgRFdfQVRfbG9jYXRpb24K KysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IC0zMgorK2RpZTVjOgkudWxl YjEyOCAweDQJIyAoRElFICgweDVjKSBEV19UQUdfbGV4aWNhbF9ibG9jaykKKysJLmxvbmcJLkxC QjIJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxCRTIJIyBEV19BVF9oaWdoX3BjCisrCS5ieXRl CTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MjYKKytkaWU2NjoJLnVsZWIxMjggMHg1CSMg KERJRSAoMHg2NikgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5sb25nCWRpZTgxIC0gLkxkZWJ1Z19p bmZvMAkjIERXX0FUX3R5cGUKKysJLmxvbmcJZGllN2EgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRf c2libGluZworK2RpZTZmOgkudWxlYjEyOCAweDYJIyAoRElFICgweDZmKSBEV19UQUdfc3VicmFu Z2VfdHlwZSkKKysJLmxvbmcJZGllN2EgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQorKyNp ZiAwCisrCS5sb25nCTB4ZmZmZmZmZmYJIyBEV19BVF9sb3dlcl9ib3VuZAorKwkuYnl0ZQkwCSMg RFdfQVRfdXBwZXJfYm91bmQKKysjZWxzZQorKwkucXVhZAkweGZmZmZmZmZlZmZmZmZmZmYJIyBE V19BVF9sb3dlcl9ib3VuZAorKwkucXVhZAkweGZmZmZmZmZmMDAwMDAwMDAJIyBEV19BVF91cHBl cl9ib3VuZAorKyNlbmRpZgorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDY2 CisrZGllN2E6CS51bGViMTI4IDB4NwkjIChESUUgKDB4N2EpIERXX1RBR19iYXNlX3R5cGUpCisr I2lmIDAKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrI2Vsc2UKKysJLmJ5dGUJMHg4 CSMgRFdfQVRfYnl0ZV9zaXplCisrI2VuZGlmCisrCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5n CisrCS5sb25nCS5MQVNGMAkjIERXX0FUX25hbWU6ICJpbnRlZ2VyKGtpbmQ9NCkiCisrZGllODE6 CS51bGViMTI4IDB4NwkjIChESUUgKDB4ODEpIERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4 NAkjIERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDQJIyBEV19BVF9lbmNvZGluZworKwkubG9u ZwkuTEFTRjEJIyBEV19BVF9uYW1lOiAicmVhbChraW5kPTQpIgorK2RpZTg4OgkudWxlYjEyOCAw eDUJIyAoRElFICgweDg4KSBEV19UQUdfYXJyYXlfdHlwZSkKKysJLmxvbmcJZGllODEgLSAuTGRl YnVnX2luZm8wCSMgRFdfQVRfdHlwZQorKwkubG9uZwlkaWU5OSAtIC5MZGVidWdfaW5mbzAJIyBE V19BVF9zaWJsaW5nCisrZGllOTE6CS51bGViMTI4IDB4OAkjIChESUUgKDB4OTEpIERXX1RBR19z dWJyYW5nZV90eXBlKQorKwkubG9uZwlkaWU3YSAtIC5MZGVidWdfaW5mbzAJIyBEV19BVF90eXBl CisrI2lmIDAKKysJLmJ5dGUJMAkjIERXX0FUX2xvd2VyX2JvdW5kCisrCS5ieXRlCTB4MQkjIERX X0FUX3VwcGVyX2JvdW5kCisrI2Vsc2UKKysJLnF1YWQJMHgxMDAwMDAwMDAJIyBEV19BVF9sb3dl cl9ib3VuZAorKwkucXVhZAkweDEwMDAwMDAwMQkjIERXX0FUX3VwcGVyX2JvdW5kCisrI2VuZGlm CisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4ODgKKytkaWU5OToJLnVsZWIx MjggMHg5CSMgKERJRSAoMHg5OSkgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERX X0FUX2V4dGVybmFsCisrCS5sb25nCS5MQVNGOQkjIERXX0FUX25hbWU6ICJtYWluIgorKwkuYnl0 ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mKQorKwku Ynl0ZQkweDE1CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCWRpZTdhIC0gLkxkZWJ1Z19pbmZv MAkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxGQjEJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxG RTEJIyBEV19BVF9oaWdoX3BjCisrCS5sb25nCS5MTFNUMQkjIERXX0FUX2ZyYW1lX2Jhc2UKKysJ LmJ5dGUJMHgxCSMgRFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMKKysJLmxvbmcJZGllZDQg LSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfc2libGluZworK2RpZWI2OgkudWxlYjEyOCAweGEJIyAo RElFICgweGI2KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmxvbmcJLkxBU0YyCSMgRFdf QVRfbmFtZTogImFyZ2MiCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmZvcnRy YW4vYXJyYXktYm91bmRzLmYpCisrCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxv bmcJZGllZDQgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19B VF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorK2Rp ZWM0OgkudWxlYjEyOCAweGEJIyAoRElFICgweGM0KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikK KysJLmxvbmcJLkxBU0YzCSMgRFdfQVRfbmFtZTogImFyZ3YiCisrCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAoZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYpCisrCS5ieXRlCTB4MTUJIyBE V19BVF9kZWNsX2xpbmUKKysJLmxvbmcJZGllZDkgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlw ZQorKwkuYnl0ZQkweDMJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJy ZWcKKysJLnNsZWIxMjggNAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorKwkuYnl0ZQkwCSMg ZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDk5CisrZGllZDQ6CS51bGViMTI4IDB4YgkjIChESUUg KDB4ZDQpIERXX1RBR19jb25zdF90eXBlKQorKwkubG9uZwlkaWU3YSAtIC5MZGVidWdfaW5mbzAJ IyBEV19BVF90eXBlCisrZGllZDk6CS51bGViMTI4IDB4YwkjIChESUUgKDB4ZDkpIERXX1RBR19w b2ludGVyX3R5cGUpCisrCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQorKwkubG9uZwlkaWVk ZiAtIC5MZGVidWdfaW5mbzAJIyBEV19BVF90eXBlCisrZGllZGY6CS51bGViMTI4IDB4NwkjIChE SUUgKDB4ZGYpIERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4MQkjIERXX0FUX2J5dGVfc2l6 ZQorKwkuYnl0ZQkweDgJIyBEV19BVF9lbmNvZGluZworKwkubG9uZwkuTEFTRjQJIyBEV19BVF9u YW1lOiAiY2hhcmFjdGVyKGtpbmQ9MSkiCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2Yg RElFIDB4YgorKzI6CisrCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisrLkxk ZWJ1Z19hYmJyZXYwOgorKwkudWxlYjEyOCAweDEJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4 IDB4MTEJIyAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KQorKwkuYnl0ZQkweDEJIyBEV19jaGls ZHJlbl95ZXMKKysJLnVsZWIxMjggMHgyNQkjIChEV19BVF9wcm9kdWNlcikKKysJLnVsZWIxMjgg MHhlCSMgKERXX0ZPUk1fc3RycCkKKysJLnVsZWIxMjggMHgxMwkjIChEV19BVF9sYW5ndWFnZSkK KysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDIJIyAoRFdf QVRfaWRlbnRpZmllcl9jYXNlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJ LnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0 cnApCisrCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCisrCS51bGViMTI4IDB4ZQkj IChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxl YjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hf cGMpCisrCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MTAJIyAo RFdfQVRfc3RtdF9saXN0KQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKysJLmJ5 dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIx MjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19jaGls ZHJlbl95ZXMKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkj IChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwku dWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9k ZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAw eDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJ LnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9S TV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4 IDB4NgkjIChEV19GT1JNX2RhdGE0KQorKwkudWxlYjEyOCAweDIxMTYJIyAoRFdfQVRfR05VX2Fs bF90YWlsX2NhbGxfc2l0ZXMpCisrCS51bGViMTI4IDB4YwkjIChEV19GT1JNX2ZsYWcpCisrCS51 bGViMTI4IDB4NmEJIyAoRFdfQVRfbWFpbl9zdWJwcm9ncmFtKQorKwkudWxlYjEyOCAweGMJIyAo RFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDM2CSMgKERXX0FUX2NhbGxpbmdfY29udmVudGlv bikKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4MQkjIChE V19BVF9zaWJsaW5nKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJ MAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MwkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjgg MHgzNAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25v CisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9S TV9zdHJpbmcpCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xp bmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMg KERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEy OCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisrCS51bGViMTI4IDB4YQkjIChEV19GT1JNX2Jsb2Nr MSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkK KysJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2spCisrCS5ieXRlCTAJ IyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVs ZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdo X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkuYnl0ZQkwCisrCS5ieXRl CTAKKysJLnVsZWIxMjggMHg1CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDEJIyAoVEFH OiBEV19UQUdfYXJyYXlfdHlwZSkKKysJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisrCS51 bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisrCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQorKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NgkjIChh YmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyMQkjIChUQUc6IERXX1RBR19zdWJyYW5nZV90eXBl KQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHg0OQkjIChEV19BVF90 eXBlKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysjaWYgMAorKwkudWxlYjEy OCAweDIyCSMgKERXX0FUX2xvd2VyX2JvdW5kKQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9k YXRhNCkKKysJLnVsZWIxMjggMHgyZgkjIChEV19BVF91cHBlcl9ib3VuZCkKKysJLnVsZWIxMjgg MHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrI2Vsc2UKKysJLnVsZWIxMjggMHgyMgkjIChEV19BVF9s b3dlcl9ib3VuZCkKKysJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCisrCS51bGViMTI4 IDB4MmYJIyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2Rh dGE4KQorKyNlbmRpZgorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg3CSMgKGFi YnJldiBjb2RlKQorKwkudWxlYjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKKysJ LmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3Np emUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMg KERXX0FUX2VuY29kaW5nKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVs ZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnAp CisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDgJIyAoYWJicmV2IGNvZGUpCisr CS51bGViMTI4IDB4MjEJIyAoVEFHOiBEV19UQUdfc3VicmFuZ2VfdHlwZSkKKysJLmJ5dGUJMAkj IERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIx MjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrI2lmIDAKKysJLnVsZWIxMjggMHgyMgkjIChEV19B VF9sb3dlcl9ib3VuZCkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGVi MTI4IDB4MmYJIyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JN X2RhdGExKQorKyNlbHNlCisrCS51bGViMTI4IDB4MjIJIyAoRFdfQVRfbG93ZXJfYm91bmQpCisr CS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQorKwkudWxlYjEyOCAweDJmCSMgKERXX0FU X3VwcGVyX2JvdW5kKQorKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRhOCkKKysjZW5kaWYK KysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4OQkjIChhYmJyZXYgY29kZSkKKysJ LnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBE V19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKKysJLnVs ZWIxMjggMHhjCSMgKERXX0ZPUk1fZmxhZykKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUp CisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4M2EJIyAoRFdf QVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIx MjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2Rh dGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAo RFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIx MjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3Bj KQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERX X0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2RhdGE0KQorKwkudWxl YjEyOCAweDIxMTYJIyAoRFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMpCisrCS51bGViMTI4 IDB4YwkjIChEV19GT1JNX2ZsYWcpCisrCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQor KwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisr CS51bGViMTI4IDB4YQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHg1CSMgKFRBRzogRFdf VEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxl YjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkK KysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4IDB4YgkjIChE V19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKKysJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlw ZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MgkjIChE V19BVF9sb2NhdGlvbikKKysJLnVsZWIxMjggMHhhCSMgKERXX0ZPUk1fYmxvY2sxKQorKwkuYnl0 ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhiCSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEy OCAweDI2CSMgKFRBRzogRFdfVEFHX2NvbnN0X3R5cGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJl bl9ubworKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAo RFdfRk9STV9yZWY0KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhjCSMgKGFi YnJldiBjb2RlKQorKwkudWxlYjEyOCAweGYJIyAoVEFHOiBEV19UQUdfcG9pbnRlcl90eXBlKQor KwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVf c2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJ IyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRl CTAKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS5zZWN0aW9uCS5kZWJ1Z19sb2MsIiIsQHByb2di aXRzCisrLkxkZWJ1Z19sb2MwOgorKy5MTFNUMDoKKysJLmxvbmcJLkxGQjAtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJLkxDRkkwLS5MdGV4 dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QwKQorKwkudmFsdWUJMHgyCSMg TG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwku c2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBh ZGRyZXNzICgqLkxMU1QwKQorKwkubG9uZwkuTENGSTEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3Qg ZW5kIGFkZHJlc3MgKCouTExTVDApCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9u IHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJ LkxDRkkxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCisr CS5sb25nCS5MRkUwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Qw KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzUJ IyBEV19PUF9icmVnNQorKwkuc2xlYjEyOCA4CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRl cm1pbmF0b3IgYmVnaW4gKCouTExTVDApCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1p bmF0b3IgZW5kICgqLkxMU1QwKQorKy5MTFNUMToKKysJLmxvbmcJLkxGQjEtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJLkxDRkkyLS5MdGV4 dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxKQorKwkudmFsdWUJMHgyCSMg TG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwku c2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBh ZGRyZXNzICgqLkxMU1QxKQorKwkubG9uZwkuTENGSTMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3Qg ZW5kIGFkZHJlc3MgKCouTExTVDEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9u IHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJ LkxDRkkzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEpCisr CS5sb25nCS5MQ0ZJNC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNU MSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1 CSMgRFdfT1BfYnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTQtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJLkxGRTEtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEpCisrCS52YWx1ZQkweDIJIyBM b2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5z bGViMTI4IDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5M TFNUMSkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDEp CisrCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBwcm9nYml0cworKwkubG9uZwkweDFjCSMg TGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8KKysJLnZhbHVlCTB4MgkjIERXQVJGIFZlcnNp b24KKysJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBvZiBDb21waWxhdGlvbiBVbml0IElu Zm8KKysJLmJ5dGUJMHg0CSMgU2l6ZSBvZiBBZGRyZXNzCisrCS5ieXRlCTAJIyBTaXplIG9mIFNl Z21lbnQgRGVzY3JpcHRvcgorKwkudmFsdWUJMAkjIFBhZCB0byA4IGJ5dGUgYm91bmRhcnkKKysJ LnZhbHVlCTAKKysJLmxvbmcJLkx0ZXh0MAkjIEFkZHJlc3MKKysJLmxvbmcJLkxldGV4dDAtLkx0 ZXh0MAkjIExlbmd0aAorKwkubG9uZwkwCisrCS5sb25nCTAKKysJLnNlY3Rpb24JLmRlYnVnX2xp bmUsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19saW5lMDoKKysJLnNlY3Rpb24JLmRlYnVnX3N0ciwi TVMiLEBwcm9nYml0cywxCisrLkxBU0Y0OgorKwkuc3RyaW5nCSJjaGFyYWN0ZXIoa2luZD0xKSIK KysuTEFTRjU6CisrCS5zdHJpbmcJIkdOVSBGb3J0cmFuIDQuOC4wIDIwMTIxMDE1IChleHBlcmlt ZW50YWwpIC1mZml4ZWQtZm9ybSAtbTMyIC1tdHVuZT1nZW5lcmljIC1tYXJjaD14ODYtNjQgLWcg LWdkd2FyZi0yIC1maW50cmluc2ljLW1vZHVsZXMtcGF0aCAuLi4vZ2NjaGVhZC1yb290L2xpYi9n Y2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzQuOC4wL2ZpbmNsdWRlIgorKy5MQVNGNzoKKysJ LnN0cmluZwkiIgorKy5MQVNGMDoKKysjaWYgMAorKwkuc3RyaW5nCSJpbnRlZ2VyKGtpbmQ9NCki CisrI2Vsc2UKKysJLnN0cmluZwkiaW50ZWdlcihraW5kPTgpIgorKyNlbmRpZgorKy5MQVNGOToK KysJLnN0cmluZwkibWFpbiIKKysuTEFTRjg6CisrCS5zdHJpbmcJIk1BSU5fXyIKKysuTEFTRjY6 CisrCS5zdHJpbmcJImdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mIgorKy5MQVNGMjoKKysJLnN0 cmluZwkiYXJnYyIKKysuTEFTRjE6CisrCS5zdHJpbmcJInJlYWwoa2luZD00KSIKKysuTEFTRjM6 CisrCS5zdHJpbmcJImFyZ3YiCisrCS5pZGVudAkiR0NDOiAoR05VKSA0LjguMCAyMDEyMTAxNSAo ZXhwZXJpbWVudGFsKSIKKysJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwor CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaCBiL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZmEzYTZiZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yNW9mMjUucGF0Y2gKQEAgLTAsMCArMSwxNTYgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDEyLTA4L21zZzAwNTYyLmh0bWwKK1N1YmplY3Q6IFtQQVRDSF0gRXhw YW5kIGZvcnRyYW4gYXJyYXkgYm91bmRzIHNpemVzIHRvIExPTkdFU1QKKworCistLU1QXy85MEo3 YmNrMmZxRHlTRVg5SmtadGFxTAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVT LUFTQ0lJCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CitDb250ZW50LURpc3Bvc2l0 aW9uOiBpbmxpbmUKKworSGksCisKK1JhbmdlIGJvdW5kcyBmb3IgYSBnZGIgdHlwZSBjYW4gaGF2 ZSBMT05HRVNUIHZhbHVlcyBmb3IgbG93IGFuZCBoaWdoCitib3VuZHMuIEZvcnRyYW4gcmFuZ2Ug Ym91bmRzIGZ1bmN0aW9ucyBob3dldmVyIHVzZSBvbmx5IGludC4gVGhlIGxhcmdlcgorcmFuZ2Vz IGRvbid0IGNvbXBpbGUgYnkgZGVmYXVsdCBvbiBnY2MsIGJ1dCBpdCBpcyBwb3NzaWJsZSB0byBv dmVycmlkZQordGhlIGNoZWNrIGluIHRoZSBjb21waWxlciBieSB1c2luZyAtZm5vLXJhbmdlLWNo ZWNrLiBBcyBhIHJlc3VsdCwgdGhpcworY2hlY2sgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgd2UgZG9u J3QgcHJpbnQganVuayBpbiBjYXNlIG9mIGFuIG92ZXJmbG93LgorCitBdHRhY2hlZCBwYXRjaCBk b2VzIHRoaXMgZXhwYW5zaW9uIGFuZCBhbHNvIGluY2x1ZGVzIGEgdGVzdCBjYXNlIHRoYXQKK3Zl cmlmaWVzIHRoYXQgdGhlIHByb2JsZW0gaXMgZml4ZWQuIEkgaGF2ZSBhbHNvIHZlcmlmaWVkIG9u IHg4Nl82NCB0aGF0Cit0aGlzIHBhdGNoIGRvZXMgbm90IGNhdXNlIGFueSByZWdyZXNzaW9ucy4K KworUmVnYXJkcywKK1NpZGRoZXNoCisKK2dkYi9DaGFuZ2VMb2c6CisKKwkqIGYtbGFuZy5oIChm NzdfZ2V0X3VwcGVyYm91bmQpOiBSZXR1cm4gTE9OR0VTVC4KKwkoZjc3X2dldF9sb3dlcmJvdW5k KTogTGlrZXdpc2UuCisJKiBmLXR5cGVwcmludC5jIChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZm aXgpOiBFeHBhbmQKKwlVUFBFUl9CT1VORCBhbmQgTE9XRVJfQk9VTkQgdG8gTE9OR0VTVC4gIFVz ZSBwbG9uZ2VzdCB0byBmb3JtYXQKKwlwcmludCB0aGVtLgorCShmX3R5cGVfcHJpbnRfYmFzZSk6 IEV4cGFuZCBVUFBFUl9CT1VORCB0byBMT05HRVNULiAgVXNlCisJcGxvbmdlc3QgdG8gZm9ybWF0 IHByaW50IGl0LgorCSogZi12YWxwcmludC5jIChmNzdfZ2V0X2xvd2VyYm91bmQpOiBSZXR1cm4g TE9OR0VTVC4KKwkoZjc3X2dldF91cHBlcmJvdW5kKTogTGlrZXdpc2UuCisJKGY3N19nZXRfZHlu YW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlKTogRXhwYW5kIFVQUEVSX0JPVU5ELAorCUxPV0VSX0JP VU5EIHRvIExPTkdFU1QuCisJKGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsKTogTGlr ZXdpc2UuCisKK3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisKKwkqIGdkYi5mb3J0cmFuL2FycmF5LWJv dW5kcy5leHA6IE5ldyB0ZXN0IGNhc2UuCisJKiBnZGIuZm9ydHJhbi9hcnJheS1ib3VuZHMuZjog TmV3IHRlc3QgY2FzZS4KKworLS1NUF8vOTBKN2JjazJmcUR5U0VYOUprWnRhcUwKK0NvbnRlbnQt VHlwZTogdGV4dC94LXBhdGNoCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CitDb250 ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mNzctYm91bmRzLnBhdGNoCisK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtbGFuZy5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTItMTEtMDcgMjI6MTI6Mzku MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9mLWxhbmcuaAkyMDEy LTExLTA3IDIyOjUyOjAyLjY4ODYzMjQ5OCArMDEwMAorQEAgLTY2LDkgKzY2LDkgQEAgZW51bSBm OTBfcmFuZ2VfdHlwZQorIGV4dGVybiBjaGFyICpyZWFsX21haW5fbmFtZTsJLyogTmFtZSBvZiBt YWluIGZ1bmN0aW9uLiAgKi8KKyBleHRlcm4gaW50IHJlYWxfbWFpbl9jX3ZhbHVlOwkvKiBDX3Zh bHVlIGZpZWxkIG9mIG1haW4gZnVuY3Rpb24uICAqLworIAorLWV4dGVybiBpbnQgZjc3X2dldF91 cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqKTsKKytleHRlcm4gTE9OR0VTVCBmNzdfZ2V0X3VwcGVy Ym91bmQgKHN0cnVjdCB0eXBlICopOworIAorLWV4dGVybiBpbnQgZjc3X2dldF9sb3dlcmJvdW5k IChzdHJ1Y3QgdHlwZSAqKTsKKytleHRlcm4gTE9OR0VTVCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0 cnVjdCB0eXBlICopOworIAorIGV4dGVybiB2b2lkIGY3N19nZXRfZHluYW1pY19hcnJheV9sZW5n dGggKHN0cnVjdCB0eXBlICopOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZi10 eXBlcHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9m LXR5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6MDA6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9mLXR5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6NTI6MDIuNjg5 NjMyNDk3ICswMTAwCitAQCAtMTgyLDcgKzE4Miw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1 ZmZpeCAoc3RydWN0IHR5cGUKKyAJCQkgICAgIGludCBzaG93LCBpbnQgcGFzc2VkX2FfcHRyLCBp bnQgZGVtYW5nbGVkX2FyZ3MsCisgCQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xldmVs KQorIHsKKy0gIGludCB1cHBlcl9ib3VuZCwgbG93ZXJfYm91bmQ7CisrICBMT05HRVNUIHVwcGVy X2JvdW5kLCBsb3dlcl9ib3VuZDsKKyAKKyAgIC8qIE5vIHN0YXRpYyB2YXJpYWJsZXMgYXJlIHBl cm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBvY2N1ciBkdXJpbmcKKyAgICAgIGV4ZWN1dGlv biBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KK0BAIC0yMTIsNyArMjEyLDcgQEAgZl90eXBlX3ByaW50 X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorIAorICAgICAgIGxvd2VyX2JvdW5kID0gZjc3 X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKKyAgICAgICBpZiAobG93ZXJfYm91bmQgIT0gMSkJLyog Tm90IHRoZSBkZWZhdWx0LiAgKi8KKy0JZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6Iiwg bG93ZXJfYm91bmQpOworKwlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlczoiLCBwbG9uZ2Vz dCAobG93ZXJfYm91bmQpKTsKKyAKKyAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCwgaWYgd2UgaGF2 ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCisgICAgICAgICAgcHJpbnQgb3V0IGEgd2Fybmlu ZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KK0BAIC0yMjIsNyArMjIyLDcg QEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorICAgICAgIGVsc2UK KyAJeworIAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0JICBm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZCIsIHVwcGVyX2JvdW5kKTsKKysJICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3VuZCkpOworIAl9Cisg CisgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVf Q09ERV9BUlJBWSkKK0BAIC0yOTEsNyArMjkxLDcgQEAgdm9pZAorIGZfdHlwZV9wcmludF9iYXNl IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3csCisg CQkgICBpbnQgbGV2ZWwpCisgeworLSAgaW50IHVwcGVyX2JvdW5kOworKyAgTE9OR0VTVCB1cHBl cl9ib3VuZDsKKyAgIGludCBpbmRleDsKKyAKKyAgIFFVSVQ7CitAQCAtMzczLDcgKzM3Myw3IEBA IGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3QKKyAgICAgICBlbHNlCisg CXsKKyAJICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CistCSAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiY2hhcmFjdGVyKiVkIiwgdXBwZXJfYm91bmQpOworKwkg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgImNoYXJhY3RlciolcyIsIHBsb25nZXN0ICh1cHBl cl9ib3VuZCkpOworIAl9CisgICAgICAgYnJlYWs7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9mLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9mLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjo1 MjoyMS44ODg2MDQ5MDcgKzAxMDAKK0BAIC01Nyw3ICs1Nyw3IEBAIExPTkdFU1QgZjc3X2FycmF5 X29mZnNldF90YmxbTUFYX0ZPUlRSQU4KKyAKKyAjZGVmaW5lIEY3N19ESU1fQllURV9TVFJJREUo bikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzBdKQorIAorLWludAorK0xPTkdFU1QKKyBmNzdf Z2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIGZfb2JqZWN0X2FkZHJl c3NfZGF0YV92YWxpZF9vcl9lcnJvciAodHlwZSk7CitAQCAtNjgsNyArNjgsNyBAQCBmNzdfZ2V0 X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorICAgcmV0dXJuIFRZUEVfQVJSQVlfTE9X RVJfQk9VTkRfVkFMVUUgKHR5cGUpOworIH0KKyAKKy1pbnQKKytMT05HRVNUCisgZjc3X2dldF91 cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBmX29iamVjdF9hZGRyZXNzX2Rh dGFfdmFsaWRfb3JfZXJyb3IgKHR5cGUpOworQEAgLTkyLDggKzkyLDggQEAgZjc3X2dldF91cHBl cmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyBzdGF0aWMgdm9pZAorIGY3N19nZXRfZHluYW1p Y19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CistICBpbnQgdXBw ZXJfYm91bmQgPSAtMTsKKy0gIGludCBsb3dlcl9ib3VuZCA9IDE7CisrICBMT05HRVNUIHVwcGVy X2JvdW5kID0gLTE7CisrICBMT05HRVNUIGxvd2VyX2JvdW5kID0gMTsKKyAKKyAgIC8qIFJlY3Vy c2l2ZWx5IGdvIGFsbCB0aGUgd2F5IGRvd24gaW50byBhIHBvc3NpYmx5IG11bHRpLWRpbWVuc2lv bmFsCisgICAgICBGNzcgYXJyYXkgYW5kIGdldCB0aGUgYm91bmRzLiAgRm9yIHNpbXBsZSBhcnJh eXMsIHRoaXMgaXMgcHJldHR5CitAQCAtMTI4LDcgKzEyOCw3IEBAIGY3N19jcmVhdGVfYXJyYXlw cmludF9vZmZzZXRfdGJsIChzdHJ1Y3QKKyAgIHN0cnVjdCB0eXBlICp0bXBfdHlwZTsKKyAgIExP TkdFU1QgZWx0bGVuOworICAgaW50IG5kaW1lbiA9IDE7CistICBpbnQgdXBwZXIsIGxvd2VyOwor KyAgTE9OR0VTVCB1cHBlciwgbG93ZXI7CisgCisgICB0bXBfdHlwZSA9IHR5cGU7CisgCgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaCBiL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMjBlOGU1MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy1sYXp5dmFsdWUucGF0Y2gKQEAgLTAsMCArMSw0MjUgQEAKKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYtbTY0L2dkYi92YWx1ZS5jLW9yaWcJMjAxMi0xMS0wOSAxNzowODo1Mi4xMzc0MDYxMTggKzAx MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYtbTY0L2dkYi92YWx1ZS5jCTIwMTItMTEtMDkgMTc6 MzI6MzguMzI0MTk5MjMwICswMTAwCitAQCAtNjYzLDcgKzY2Myw2IEBAIGFsbG9jYXRlX3ZhbHVl X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQorICAgICAgZGVzY3JpcHRpb24gY29ycmVjdGx5LiAg Ki8KKyAgIGNoZWNrX3R5cGVkZWYgKHR5cGUpOworIAorLSAgdWxvbmdlc3RfZml0c19ob3N0X29y X2Vycm9yIChUWVBFX0xFTkdUSCAodHlwZSkpOworICAgdmFsID0gKHN0cnVjdCB2YWx1ZSAqKSB4 emFsbG9jIChzaXplb2YgKHN0cnVjdCB2YWx1ZSkpOworICAgdmFsLT5jb250ZW50cyA9IE5VTEw7 CisgICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOworLS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDEx OjA4OjEzLjIwMjMyODIzOSArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi1tNjQtdGVzdC9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMuZXhwCTIwMTItMTEtMDkgMTg6MTM6 NTYuMjg2NTg3OTk0ICswMTAwCitAQCAtMCwwICsxLDU5IEBACisrIyBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyMgQ29weXJpZ2h0IDIwMTIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlIC5jIGxvbmdlc3QtdHlwZXMtNjRiaXQuUworKwor K3Byb2MgdGVzdCB7IG5hbWUgfSB7IHdpdGhfdGVzdF9wcmVmaXggJG5hbWUgeworKyAgICAjIDY0 LWJpdCBhcnJheSBzaXplIHNob3VsZCBub3Qgb3ZlcmZsb3cKKysgICAgZ2RiX3Rlc3QgInByaW50 ICZmLT5idWYiIHs9IFwoY2hhciBcKFwqXClcWzEwOTk0OTQ4NTA1NjBcXVwpIDB4MH0KKysKKysg ICAgIyBUaGUgb2Zmc2V0IHNob3VsZCBub3Qgb3ZlcmZsb3cKKysgICAgZ2RiX3Rlc3QgInByaW50 ICZmLT5idWYyIiB7PSBcKGNoYXIgXChcKlwpXFsyXF1cKSAweGZmZmYwMDAwMDB9CisrfX0KKysK KysKKysjIFRlc3QgNjQtYml0IGZpbGUgZmlyc3QgYXMgaXQgaXMgbm90IGNvbXBpbGVkIHNvIGl0 cyBjb21waWxhdGlvbiBuZXZlciBmYWlscy4KKysKKytzZXQgZmlsZTY0Yml0YnoydXUgJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS02NGJpdC5iejIudXUKKytzZXQgZmlsZTY0Yml0ICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tNjRiaXQKKysKKytpZiB7W2NhdGNoICJzeXN0 ZW0gXCJ1dWRlY29kZSAtbyAtICR7ZmlsZTY0Yml0YnoydXV9IHwgYnppcDIgLWRjID4ke2ZpbGU2 NGJpdH1cIiJdICE9IDB9IHsKKysgICAgdW50ZXN0ZWQgImZhaWxlZCB1dWRlY29kZSBvciBiemlw MiIKKysgICAgcmV0dXJuIC0xCisrfQorK2ZpbGUgc3RhdCAke2ZpbGU2NGJpdH0gZmlsZTY0Yml0 c3RhdAorK2lmIHskZmlsZTY0Yml0c3RhdChzaXplKSAhPSA5NTAxfSB7CisrICAgIHVudGVzdGVk ICJ1dWRlY29kZSBvciBiemlwMiBwcm9kdWNlIGludmFsaWQgcmVzdWx0IgorKyAgICByZXR1cm4g LTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAke2ZpbGU2NGJpdH0KKysKKysjaWYgeyBbcHJlcGFy ZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0tNjRiaXQgJHNyY2ZpbGUy IHtub2RlYnVnfV0gfSB7CisrIyAgICByZXR1cm4gLTEKKysjfQorKworK3Rlc3QgIjY0Yml0Igor KworKworKyMgQW5kIGhlcmUgaXMgdGhlIG5hdGl2ZSBidWlsZCB0ZXN0LgorKworK2lmIHsgW3By ZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICRzcmNmaWxlIHtk ZWJ1ZyBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrdGVzdCAibmF0aXZlIgor LS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDExOjA4OjEzLjIwMjMyODIzOSArMDIwMAorKysrIC4v Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLmMJMjAxMi0xMS0wOSAxNzowODo1 MS4zNzQ0MDYzNDQgKzAxMDAKK0BAIC0wLDAgKzEsMjggQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDEyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKysKKytzdHJ1Y3QgZm9vCisreworKyAgY2hhciBidWZbMHhmZmZm MDAwMDAwXTsKKysgIGNoYXIgYnVmMlsyXTsKKyt9ICpmOworKworK2ludAorK21haW4gKHZvaWQp CisreworKyAgcmV0dXJuIDA7CisrfQorLS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDExOjA4OjEz LjIwMjMyODIzOSArMDIwMAorKysrIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5 cGVzLTY0Yml0LlMJMjAxMi0xMS0wOSAxNzo1MTozNy41OTc4NDYxMzAgKzAxMDAKK0BAIC0wLDAg KzEsMjQ5IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrCS5m aWxlCSJsb25nZXN0LXR5cGVzLTY0Yml0LmMiCisrCS50ZXh0CisrLkx0ZXh0MDoKKysJLmdsb2Js IG1haW4KKyttYWluOgorKwkuY29tbQlmLDgsOAorKy5MZXRleHQwOgorKwkuZmlsZSAxICJnZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMiCisrCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBw cm9nYml0cworKy5MZGVidWdfaW5mbzA6CisrCS40Ynl0ZQkweDlhCS8qIExlbmd0aCBvZiBDb21w aWxhdGlvbiBVbml0IEluZm8gKi8KKysJLjJieXRlCTB4MgkvKiBEV0FSRiB2ZXJzaW9uIG51bWJl ciAqLworKwkuNGJ5dGUJLkxkZWJ1Z19hYmJyZXYwCS8qIE9mZnNldCBJbnRvIEFiYnJldi4gU2Vj dGlvbiAqLworKwkuYnl0ZQkweDgJLyogUG9pbnRlciBTaXplIChpbiBieXRlcykgKi8KKysJLnVs ZWIxMjggMHgxCS8qIChESUUgKDB4YikgRFdfVEFHX2NvbXBpbGVfdW5pdCkgKi8KKysJLjRieXRl CS5MQVNGMwkvKiBEV19BVF9wcm9kdWNlcjogIkdOVSBDIDQuNy4zIDIwMTIxMTA5IChwcmVyZWxl YXNlKSIgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICovCisrCS40Ynl0ZQkuTEFT RjQJLyogRFdfQVRfbmFtZTogImdkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYyIgKi8KKysJ LjRieXRlCS5MQVNGNQkvKiBEV19BVF9jb21wX2RpcjogIiIgKi8KKysJLjRieXRlCS5MZGVidWdf bGluZTAJLyogRFdfQVRfc3RtdF9saXN0ICovCisrCS51bGViMTI4IDB4MgkvKiAoRElFICgweDFk KSBEV19UQUdfc3RydWN0dXJlX3R5cGUpICovCisrCS5hc2NpaSAiZm9vXDAiCS8qIERXX0FUX25h bWUgKi8KKysJLjRieXRlCTB4ZmYwMDAwMDIJLyogRFdfQVRfYnl0ZV9zaXplICovCisrCS5ieXRl CTB4MQkvKiBEV19BVF9kZWNsX2ZpbGUgKGdkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYykg Ki8KKysJLmJ5dGUJMHgxMgkvKiBEV19BVF9kZWNsX2xpbmUgKi8KKysJLjRieXRlCTB4NGUJLyog RFdfQVRfc2libGluZyAqLworKwkudWxlYjEyOCAweDMJLyogKERJRSAoMHgyYykgRFdfVEFHX21l bWJlcikgKi8KKysJLmFzY2lpICJidWZcMCIJLyogRFdfQVRfbmFtZSAqLworKwkuYnl0ZQkweDEJ LyogRFdfQVRfZGVjbF9maWxlIChnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMpICovCisr CS5ieXRlCTB4MTQJLyogRFdfQVRfZGVjbF9saW5lICovCisrCS40Ynl0ZQkweDRlCS8qIERXX0FU X3R5cGUgKi8KKysJLmJ5dGUJMHgyCS8qIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uICovCisr CS5ieXRlCTB4MjMJLyogRFdfT1BfcGx1c191Y29uc3QgKi8KKysJLnVsZWIxMjggMAorKwkudWxl YjEyOCAweDQJLyogKERJRSAoMHgzYSkgRFdfVEFHX21lbWJlcikgKi8KKysJLjRieXRlCS5MQVNG MAkvKiBEV19BVF9uYW1lOiAiYnVmMiIgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2RlY2xfZmls ZSAoZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jKSAqLworKwkuYnl0ZQkweDE1CS8qIERX X0FUX2RlY2xfbGluZSAqLworKwkuNGJ5dGUJMHg3MwkvKiBEV19BVF90eXBlICovCisrCS5ieXRl CTB4NwkvKiBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiAqLworKwkuYnl0ZQkweDIzCS8qIERX X09QX3BsdXNfdWNvbnN0ICovCisrCS51bGViMTI4IDB4ZmZmZjAwMDAwMAorKwkuYnl0ZQkwCS8q IGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxZCAqLworKwkudWxlYjEyOCAweDUJLyogKERJRSAo MHg0ZSkgRFdfVEFHX2FycmF5X3R5cGUpICovCisrCS40Ynl0ZQkweDZjCS8qIERXX0FUX3R5cGUg Ki8KKysJLjRieXRlCTB4NjUJLyogRFdfQVRfc2libGluZyAqLworKwkudWxlYjEyOCAweDYJLyog KERJRSAoMHg1NykgRFdfVEFHX3N1YnJhbmdlX3R5cGUpICovCisrCS40Ynl0ZQkweDY1CS8qIERX X0FUX3R5cGUgKi8KKysJLnF1YWQJMHhmZmZlZmZmZmZmCS8qIERXX0FUX3VwcGVyX2JvdW5kICov CisrCS5ieXRlCTAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDRlICovCisrCS51bGViMTI4 IDB4NwkvKiAoRElFICgweDY1KSBEV19UQUdfYmFzZV90eXBlKSAqLworKwkuYnl0ZQkweDgJLyog RFdfQVRfYnl0ZV9zaXplICovCisrCS5ieXRlCTB4NwkvKiBEV19BVF9lbmNvZGluZyAqLworKwku NGJ5dGUJLkxBU0YxCS8qIERXX0FUX25hbWU6ICJzaXpldHlwZSIgKi8KKysJLnVsZWIxMjggMHg3 CS8qIChESUUgKDB4NmMpIERXX1RBR19iYXNlX3R5cGUpICovCisrCS5ieXRlCTB4MQkvKiBEV19B VF9ieXRlX3NpemUgKi8KKysJLmJ5dGUJMHg2CS8qIERXX0FUX2VuY29kaW5nICovCisrCS40Ynl0 ZQkuTEFTRjIJLyogRFdfQVRfbmFtZTogImNoYXIiICovCisrCS51bGViMTI4IDB4NQkvKiAoRElF ICgweDczKSBEV19UQUdfYXJyYXlfdHlwZSkgKi8KKysJLjRieXRlCTB4NmMJLyogRFdfQVRfdHlw ZSAqLworKwkuNGJ5dGUJMHg4MwkvKiBEV19BVF9zaWJsaW5nICovCisrCS51bGViMTI4IDB4OAkv KiAoRElFICgweDdjKSBEV19UQUdfc3VicmFuZ2VfdHlwZSkgKi8KKysJLjRieXRlCTB4NjUJLyog RFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDEJLyogRFdfQVRfdXBwZXJfYm91bmQgKi8KKysJLmJ5 dGUJMAkvKiBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NzMgKi8KKysJLnVsZWIxMjggMHg5CS8q IChESUUgKDB4ODMpIERXX1RBR192YXJpYWJsZSkgKi8KKysJLmFzY2lpICJmXDAiCS8qIERXX0FU X25hbWUgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmJhc2UvbG9uZ2Vz dC10eXBlcy02NGJpdC5jKSAqLworKwkuYnl0ZQkweDE2CS8qIERXX0FUX2RlY2xfbGluZSAqLwor KwkuNGJ5dGUJMHg5NwkvKiBEV19BVF90eXBlICovCisrCS5ieXRlCTB4MQkvKiBEV19BVF9leHRl cm5hbCAqLworKwkuYnl0ZQkweDkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysJLmJ5dGUJMHgzCS8q IERXX09QX2FkZHIgKi8KKysJLnF1YWQJZgorKwkudWxlYjEyOCAweGEJLyogKERJRSAoMHg5Nykg RFdfVEFHX3BvaW50ZXJfdHlwZSkgKi8KKysJLmJ5dGUJMHg4CS8qIERXX0FUX2J5dGVfc2l6ZSAq LworKwkuNGJ5dGUJMHgxZAkvKiBEV19BVF90eXBlICovCisrCS5ieXRlCTAJLyogZW5kIG9mIGNo aWxkcmVuIG9mIERJRSAweGIgKi8KKysJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2Jp dHMKKysuTGRlYnVnX2FiYnJldjA6CisrCS51bGViMTI4IDB4MQkvKiAoYWJicmV2IGNvZGUpICov CisrCS51bGViMTI4IDB4MTEJLyogKFRBRzogRFdfVEFHX2NvbXBpbGVfdW5pdCkgKi8KKysJLmJ5 dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDI1CS8qIChEV19BVF9w cm9kdWNlcikgKi8KKysJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisrCS51bGVi MTI4IDB4MTMJLyogKERXX0FUX2xhbmd1YWdlKSAqLworKwkudWxlYjEyOCAweGIJLyogKERXX0ZP Uk1fZGF0YTEpICovCisrCS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkgKi8KKysJLnVsZWIx MjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisrCS51bGViMTI4IDB4MWIJLyogKERXX0FUX2Nv bXBfZGlyKSAqLworKwkudWxlYjEyOCAweGUJLyogKERXX0ZPUk1fc3RycCkgKi8KKysJLnVsZWIx MjggMHgxMAkvKiAoRFdfQVRfc3RtdF9saXN0KSAqLworKwkudWxlYjEyOCAweDYJLyogKERXX0ZP Uk1fZGF0YTQpICovCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDIJLyogKGFi YnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChUQUc6IERXX1RBR19zdHJ1Y3R1cmVf dHlwZSkgKi8KKysJLmJ5dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAw eDMJLyogKERXX0FUX25hbWUpICovCisrCS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcp ICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfQVRfYnl0ZV9zaXplKSAqLworKwkudWxlYjEyOCAw eDYJLyogKERXX0ZPUk1fZGF0YTQpICovCisrCS51bGViMTI4IDB4M2EJLyogKERXX0FUX2RlY2xf ZmlsZSkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEy OCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9S TV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgxCS8qIChEV19BVF9zaWJsaW5nKSAqLworKwkudWxl YjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwku dWxlYjEyOCAweDMJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweGQJLyogKFRBRzog RFdfVEFHX21lbWJlcikgKi8KKysJLmJ5dGUJMAkvKiBEV19jaGlsZHJlbl9ubyAqLworKwkudWxl YjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisrCS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9z dHJpbmcpICovCisrCS51bGViMTI4IDB4M2EJLyogKERXX0FUX2RlY2xfZmlsZSkgKi8KKysJLnVs ZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEyOCAweDNiCS8qIChEV19B VF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJ LnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVsZWIxMjggMHgxMwkvKiAoRFdf Rk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAweDM4CS8qIChEV19BVF9kYXRhX21lbWJlcl9sb2Nh dGlvbikgKi8KKysJLnVsZWIxMjggMHhhCS8qIChEV19GT1JNX2Jsb2NrMSkgKi8KKysJLmJ5dGUJ MAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NAkvKiAoYWJicmV2IGNvZGUpICovCisrCS51bGVi MTI4IDB4ZAkvKiAoVEFHOiBEV19UQUdfbWVtYmVyKSAqLworKwkuYnl0ZQkwCS8qIERXX2NoaWxk cmVuX25vICovCisrCS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkgKi8KKysJLnVsZWIxMjgg MHhlCS8qIChEV19GT1JNX3N0cnApICovCisrCS51bGViMTI4IDB4M2EJLyogKERXX0FUX2RlY2xf ZmlsZSkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEy OCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9S TV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVsZWIx MjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAweDM4CS8qIChEV19BVF9k YXRhX21lbWJlcl9sb2NhdGlvbikgKi8KKysJLnVsZWIxMjggMHhhCS8qIChEV19GT1JNX2Jsb2Nr MSkgKi8KKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NQkvKiAoYWJicmV2IGNv ZGUpICovCisrCS51bGViMTI4IDB4MQkvKiAoVEFHOiBEV19UQUdfYXJyYXlfdHlwZSkgKi8KKysJ LmJ5dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDQ5CS8qIChEV19B VF90eXBlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisrCS51bGVi MTI4IDB4MQkvKiAoRFdfQVRfc2libGluZykgKi8KKysJLnVsZWIxMjggMHgxMwkvKiAoRFdfRk9S TV9yZWY0KSAqLworKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg2CS8qIChhYmJy ZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHgyMQkvKiAoVEFHOiBEV19UQUdfc3VicmFuZ2VfdHlw ZSkgKi8KKysJLmJ5dGUJMAkvKiBEV19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDQ5CS8q IChEV19BVF90eXBlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisr CS51bGViMTI4IDB4MmYJLyogKERXX0FUX3VwcGVyX2JvdW5kKSAqLworKwkudWxlYjEyOCAweDcJ LyogKERXX0ZPUk1fZGF0YTgpICovCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAw eDcJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweDI0CS8qIChUQUc6IERXX1RBR19i YXNlX3R5cGUpICovCisrCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjgg MHhiCS8qIChEV19BVF9ieXRlX3NpemUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9k YXRhMSkgKi8KKysJLnVsZWIxMjggMHgzZQkvKiAoRFdfQVRfZW5jb2RpbmcpICovCisrCS51bGVi MTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgzCS8qIChEV19BVF9u YW1lKSAqLworKwkudWxlYjEyOCAweGUJLyogKERXX0ZPUk1fc3RycCkgKi8KKysJLmJ5dGUJMAor KwkuYnl0ZQkwCisrCS51bGViMTI4IDB4OAkvKiAoYWJicmV2IGNvZGUpICovCisrCS51bGViMTI4 IDB4MjEJLyogKFRBRzogRFdfVEFHX3N1YnJhbmdlX3R5cGUpICovCisrCS5ieXRlCTAJLyogRFdf Y2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVs ZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAweDJmCS8qIChEV19B VF91cHBlcl9ib3VuZCkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLwor KwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg5CS8qIChhYmJyZXYgY29kZSkgKi8K KysJLnVsZWIxMjggMHgzNAkvKiAoVEFHOiBEV19UQUdfdmFyaWFibGUpICovCisrCS5ieXRlCTAJ LyogRFdfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHgzCS8qIChEV19BVF9uYW1lKSAqLwor KwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1fc3RyaW5nKSAqLworKwkudWxlYjEyOCAweDNhCS8q IChEV19BVF9kZWNsX2ZpbGUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkg Ki8KKysJLnVsZWIxMjggMHgzYgkvKiAoRFdfQVRfZGVjbF9saW5lKSAqLworKwkudWxlYjEyOCAw eGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisrCS51bGViMTI4IDB4NDkJLyogKERXX0FUX3R5cGUp ICovCisrCS51bGViMTI4IDB4MTMJLyogKERXX0ZPUk1fcmVmNCkgKi8KKysJLnVsZWIxMjggMHgz ZgkvKiAoRFdfQVRfZXh0ZXJuYWwpICovCisrCS51bGViMTI4IDB4YwkvKiAoRFdfRk9STV9mbGFn KSAqLworKwkudWxlYjEyOCAweDIJLyogKERXX0FUX2xvY2F0aW9uKSAqLworKwkudWxlYjEyOCAw eGEJLyogKERXX0ZPUk1fYmxvY2sxKSAqLworKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIx MjggMHhhCS8qIChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHhmCS8qIChUQUc6IERXX1RB R19wb2ludGVyX3R5cGUpICovCisrCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKysJLnVs ZWIxMjggMHhiCS8qIChEV19BVF9ieXRlX3NpemUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdf Rk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVs ZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJ LmJ5dGUJMAorKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKKysJLjRieXRl CTB4MWMJLyogTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8gKi8KKysJLjJieXRlCTB4Mgkv KiBEV0FSRiBWZXJzaW9uICovCisrCS40Ynl0ZQkuTGRlYnVnX2luZm8wCS8qIE9mZnNldCBvZiBD b21waWxhdGlvbiBVbml0IEluZm8gKi8KKysJLmJ5dGUJMHg4CS8qIFNpemUgb2YgQWRkcmVzcyAq LworKwkuYnl0ZQkwCS8qIFNpemUgb2YgU2VnbWVudCBEZXNjcmlwdG9yICovCisrCS4yYnl0ZQkw CS8qIFBhZCB0byAxNiBieXRlIGJvdW5kYXJ5ICovCisrCS4yYnl0ZQkwCisrCS5xdWFkCTAKKysJ LnF1YWQJMAorKwkuc2VjdGlvbgkuZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2xp bmUwOgorKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEKKysuTEFTRjQ6Cisr CS5zdHJpbmcJImdkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYyIKKysuTEFTRjM6CisrCS5z dHJpbmcJIkdOVSBDIDQuNy4zIDIwMTIxMTA5IChwcmVyZWxlYXNlKSIKKysuTEFTRjA6CisrCS5z dHJpbmcJImJ1ZjIiCisrLkxBU0YxOgorKwkuc3RyaW5nCSJzaXpldHlwZSIKKysuTEFTRjU6Cisr CS5zdHJpbmcJIiIKKysuTEFTRjI6CisrCS5zdHJpbmcJImNoYXIiCisrCS5pZGVudAkiR0NDOiAo R05VKSA0LjcuMyAyMDEyMTEwOSAocHJlcmVsZWFzZSkiCisrCS5zZWN0aW9uCS5ub3RlLkdOVS1z dGFjaywiIixAcHJvZ2JpdHMKKy0tLSAvZGV2L251bGwJMjAxMi0xMC0xOCAxMTowODoxMy4yMDIz MjgyMzkgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYtbTY0LXRlc3QvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDEyLTExLTA5IDE4OjA0OjUy Ljk5NTY5Mjc3MSArMDEwMAorQEAgLTAsMCArMSw2NyBAQAorK2JlZ2luIDc1NSBnZGIuYmFzZS9s b25nZXN0LXR5cGVzLTY0Yml0LmJ6MgorK00wRUlILjMlITYyOTM2PCdOI09IYCJHL19fX19fX19f Xl9fX19fXz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKKytNPVZZNz9GX1tYYEZdXVNHNzUzMS09PVY6 Wi0uRlc7TS5VNz0nOzpVSEA8JkZEMzEsRTNdSidIRS0vVFJACisrTV00XzUvMzI7JS9VM10xLS1I VS9VJCMkUidJJ0osRkMwVC0sKUInSiM6Q1UsRkBdMGAvNDo+RkBDVS80LAorK01BQCRTMj5JSCFI YFRSLzAtJCQ6OWBDKCZGSFUzVkUtSjs0XCUsQD40VDojXTQ5LUovNGA+SFQhSCMzKV4KKytNSmAh SC1gYFRdMCZALWBgYDonSmBgJkBgOjkhYFI5LEAmMyhgIzMhIzAhSGBgLSMkLS1gLEBgYFRgVCMo CisrTTpgOmAmMCZAOjosMDotYGBgOmBgLWBFLSQxIzQtMzo0XTNSOS0zOShRLykjM1ItMzA6OSMk VCFEIUgmQAorK00sQ1RHSSFIIygjMFRgIzBgYFRgVGA6YGAtYGBUYDAsRjMoIURSYGBUUDBUYDpg YCMwUSMzMCMoYGAtYC0KKytNYFImQCZAIUQhSCZGQyQmQzBgYCZAYCMwKSUpSDMyPkpHWiYhKVox QjFYQClEVFZDND5IYCYwOmBgUiZACisrTSxDMDpgYFRgYCxDMGBgIUhgYCMoYFRgOiMwVV5cP103 SzhNLjk2Vi8yWz9NKkRDKT5XSVVGKUg3VFw8VAorK01bMEQpNzBHMjUuWUIhLDo7OFEoOyZYUEFC NCskUSU6UClQQS07RT0hLSYkS05SMjJFTT4kOktLUkUmXFEKKytNLi5NXUwxKiwhPkQhWClSVyxb LDFJLDlOJVgtTiYyKyo6JilESlk0KFZGUUclOUtbLz9KMDZXQUNGNi1JCisrTUomSko5LFpLNDtY MjhNQFs9PSVNRShBNTQ6JT4rMy0+TVJLKEchOCNUWT5ARSQ2RFImPF81OkMmL1JaRQorK01JPE9O K1JZNWBMQSJAREQkJERGIUk5T101WCVHOTg1Xz1WPC47P0s5OkcyUi0jSzxDQiwxOzI2QTxINEcK KytNM1IzSSEpV1gsLSU+LCFFNiNgOyo4UipFQCsrKikpVSlbNj1PS0ZNJScrJC1INVxYQDFEKV9Z KiJOS1YuCisrTSZcRjg/U1hXXjxPXV9EVy44V0RASFkuTk1NSUJYRlZST01fU0taIzQtYD5IUTpZ QChRWy4+UEVHPV1AXgorK00lQyIzRVovMVgnSCowMlpRSCI6NiJAOzhaMExFVzY8T0tKJSRgMDEl YEI7TyFOKlcxVi5IQyRgYCw6Q1MKKytNNigvT1RJJy06TzY9NyQvIz8wVDlRW0dTWTEpNlZgK0NW QCNYV01GYDxTOkFHPCE0M1giVkdELEU9Pik+CisrTTZeVj0qYEZCJzVHNE1EOEwzSjVYVCNTVztK MV1aTysiU1BJUyVKKFA0NitRPUNDMiRILWAtQiZURClNYAorK00mQTowNjZEQSVBQjBDNiw0NjA+ TThCKyQ6LUJSJkBOTSgpRmBTJywsRjgrIyYwLlNNT0tALkc8JzgzTi4KKytNREEiIzUtYEpWQygi MSpUQTsvTSgpJjhKMCtZSCVJRlYpK09BQDQsYEU/M00kWyRAJlFgM11BISQmQSgtCisrTSRQQlQr MixAUFUrMkg5KFQtSDNONicoMjsiIiUyVCoxSTJQQGBMP0FHOCZBIT0zMUo3KTEoOUZCJzhYPQor K01XSjBTI1lFRzlLJC4jLltMLltDTkEiNEpTSl5HSzIqKVVIPU1DMC5SOCtFNzUnLjA5PE5VJlIw RzE+W0cKKytNTVExKltHSTo+Iz5LYF9OWlM6VjY+JEs7T1g2IyEhTiciMjQxMyREVEwmXTdLWT5C PDNWNSEhQzgjWDUrCisrTUYlOTxOXF1DJUI2T1M7TEhAMUxSM1I8TFMrPF1OXTlcSlo8TEojMl9T MidVVygnRFohTj5YIThOT0tNNQorK00rIk4mUDQuNzVDMTYhQTlROzpDLjZOYFdaRFY9LV0hPEJU QjwxUSpQKFQ0JyYqMjpAJD1KQChNOCkhNT0KKytNTztbRUNTPiw1UEc8VFtYQzU5NFhJMEBSVlBE ODYsTTExJShUPl1TTlBbR1ZeTD9ZR0ldN18nRDhOP1hWCisrTSdbN0taSldZVk1YR0JRU1tgISlZ SSUzOkQpSTIhOyUnUmBXJllCPGA5TzIjRiJDLylGO0pLOVArQDMmKAorK01BSDMxW1cpPVlDT0RR RFVLTk03QSIzLkMhMiVDSFRKTloiWlwrI0YtPyhETEU+WEFDJTA3Qjg7JCVKX0wKKytNSlBLNDhR QyYsOTE2PUlNKzwxJldSS0xCNiZRMk83OSohN1MkLGA3SjgqIWAhPUs6NVc1NTBbTkg5TSNfCisr TUtMIUxULCY7NTlHWlc3UyI1WjQlYCUmIWA5Iko5YDA6SVImSD1NVEtUPVBFWUMkLDRLOTBNOUFU JyU7XworK01CMEhWTEUpKFcmWVdGLEM6VFVSWE86YE1bUlgoQS1HVDk3NDU2UTRaKkhQVSo0Sjoq W1dVLTRHRC45VVYKKytNU0EjTDRYW1sqWSspOElGLkVPPC5UUDRJQzI/KDRIWClXMSM6R09NT0Qy RjtITTFCViM8RSVQTSswJk41CisrTVBAJFwkRkQ0Qy1RXkwiSF4pTlAyLS5eSlRUITgrITsnWj1L TTclJ0tAXCkqUFNFVEYmTTY8USM+O1BIWworK003OlBKLSEjLCE2TjwzJyktMEMsPjE1J0laPkBV XkNKSkorPis+JSUpJUJCQVREXCkqRjYmQkxNSVImP1wKKytNUTJfPzMzQCJOUjEvQ05cOik+NURH NmA+JDskM1FBOTQnLTNdKkNVNllHXSk8PTIpJ0dDIlJQLVJLJi0zCisrTVpEVC1NXylSK0YwNkRT P0NSPkVAXiEsMzMiVTZYPEBPWE8kUT5VJFxUQElVPEgtNDI9MFlFWyQsVGBcSAorK00oJz4nQFQ9 PktgRzdIOEs1R0xYTVMzKl5ASkxWQkhIRScuJj85UktDP1lgJiYzSjUhL0MkKys8QFUjUScKKytN OVIzSS4kK1NgJV0tLlVPPldIXkM3M0Y8JjtSSUpSKyhRQDcoM1BQKldbLU8sLEREM1M3QlVLXklA RCUqCisrTWBZPCoyVFhKJjc7Mic2J1IuVT5dMC09Ik1gSysmTiUvPT1ONFVAOSVATTEpVSYyNTFD KCReUyJXTCJdVAorK00tWE4nRDJbSUkzLSRLJSsmYDNbJ08pJSw4RypFJV84UlY2QTVCXzQoMi8/ LUFJQy5cLz4sWUZKPChHLjgKKytNQVZQP1VOKj1NRTo3JlQhQyUpSTomNEg6LTU+Jl4hJjA+QS5P JzBHJy82JlpaOTY0QDA0Jj0jRENgJSY6CisrTVVOTE9TPyw/J1Q6VCE4TDgwPEhfVzE+PSdNOjk2 SzQ7SlgpNi4oJzEjSiQuMS9MKSRJUzw0LyonMkQzNAorK00vQEpcQkEoSTJUNDBKUyU5RzhGITdV NV8hIydVIStbNyRFUyYpQDoqUUFFVC1JQlg2J19ONV43LyM+QFYKKytNTjMmLC02KEFHWzgmIThM VitGX1UiVz8vKStZXiw7PTFLOlNXMjg8MFdBMiJVUEhQXjhGRyNSJCFgWWAsCisrTUxGPGBVKk5O VVxbNk4wMyIqP0k4RD1LNy5aKkg9QV8zPEgxWiUuUTglMlNSQEk0NSgnLkVHUjxOXlxgWgorK01c W1pcRCsvMz43O1M9TFZDKEJRLDU8TTBBIiNgXTdVSzdXMyU1KDpGQk1FUjNYU1AxNU4hKWAtXlpK WiUKKytNOjQpPjhRX1wjR2AnUCpfLV1UIUc0JGBWMEJTXSdTKUQvO1Y3Uj8uMkY/U0YpTisyKyNQ Ml88RyMxQilDCisrTSg4P05GLys/OlVNUjNCIzkkTUJEQ0kyRzcmTidUYEZWIUVSUVsyMURPSl84 STczI0JJTFRUU0spQjVQPAorK01HMjJTPSo3VEk+Ryg0OVRDRSYqVUlWVC1NUDgwOFZUVlYtJCgq YFZUPCU+JTk2QUhPTGAoNyVTSTIlLVIKKytNI0cyRjAyVlFRSC03S1QzRTA1STlaKUVcJFk4RUQx S1VgKDRRSFQlQl0xJEY6RjEmOERBTi5RNCYqP0ZACisrTS44RDk2NS4kUFJIPFZEKygpIjgmSSU8 UiJQLFlbQSwpXkIoTyUxKEolLClNKE82KThFJUxZP0M2WEBASworK00oRiEyVEFcLFJFPE8iRTIq Rz9KRTJZRlwqT0pNPyRLV1hXNlIoM0xSLSlXLls6WkpDP1pFNCwoIkokKCkKKytNNUBVITYyTSJX Qko9JlEoTCQ1LDQ0OTRLPS4wQjAjLEMzJCpgYFhMVEYkRE4hNlAjJSw0SyVIVElDWypPCisrTTYi NFMsO1JOJkA9TlA3QDcyOj1VIyZKUEJRLTYwT0VBV1k7Q1VZRiskNzMuUj5UNUhELEc9RyFLVEYz RAorK005NCImWkEtRiwuMTk9OGBcKFE7QTA3USUhMTkqMyMqRjlRK0QoMEtAVjg3QE8uPTdFSklN NmAhNGA+RCEKKytNKTQ5UUhBIUJWKzo0T0BLMDAkJCE1KjY+QUAyQDREKUBSXCIlJDJGIk86MjRK KkwoUlAjTjtPNEs3SSYyCisrTVsjKUtSNDdILU5bPE9eUy0pIl9RXD5WSiUzPiRgOSxBRjhRSUQm STNHK0RgKl1CWDk4QiQySyI6QTdfXAorK01fXTdMVCE0LCROTDUpTkU+OVs6TUsyXy8nR086NyJQ YD08WCciVTkiIjA8UEpgM2AuOiooWl0tLkdRLDkKKytNPlAoXExdTz8iLUFQSCg4MzQkLFchSUpT K1UxRjFDLiFEJCEmS1NeLTYlRjkwUFFbRl1GPSReUUVcWCstCisrTUAuVypMUEhfNzhCPk1ISEA2 OVJVWyonMUpAOFFBQ1xLU1ZASUdcKDtfQ1VXOlpSMi4sMCRFM0xaX15QPQorK008X0RDUCJRPGA7 K187WVAjXlUlJkVeIzJNJSxUP0YzVU5ePlRTSClHRkwiXCVSRltLTlorW1IrQDwmLiQKKytNQzQy KUI5NlwxLS5PX0kpLks3KVhdVz5FUSk6NEMoWEIqKzpTJTBfMzdEXkVCUCsxSFUoRD8zIiVfTzJS CisrTTYtI1g+QVUjPCQqIS8sVzZRQ147T14lXUxSJl9YJzw4WCQ8M0NVVV9RRkFKOyI+SCkyNDQz R0Q0VyE0IworKz88NTUhMl42XzhKJCktTzw+XEgwVS82UV4+VUcwJVcpJS4lIjBQPlguXkBgYAor K2AKKytlbmQKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IGM3NDVjZjEu LmUzMjA5MDggMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0zNCw3ICsz NCw3IEBAIFZlcnNpb246IDcuNS4wLjIwMTIwOTI2CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNv bnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0 cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5j aWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMjUlez9kaXN0fQorUmVs ZWFzZTogMjYlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2Vw dGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQg TEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVi dWdnZXJzCkBAIC01NzcsNiArNTc3LDMxIEBAIFBhdGNoNzI4OiBnZGItY2hlY2stdHlwZS5wYXRj aAogIyBlbnRyeSB2YWx1ZXM6IEZpeCByZXNvbHZpbmcgaW4gaW5saW5lZCBmcmFtZXMuCiBQYXRj aDcyOTogZ2RiLWVudHJ5dmFsLWlubGluZWQucGF0Y2gKIAorIyBGaXggYEdEQiBjYW5ub3QgYWNj ZXNzIHN0cnVjdCBtZW1iZXIgd2hvc2Ugb2Zmc2V0IGlzIGxhcmdlciB0aGFuIDI1Nk1CJworIyAo UkggQlogNzk1NDI0KS4KK1BhdGNoNzk3OiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMDZvZjI1LnBh dGNoCitQYXRjaDc5ODogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTA3b2YyNS5wYXRjaAorUGF0Y2g3 OTk6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0wOG9mMjUucGF0Y2gKK1BhdGNoODAwOiBnZGItcmhi ejc5NTQyNC1iaXRwb3MtMDlvZjI1LnBhdGNoCitQYXRjaDgwMTogZ2RiLXJoYno3OTU0MjQtYml0 cG9zLTEwb2YyNS5wYXRjaAorUGF0Y2g4MDI6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMW9mMjUu cGF0Y2gKK1BhdGNoODAzOiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMTJvZjI1LnBhdGNoCitQYXRj aDgwNDogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTEzb2YyNS5wYXRjaAorUGF0Y2g4MDU6IGdkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0xNG9mMjUucGF0Y2gKK1BhdGNoODA2OiBnZGItcmhiejc5NTQyNC1i aXRwb3MtMTVvZjI1LnBhdGNoCitQYXRjaDgwNzogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE2b2Yy NS5wYXRjaAorUGF0Y2g4MDg6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xN29mMjUucGF0Y2gKK1Bh dGNoODA5OiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMThvZjI1LnBhdGNoCitQYXRjaDgxMDogZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTE5b2YyNS5wYXRjaAorUGF0Y2g4MTE6IGdkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yMG9mMjUucGF0Y2gKK1BhdGNoODEyOiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMjFv ZjI1LnBhdGNoCitQYXRjaDgxMzogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaAor UGF0Y2g4MTQ6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKK1BhdGNoODE1OiBn ZGItcmhiejc5NTQyNC1iaXRwb3MtMjRvZjI1LnBhdGNoCitQYXRjaDgxNjogZ2RiLXJoYno3OTU0 MjQtYml0cG9zLTI1b2YyNS5wYXRjaAorUGF0Y2g4MTc6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y NW9mMjUtdGVzdC5wYXRjaAorUGF0Y2g4MTg6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFs dWUucGF0Y2gKKwogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2CiAjIFJMX1NUQVRF X0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2NDI6IGdkYi1yZWFk bGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC04ODksNiArOTE0LDI4IEBAIHJtIC1mIGdkYi9q di1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMgZ2RiL2dvLWV4 cC5jCiAlcGF0Y2g3MjYgLXAxCiAlcGF0Y2g3MjggLXAxCiAlcGF0Y2g3MjkgLXAxCislcGF0Y2g3 OTcgLXAxCislcGF0Y2g3OTggLXAxCislcGF0Y2g3OTkgLXAxCislcGF0Y2g4MDAgLXAxCislcGF0 Y2g4MDEgLXAxCislcGF0Y2g4MDIgLXAxCislcGF0Y2g4MDMgLXAxCislcGF0Y2g4MDQgLXAxCisl cGF0Y2g4MDUgLXAxCislcGF0Y2g4MDYgLXAxCislcGF0Y2g4MDcgLXAxCislcGF0Y2g4MDggLXAx CislcGF0Y2g4MDkgLXAxCislcGF0Y2g4MTAgLXAxCislcGF0Y2g4MTEgLXAxCislcGF0Y2g4MTIg LXAxCislcGF0Y2g4MTMgLXAxCislcGF0Y2g4MTQgLXAxCislcGF0Y2g4MTUgLXAxCislcGF0Y2g4 MTYgLXAxCislcGF0Y2g4MTcgLXAxCislcGF0Y2g4MTggLXAxCiAKICVwYXRjaDM5MyAtcDEKICVp ZiAwJXshP2VsNToxfSB8fCAwJXs/c2NsOjF9CkBAIC0xMzg1LDYgKzE0MzIsMTAgQEAgZmkKICVl bmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAogJWNo YW5nZWxvZworKiBGcmkgTm92ICA5IDIwMTIgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNy41LjAuMjAxMjA5MjYtMjYuZmMxOAorLSBGaXggYEdEQiBjYW5ub3Qg YWNjZXNzIHN0cnVjdCBtZW1iZXIgd2hvc2Ugb2Zmc2V0IGlzIGxhcmdlciB0aGFuIDI1Nk1CJwor ICAoUkggQlogODcxMDY2KS4KKwogKiBGcmkgT2N0ICA1IDIwMTIgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy41LjAuMjAxMjA5MjYtMjUuZmMxOAogLSBlbnRy eSB2YWx1ZXM6IEZpeCByZXNvbHZpbmcgaW4gaW5saW5lZCBmcmFtZXMuCiAK