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] gdb-17.2-rebase-f44: - Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090810 Date: Sat, 27 Jun 2026 23:54:18 GMT Message-ID: <178260445818.1.13740604287600178331.rpms-gdb-273e7e98b274@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 273e7e98b2741c63eac8f15b72507b4334cf0aee ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMjczZTdlOThiMjc0MWM2M2VhYzhmMTViNzI1MDdiNDMzNGNm MGFlZQogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMTBUMTM6MjI6NTErMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzIwODUvLTEwMzkgaW4gNiBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMjcz ZTdlOThiMjc0MWM2M2VhYzhmMTViNzI1MDdiNDMzNGNmMGFlZT9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFVwZ3JhZGUgdG8gdGhlIEZT RiBHREIgZ2RiLTYuOC41MCBzbmFwc2hvdDogNi44LjUwLjIwMDkwODEwCi0gYXJjaGVyLWphbmty YXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OgogICAgOTNlYzE2ZTZmNTAwMGRkNjRkNDMzZDg2Njc0 ZTgyMGVkMGYzNWI3MgoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQpp bmRleCA1ODc5YTMzLi43OGE2MDExIDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNp Z25vcmUKQEAgLTEgKzEgQEAKLWdkYi02LjguNTAuMjAwOTA4MDMudGFyLmJ6MgorZ2RiLTYuOC41 MC4yMDA5MDgxMC50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1waWUtMjAwNTAxMTAucGF0 Y2ggYi9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaAppbmRleCA3MWFlYWFhLi5lMTczNmIzIDEw MDY0NAotLS0gYS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaAorKysgYi9nZGItNi4zLXBpZS0y MDA1MDExMC5wYXRjaApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIAlGaXggc2Nhbl9keW50YWcoKSBm b3IgYmluYXJpZXMgcHJvdmlkZWQgYnkgdmFsZ3JpbmQgKEJaIDQ2MDMxOSkuCiAKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNi44LjUwLjIw MDkwODA5L2dkYi9hbWQ2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkw ODAzLm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2FtZDY0LXRkZXAuYwkyMDA5LTA4LTAz IDIxOjM5OjM5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3JpZy9n ZGIvYW1kNjQtdGRlcC5jCTIwMDktMDgtMTAgMDA6NTA6MzAuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDgtMTAgMTQ6NTk6NTgu MDAwMDAwMDAwICswMjAwCiBAQCAtMzYsNiArMzYsNyBAQAogICNpbmNsdWRlICJyZWdjYWNoZS5o IgogICNpbmNsdWRlICJyZWdzZXQuaCIKQEAgLTEzOCwxMCArMTM4LDEwIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9hbWQ2NC10ZGVwLmMKICAgIHJldHVybiBwYzsKICB9CiAgCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYXV4di5jCitJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwOS9nZGIvYXV4di5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5v cmlnL2dkYi9hdXh2LmMJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9hdXh2LmMJMjAwOS0wOC0wMyAyMTozOTozOS4wMDAwMDAw MDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2F1eHYuYwkyMDA5LTA3 LTAyIDE5OjI1OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2Ri L2F1eHYuYwkyMDA5LTA4LTEwIDE0OjU5OjU4LjAwMDAwMDAwMCArMDIwMAogQEAgLTc4LDcgKzc4 LDcgQEAgcHJvY2ZzX3hmZXJfYXV4diAoc3RydWN0IHRhcmdldF9vcHMgKm9wcwogICAgIFJldHVy biAxIGlmIGFuIGVudHJ5IHdhcyByZWFkIGludG8gKlRZUEVQIGFuZCAqVkFMUC4gICovCiAgc3Rh dGljIGludApAQCAtMjMwLDEwICsyMzAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2F1eHYuYwogIAlicmVhazsKICAgICAgfQogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2F1eHYuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2F1eHYuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvYXV4di5oCTIwMDktMDgt MDMgMjE6Mzk6MDguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv YXV4di5oCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41 MC4yMDA5MDgwOS5vcmlnL2dkYi9hdXh2LmgJMjAwOS0wNi0wNyAyMTowNzowOC4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9hdXh2LmgJMjAwOS0wOC0xMCAxNDo1 OTo1OC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zMSwxNCArMzEsMTQgQEAKICAgICBSZXR1cm4gMSBp ZiBhbiBlbnRyeSB3YXMgcmVhZCBpbnRvICpUWVBFUCBhbmQgKlZBTFAuICAqLwogIGV4dGVybiBp bnQgdGFyZ2V0X2F1eHZfcGFyc2UgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCkBAIC0yNTEsMTAg KzI1MSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYXV4di5oCiAgCiAgLyog UHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YXJnZXQncyBBVVhWIG9uIHRoZSBzcGVjaWZpZWQg ZmlsZS4gKi8KICBleHRlcm4gaW50IGZwcmludF90YXJnZXRfYXV4diAoc3RydWN0IHVpX2ZpbGUg KmZpbGUsIHN0cnVjdCB0YXJnZXRfb3BzICpvcHMpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2R3YXJm MnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZHdh cmYycmVhZC5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAw MDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJ MjAwOS0wOC0xMCAxNDo1OToyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkw ODA5L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAK IEBAIC0xNjU5LDcgKzE2NTksNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpm aWxlICpvCiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpm aWxlLT5laF9mcmFtZSk7CiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYy X3Blcl9vYmpmaWxlLT5mcmFtZSk7CkBAIC0yNjQsMTAgKzI2NCwxMCBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgfHwgKG9iamZpbGUtPmdsb2Jh bF9wc3ltYm9scy5zaXplID09IDAKICAJICAmJiBvYmpmaWxlLT5zdGF0aWNfcHN5bWJvbHMuc2l6 ZSA9PSAwKSkKICAgICAgewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2VsZnJlYWQu YworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2VsZnJlYWQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMDktMDgtMDMgMjE6 Mzk6MDguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZWxmcmVh ZC5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4y MDA5MDgwOS5vcmlnL2dkYi9lbGZyZWFkLmMJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9lbGZyZWFkLmMJMjAwOS0wOC0xMCAx NDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAKIEBAIC02ODEsNyArNjgxLDcgQEAgZWxmX3N5bWZpbGVf cmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogICAgLyogSWYgd2UgYXJlIHJlaW5pdGlhbGl6 aW5nLCBvciBpZiB3ZSBoYXZlIG5ldmVyIGxvYWRlZCBzeW1zIHlldCwKICAgICAgIHNldCB0YWJs ZSB0byBlbXB0eS4gIE1BSU5MSU5FIGlzIGNsZWFyZWQgc28gdGhhdCAqX3JlYWRfcHN5bXRhYgpA QCAtMjc3LDEwICsyNzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2VsZnJl YWQuYwogICAgICB7CiAgICAgICAgaW5pdF9wc3ltYm9sX2xpc3QgKG9iamZpbGUsIDApOwogICAg ICAgIG1haW5saW5lID0gMDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZydW4u YworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTA4LTAzIDIxOjM5 OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZnJ1bi5j CTIwMDktMDgtMDQgMDY6MDQ6MjUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5 MDgwOS5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2luZnJ1bi5jCTIwMDktMDgtMTAgMTQ6NTk6 NTguMDAwMDAwMDAwICswMjAwCiBAQCAtMzUzMSw2ICszNTMxLDEwIEBAIGluZnJ1bjogQlBTVEFU X1dIQVRfU0VUX0xPTkdKTVBfUkVTVU1FICgKICAjZW5kaWYKICAJICB0YXJnZXRfdGVybWluYWxf aW5mZXJpb3IgKCk7CkBAIC0yOTIsMTAgKzI5MiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvaW5mcnVuLmMKICAJICAvKiBJZiByZXF1ZXN0ZWQsIHN0b3Agd2hlbiB0aGUgZHlu YW1pYyBsaW5rZXIgbm90aWZpZXMKICAJICAgICBnZGIgb2YgZXZlbnRzLiAgVGhpcyBhbGxvd3Mg dGhlIHVzZXIgdG8gZ2V0IGNvbnRyb2wKICAJICAgICBhbmQgcGxhY2UgYnJlYWtwb2ludHMgaW4g aW5pdGlhbGl6ZXIgcm91dGluZXMgZm9yCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv b2JqZmlsZXMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL29iamZpbGVzLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL29iamZpbGVzLmMJMjAw OS0wOC0wMyAyMTozOTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9vYmpmaWxlcy5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9vYmpmaWxlcy5jCTIwMDktMDgtMTAgMDA6NTA6 MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvb2JqZmlsZXMu YwkyMDA5LTA4LTEwIDE0OjU5OjU4LjAwMDAwMDAwMCArMDIwMAogQEAgLTUyLDYgKzUyLDkgQEAK ICAjaW5jbHVkZSAiZXhlYy5oIgogICNpbmNsdWRlICJvYnNlcnZlci5oIgpAQCAtMzI0LDcgKzMy NCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9vYmpmaWxlcy5jCiAgICBpZiAo c3ltZmlsZV9vYmpmaWxlID09IE5VTEwpCiAgICAgIHJldHVybiAwOwogIAotQEAgLTQ3NSw2ICs0 ODYsOSBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTQ2NSw2 ICs0NzYsOSBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgaWYg KG9iamZpbGUgPT0gc3ltZmlsZV9vYmpmaWxlKQogICAgICBzeW1maWxlX29iamZpbGUgPSBOVUxM OwogIApAQCAtMzM0LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L29iamZpbGVzLmMKICAgIC8qIEJlZm9yZSB0aGUgc3ltYm9sIHRhYmxlIGNvZGUgd2FzIHJlZG9u ZSB0byBtYWtlIGl0IGVhc2llciB0bwogICAgICAgc2VsZWN0aXZlbHkgbG9hZCBhbmQgcmVtb3Zl IGluZm9ybWF0aW9uIHBhcnRpY3VsYXIgdG8gYSBzcGVjaWZpYwogICAgICAgbGlua2FnZSB1bml0 LCBnZGIgdXNlZCB0byBkbyB0aGVzZSB0aGluZ3Mgd2hlbmV2ZXIgdGhlIG1vbm9saXRoaWMKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4OiBnZGItNi44 LjUwLjIwMDkwODA5L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwODAzLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAwMDAw MDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLXN2cjQuYwkyMDA5 LTA4LTAzIDIxOjQxOjQ5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDku b3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTAgMTQ6NTY6MTEuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTAgMTQ6 NTk6NTguMDAwMDAwMDAwICswMjAwCiBAQCAtNDcsNiArNDcsNyBAQAogICNpbmNsdWRlICJleGVj LmgiCiAgI2luY2x1ZGUgImF1eHYuaCIKQEAgLTk5OSwxMCArOTk5LDEwIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi1zdnI0LmMKICsgIGFkZF9pbmZvICgibGlua21hcCIs IGluZm9fbGlua21hcF9jb21tYW5kLAogKwkgICAgIkRpc3BsYXkgdGhlIGluZmVyaW9yJ3MgbGlu a21hcC4iKTsKICB9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saWIuYworSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3NvbGliLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3NvbGliLmMJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCTIwMDktMDgt MDQgMDU6NTc6MzYuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmln L2dkYi9zb2xpYi5jCTIwMDktMDgtMTAgMDA6NTA6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTYuOC41MC4yMDA5MDgwOS9nZGIvc29saWIuYwkyMDA5LTA4LTEwIDE1OjA3OjEzLjAwMDAwMDAw MCArMDIwMAogQEAgLTgxLDYgKzgxLDggQEAgc2V0X3NvbGliX29wcyAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIAogIAogIC8qIGV4dGVybmFsIGRhdGEgZGVjbGFyYXRpb25zICovCkBAIC0xMDIx LDM1ICsxMDIxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLmMKICAv KgogIAogICAgIEdMT0JBTCBGVU5DVElPTgotQEAgLTQyOCwxMCArNDMyLDIzIEBAIGZyZWVfc28g KHN0cnVjdCBzb19saXN0ICpzbykKLSAgICAgICAKLSAgIGlmIChzby0+YWJmZCkKLSAgICAgewot LSAgICAgIGJmZF9maWxlbmFtZSA9IGJmZF9nZXRfZmlsZW5hbWUgKHNvLT5hYmZkKTsKLS0gICAg ICBpZiAoISBiZmRfY2xvc2UgKHNvLT5hYmZkKSkKLS0Jd2FybmluZyAoXygiY2Fubm90IGNsb3Nl IFwiJXNcIjogJXMiKSwKLS0JCSBiZmRfZmlsZW5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJy b3IgKCkpKTsKLSsgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsKLSsKLSsgICAgICBBTExf T0JKRklMRVMgKG9iamZpbGUpCi0rCWlmIChvYmpmaWxlLT5vYmZkID09IHNvLT5hYmZkKQotKwkg IHsKLSsJICAgIGdkYl9hc3NlcnQgKG9iamZpbGUtPmZsYWdzICYgT0JKRl9LRUVQQkZEKTsKLSsJ ICAgIG9iamZpbGUtPmZsYWdzICY9IH5PQkpGX0tFRVBCRkQ7Ci0rCSAgICBicmVhazsKLSsJICB9 Ci0rCi0rICAgICAgaWYgKCFvYmpmaWxlKQotKwl7Ci0rCSAgYmZkX2ZpbGVuYW1lID0gYmZkX2dl dF9maWxlbmFtZSAoc28tPmFiZmQpOwotKwkgIGlmICghIGJmZF9jbG9zZSAoc28tPmFiZmQpKQot KwkgICAgd2FybmluZyAoXygiY2Fubm90IGNsb3NlIFwiJXNcIjogJXMiKSwKLSsJCSAgICAgYmZk X2ZpbGVuYW1lLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7Ci0rCX0KLSAgICAgfQot IAotICAgaWYgKGJmZF9maWxlbmFtZSkKLUBAIC00NTgsMTUgKzQ3NSw0MCBAQCBzeW1ib2xfYWRk X3N0dWIgKHN0cnVjdCBzb19saXN0ICpzbywgaW50CitAQCAtNDQ5LDE0ICs0NTMsMzggQEAgc3lt Ym9sX2FkZF9zdHViIChzdHJ1Y3Qgc29fbGlzdCAqc28sIGludAogICAgLyogSGF2ZSB3ZSBhbHJl YWR5IGxvYWRlZCB0aGlzIHNoYXJlZCBvYmplY3Q/ICAqLwogICAgQUxMX09CSkZJTEVTIChzby0+ b2JqZmlsZSkKICAgICAgewpAQCAtMTA3NSwyNSArMTA0NywyMiBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc29saWIuYwogICAgc2FwID0gYnVpbGRfc2VjdGlvbl9hZGRyX2luZm9f ZnJvbV9zZWN0aW9uX3RhYmxlIChzby0+c2VjdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvLT5zZWN0aW9uc19lbmQpOwogIAotLSAg c28tPm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFncywK LS0JCQkJCSAgc2FwLCBPQkpGX1NIQVJFRCB8IE9CSkZfS0VFUEJGRCk7CistICBzby0+b2JqZmls ZSA9IHN5bWJvbF9maWxlX2FkZF9mcm9tX2JmZCAoc28tPmFiZmQsIGZsYWdzLCBzYXAsIE9CSkZf U0hBUkVEKTsKICsgIGlmIChzby0+bWFpbikKICsgICAgewogKyAgICAgIGlmIChkZWJ1Z19zb2xp YikKICsgICAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICsJCQkgICAgInN5 bWJvbF9hZGRfc3R1YjogYWRkaW5nIHN5bWJvbHMgZm9yIG1haW5cbiIpOwotKyAgICAgIHNvLT5v YmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChzby0+YWJmZCwgKGZsYWdzICYgflNZ TUZJTEVfVkVSQk9TRSkgfCBTWU1GSUxFX01BSU5MSU5FLAotKwkJCQkJICAgICAgc2FwLCBPQkpG X0tFRVBCRkQpOworKyAgICAgIHNvLT5vYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZk IChzby0+YWJmZCwgKGZsYWdzICYgflNZTUZJTEVfVkVSQk9TRSkgfCBTWU1GSUxFX01BSU5MSU5F LCBzYXAsIDApOwogKyAgICAgIHNvLT5tYWluX3JlbG9jYXRlZCA9IDE7CiArICAgIH0KICsgIGVs c2UKLSsgICAgc28tPm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZk LCBmbGFncywKLSsJCQkJCSAgICBzYXAsIE9CSkZfU0hBUkVEIHwgT0JKRl9LRUVQQkZEKTsKKysg ICAgc28tPm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFn cywgc2FwLCBPQkpGX1NIQVJFRCk7CiArCi0gICBmcmVlX3NlY3Rpb25fYWRkcl9pbmZvIChzYXAp OwotIAotICAgcmV0dXJuOwotQEAgLTYwNiw2ICs2NDgsMTAgQEAgdXBkYXRlX3NvbGliX2xpc3Qg KGludCBmcm9tX3R0eSwgc3RydWN0IAorICAgcF9yZWZjb3VudCA9IHhtYWxsb2MgKHNpemVvZiAo KnBfcmVmY291bnQpKTsKKyAgICpwX3JlZmNvdW50ID0gMjsgIC8qIEJvdGggc29saWIgYW5kIG9i amZpbGUgcmVmZXIgdG8gdGhpcyBhYmZkLiAgKi8KKyAgIHNvLT5hYmZkLT51c3JkYXRhID0gcF9y ZWZjb3VudDsKK0BAIC02MDAsNiArNjI4LDEwIEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQgZnJv bV90dHksIHN0cnVjdCAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBAIC0xMTA0LDcgKzEw NzMsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saWIuYwogIAkgICAgICBp ZiAoISBzdHJjbXAgKGdkYi0+c29fb3JpZ2luYWxfbmFtZSwgaS0+c29fb3JpZ2luYWxfbmFtZSkp CiAgCQlicmVhazsJICAgICAgCiAgCSAgICB9Ci1AQCAtNjYwLDE4ICs3MDYsNyBAQCB1cGRhdGVf c29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCitAQCAtNjU0LDE4ICs2ODYsNyBAQCB1 cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCiAgICAgICAgLyogRmlsbCBp biB0aGUgcmVzdCBvZiBlYWNoIG9mIHRoZSBgc3RydWN0IHNvX2xpc3QnIG5vZGVzLiAgKi8KICAg ICAgICBmb3IgKGkgPSBpbmZlcmlvcjsgaTsgaSA9IGktPm5leHQpCiAgCXsKQEAgLTExMjQsNyAr MTA5Myw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCiAgCiAgCSAg LyogTm90aWZ5IGFueSBvYnNlcnZlciB0aGF0IHRoZSBzaGFyZWQgb2JqZWN0IGhhcyBiZWVuCiAg ICAgICAgICAgICAgIGxvYWRlZCBub3cgdGhhdCB3ZSd2ZSBhZGRlZCBpdCB0byBHREIncyB0YWJs ZXMuICAqLwotQEAgLTc4MSw2ICs4MTYsMzIgQEAgc29saWJfYWRkIChjaGFyICpwYXR0ZXJuLCBp bnQgZnJvbV90dHksIAorQEAgLTc3NSw2ICs3OTYsMzIgQEAgc29saWJfYWRkIChjaGFyICpwYXR0 ZXJuLCBpbnQgZnJvbV90dHksIAogICAgfQogIH0KICAKQEAgLTExNTcsNyArMTEyNiw3IEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCiAgCiAgLyoKICAKLUBAIC0xMTM0 LDQgKzExOTUsMTIgQEAgVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGVudmlyb25tZQor QEAgLTExMjgsNCArMTE3NSwxMiBAQCBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZW52 aXJvbm1lCiAgCQkJCSAgICAgcmVsb2FkX3NoYXJlZF9saWJyYXJpZXMsCiAgCQkJCSAgICAgc2hv d19zb2xpYl9zZWFyY2hfcGF0aCwKICAJCQkJICAgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKQEAg LTExNzAsMTAgKzExMzksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGli LmMKICsJCQkgICBOVUxMLCBOVUxMLAogKwkJCSAgICZzZXRkZWJ1Z2xpc3QsICZzaG93ZGVidWds aXN0KTsKICB9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saXN0LmgKK0luZGV4 OiBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9zb2xpc3QuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02 LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc29saXN0LmgJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpc3QuaAkyMDA5LTA4 LTAzIDIxOjM5OjM5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3Jp Zy9nZGIvc29saXN0LmgJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjUwLjIwMDkwODA5L2dkYi9zb2xpc3QuaAkyMDA5LTA4LTEwIDE0OjU5OjU4LjAwMDAw MDAwMCArMDIwMAogQEAgLTYxLDYgKzYxLDggQEAgc3RydWN0IHNvX2xpc3QKICAgICAgYmZkICph YmZkOwogICAgICBjaGFyIHN5bWJvbHNfbG9hZGVkOwkvKiBmbGFnOiBzeW1ib2xzIHJlYWQgaW4g eWV0PyAqLwpAQCAtMTE5NCwxMCArMTE2MywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvc29saXN0LmgKICtleHRlcm4gaW50IGRlYnVnX3NvbGliOwogKwogICNlbmRpZgotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUtbWVtLmMKK0luZGV4OiBnZGItNi44 LjUwLjIwMDkwODA5L2dkYi9zeW1maWxlLW1lbS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA5MDgwMy5vcmlnL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDgtMDMgMjE6Mzk6MzguMDAw MDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYwky MDA5LTA4LTAzIDIxOjM5OjM5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4 MDkub3JpZy9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOC0x MCAxNDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMTUsNyArMTE1LDcgQEAgc3ltYm9sX2Zp bGVfYWRkX2Zyb21fbWVtb3J5IChzdHJ1Y3QgYmZkIAogIAkrK2k7CiAgICAgICAgfQpAQCAtMTIw NywxMCArMTE3NiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1t ZW0uYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FpLCBPQkpGX1NIQVJF RCk7CiAgCiAgICAvKiBUaGlzIG1pZ2h0IGNoYW5nZSBvdXIgaWRlYXMgYWJvdXQgZnJhbWVzIGFs cmVhZHkgbG9va2VkIGF0LiAgKi8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1m aWxlLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9zeW1maWxlLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAz IDIxOjM5OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5 bWZpbGUuYwkyMDA5LTA4LTA0IDA2OjAyOjQ1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02Ljgu NTAuMjAwOTA4MDkub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTAgMTQ6NTk6MjguMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc3ltZmlsZS5jCTIwMDktMDgt MTAgMTQ6NTk6NTguMDAwMDAwMDAwICswMjAwCiBAQCAtNDksNiArNDksNyBAQAogICNpbmNsdWRl ICJyZWFkbGluZS9yZWFkbGluZS5oIgogICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCkBAIC0xMjkw LDcgKzEyNTksNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAg CiAgICBmcmVlX2FsbF9vYmpmaWxlcyAoKTsKICAKLUBAIC0zMzgwLDYgKzMzODksOCBAQCByZXJl YWRfc3ltYm9scyAodm9pZCkKK0BAIC0zMzg3LDYgKzMzOTYsOCBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkKICAJICAgICAgLyogRGlzY2FyZCBjbGVhbnVwcyBhcyBzeW1ib2wgcmVhZGluZyB3YXMg c3VjY2Vzc2Z1bC4gICovCiAgCSAgICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7 CiAgCkBAIC0xMjk5LDEwICsxMjY4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi9zeW1maWxlLmMKICAJICAgICAgLyogSWYgdGhlIG10aW1lIGhhcyBjaGFuZ2VkIGJldHdlZW4g dGhlIHRpbWUgd2Ugc2V0IG5ld19tb2R0aW1lCiAgCSAgICAgICAgIGFuZCBub3csIHdlICp3YW50 KiB0aGlzIHRvIGJlIG91dCBvZiBkYXRlLCBzbyBkb24ndCBjYWxsIHN0YXQKICAJICAgICAgICAg YWdhaW4gbm93LiAgKi8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuaAor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90YXJnZXQuaAkyMDA5LTA4LTAzIDIxOjM5OjM5 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCTIw MDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgw OS5vcmlnL2dkYi90YXJnZXQuaAkyMDA5LTA4LTEwIDE0OjU5OjI4LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3RhcmdldC5oCTIwMDktMDgtMTAgMTQ6NTk6NTgu MDAwMDAwMDAwICswMjAwCiBAQCAtNTI0LDcgKzUyNCw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAg ICAgICAgIFJldHVybiAtMSBpZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgYnVmZmVyIGZvciBhIHdo b2xlIGVudHJ5LgogICAgICAgICBSZXR1cm4gMSBpZiBhbiBlbnRyeSB3YXMgcmVhZCBpbnRvICpU WVBFUCBhbmQgKlZBTFAuICAqLwpAQCAtMTMxMiwxMCArMTI4MSwxMCBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmgKICAKICAgICAgLyogU2VhcmNoIFNFQVJDSF9TUEFD RV9MRU4gYnl0ZXMgYmVnaW5uaW5nIGF0IFNUQVJUX0FERFIgZm9yIHRoZQogICAgICAgICBzZXF1 ZW5jZSBvZiBieXRlcyBpbiBQQVRURVJOIHdpdGggbGVuZ3RoIFBBVFRFUk5fTEVOLgotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDkvZ2RiL3N5bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMu b3JpZy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDMgMjE6Mzk6MzguMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDMgMjE6Mzk6Mzku MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zeW1maWxl LmgJMjAwOS0wOC0xMCAxNDo1OToyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwODA5L2dkYi9zeW1maWxlLmgJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAK IEBAIC0yMjksNyArMjI5LDEzIEBAIGVudW0gc3ltZmlsZV9hZGRfZmxhZ3MKICAgICAgU1lNRklM RV9NQUlOTElORSA9IDEgPDwgMiwKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCAwMDY2NjlmLi4y NmI0Y2YwIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9n ZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dk Yi9jb3JlbG93LmMJMjAwOS0wNy0zMSAxNzoyNToyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9jb3JlbG93LmMJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAw MDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDA5 LTA3LTMxIDE3OjI1OjIxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkv Z2RiL2NvcmVsb3cuYwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAgLTQ1 LDYgKzQ1LDEwIEBACiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICAjaW5jbHVkZSAic29saWIu aCIKQEAgLTg5LDEwICs4OSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29y ZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3ds aXN0KTsKICB9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZG9jL2dkYi50ZXhpbmZv CitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAw OS0wOC0wNCAwNjozMTo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAK Ky0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4 LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAg LTEzNzMzLDYgKzEzNzMzLDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgogIAogIEBlbmQgdGFibGUK QEAgLTEyMSwxMCArMTIxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9kb2Mv Z2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBzZWN0aW9ucwogIEBj aW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBhIHNwZWNpYWwgc2Vj dGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc29s aWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9z b2xpYi1zdnI0LmMJMjAwOS0wOC0wNCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAw MDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL3NvbGliLXN2cjQu YwkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAw OTA4MDkvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIw MAogQEAgLTExMDEsOSArMTEwMSwzMyBAQCBzdnI0X2N1cnJlbnRfc29zICh2b2lkKQogIAkJICAg ICBzYWZlX3N0cmVycm9yIChlcnJjb2RlKSk7CiAgCSAgZWxzZQpAQCAtMTYyLDEwICsxNjIsMTAg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLXN2cjQuYwogIAkgICAgfQog IAkgIHhmcmVlIChidWZmZXIpOwogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5 bWZpbGUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5bWZpbGUuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgt MDQgMDY6MzE6NTguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv c3ltZmlsZS5jCTIwMDktMDgtMDQgMDY6MzI6MTIuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYu OC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zeW1maWxlLmMJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9zeW1maWxlLmMJMjAwOS0w OC0xMCAxNDo1ODo1My4wMDAwMDAwMDAgKzAyMDAKIEBAIC01NSw2ICs1NSw3IEBACiAgI2luY2x1 ZGUgImVsZi1iZmQuaCIKICAjaW5jbHVkZSAic29saWIuaCIKQEAgLTE3NCw3ICsxNzQsNyBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgCiAgI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgogICNpbmNsdWRlIDxmY250bC5oPgotQEAgLTExOTMsMTYgKzExOTQsNjUgQEAg c3ltYm9sX2ZpbGVfY2xlYXIgKGludCBmcm9tX3R0eSkKK0BAIC0xMTk1LDE2ICsxMTk2LDY1IEBA IHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCiAgICAgIHByaW50Zl91bmZpbHRlcmVk IChfKCJObyBzeW1ib2wgZmlsZSBub3cuXG4iKSk7CiAgfQogIApAQCAtMjQyLDcgKzI0Miw3IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICB7CiAgICBzdHJ1Y3Qg YnVpbGRfaWQgKnJldHZhbDsKICAKLUBAIC0xMjE4LDYgKzEyNjgsMzQ4IEBAIGJ1aWxkX2lkX2Jm ZF9nZXQgKGJmZCAqYWJmZCkKK0BAIC0xMjIwLDYgKzEyNzAsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9n ZXQgKGJmZCAqYWJmZCkKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtNTkxLDcgKzU5MSw3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICAvKiBSZXR1cm4g aWYgRklMRU5BTUUgaGFzIE5UX0dOVV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUu ICAqLwogIAogIHN0YXRpYyBpbnQKLUBAIC0xMjM1LDcgKzE2MjcsNyBAQCBidWlsZF9pZF92ZXJp ZnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzCitAQCAtMTIzNyw3ICsxNjI5LDcgQEAgYnVpbGRf aWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwgcwogICAgaWYgKGFiZmQgPT0gTlVMTCkK ICAgICAgcmV0dXJuIDA7CiAgCkBAIC02MDAsNyArNjAwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIAogICAgaWYgKGZvdW5kID09IE5VTEwpCiAgICAgIHdh cm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVkIiksIGZp bGVuYW1lKTsKLUBAIC0xMjU0LDggKzE2NDYsOSBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNo YXIgKmZpbGVuYW1lLCBzCitAQCAtMTI1Niw4ICsxNjQ4LDkgQEAgYnVpbGRfaWRfdmVyaWZ5IChj b25zdCBjaGFyICpmaWxlbmFtZSwgcwogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC02MTIs NyArNjEyLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIHsK ICAgIGNoYXIgKmxpbmssICpzLCAqcmV0dmFsID0gTlVMTDsKICAgIGdkYl9ieXRlICpkYXRhID0g YnVpbGRfaWQtPmRhdGE7Ci1AQCAtMTI2Myw3ICsxNjU2LDkgQEAgYnVpbGRfaWRfdG9fZGVidWdf ZmlsZW5hbWUgKHN0cnVjdCBidWlsZAorQEAgLTEyNjUsNyArMTY1OCw5IEBAIGJ1aWxkX2lkX3Rv X2RlYnVnX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGQKICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNU T1JZLy5idWlsZC1pZC9hYi9jZGVmICovCiAgICBsaW5rID0geG1hbGxvYyAoc3RybGVuIChkZWJ1 Z19maWxlX2RpcmVjdG9yeSkgKyAoc2l6ZW9mICIvLmJ1aWxkLWlkLyIgLSAxKSArIDEKQEAgLTYy Myw3ICs2MjMsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAg ICBzID0gbGluayArIHNwcmludGYgKGxpbmssICIlcy8uYnVpbGQtaWQvIiwgZGVidWdfZmlsZV9k aXJlY3RvcnkpOwogICAgaWYgKHNpemUgPiAwKQogICAgICB7Ci1AQCAtMTI3NCwxMiArMTY2OSwx NCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCitAQCAtMTI3Niwx MiArMTY3MSwxNCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCiAg ICAgICpzKysgPSAnLyc7CiAgICB3aGlsZSAoc2l6ZS0tID4gMCkKICAgICAgcyArPSBzcHJpbnRm IChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC02NDAsNyArNjQwLDcgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIAogICAgaWYgKHJldHZhbCAh PSBOVUxMICYmICFidWlsZF9pZF92ZXJpZnkgKHJldHZhbCwgYnVpbGRfaWQpKQogICAgICB7Ci1A QCAtMTI4Nyw5ICsxNjg0LDE1MCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0 IGJ1aWxkCitAQCAtMTI4OSw5ICsxNjg2LDE1MCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFt ZSAoc3RydWN0IGJ1aWxkCiAgICAgICAgcmV0dmFsID0gTlVMTDsKICAgICAgfQogIApAQCAtNjQ5 LDkgKzY0OSw5IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICsg IGVsc2UKICsgICAgeGZyZWUgKGxpbmspOwogKwotKyAgcmV0dXJuIHJldHZhbDsKLSt9Ci0rCisg ICByZXR1cm4gcmV0dmFsOworIH0KKyAKICsvKiBUaGlzIE1JU1NJTkdfRklMRVBBSVJfSEFTSCB0 cmFja2VyIGlzIHVzZWQgb25seSBmb3IgdGhlIGR1cGxpY2l0ZSBtZXNzYWdlcwogKyAgICAgVHJ5 IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAuLi4KICsgICBhdm9pZGFuY2UuICAqLwpAQCAtNjc0 LDkgKzY3NCw5IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICsK ICsgIHJldHZhbCA9IG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssIHNp emUpOwogKyAgbWVtc2V0IChyZXR2YWwsIDAsIHNpemUpOwotICAgcmV0dXJuIHJldHZhbDsKLSB9 Ci0gCisrICByZXR1cm4gcmV0dmFsOworK30KKysKICtzdGF0aWMgaGFzaHZhbF90CiArbWlzc2lu Z19maWxlcGFpcl9oYXNoX2Z1bmMgKGNvbnN0IHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyICplbGVt KQogK3sKQEAgLTc5MSw3ICs3OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv c3ltZmlsZS5jCiAgc3RhdGljIGNoYXIgKgogIGdldF9kZWJ1Z19saW5rX2luZm8gKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQpCiAgewotQEAgLTEzNzIs MzIgKzE5MTAsMzYgQEAgc3RhdGljIGNoYXIgKgorQEAgLTEzNzQsMzIgKzE5MTIsMzYgQEAgc3Rh dGljIGNoYXIgKgogIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCiAgewogICAgYXNlY3Rpb24gKnNlY3Q7CkBAIC04MzYsNyArODM2LDcgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogICAgICB9CiAgCiAgICBiYXNlbmFt ZSA9IGdldF9kZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7Ci1AQCAtMTQwNSw3ICsx OTQ3LDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0 MDcsNyArMTk0OSw3IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUK ICAgIGlmIChiYXNlbmFtZSA9PSBOVUxMKQogICAgICAvKiBUaGVyZSdzIG5vIHNlcGFyYXRlIGRl YnVnIGluZm8sIGhlbmNlIHRoZXJlJ3Mgbm8gd2F5IHdlIGNvdWxkCiAgICAgICAgIGxvYWQgaXQg PT4gbm8gd2FybmluZy4gICovCkBAIC04NDUsMTggKzg0NSwxOCBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgCiAgICBkaXIgPSB4c3RyZHVwIChvYmpmaWxlLT5u YW1lKTsKICAKLUBAIC0xNDIxLDIzICsxOTYzLDE5IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZSAoc3RydWN0IG9iamZpbGUKLSAgIGdkYl9hc3NlcnQgKGkgPj0gMCAmJiBJU19ESVJfU0VQQVJB VE9SIChkaXJbaV0pKTsKLSAgIGRpcltpKzFdID0gJ1wwJzsKK0BAIC0xNDI5LDI0ICsxOTcxLDE5 IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKKyAgIGlmIChjYW5v bl9uYW1lICYmIHN0cmxlbiAoY2Fub25fbmFtZSkgPiBpKQorICAgICBpID0gc3RybGVuIChjYW5v bl9uYW1lKTsKICAKIC0gIGRlYnVnZmlsZSA9IGFsbG9jYSAoc3RybGVuIChkZWJ1Z19maWxlX2Rp cmVjdG9yeSkgKyAxCi0tICAgICAgICAgICAgICAgICAgICAgICsgc3RybGVuIChkaXIpCistICAg ICAgICAgICAgICAgICAgICAgICsgaQogLSAgICAgICAgICAgICAgICAgICAgICArIHN0cmxlbiAo REVCVUdfU1VCRElSRUNUT1JZKQogLSAgICAgICAgICAgICAgICAgICAgICArIHN0cmxlbiAoIi8i KQogLSAgICAgICAgICAgICAgICAgICAgICArIHN0cmxlbiAoYmFzZW5hbWUpCiAtICAgICAgICAg ICAgICAgICAgICAgICsgMSk7CiArICBkZWJ1Z2ZpbGUgPSB4bWFsbG9jIChzdHJsZW4gKGRlYnVn X2ZpbGVfZGlyZWN0b3J5KSArIDEKLSsJCSAgICAgICArIHN0cmxlbiAoZGlyKQorKwkJICAgICAg ICsgaQogKwkJICAgICAgICsgc3RybGVuIChERUJVR19TVUJESVJFQ1RPUlkpCiArCQkgICAgICAg KyBzdHJsZW4gKCIvIikKICsJCSAgICAgICArIHN0cmxlbiAoYmFzZW5hbWUpCkBAIC04NzAsMzkg Kzg3MCw0MiBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAtICAg IHsKIC0gICAgICB4ZnJlZSAoYmFzZW5hbWUpOwogLSAgICAgIHhmcmVlIChkaXIpOworLSAgICAg IHhmcmVlIChjYW5vbl9uYW1lKTsKIC0gICAgICByZXR1cm4geHN0cmR1cCAoZGVidWdmaWxlKTsK IC0gICAgfQogKyAgICBnb3RvIGNsZWFudXBfcmV0dXJuX2RlYnVnZmlsZTsKICAKICAgIC8qIFRo ZW4gdHJ5IGluIHRoZSBzdWJkaXJlY3RvcnkgbmFtZWQgREVCVUdfU1VCRElSRUNUT1JZLiAgKi8K ICAgIHN0cmNweSAoZGVidWdmaWxlLCBkaXIpOwotQEAgLTE0NDYsMTEgKzE5ODQsNyBAQCBmaW5k X3NlcGFyYXRlX2RlYnVnX2ZpbGUgKHN0cnVjdCBvYmpmaWxlCitAQCAtMTQ1NSwxMiArMTk5Miw3 IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKICAgIHN0cmNhdCAo ZGVidWdmaWxlLCBiYXNlbmFtZSk7CiAgCiAgICBpZiAoc2VwYXJhdGVfZGVidWdfZmlsZV9leGlz dHMgKGRlYnVnZmlsZSwgY3JjMzIsIG9iamZpbGUtPm5hbWUpKQogLSAgICB7CiAtICAgICAgeGZy ZWUgKGJhc2VuYW1lKTsKIC0gICAgICB4ZnJlZSAoZGlyKTsKKy0gICAgICB4ZnJlZSAoY2Fub25f bmFtZSk7CiAtICAgICAgcmV0dXJuIHhzdHJkdXAgKGRlYnVnZmlsZSk7CiAtICAgIH0KICsgICAg Z290byBjbGVhbnVwX3JldHVybl9kZWJ1Z2ZpbGU7CiAgCiAgICAvKiBUaGVuIHRyeSBpbiB0aGUg Z2xvYmFsIGRlYnVnZmlsZSBkaXJlY3RvcnkuICAqLwogICAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRl YnVnX2ZpbGVfZGlyZWN0b3J5KTsKLUBAIC0xNDU5LDExICsxOTkzLDcgQEAgZmluZF9zZXBhcmF0 ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0NjksMTIgKzIwMDEsNyBAQCBmaW5k X3NlcGFyYXRlX2RlYnVnX2ZpbGUgKHN0cnVjdCBvYmpmaWxlCiAgICBzdHJjYXQgKGRlYnVnZmls ZSwgYmFzZW5hbWUpOwogIAogICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1 Z2ZpbGUsIGNyYzMyLCBvYmpmaWxlLT5uYW1lKSkKIC0gICAgewogLSAgICAgIHhmcmVlIChiYXNl bmFtZSk7CiAtICAgICAgeGZyZWUgKGRpcik7CistICAgICAgeGZyZWUgKGNhbm9uX25hbWUpOwog LSAgICAgIHJldHVybiB4c3RyZHVwIChkZWJ1Z2ZpbGUpOwogLSAgICB9CiArICAgIGdvdG8gY2xl YW51cF9yZXR1cm5fZGVidWdmaWxlOwogIAogICAgLyogSWYgdGhlIGZpbGUgaXMgaW4gdGhlIHN5 c3Jvb3QsIHRyeSB1c2luZyBpdHMgYmFzZSBwYXRoIGluIHRoZQogICAgICAgZ2xvYmFsIGRlYnVn ZmlsZSBkaXJlY3RvcnkuICAqLwotQEAgLTE0NzgsMjAgKzIwMDgsMTggQEAgZmluZF9zZXBhcmF0 ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0ODgsMjEgKzIwMTUsMTggQEAgZmlu ZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQogICAgICAgIHN0cmNhdCAoZGVi dWdmaWxlLCBiYXNlbmFtZSk7CiAgCiAgICAgICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhp c3RzIChkZWJ1Z2ZpbGUsIGNyYzMyLCBvYmpmaWxlLT5uYW1lKSkKQEAgLTkxMCwxNyArOTEzLDE3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKIC0JICB4ZnJlZSAo Y2Fub25fbmFtZSk7CiAtCSAgeGZyZWUgKGJhc2VuYW1lKTsKIC0JICB4ZnJlZSAoZGlyKTsKKy0J ICB4ZnJlZSAoY2Fub25fbmFtZSk7CiAtCSAgcmV0dXJuIHhzdHJkdXAgKGRlYnVnZmlsZSk7CiAt CX0KLSsgICAgICAgIGdvdG8gY2xlYW51cF9yZXR1cm5fZGVidWdmaWxlOworKwlnb3RvIGNsZWFu dXBfcmV0dXJuX2RlYnVnZmlsZTsKICAgICAgfQotLSAgCisgICAKIC0gIGlmIChjYW5vbl9uYW1l KQogLSAgICB4ZnJlZSAoY2Fub25fbmFtZSk7Ci0gCiArICBkZWJ1Z2ZpbGUgPSBOVUxMOwogKyAg ZGVidWdfcHJpbnRfbWlzc2luZyAob2JqZmlsZS0+bmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwot KworIAogK2NsZWFudXBfcmV0dXJuX2RlYnVnZmlsZToKICsgIHhmcmVlIChidWlsZF9pZF9maWxl bmFtZSk7CiArICB4ZnJlZSAoY2Fub25fbmFtZSk7CkBAIC05MzEsNyArOTM0LDcgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIH0KICAKICAKLUBAIC00MjQzLDQg KzQ3NzEsMTYgQEAgU2hvdyBwcmludGluZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcworQEAg LTQyNTQsNCArNDc3OCwxNiBAQCBTaG93IHByaW50aW5nIG9mIHN5bWJvbCBsb2FkaW5nIG1lc3Nh Z2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZXRwcmludGxp c3QsICZzaG93cHJpbnRsaXN0KTsKQEAgLTk0OCwxMCArOTUxLDEwIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRh YmxlX2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiAgfQotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDkvZ2RiL3N5bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMu b3JpZy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDQgMDY6Mjk6NDcuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDQgMDY6MzI6MTIu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zeW1maWxl LmgJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwODA5L2dkYi9zeW1maWxlLmgJMjAwOS0wOC0xMCAxNDo1NjoxMS4wMDAwMDAwMDAgKzAyMDAK IEBAIC0zODgsNiArMzg4LDEzIEBAIGV4dGVybiBpbnQgc3ltZmlsZV9tYXBfb2Zmc2V0c190b19z ZWdtZW4KICBzdHJ1Y3Qgc3ltZmlsZV9zZWdtZW50X2RhdGEgKmdldF9zeW1maWxlX3NlZ21lbnRf ZGF0YSAoYmZkICphYmZkKTsKICB2b2lkIGZyZWVfc3ltZmlsZV9zZWdtZW50X2RhdGEgKHN0cnVj dCBzeW1maWxlX3NlZ21lbnRfZGF0YSAqZGF0YSk7CkBAIC05NjYsMTAgKzk2OSwxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFk LmMgKi8KICAKICBleHRlcm4gaW50IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKik7 Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAwOS0wOC0wNCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUw LjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOC0wNCAwNjozMjoxMi4w MDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA4MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDA5LTA4LTEwIDE0 OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAgLTEyNDgsNiArMTI0OCwxNiBAQCBwcm9jIGRlZmF1 bHRfZ2RiX3N0YXJ0IHsgfSB7CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRo IHRvIDAuIgogIAl9CkBAIC05ODcsMTAgKzk5MCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJldHVybiAwOwogIH0KICAKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhw CitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1 aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDA5LTA4LTA0IDA2OjI5OjQ3LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5l eHAJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIw MDkwODA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0wOC0xMCAw MDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi90ZXN0 c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMDktMDgtMTAgMTQ6NTY6MTEuMDAwMDAwMDAwICsw MjAwCiBAQCAtMjIxLDYgKzIyMSwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJn cyB9IHsKICAJICAgIH0KICAgICAgCX0KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIv Z2RiLWFyY2hlci5wYXRjaAppbmRleCA2YWQ3MTcwLi44YTExZTM2IDEwMDY0NAotLS0gYS9nZGIt YXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2Fy ZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1j b21taXQgMDIyMmNiMWY0ZGRkMWVkYTMyOTY1ZTQ2NGNiNjBiMWU0NGUxMTBiMgorY29tbWl0IDkz ZWMxNmU2ZjUwMDBkZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKIAogYnJhbmNoIGBhcmNoZXIn IC0gdGhlIG1lcmdlIG9mIGJyYW5jaGVzOgogYXJjaGVyLXRyb21leS1jYWxsLWZyYW1lLWNmYQpA QCAtMTAsMTIgKzEwLDI4OSBAQCBhcmNoZXItdHJvbWV5LWRlbGF5ZWQtc3ltZmlsZQogYXJjaGVy LXRyb21leS1kdy1vcC12YWx1ZQogYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXItamFu a3JhdG9jaHZpbC1taXNjCi1hcmNoZXItamFua3JhdG9jaHZpbC1leHByLWN1bXVsYXRpdmUKLQlh cmNoZXIta2VpdGhzLWV4cHItY3VtdWxhdGl2ZQotYXJjaGVyLWphbmtyYXRvY2h2aWwtcHl0aG9u Ci0JYXJjaGVyLXRyb21leS1weXRob24KK2FyY2hlci1rZWl0aHMtZXhwci1jdW11bGF0aXZlCith cmNoZXItdHJvbWV5LXB5dGhvbgogCiAKK2RpZmYgLS1naXQgYS9iZmQvY29mZi1zdGdvMzIuYyBi L2JmZC9jb2ZmLXN0Z28zMi5jCitpbmRleCBiODkyOGJlLi44YmY3NjY3IDEwMDY0NAorLS0tIGEv YmZkL2NvZmYtc3RnbzMyLmMKKysrKyBiL2JmZC9jb2ZmLXN0Z28zMi5jCitAQCAtMTAyLDkgKzEw Miw2IEBAIHN0YXRpYyBiZmRfYm9vbGVhbgorIAorICNpbmNsdWRlICJjb2ZmLWkzODYuYyIKKyAK Ky0vKiBJIGhvbGQgaW4gdGhlIHVzcmRhdGEgdGhlIHN0dWIuICAqLworLSNkZWZpbmUgYmZkX2Nv ZmZfZ28zMnN0dWIgYmZkX3VzcmRhdGEKKy0KKyAvKiBUaGlzIG1hY3JvIGlzIHVzZWQsIGJlY2F1 c2UgSSBjYW5ub3QgYXNzdW1lIHRoZSBlbmRpYW5lc3Mgb2YgdGhlCisgICAgaG9zdCBzeXN0ZW0u ICAqLworICNkZWZpbmUgX0goaW5kZXgpIChIX0dFVF8xNiAoYWJmZCwgKGhlYWRlcitpbmRleCoy KSkpCitAQCAtMTEyLDcgKzEwOSw3IEBAIHN0YXRpYyBiZmRfYm9vbGVhbgorIC8qIFRoZXNlIGJ5 dGVzIGFyZSBhIDIwNDgtYnl0ZSBET1MgZXhlY3V0YWJsZSwgd2hpY2ggbG9hZHMgdGhlIENPRkYK KyAgICBpbWFnZSBpbnRvIG1lbW9yeSBhbmQgdGhlbiBydW5zIGl0LiBJdCBpcyBjYWxsZWQgJ3N0 dWInLiAgKi8KKyAKKy1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdHViX2J5dGVzW1NUVUJT SVpFXSA9Cisrc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1Yl9ieXRlc1tHTzMyX1NUVUJT SVpFXSA9CisgeworICNpbmNsdWRlICJnbzMyc3R1Yi5oIgorIH07CitAQCAtMTIwLDcgKzExNyw3 IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNbU1RVQlNJWkVdID0KKyAv KgorICAgIEkgaGF2ZSBub3QgY29tbWVudGVkIGVhY2ggc3dhcCBmdW5jdGlvbiBiZWxvdywgYmVj YXVzZSB0aGUKKyAgICB0ZWNobmlxdWUgaXMgaW4gYW55IGZ1bmN0aW9uIHRoZSBzYW1lLiBGb3Ig dGhlIC4uLmluIGZ1bmN0aW9uLAorLSAgIGFsbCB0aGUgcG9pbnRlcnMgYXJlIGFkanVzdGVkIGJ5 IGFkZGluZyBTVFVCU0laRSBhbmQgZm9yIHRoZQorKyAgIGFsbCB0aGUgcG9pbnRlcnMgYXJlIGFk anVzdGVkIGJ5IGFkZGluZyBHTzMyX1NUVUJTSVpFIGFuZCBmb3IgdGhlCisgICAgLi4ub3V0IGZ1 bmN0aW9uLCBpdCBpcyBzdWJ0cmFjdGVkIGZpcnN0IGFuZCBhZnRlciBjYWxsaW5nIHRoZQorICAg IHN0YW5kYXJkIHN3YXAgZnVuY3Rpb24gaXQgaXMgcmVzZXQgdG8gdGhlIG9sZCB2YWx1ZS4gICov CisgCitAQCAtMTMyLDI1ICsxMjksMjAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1 Yl9ieXRlc1tTVFVCU0laRV0gPQorIAorIHN0YXRpYyB2b2lkCisgYWRqdXN0X2ZpbGVoZHJfaW5f cG9zdCAgKGFiZmQsIHNyYywgZHN0KQorLSAgICAgYmZkICphYmZkOworKyAgICAgYmZkICphYmZk IEFUVFJJQlVURV9VTlVTRUQ7CisgICAgICBQVFIgc3JjOworICAgICAgUFRSIGRzdDsKKyB7Cisg ICBGSUxIRFIgKmZpbGVoZHJfc3JjID0gKEZJTEhEUiAqKSBzcmM7CisgICBzdHJ1Y3QgaW50ZXJu YWxfZmlsZWhkciAqZmlsZWhkcl9kc3QgPSAoc3RydWN0IGludGVybmFsX2ZpbGVoZHIgKikgZHN0 OworIAorLSAgQURKVVNUX1ZBTCAoZmlsZWhkcl9kc3QtPmZfc3ltcHRyLCBTVFVCU0laRSk7Cisr ICBBREpVU1RfVkFMIChmaWxlaGRyX2RzdC0+Zl9zeW1wdHIsIEdPMzJfU1RVQlNJWkUpOworIAor LSAgLyogU2F2ZSBub3cgdGhlIHN0dWIgdG8gYmUgdXNlZCBsYXRlci4gICovCistICBiZmRfY29m Zl9nbzMyc3R1YiAoYWJmZCkgPSAoUFRSKSBiZmRfYWxsb2MgKGFiZmQsIChiZmRfc2l6ZV90eXBl KSBTVFVCU0laRSk7CistCistICAvKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgbm8gc3Rh dHVzLCBJIGRvIG5vdCBzZXQgaGVyZQorLSAgICAgYW55IGJmZF9lcnJvcl8uLi4KKy0gICAgIFRo YXQgbWVhbnMsIGJlZm9yZSB0aGUgdXNlIG9mIGJmZF9jb2ZmX2dvMzJzdHViICgpLCB0aGlzIHZh bHVlCistICAgICBzaG91bGQgYmUgY2hlY2tlZCBpZiBpdCBpcyAhPSBOVUxMLiAgKi8KKy0gIGlm IChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKKy0gICAgcmV0dXJuOworLSAgbWVt Y3B5IChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCksIGZpbGVoZHJfc3JjLT5zdHViLCBTVFVCU0la RSk7CisrICAvKiBTYXZlIG5vdyB0aGUgc3R1YiB0byBiZSB1c2VkIGxhdGVyLiAgUHV0IHRoZSBz dHViIGRhdGEgdG8gRklMRUhEUl9EU1QKKysgICAgIGZpcnN0IGFzIGNvZmZfZGF0YSAoYWJmZCkg c3RpbGwgZG9lcyBub3QgZXhpc3QuICBJdCBtYXkgbm90IGV2ZW4gYmUgZXZlcgorKyAgICAgY3Jl YXRlZCBhcyB3ZSBhcmUganVzdCBjaGVja2luZyB0aGUgZmlsZSBmb3JtYXQgb2YgQUJGRC4gICov CisrICBtZW1jcHkgKGZpbGVoZHJfZHN0LT5nbzMyc3R1YiwgZmlsZWhkcl9zcmMtPnN0dWIsIEdP MzJfU1RVQlNJWkUpOworKyAgZmlsZWhkcl9kc3QtPmZfZmxhZ3MgfD0gRl9HTzMyU1RVQjsKKyB9 CisgCisgc3RhdGljIHZvaWQKK0BAIC0xNjYsMTMgKzE1OCwxMyBAQCBhZGp1c3RfZmlsZWhkcl9v dXRfcHJlICAoYWJmZCwgaW4sIG91dCkKKyAgIGNyZWF0ZV9nbzMyX3N0dWIgKGFiZmQpOworIAor ICAgLyogQ29weSB0aGUgc3R1YiB0byB0aGUgZmlsZSBoZWFkZXIuICAqLworLSAgaWYgKGJmZF9j b2ZmX2dvMzJzdHViIChhYmZkKSAhPSBOVUxMKQorLSAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5z dHViLCBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCksIFNUVUJTSVpFKTsKKysgIGlmIChjb2ZmX2Rh dGEgKGFiZmQpLT5nbzMyc3R1YiAhPSBOVUxMKQorKyAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5z dHViLCBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YiwgR08zMl9TVFVCU0laRSk7CisgICBlbHNl CisgICAgIC8qIFVzZSB0aGUgZGVmYXVsdC4gICovCistICAgIG1lbWNweSAoZmlsZWhkcl9vdXQt PnN0dWIsIHN0dWJfYnl0ZXMsIFNUVUJTSVpFKTsKKysgICAgbWVtY3B5IChmaWxlaGRyX291dC0+ c3R1Yiwgc3R1Yl9ieXRlcywgR08zMl9TVFVCU0laRSk7CisgCistICBBREpVU1RfVkFMIChmaWxl aGRyX2luLT5mX3N5bXB0ciwgLVNUVUJTSVpFKTsKKysgIEFESlVTVF9WQUwgKGZpbGVoZHJfaW4t PmZfc3ltcHRyLCAtR08zMl9TVFVCU0laRSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTgz LDcgKzE3NSw3IEBAIGFkanVzdF9maWxlaGRyX291dF9wb3N0ICAoYWJmZCwgaW4sIG91dCkKKyB7 CisgICBzdHJ1Y3QgaW50ZXJuYWxfZmlsZWhkciAqZmlsZWhkcl9pbiA9IChzdHJ1Y3QgaW50ZXJu YWxfZmlsZWhkciAqKSBpbjsKKyAgIC8qIFVuZG8gdGhlIGFib3ZlIGNoYW5nZS4gICovCistICBB REpVU1RfVkFMIChmaWxlaGRyX2luLT5mX3N5bXB0ciwgU1RVQlNJWkUpOworKyAgQURKVVNUX1ZB TCAoZmlsZWhkcl9pbi0+Zl9zeW1wdHIsIEdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0aWMg dm9pZAorQEAgLTE5NCw5ICsxODYsOSBAQCBhZGp1c3Rfc2NuaGRyX2luX3Bvc3QgIChhYmZkLCBl eHQsIGluKQorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKnNjbmhkcl9pbnQgPSAoc3Ry dWN0IGludGVybmFsX3NjbmhkciAqKSBpbjsKKyAKKy0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQt PnNfc2NucHRyLCBTVFVCU0laRSk7CistICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3JlbHB0 ciwgU1RVQlNJWkUpOworLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCBTVFVC U0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgR08zMl9TVFVCU0la RSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3JlbHB0ciwgR08zMl9TVFVCU0laRSk7 CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX2xubm9wdHIsIEdPMzJfU1RVQlNJWkUpOwor IH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTIwNyw5ICsxOTksOSBAQCBhZGp1c3Rfc2NuaGRyX291 dF9wcmUgIChhYmZkLCBpbiwgb3V0KQorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKnNj bmhkcl9pbnQgPSAoc3RydWN0IGludGVybmFsX3NjbmhkciAqKSBpbjsKKyAKKy0gIEFESlVTVF9W QUwgKHNjbmhkcl9pbnQtPnNfc2NucHRyLCAtU1RVQlNJWkUpOworLSAgQURKVVNUX1ZBTCAoc2Nu aGRyX2ludC0+c19yZWxwdHIsIC1TVFVCU0laRSk7CistICBBREpVU1RfVkFMIChzY25oZHJfaW50 LT5zX2xubm9wdHIsIC1TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3Nj bnB0ciwgLUdPMzJfU1RVQlNJWkUpOworKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxw dHIsIC1HTzMyX1NUVUJTSVpFKTsKKysgIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfbG5ub3B0 ciwgLUdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTIyMCw5ICsyMTIs OSBAQCBhZGp1c3Rfc2NuaGRyX291dF9wb3N0IChhYmZkLCBpbiwgb3V0KQorIHsKKyAgIHN0cnVj dCBpbnRlcm5hbF9zY25oZHIgKnNjbmhkcl9pbnQgPSAoc3RydWN0IGludGVybmFsX3NjbmhkciAq KSBpbjsKKyAKKy0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfc2NucHRyLCBTVFVCU0laRSk7 CistICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3JlbHB0ciwgU1RVQlNJWkUpOworLSAgQURK VVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCBTVFVCU0laRSk7CisrICBBREpVU1RfVkFM IChzY25oZHJfaW50LT5zX3NjbnB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChz Y25oZHJfaW50LT5zX3JlbHB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25o ZHJfaW50LT5zX2xubm9wdHIsIEdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAor QEAgLTIzOSw3ICsyMzEsNyBAQCBhZGp1c3RfYXV4X2luX3Bvc3QgIChhYmZkLCBleHQxLCB0eXBl LCBjbGFzcywgaW5keCwgbnVtYXV4LCBpbjEpCisgCisgICBpZiAoY2xhc3MgPT0gQ19CTE9DSyB8 fCBjbGFzcyA9PSBDX0ZDTiB8fCBJU0ZDTiAodHlwZSkgfHwgSVNUQUcgKGNsYXNzKSkKKyAgICAg eworLSAgICAgIEFESlVTVF9WQUwgKGluLT54X3N5bS54X2ZjbmFyeS54X2Zjbi54X2xubm9wdHIs IFNUVUJTSVpFKTsKKysgICAgICBBREpVU1RfVkFMIChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24u eF9sbm5vcHRyLCBHTzMyX1NUVUJTSVpFKTsKKyAgICAgfQorIH0KKyAKK0BAIC0yNTcsNyArMjQ5 LDcgQEAgYWRqdXN0X2F1eF9vdXRfcHJlICAoYWJmZCwgaW5wLCB0eXBlLCBjbGFzcywgaW5keCwg bnVtYXV4LCBleHRwKQorIAorICAgaWYgKGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3MgPT0gQ19G Q04gfHwgSVNGQ04gKHR5cGUpIHx8IElTVEFHIChjbGFzcykpCisgICAgIHsKKy0gICAgICBBREpV U1RfVkFMIChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCAtU1RVQlNJWkUpOwor KyAgICAgIEFESlVTVF9WQUwgKGluLT54X3N5bS54X2ZjbmFyeS54X2Zjbi54X2xubm9wdHIsIC1H TzMyX1NUVUJTSVpFKTsKKyAgICAgfQorIH0KKyAKK0BAIC0yNzUsNyArMjY3LDcgQEAgYWRqdXN0 X2F1eF9vdXRfcG9zdCAoYWJmZCwgaW5wLCB0eXBlLCBjbGFzcywgaW5keCwgbnVtYXV4LCBleHRw KQorIAorICAgaWYgKGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3MgPT0gQ19GQ04gfHwgSVNGQ04g KHR5cGUpIHx8IElTVEFHIChjbGFzcykpCisgICAgIHsKKy0gICAgICBBREpVU1RfVkFMIChpbi0+ eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCBTVFVCU0laRSk7CisrICAgICAgQURKVVNU X1ZBTCAoaW4tPnhfc3ltLnhfZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgR08zMl9TVFVCU0laRSk7 CisgICAgIH0KKyB9CisgCitAQCAtMjk2LDcgKzI4OCw3IEBAIGNyZWF0ZV9nbzMyX3N0dWIgKGFi ZmQpCisgICAgICBiZmQgKmFiZmQ7CisgeworICAgLyogRG8gaXQgb25seSBvbmNlLiAgKi8KKy0g IGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKKysgIGlmIChjb2ZmX2RhdGEg KGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQorICAgICB7CisgICAgICAgY2hhciAqc3R1YjsKKyAg ICAgICBzdHJ1Y3Qgc3RhdCBzdDsKK0BAIC0zNjIsMzIgKzM1NCwzMiBAQCBjcmVhdGVfZ28zMl9z dHViIChhYmZkKQorIAkgIGdvdG8gc3R1Yl9lbmQ7CisgCX0KKyAgICAgICAvKiBOb3cgd2UgZm91 bmQgYSBjb3JyZWN0IHN0dWIgKGhvcGVmdWxseSkuICAqLworLSAgICAgIGJmZF9jb2ZmX2dvMzJz dHViIChhYmZkKQorKyAgICAgIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViCisgCT0gKFBUUikg YmZkX2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgY29mZl9zdGFydCk7CistICAgICAgaWYg KGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSA9PSBOVUxMKQorKyAgICAgIGlmIChjb2ZmX2RhdGEg KGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQorIAl7CisgCSAgY2xvc2UgKGYpOworIAkgIHJldHVy bjsKKyAJfQorICAgICAgIGxzZWVrIChmLCAwTCwgU0VFS19TRVQpOworLSAgICAgIGlmICgodW5z aWduZWQgbG9uZykgcmVhZCAoZiwgYmZkX2NvZmZfZ28zMnN0dWIgKGFiZmQpLCBjb2ZmX3N0YXJ0 KQorKyAgICAgIGlmICgodW5zaWduZWQgbG9uZykgcmVhZCAoZiwgY29mZl9kYXRhIChhYmZkKS0+ Z28zMnN0dWIsIGNvZmZfc3RhcnQpCisgCSAgIT0gY29mZl9zdGFydCkKKyAJeworLQkgIGJmZF9y ZWxlYXNlIChhYmZkLCBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkpOworLQkgIGJmZF9jb2ZmX2dv MzJzdHViIChhYmZkKSA9IE5VTEw7CisrCSAgYmZkX3JlbGVhc2UgKGFiZmQsIGNvZmZfZGF0YSAo YWJmZCktPmdvMzJzdHViKTsKKysJICBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YiA9IE5VTEw7 CisgCX0KKyAgICAgICBjbG9zZSAoZik7CisgICAgIH0KKyBzdHViX2VuZDoKKyAgIC8qIFRoZXJl IHdhcyBzb21ldGhpbmcgd3JvbmcgYWJvdmUsIHNvIHVzZSBub3cgdGhlIHN0YW5kYXJkIGJ1aWx0 aW4KKyAgICAgIHN0dWIuICAqLworLSAgaWYgKGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSA9PSBO VUxMKQorKyAgaWYgKGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViID09IE5VTEwpCisgICAgIHsK Ky0gICAgICBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkKKy0JPSAoUFRSKSBiZmRfYWxsb2MgKGFi ZmQsIChiZmRfc2l6ZV90eXBlKSBTVFVCU0laRSk7CistICAgICAgaWYgKGJmZF9jb2ZmX2dvMzJz dHViIChhYmZkKSA9PSBOVUxMKQorKyAgICAgIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViCisr CT0gKFBUUikgYmZkX2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgR08zMl9TVFVCU0laRSk7 CisrICAgICAgaWYgKGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViID09IE5VTEwpCisgCXJldHVy bjsKKy0gICAgICBtZW1jcHkgKGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSwgc3R1Yl9ieXRlcywg U1RVQlNJWkUpOworKyAgICAgIG1lbWNweSAoY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIsIHN0 dWJfYnl0ZXMsIEdPMzJfU1RVQlNJWkUpOworICAgICB9CisgfQorIAorQEAgLTQwMywxMyArMzk1 LDIwIEBAIGdvMzJfc3R1YmJlZF9jb2ZmX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEgIChpYmZk LCBvYmZkKQorICAgaWYgKGliZmQtPnh2ZWMgIT0gb2JmZC0+eHZlYykKKyAgICAgcmV0dXJuIFRS VUU7CisgCistICAvKiBDaGVjayBpZiBib3RoIGhhdmUgYSB2YWxpZCBzdHViLiAgKi8KKy0gIGlm IChiZmRfY29mZl9nbzMyc3R1YiAoaWJmZCkgPT0gTlVMTAorLSAgICAgIHx8IGJmZF9jb2ZmX2dv MzJzdHViIChvYmZkKSA9PSBOVUxMKQorKyAgLyogQ2hlY2sgaWYgd2UgaGF2ZSBhIHNvdXJjZSBz dHViLiAgKi8KKysgIGlmIChjb2ZmX2RhdGEgKGliZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQorICAg ICByZXR1cm4gVFJVRTsKKyAKKysgIC8qIEFzIGFkanVzdF9maWxlaGRyX291dF9wcmUgbWF5IGdl dCBjYWxsZWQgb25seSBhZnRlciB0aGlzIGZ1bmN0aW9uLAorKyAgICAgb3B0aW9uYWxseSBhbGxv Y2F0ZSB0aGUgb3V0cHV0IHN0dWIuICAqLworKyAgaWYgKGNvZmZfZGF0YSAob2JmZCktPmdvMzJz dHViID09IE5VTEwpCisrICAgIGNvZmZfZGF0YSAob2JmZCktPmdvMzJzdHViID0gKFBUUikgYmZk X2FsbG9jIChvYmZkLAorKwkJCQkJCShiZmRfc2l6ZV90eXBlKSBHTzMyX1NUVUJTSVpFKTsKKysK KyAgIC8qIE5vdyBjb3B5IHRoZSBzdHViLiAgKi8KKy0gIG1lbWNweSAoYmZkX2NvZmZfZ28zMnN0 dWIgKG9iZmQpLCBiZmRfY29mZl9nbzMyc3R1YiAoaWJmZCksIFNUVUJTSVpFKTsKKysgIGlmIChj b2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1YiAhPSBOVUxMKQorKyAgICBtZW1jcHkgKGNvZmZfZGF0 YSAob2JmZCktPmdvMzJzdHViLCBjb2ZmX2RhdGEgKGliZmQpLT5nbzMyc3R1YiwKKysJICAgIEdP MzJfU1RVQlNJWkUpOworIAorICAgcmV0dXJuIFRSVUU7CisgfQorZGlmZiAtLWdpdCBhL2JmZC9j b2ZmY29kZS5oIGIvYmZkL2NvZmZjb2RlLmgKK2luZGV4IDRiNzQ4YjQuLjFjYzg2MGEgMTAwNjQ0 CistLS0gYS9iZmQvY29mZmNvZGUuaAorKysrIGIvYmZkL2NvZmZjb2RlLmgKK0BAIC0xOTkyLDYg KzE5OTIsMTEgQEAgY29mZl9ta29iamVjdF9ob29rIChiZmQgKiBhYmZkLAorICAgICBhYmZkLT5m bGFncyB8PSBIQVNfREVCVUc7CisgI2VuZGlmCisgCisrICBpZiAoKGludGVybmFsX2YtPmZfZmxh Z3MgJiBGX0dPMzJTVFVCKSAhPSAwKQorKyAgICBjb2ZmLT5nbzMyc3R1YiA9IChjaGFyICopIGJm ZF9hbGxvYyAoYWJmZCwgKGJmZF9zaXplX3R5cGUpIEdPMzJfU1RVQlNJWkUpOworKyAgaWYgKGNv ZmYtPmdvMzJzdHViICE9IE5VTEwpCisrICAgIG1lbWNweSAoY29mZi0+Z28zMnN0dWIsIGludGVy bmFsX2YtPmdvMzJzdHViLCBHTzMyX1NUVUJTSVpFKTsKKysKKyAgIHJldHVybiBjb2ZmOworIH0K KyAjZW5kaWYKK2RpZmYgLS1naXQgYS9iZmQvbGliY29mZi1pbi5oIGIvYmZkL2xpYmNvZmYtaW4u aAoraW5kZXggMTZiNmM3Yi4uZjMxMDhlZSAxMDA2NDQKKy0tLSBhL2JmZC9saWJjb2ZmLWluLmgK KysrKyBiL2JmZC9saWJjb2ZmLWluLmgKK0BAIC0xMDYsNiArMTA2LDkgQEAgdHlwZWRlZiBzdHJ1 Y3QgY29mZl90ZGF0YQorICAgICAgdXNlZCBieSBBUk0gY29kZS4gICovCisgICBmbGFnd29yZCBm bGFnczsKKyAKKysgIC8qIGNvZmYtc3RnbzMyIEVYRSBzdHViIGhlYWRlciBhZnRlciBCRkQgdGRh dGEgaGFzIGJlZW4gYWxsb2NhdGVkLiAgSXRzIGRhdGEKKysgICAgIGlzIGtlcHQgaW4gaW50ZXJu YWxfZmlsZWhkci5nbzMyc3R1YiBiZWZvcmVoYW5kLiAgKi8KKysgIGNoYXIgKmdvMzJzdHViOwor IH0gY29mZl9kYXRhX3R5cGU7CisgCisgLyogVGRhdGEgZm9yIHBlIGltYWdlIGZpbGVzLiAgKi8K K2RpZmYgLS1naXQgYS9iZmQvbGliY29mZi5oIGIvYmZkL2xpYmNvZmYuaAoraW5kZXggYTRhYjQw NS4uNGJiNDNmMyAxMDA2NDQKKy0tLSBhL2JmZC9saWJjb2ZmLmgKKysrKyBiL2JmZC9saWJjb2Zm LmgKK0BAIC0xMTAsNiArMTEwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgY29mZl90ZGF0YQorICAgICAg dXNlZCBieSBBUk0gY29kZS4gICovCisgICBmbGFnd29yZCBmbGFnczsKKyAKKysgIC8qIGNvZmYt c3RnbzMyIEVYRSBzdHViIGhlYWRlciBhZnRlciBCRkQgdGRhdGEgaGFzIGJlZW4gYWxsb2NhdGVk LiAgSXRzIGRhdGEKKysgICAgIGlzIGtlcHQgaW4gaW50ZXJuYWxfZmlsZWhkci5nbzMyc3R1YiBi ZWZvcmVoYW5kLiAgKi8KKysgIGNoYXIgKmdvMzJzdHViOworIH0gY29mZl9kYXRhX3R5cGU7Cisg CisgLyogVGRhdGEgZm9yIHBlIGltYWdlIGZpbGVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvTWFr ZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KIGluZGV4IGNjYzRkYjguLjQ5NmM5ZjIgMTAwNjQ0 CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KQEAgLTE5NSw3ICs0NzIsNyBAQCBpbmRleCBjY2M0ZGI4 Li40OTZjOWYyIDEwMDY0NAogICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBp cyBjb25kaXRpb25hbCBvbiBHTlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBp ZiBHTlUgTWFrZSBpcyBub3QgZm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEv Z2RiL05FV1MgYi9nZGIvTkVXUwotaW5kZXggOTcwZjRkZi4uZThkZTQ3NCAxMDA2NDQKK2luZGV4 IDBiOGUzYWYuLjQ0NjI0NmYgMTAwNjQ0CiAtLS0gYS9nZGIvTkVXUwogKysrIGIvZ2RiL05FV1MK IEBAIC00MjUsNiArNDI1LDEzIEBAIHg4Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFy d2luKgpAQCAtMzQwLDcgKzYxNyw3IEBAIGluZGV4IDUzZTczNzEuLjgyOTBhZGMgMTAwNjQ0CiAr CiAgI2VuZGlmIC8qIEJMT0NLX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIv Z2RiL2JyZWFrcG9pbnQuYwotaW5kZXggMmU1OThlNC4uMzhmZGY4YSAxMDA2NDQKK2luZGV4IGYz OTQwZTEuLjcwMjIyYTQgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9nZGIv YnJlYWtwb2ludC5jCiBAQCAtNTksNiArNTksNyBAQApAQCAtMzUxLDggKzYyOCw4IEBAIGluZGV4 IDJlNTk4ZTQuLjM4ZmRmOGEgMTAwNjQ0CiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcyAq LwogICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTU2NCw2ICs1NjUsNTMgQEAg Z2V0X251bWJlcl9vcl9yYW5nZSAoY2hhciAqKnBwKQotIAorQEAgLTU3OCw2ICs1NzksNTMgQEAg Z2V0X2JyZWFrcG9pbnQgKGludCBudW0pCisgfQogIAogIAwKICsvKiBTZXQgYnJlYWsgY29uZGl0 aW9uIG9mIGJyZWFrcG9pbnQgQiB0byBFWFAuICAqLwpAQCAtNDA1LDcgKzY4Miw3IEBAIGluZGV4 IDJlNTk4ZTQuLjM4ZmRmOGEgMTAwNjQ0CiAgLyogY29uZGl0aW9uIE4gRVhQIC0tIHNldCBicmVh ayBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBOIHRvIEVYUC4gICovCiAgCiAgc3RhdGljIHZvaWQK LUBAIC01ODQsNDIgKzYzMiw3IEBAIGNvbmRpdGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBm cm9tX3R0eSkKK0BAIC01OTgsNDIgKzY0Niw3IEBAIGNvbmRpdGlvbl9jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSkKICAgIEFMTF9CUkVBS1BPSU5UUyAoYikKICAgICAgaWYgKGItPm51 bWJlciA9PSBibnVtKQogICAgICAgIHsKQEAgLTQ0OSw3ICs3MjYsNyBAQCBpbmRleCAyZTU5OGU0 Li4zOGZkZjhhIDEwMDY0NAogIAlyZXR1cm47CiAgICAgICAgfQogIAotQEAgLTg4MjEsNiArODgz NCwyMiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKK0BAIC04ODQzLDYgKzg4NTYsMjIgQEAgYWxsX3Ry YWNlcG9pbnRzICgpCiAgICByZXR1cm4gdHBfdmVjOwogIH0KICAKQEAgLTQ3MiwxNyArNzQ5LDE3 IEBAIGluZGV4IDJlNTk4ZTQuLjM4ZmRmOGEgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJp bmcgaXMgdXNlZCBmb3IgdGhlIGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhayBjb21t YW5kcy4KICAgICBJdCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8gcHJldmVudCBkdXBsaWNhdGlv bi4KLUBAIC05MzIzLDQgKzkzNTIsNSBAQCBpbmZlcmlvciBpbiBhbGwtc3RvcCBtb2RlLCBnZGIg YmVoYXZlcyBhcyBpZiBhbHdheXMtaW5zZXJ0ZWQgbW9kZSBpcyBvZmYuIiksCitAQCAtOTM0NSw0 ICs5Mzc0LDUgQEAgaW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYg YWx3YXlzLWluc2VydGVkIG1vZGUgaXMgb2ZmLiIpLAogICAgYXV0b21hdGljX2hhcmR3YXJlX2Jy ZWFrcG9pbnRzID0gMTsKICAKICAgIG9ic2VydmVyX2F0dGFjaF9hYm91dF90b19wcm9jZWVkIChi cmVha3BvaW50X2Fib3V0X3RvX3Byb2NlZWQpOwogKyAgb2JzZXJ2ZXJfYXR0YWNoX21hcmtfdXNl ZCAoYnJlYWtwb2ludF90eXBlc19tYXJrX3VzZWQpOwogIH0KIGRpZmYgLS1naXQgYS9nZGIvYnJl YWtwb2ludC5oIGIvZ2RiL2JyZWFrcG9pbnQuaAotaW5kZXggZDhmZTA0Ny4uM2E5MjliNSAxMDA2 NDQKK2luZGV4IGQ5M2M2YjYuLmE1NTVjMTYgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5o CiArKysgYi9nZGIvYnJlYWtwb2ludC5oCi1AQCAtOTEzLDYgKzkxMyw5IEBAIGV4dGVybiB2b2lk IGJyZWFrcG9pbnRfcmV0aXJlX21vcmlidW5kICh2b2lkKTsKK0BAIC05MTgsNiArOTE4LDkgQEAg ZXh0ZXJuIHZvaWQgYnJlYWtwb2ludF9yZXRpcmVfbW9yaWJ1bmQgKHZvaWQpOwogIC8qIFRlbGwg YSBicmVha3BvaW50IHRvIGJlIHF1aWV0LiAgKi8KICBleHRlcm4gdm9pZCBtYWtlX2JyZWFrcG9p bnRfc2lsZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqKTsKICAKQEAgLTE3MjAsNyArMTk5Nyw3IEBA IGluZGV4IDYyODAwYjguLjk3ZDU4N2IgMTAwNjQ0CiAgCQkJeyAkJCA9ICQxLmNvbXA7CiAgCQkJ ICBpZiAoJDIpICQkID0gZmlsbF9jb21wIChERU1BTkdMRV9DT01QT05FTlRfTE9DQUxfTkFNRSwg JCQsICQyKTsgfQogZGlmZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1l c3BhY2UuYwotaW5kZXggZDJkOGYyZS4uMzE2NjgxOCAxMDA2NDQKK2luZGV4IGQyZDhmMmUuLmNj MjU5ZTcgMTAwNjQ0CiAtLS0gYS9nZGIvY3AtbmFtZXNwYWNlLmMKICsrKyBiL2dkYi9jcC1uYW1l c3BhY2UuYwogQEAgLTM1LDE1ICszNSw3IEBACkBAIC0xODE5LDcgKzIwOTYsNyBAQCBpbmRleCBk MmQ4ZjJlLi4zMTY2ODE4IDEwMDY0NAogICAgICAgIHhmcmVlICh1c2luZyk7CiAgCiAgICAgICAg cmV0dXJuIHJldHZhbDsKLUBAIC0yNjEsMTIgKzI3MCwzMCBAQCBjcF9jb3B5X3VzaW5ncyAoc3Ry dWN0IHVzaW5nX2RpcmVjdCAqdXNpbmcsCitAQCAtMjYxLDEyICsyNzAsNDIgQEAgY3BfY29weV91 c2luZ3MgKHN0cnVjdCB1c2luZ19kaXJlY3QgKnVzaW5nLAogIAogIHN0cnVjdCBzeW1ib2wgKgog IGNwX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCkBAIC0xODI5LDMx ICsyMTA2LDQzIEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiAgewogLSAgcmV0dXJu IGxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUgKG5hbWUsIGxpbmthZ2VfbmFtZSwgYmxvY2ssIGRvbWFp biwKIC0JCQkJIGJsb2NrX3Njb3BlIChibG9jayksIDApOwotKyAgc3RydWN0IHN5bWJvbCogc3lt ID0gTlVMTDsKLSsgIGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxvY2tfZ2xv YmFsX2Jsb2NrIChibG9jayk7Ci0rICBjb25zdCBjaGFyKiBzY29wZSA9IGJsb2NrX3Njb3BlKGJs b2NrKTsKLSsgICAgLyogQ2hlY2sgaWYgZWl0aGVyIG5vIGJsb2NrIGlzIHNwZWNpZmllZCBvciBp dCdzIGEgZ2xvYmFsIGJsb2NrLiAgKi8KLSsKLSsgIHdoaWxlIChibG9jayAhPSBnbG9iYWxfYmxv Y2spCi0rICAgIHdoaWxlIChibG9jayAhPSBnbG9iYWxfYmxvY2spCi0rICAgICAgewotKyAgICAg IHN5bSA9IGxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUobmFtZSwgYmxvY2ssIGRvbWFpbiwgc2NvcGUs IDAsIDApOworKyAgc3RydWN0IHN5bWJvbCAqc3ltOworKyAgY29uc3QgY2hhciogc2NvcGUgPSBi bG9ja19zY29wZSAoYmxvY2spOyAKICsKLSsgICAgICBpZiAoc3ltICE9IE5VTEwpCi0rICAgICAg ICByZXR1cm4gc3ltOworKyAgc3ltID0gbG9va3VwX25hbWVzcGFjZV9zY29wZSAobmFtZSwgYmxv Y2ssIGRvbWFpbiwgc2NvcGUgLCAwLCAwKTsKKysgIGlmICggc3ltICE9IE5VTEwpCisrICAgIHJl dHVybiBzeW07CiArCi0rICAgICAgYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLIChibG9jayk7Ci0r ICAgIH0KKysgIHJldHVybiBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNyZW1lbnRhbChz Y29wZSwgbmFtZSwgYmxvY2ssIGRvbWFpbik7CisrfQogKworK3N0cnVjdCBzeW1ib2wqCisrY3Bf bG9va3VwX3N5bWJvbF9uYW1lc3BhY2VfaW5jcmVtZW50YWwgKGNvbnN0IGNoYXIgKnNjb3BlLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1l LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg YmxvY2sgKmJsb2NrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBkb21haW5fZW51bSBkb21haW4pCisreworKyAgc3RydWN0IHN5bWJvbCAqc3ltOwogKwot KyAgaWYgKHN5bSAhPSBOVUxMKQorKyAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2Ug KHNjb3BlLCBuYW1lLCBibG9jaywgZG9tYWluLCAwKTsKKysgIGlmICggc3ltICE9IE5VTEwpCiAr ICAgIHJldHVybiBzeW07CiArCi0rICByZXR1cm4gbG9va3VwX3N5bWJvbF9maWxlKG5hbWUsIGJs b2NrLCBkb21haW4sIDApOworKyAgd2hpbGUgKGJsb2NrICE9IE5VTEwpCisrICAgIHsKKysgICAg ICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2ltcG9ydHMoc2NvcGUsIG5hbWUsIGJsb2NrLCBkb21h aW4sMCk7CisrCisrICAgICAgaWYgKHN5bSkKKysgICAgICAgIHJldHVybiBzeW07CisrCisrICAg ICAgYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLKGJsb2NrKTsKKysgICAgfQorKworKyAgcmV0dXJu IE5VTEw7CiAgfQogIAogIC8qIExvb2t1cCBOQU1FIGF0IG5hbWVzcGFjZSBzY29wZSAob3IsIGlu IEMgdGVybXMsIGluIHN0YXRpYyBhbmQKLUBAIC0yODQsMTMgKzMxMSwxMyBAQCBjcF9sb29rdXBf c3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTI4NCwxMyArMzIzLDEzIEBA IGNwX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgIkE6Ongi LCBhbmQgaWYgdGhhdCBjYWxsIGZhaWxzLCB0aGVuIHRoZSBmaXJzdCBjYWxsIGxvb2tzIGZvcgog ICAgICJ4Ii4gICovCiAgCkBAIC0xODcwLDcgKzIxNTksNyBAQCBpbmRleCBkMmQ4ZjJlLi4zMTY2 ODE4IDEwMDY0NAogIHsKICAgIGNoYXIgKm5hbWVzcGFjZTsKICAKLUBAIC0zMDgsOCArMzM1LDgg QEAgbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0zMDgsOCAr MzQ3LDggQEAgbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKICAJICBu ZXdfc2NvcGVfbGVuICs9IDI7CiAgCX0KICAgICAgICBuZXdfc2NvcGVfbGVuICs9IGNwX2ZpbmRf Zmlyc3RfY29tcG9uZW50IChzY29wZSArIG5ld19zY29wZV9sZW4pOwpAQCAtMTg4MSw1NCArMjE3 MCwyMCBAQCBpbmRleCBkMmQ4ZjJlLi4zMTY2ODE4IDEwMDY0NAogICAgICAgIGlmIChzeW0gIT0g TlVMTCkKICAJcmV0dXJuIHN5bTsKICAgICAgfQotQEAgLTMyMCwxMCArMzQ3LDQ0IEBAIGxvb2t1 cF9uYW1lc3BhY2Vfc2NvcGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMzIwLDI1ICszNTksNTAg QEAgbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKICAgIG5hbWVzcGFj ZSA9IGFsbG9jYSAoc2NvcGVfbGVuICsgMSk7CiAgICBzdHJuY3B5IChuYW1lc3BhY2UsIHNjb3Bl LCBzY29wZV9sZW4pOwogICAgbmFtZXNwYWNlW3Njb3BlX2xlbl0gPSAnXDAnOwogLSAgcmV0dXJu IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsIG5hbWUsIGxpbmthZ2VfbmFt ZSwKIC0JCQkJICAgICBibG9jaywgZG9tYWluKTsKLSsgIHJldHVybiBjcF9sb29rdXBfc3ltYm9s X25hbWVzcGFjZSAobmFtZXNwYWNlLCBuYW1lLCBibG9jaywgZG9tYWluLAotKwkJCQkgICAgIGRl Y2xhcmF0aW9uX29ubHkpOworKyAgcmV0dXJuIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChu YW1lc3BhY2UsIG5hbWUsIGJsb2NrLCBkb21haW4sIGRlY2xhcmF0aW9uX29ubHkpOwogIH0KICAK LSsvKiBTZWFyY2hlcyB0aGUgZm9yIHRoZSBnaXZlbiBOQU1FIGluIHRoZSBnaXZlbiBOQU1FU1BB Q0UsIHVzaW5nIGltcG9ydCAKLSsgICBzdGF0ZW1lbnRzIGltcGxpZWQgYnkgdGhlIGdpdmVuIEJM T0NLLCAqYW5kIGl0cycgcGFyZW50cyouICovCi0rc3RydWN0IHN5bWJvbCAqCi0rY3BfbG9va3Vw X3N5bWJvbF9uYW1lc3BhY2VfaW5jcmVtZW50YWwgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJs b2NrICpibG9jaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZG9tYWluX2VudW0gZG9tYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgZGVjbGFyYXRpb25fb25seSkKLSt7Ci0rICBzdHJ1Y3Qgc3ltYm9sICpzeW07 Ci0rICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmdsb2JhbF9ibG9jayA9IGJsb2NrX2dsb2JhbF9ibG9j ayAoYmxvY2spOwotKwotKyAgLyogQ2hlY2sgaWYgZWl0aGVyIG5vIGJsb2NrIGlzIHNwZWNpZmll ZCBvciBpdCdzIGEgZ2xvYmFsIGJsb2NrLiAgKi8KLSsKLSsgIGlmIChnbG9iYWxfYmxvY2sgPT0g TlVMTCkKLSsgICAgcmV0dXJuIE5VTEw7Ci0rCi0rICB3aGlsZSAoYmxvY2sgIT0gZ2xvYmFsX2Js b2NrKQotKyAgICB7Ci0rICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKG5h bWVzcGFjZSwgbmFtZSwgYmxvY2ssIGRvbWFpbiwKLSsJCQkJCWRlY2xhcmF0aW9uX29ubHkpOwot KwotKyAgICAgIGlmIChzeW0gIT0gTlVMTCkKLSsgICAgICAgIHJldHVybiBzeW07Ci0rCi0rICAg ICAgYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLIChibG9jayk7Ci0rICAgIH0KLSsKLSsgIC8qIFdl J3ZlIHJlYWNoZWQgdGhlIGdsb2JhbCBibG9jayB3aXRob3V0IGZpbmRpbmcgYSByZXN1bHQuICAq LwotKwotKyAgcmV0dXJuIE5VTEw7Ci0rfQotKwotKwotIC8qIExvb2sgdXAgTkFNRSBpbiB0aGUg QysrIG5hbWVzcGFjZSBOQU1FU1BBQ0UsIGFwcGx5aW5nIHRoZSB1c2luZwotICAgIGRpcmVjdGl2 ZXMgdGhhdCBhcmUgYWN0aXZlIGluIEJMT0NLLiAgT3RoZXIgYXJndW1lbnRzIGFyZSBhcyBpbgor LS8qIExvb2sgdXAgTkFNRSBpbiB0aGUgQysrIG5hbWVzcGFjZSBOQU1FU1BBQ0UsIGFwcGx5aW5n IHRoZSB1c2luZworLSAgIGRpcmVjdGl2ZXMgdGhhdCBhcmUgYWN0aXZlIGluIEJMT0NLLiAgT3Ro ZXIgYXJndW1lbnRzIGFyZSBhcyBpbgorKy8qIExvb2sgdXAgTkFNRSBpbiB0aGUgQysrIG5hbWVz cGFjZSBOQU1FU1BBQ0UuIE90aGVyIGFyZ3VtZW50cyBhcmUgYXMgaW4KICAgICBjcF9sb29rdXBf c3ltYm9sX25vbmxvY2FsLiAgKi8KLUBAIC0zMzEsMTIgKzM5MiwxMiBAQCBsb29rdXBfbmFtZXNw YWNlX3Njb3BlIChjb25zdCBjaGFyICpuYW1lLAorIAogIHN0cnVjdCBzeW1ib2wgKgogIGNwX2xv b2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCiAgCQkJICAgIGNv bnN0IGNoYXIgKm5hbWUsCkBAIC0xOTM3LDIxICsyMTkyLDUzIEBAIGluZGV4IGQyZDhmMmUuLjMx NjY4MTggMTAwNjQ0CiAtCQkJICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICsJCQkgICAg Y29uc3QgZG9tYWluX2VudW0gZG9tYWluLAogKwkJCSAgICBpbnQgZGVjbGFyYXRpb25fb25seSkK Kyt7CisrCisrICBpZiAobmFtZXNwYWNlWzBdID09ICdcMCcpCisrICAgIHsKKysgICAgICByZXR1 cm4gbG9va3VwX3N5bWJvbF9maWxlIChuYW1lLCBibG9jayxkb21haW4sIDApOworKyAgICB9Cisr ICBlbHNlCisrICAgIHsKKysgICAgICBjaGFyICpjb25jYXRlbmF0ZWRfbmFtZQorKwk9IGFsbG9j YSAoc3RybGVuIChuYW1lc3BhY2UpICsgMiArIHN0cmxlbiAobmFtZSkgKyAxKTsKKysgICAgICBz dHJjcHkgKGNvbmNhdGVuYXRlZF9uYW1lLCBuYW1lc3BhY2UpOworKyAgICAgIHN0cmNhdCAoY29u Y2F0ZW5hdGVkX25hbWUsICI6OiIpOworKyAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUs IG5hbWUpOworKyAgICAgIHJldHVybiBsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbmNhdGVuYXRlZF9u YW1lLCBibG9jaywgZG9tYWluLAorKwkJCQljcF9pc19hbm9ueW1vdXMgKG5hbWVzcGFjZSkpOwor KyAgICB9CisrfQorKworKy8qIFNlYXJjaCBmb3IgTkFNRSBieSBhcHBseWluZyBhbGwgaW1wb3J0 IHN0YXRlbWVudHMgYmVsb25naW5nCisrICAgdG8gQkxPQ0sgd2hpY2ggYXJlIGFwcGxpY2FibGUg aW4gU0NPUEUuICAqLworKworK3N0cnVjdCBzeW1ib2wgKgorK2NwX2xvb2t1cF9zeW1ib2xfaW1w b3J0cyAoY29uc3QgY2hhciAqc2NvcGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBibG9jayAqYmxvY2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFp bl9lbnVtIGRvbWFpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY2xhcmF0 aW9uX29ubHkpCiAgewogICAgY29uc3Qgc3RydWN0IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKIC0g IHN0cnVjdCBzeW1ib2wgKnN5bTsKICsgIHN0cnVjdCBzeW1ib2wgKnN5bSA9IE5VTEw7CiAgCi0g ICAvKiBGaXJzdCwgZ28gdGhyb3VnaCB0aGUgdXNpbmcgZGlyZWN0aXZlcy4gIElmIGFueSBvZiB0 aGVtIGFkZCBuZXcKKy0gIC8qIEZpcnN0LCBnbyB0aHJvdWdoIHRoZSB1c2luZyBkaXJlY3RpdmVz LiAgSWYgYW55IG9mIHRoZW0gYWRkIG5ldworKyAgLyogR28gdGhyb3VnaCB0aGUgdXNpbmcgZGly ZWN0aXZlcy4gIElmIGFueSBvZiB0aGVtIGFkZCBuZXcKICAgICAgIG5hbWVzIHRvIHRoZSBuYW1l c3BhY2Ugd2UncmUgc2VhcmNoaW5nIGluLCBzZWUgaWYgd2UgY2FuIGZpbmQgYQotQEAgLTM0Niwx NSArNDA3LDYwIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1l c3BhY2UsCisgICAgICBtYXRjaCBieSBhcHBseWluZyB0aGVtLiAgKi8KKyAKK0BAIC0zNDYsMzkg KzQxMCw2NSBAQCBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFtZXNw YWNlLAogICAgICAgICBjdXJyZW50ICE9IE5VTEw7CiAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50 LT5uZXh0KQogICAgICB7CiAtICAgICAgaWYgKHN0cmNtcCAobmFtZXNwYWNlLCBjdXJyZW50LT5p bXBvcnRfZGVzdCkgPT0gMCkKICsgICAgICBpbnQgY3VycmVudF9saW5lID0gZmluZF9wY19saW5l IChnZXRfZnJhbWVfcGMgKGdldF9jdXJyZW50X2ZyYW1lICgpKSwgMCkubGluZTsKICsgICAgICAK LSsgICAgICBpZiAoc3RyY21wIChuYW1lc3BhY2UsIGN1cnJlbnQtPmltcG9ydF9kZXN0KSA9PSAw ICYmIGN1cnJlbnQtPmxpbmVfbnVtYmVyIDwgY3VycmVudF9saW5lKQorKyAgICAgIC8qIElmIHRo ZSBpbXBvcnQgZGVzdGluYXRpb24gaXMgdGhlIGN1cnJlbnQgc2NvcGUgb3Igb25lIG9mIGl0cyBh bmNlc3RvcnMgdGhlbgorKyAgICAgICAgIGl0IGlzIGFwcGxpY2FibGUuICAqLworKyAgICAgIGlm IChzdHJuY21wIChzY29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QsIHN0cmxlbihjdXJyZW50LT5p bXBvcnRfZGVzdCkpID09IDAgJiYgY3VycmVudC0+bGluZV9udW1iZXIgPCBjdXJyZW50X2xpbmUg KQogIAl7CiAtCSAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGN1cnJlbnQtPmlt cG9ydF9zcmMsCiAtCQkJCQkgICAgbmFtZSwKQEAgLTE5NTksNyArMjI0Niw2IEBAIGluZGV4IGQy ZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiAtCQkJCQkgICAgYmxvY2ssCiAtCQkJCQkgICAgZG9tYWlu KTsKIC0JICBpZiAoc3ltICE9IE5VTEwpCi0rCSAgCiArCSAgLyogSWYgdGhlcmUgaXMgYW4gaW1w b3J0IG9mIGEgc2luZ2xlIGRlY2xhcmF0aW9uLCBjb21wYXJlIHRoZSBpbXBvcnRlZAogKwkgICAg IGRlY2xhcmF0aW9uIHdpdGggdGhlIHNvdWdodCBvdXQgbmFtZS4gSWYgdGhlcmUgaXMgYSBtYXRj aCBwYXNzCiArCSAgICAgY3VycmVudC0+aW1wb3J0X3NyYyBhcyBOQU1FU1BBQ0UgdG8gZGlyZWN0 IHRoZSBzZWFyY2ggdG93YXJkcyB0aGUKQEAgLTE5OTEsNyArMjI3Nyw3IEBAIGluZGV4IGQyZDhm MmUuLjMxNjY4MTggMTAwNjQ0CiArCSAgICAgICBzb3VnaHQgbmFtZS4gUGFzcyBjdXJyZW50LT5p bm5lciBhcyB0aGUgTkFNRSB0byBkaXJlY3QgdGhlCiArCSAgICAgICBzZWFyY2ggdG93YXJkcyB0 aGUgYWxpYXNlZCBuYW1lc3BhY2UgKi8KICsJICAgIHsKLSsJICAgIHN5bSA9IGNwX2xvb2t1cF9z eW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsCisrCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9s X25hbWVzcGFjZSAoc2NvcGUsCiArCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3VycmVudC0+aW1wb3J0X3NyYywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBibG9jaywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21haW4sCkBAIC0yMDEyLDMyICsyMjk4LDMyIEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAw NjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTM2MiwxMCArNDY4LDExIEBAIGNwX2xvb2t1cF9zeW1i b2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCi0gICAgICB0aGF0IGFyZSBzdGls bCBhcHBsaWNhYmxlOyBzbyBsZXQncyBzZWUgaWYgd2UndmUgZ290IGEgbWF0Y2gKLSAgICAgIHVz aW5nIHRoZSBjdXJyZW50IG5hbWVzcGFjZS4gICovCi0gICAKKy0gIC8qIFdlIGRpZG4ndCBmaW5k IGFueXRoaW5nIGJ5IGFwcGx5aW5nIGFueSBvZiB0aGUgdXNpbmcgZGlyZWN0aXZlcworLSAgICAg dGhhdCBhcmUgc3RpbGwgYXBwbGljYWJsZTsgc28gbGV0J3Mgc2VlIGlmIHdlJ3ZlIGdvdCBhIG1h dGNoCistICAgICB1c2luZyB0aGUgY3VycmVudCBuYW1lc3BhY2UuICAqLworLSAgCiAtICBpZiAo bmFtZXNwYWNlWzBdID09ICdcMCcpCi0rICBpZiAobmFtZXNwYWNlWzBdID09ICdcMCcgJiYgIWRl Y2xhcmF0aW9uX29ubHkpCi0gICAgIHsKKy0gICAgewogLSAgICAgIHJldHVybiBsb29rdXBfc3lt Ym9sX2ZpbGUgKG5hbWUsIGxpbmthZ2VfbmFtZSwgYmxvY2ssCiAtCQkJCSBkb21haW4sIDApOwot KyAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2xfZmlsZSAobmFtZSwgYmxvY2ssIGRvbWFpbiwKLSsJ CQkJY3BfaXNfYW5vbnltb3VzIChuYW1lc3BhY2UpKTsKLSsgICAgICByZXR1cm4gc3ltOwotICAg ICB9Ci0gICBlbHNlCi0gICAgIHsKLUBAIC0zNzQsOCArNDgxLDcgQEAgY3BfbG9va3VwX3N5bWJv bF9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKLSAgICAgICBzdHJjcHkgKGNvbmNh dGVuYXRlZF9uYW1lLCBuYW1lc3BhY2UpOwotICAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25h bWUsICI6OiIpOwotICAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUsIG5hbWUpOworLSAg ICB9CistICBlbHNlCistICAgIHsKKy0gICAgICBjaGFyICpjb25jYXRlbmF0ZWRfbmFtZQorLQk9 IGFsbG9jYSAoc3RybGVuIChuYW1lc3BhY2UpICsgMiArIHN0cmxlbiAobmFtZSkgKyAxKTsKKy0g ICAgICBzdHJjcHkgKGNvbmNhdGVuYXRlZF9uYW1lLCBuYW1lc3BhY2UpOworLSAgICAgIHN0cmNh dCAoY29uY2F0ZW5hdGVkX25hbWUsICI6OiIpOworLSAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVk X25hbWUsIG5hbWUpOwogLSAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uY2F0ZW5h dGVkX25hbWUsIGxpbmthZ2VfbmFtZSwKIC0JCQkJYmxvY2ssIGRvbWFpbiwgCi0rICAgICAgc3lt ID0gbG9va3VwX3N5bWJvbF9maWxlIChjb25jYXRlbmF0ZWRfbmFtZSwgYmxvY2ssIGRvbWFpbiwg Ci0gCQkJCWNwX2lzX2Fub255bW91cyAobmFtZXNwYWNlKSk7Ci0gICAgICAgcmV0dXJuIHN5bTsK LSAgICAgfQotQEAgLTM4OCwxNCArNDk0LDEzIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNl IChjb25zdCBjaGFyICpuYW1lc3BhY2UsCistCQkJCWNwX2lzX2Fub255bW91cyAobmFtZXNwYWNl KSk7CistICAgICAgcmV0dXJuIHN5bTsKKy0gICAgfQorKyAgcmV0dXJuIE5VTEw7CisgfQorIAor IC8qIExvb2sgdXAgTkFNRSBpbiBCTE9DSydzIHN0YXRpYyBibG9jayBhbmQgaW4gZ2xvYmFsIGJs b2Nrcy4gIElmCitAQCAtMzg4LDE3ICs0NzgsMTUgQEAgY3BfbG9va3VwX3N5bWJvbF9uYW1lc3Bh Y2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCiAg bG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBjaGFyICpuYW1lLApAQCAtMjA1Miw4ICsyMzM4LDEx IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiArICBzeW0gPSBsb29rdXBfc3ltYm9s X3N0YXRpYyAobmFtZSwgYmxvY2ssIGRvbWFpbik7CiAgICBpZiAoc3ltICE9IE5VTEwpCiAgICAg IHJldHVybiBzeW07Ci0gCi1AQCAtNDA4LDEyICs1MTMsMTEgQEAgbG9va3VwX3N5bWJvbF9maWxl IChjb25zdCBjaGFyICpuYW1lLAorLQorICAgaWYgKGFub255bW91c19uYW1lc3BhY2UpCisgICAg IHsKKyAgICAgICAvKiBTeW1ib2xzIGRlZmluZWQgaW4gYW5vbnltb3VzIG5hbWVzcGFjZXMgaGF2 ZSBleHRlcm5hbCBsaW5rYWdlCitAQCAtNDA4LDEyICs0OTYsMTEgQEAgbG9va3VwX3N5bWJvbF9m aWxlIChjb25zdCBjaGFyICpuYW1lLAogICAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFs X2Jsb2NrID0gYmxvY2tfZ2xvYmFsX2Jsb2NrIChibG9jayk7CiAgICAgICAgCiAgICAgICAgaWYg KGdsb2JhbF9ibG9jayAhPSBOVUxMKQpAQCAtMjA2OCw3ICsyMzU3LDE1IEBAIGluZGV4IGQyZDhm MmUuLjMxNjY4MTggMTAwNjQ0CiAgICAgIH0KICAKICAgIGlmIChzeW0gIT0gTlVMTCkKLUBAIC00 NjMsOSArNTY3LDggQEAgY3BfbG9va3VwX25lc3RlZF90eXBlIChzdHJ1Y3QgdHlwZSAqcGFyZW50 X3R5cGUsCitAQCAtNDM0LDYgKzUyMSw3IEBAIGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3QgY2hh ciAqbmFtZSwKKyAgICAgICBzeW0gPSBsb29rdXBfcG9zc2libGVfbmFtZXNwYWNlX3N5bWJvbCAo bmFtZSk7CisgICAgICAgaWYgKHN5bSAhPSBOVUxMKQorIAlyZXR1cm4gc3ltOworKworICAgICB9 CisgCisgICByZXR1cm4gTlVMTDsKK0BAIC00NjMsOSArNTUxLDggQEAgY3BfbG9va3VwX25lc3Rl ZF90eXBlIChzdHJ1Y3QgdHlwZSAqcGFyZW50X3R5cGUsCiAgCWNvbnN0IGNoYXIgKnBhcmVudF9u YW1lID0gVFlQRV9UQUdfTkFNRSAocGFyZW50X3R5cGUpOwogIAlzdHJ1Y3Qgc3ltYm9sICpzeW0g PSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAocGFyZW50X25hbWUsCiAgCQkJCQkJCSBuZXN0 ZWRfbmFtZSwKQEAgLTIwNzksNyArMjM3Niw3IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAw NjQ0CiAgCWlmIChzeW0gPT0gTlVMTCB8fCBTWU1CT0xfQ0xBU1MgKHN5bSkgIT0gTE9DX1RZUEVE RUYpCiAgCSAgcmV0dXJuIE5VTEw7CiAgCWVsc2UKLUBAIC03MDksNyArODEyLDcgQEAgY2hlY2tf b25lX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4s CitAQCAtNzA5LDcgKzc5Niw3IEBAIGNoZWNrX29uZV9wb3NzaWJsZV9uYW1lc3BhY2Vfc3ltYm9s IChjb25zdCBjaGFyICpuYW1lLCBpbnQgbGVuLAogIAogICAgbWVtY3B5IChuYW1lX2NvcHksIG5h bWUsIGxlbik7CiAgICBuYW1lX2NvcHlbbGVuXSA9ICdcMCc7CkBAIC0yMDg4LDcgKzIzODUsNyBA QCBpbmRleCBkMmQ4ZjJlLi4zMTY2ODE4IDEwMDY0NAogIAogICAgaWYgKHN5bSA9PSBOVUxMKQog ICAgICB7Ci1AQCAtNzQ5LDcgKzg1Miw3IEBAIGxvb2t1cF9wb3NzaWJsZV9uYW1lc3BhY2Vfc3lt Ym9sIChjb25zdCBjaGFyICpuYW1lKQorQEAgLTc0OSw3ICs4MzYsNyBAQCBsb29rdXBfcG9zc2li bGVfbmFtZXNwYWNlX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSkKICAgICAgICBzdHJ1Y3Qgc3lt Ym9sICpzeW07CiAgCiAgICAgICAgc3ltID0gbG9va3VwX2Jsb2NrX3N5bWJvbCAoZ2V0X3Bvc3Np YmxlX25hbWVzcGFjZV9ibG9jayAob2JqZmlsZSksCkBAIC0yMjE5LDcgKzI1MTYsNyBAQCBpbmRl eCBmMTJkNzg1Li5jYTEwMDA3IDEwMDY0NAogIF9pbml0aWFsaXplX2NwX3N1cHBvcnQgKHZvaWQp CiAgewogZGlmZiAtLWdpdCBhL2dkYi9jcC1zdXBwb3J0LmggYi9nZGIvY3Atc3VwcG9ydC5oCi1p bmRleCBiNWE1YzVmLi4wMzgxNjg2IDEwMDY0NAoraW5kZXggYjVhNWM1Zi4uZjEyNmJlZCAxMDA2 NDQKIC0tLSBhL2dkYi9jcC1zdXBwb3J0LmgKICsrKyBiL2dkYi9jcC1zdXBwb3J0LmgKIEBAIC0z OCwxNCArMzgsMjkgQEAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudDsKQEAgLTIyODgsNyArMjU4 NSw3IEBAIGluZGV4IGI1YTVjNWYuLjAzODE2ODYgMTAwNjQ0CiAgCQkJCQkgIHN0cnVjdCB1c2lu Z19kaXJlY3QgKm5leHQpOwogIAogIGV4dGVybiB2b2lkIGNwX2luaXRpYWxpemVfbmFtZXNwYWNl ICh2b2lkKTsKLUBAIC05NywxNSArMTIxLDI3IEBAIGV4dGVybiB2b2lkIGNwX3NldF9ibG9ja19z Y29wZSAoY29uc3Qgc3RydWN0IHN5bWJvbCAqc3ltYm9sLAorQEAgLTk3LDE1ICsxMjEsMzIgQEAg ZXh0ZXJuIHZvaWQgY3Bfc2V0X2Jsb2NrX3Njb3BlIChjb25zdCBzdHJ1Y3Qgc3ltYm9sICpzeW1i b2wsCiAgZXh0ZXJuIHZvaWQgY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0 IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmNwX2xv b2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCkBAIC0yMzAzLDExICsyNjAw LDE2IEBAIGluZGV4IGI1YTVjNWYuLjAzODE2ODYgMTAwNjQ0CiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzY29wZV9sZW4sCiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWNsYXJhdGlvbl9vbmx5KTsK ICsKLStleHRlcm4gc3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2VfaW5j cmVtZW50YWwgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2Vu dW0gZG9tYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGRlY2xhcmF0aW9uX29ubHkpOworK2V4dGVybiBzdHJ1Y3Qg c3ltYm9sKiBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNyZW1lbnRhbCAoY29uc3QgY2hh ciAqc2NvcGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbik7CisrCisrc3RydWN0IHN5bWJvbCAq Y3BfbG9va3VwX3N5bWJvbF9pbXBvcnRzIChjb25zdCBjaGFyICpzY29wZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJs b2NrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9t YWluX2VudW0gZG9tYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGRlY2xhcmF0aW9uX29ubHkpOwogKwogIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpjcF9s b29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAogLQkJCQkJCSAg Y29uc3QgY2hhciAqbmFtZSwKQEAgLTIzMzQsNyArMjYzNiw3IEBAIGluZGV4IDdjYjAxNmQuLmJi OWUzNWEgMTAwNjQ0CiAgICBkZWZhdWx0X3N5bWZpbGVfb2Zmc2V0cywgLyogc3ltX29mZnNldHM6 IHBhcnNlIHVzZXIncyBvZmZzZXRzIHRvCiAgCQkJICAgICAgaW50ZXJuYWwgZm9ybSAqLwogZGlm ZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1pbmRl eCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAoraW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQK IC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KIEBA IC05NTgsOCArOTU4LDEwIEBAIENvbm5lY3QgdG8gcHJvY2VzcyBJRCBAdmFye251bWJlcn0sIGFz IHdpdGggdGhlIEBjb2Rle2F0dGFjaH0gY29tbWFuZC4KQEAgLTIzNjcsNyArMjY2OSw3IEBAIGlu ZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9m IHRoZXNlIGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1aX0KLUBA IC0xODQyNyw3ICsxODQzOSw3IEBAIGNvbW1hbmQ6CitAQCAtMTg0NjUsNyArMTg0NzcsNyBAQCBj b21tYW5kOgogIEB0YWJsZSBAY29kZQogIEBraW5kZXggc291cmNlCiAgQGNpbmRleCBleGVjdXRl IGNvbW1hbmRzIGZyb20gYSBmaWxlCkBAIC0yMzc2LDcgKzI2NzgsNyBAQCBpbmRleCBmYWIwNWZj Li40NGNjMWYyIDEwMDY0NAogIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2ZpbGVuYW1l fS4KICBAZW5kIHRhYmxlCiAgCi1AQCAtMTg0NDQsNiArMTg0NTYsMTEgQEAgSWYgQGNvZGV7LXZ9 LCBmb3IgdmVyYm9zZSBtb2RlLCBpcyBnaXZlbiB0aGVuIEB2YWx1ZXtHREJOfSBkaXNwbGF5cwor QEAgLTE4NDgyLDYgKzE4NDk0LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2UgbW9kZSwg aXMgZ2l2ZW4gdGhlbiBAdmFsdWV7R0RCTn0gZGlzcGxheXMKICBlYWNoIGNvbW1hbmQgYXMgaXQg aXMgZXhlY3V0ZWQuICBUaGUgb3B0aW9uIG11c3QgYmUgZ2l2ZW4gYmVmb3JlCiAgQHZhcntmaWxl bmFtZX0sIGFuZCBpcyBpbnRlcnByZXRlZCBhcyBwYXJ0IG9mIHRoZSBmaWxlbmFtZSBhbnl3aGVy ZSBlbHNlLgogIApAQCAtMjM4OCw3ICsyNjkwLDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAx MDA2NDQKICBDb21tYW5kcyB0aGF0IHdvdWxkIGFzayBmb3IgY29uZmlybWF0aW9uIGlmIHVzZWQg aW50ZXJhY3RpdmVseSBwcm9jZWVkCiAgd2l0aG91dCBhc2tpbmcgd2hlbiB1c2VkIGluIGEgY29t bWFuZCBmaWxlLiAgTWFueSBAdmFsdWV7R0RCTn0gY29tbWFuZHMgdGhhdAogIG5vcm1hbGx5IHBy aW50IG1lc3NhZ2VzIHRvIHNheSB3aGF0IHRoZXkgYXJlIGRvaW5nIG9taXQgdGhlIG1lc3NhZ2Vz Ci1AQCAtMTg3MDUsOCArMTg3MjIsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhh bXBsZToKK0BAIC0xODc0Myw4ICsxODc2MCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZv ciBleGFtcGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAg LTIzOTcsNyArMjY5OSw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgPnByaW50 IDIzCiAgPmVuZAogIDIzCi1AQCAtMTg3MTksNiArMTg3MzQsMTQgQEAgaW4gYSBQeXRob24gc2Ny aXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKK0BAIC0x ODc1Nyw2ICsxODc3MiwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250 cm9sbGVkIHVzaW5nIEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBj b2Rle29ufSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcgaXMgZW5h YmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKICBkaXNh YmxlZC4KQEAgLTI0MTIsNyArMjcxNCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0 CiAgQGVuZCB0YWJsZQogIAogIEBub2RlIFB5dGhvbiBBUEkKLUBAIC0xODcyNiw2ICsxODc0OSwx NCBAQCBkaXNhYmxlZC4KK0BAIC0xODc2NCw2ICsxODc4NywxNCBAQCBkaXNhYmxlZC4KICBAY2lu ZGV4IHB5dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApAQCAtMjQy Nyw3ICsyNzI5LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAY2luZGV4IHB5 dGhvbiBzdGRvdXQKICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1cCwgQHZh bHVle0dEQk59IG92ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQKLUBAIC0x ODczOCwxMyArMTg3NjksMTcgQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZElu dGVycnVwdH0gZXhjZXB0aW9uIGlzIHRocm93bi4KK0BAIC0xODc3NiwxMyArMTg4MDcsMTcgQEAg c2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVwdH0gZXhjZXB0aW9uIGlz IHRocm93bi4KICAqIEJhc2ljIFB5dGhvbjo6ICAgICAgICAgICAgICAgIEJhc2ljIFB5dGhvbiBG dW5jdGlvbnMuCiAgKiBFeGNlcHRpb24gSGFuZGxpbmc6OgogICogQXV0by1sb2FkaW5nOjogICAg ICAgICAgICAgICAgQXV0b21hdGljYWxseSBsb2FkaW5nIFB5dGhvbiBjb2RlLgpAQCAtMjQ0Niw3 ICsyNzQ4LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICAqIEZyYW1lcyBJbiBQ eXRob246OiAgICAgICAgICAgIEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5 dGhvbi4KICBAZW5kIG1lbnUKICAKLUBAIC0xODc3MSw2ICsxODgwNiwxMiBAQCBjb21tYW5kIGFz IGhhdmluZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVs eS4KK0BAIC0xODgwOSw2ICsxODg0NCwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5hdGVk IGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0IGJlIGEg Ym9vbGVhbiB2YWx1ZS4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0ZhbHNlfS4K ICBAZW5kIGRlZnVuCiAgCkBAIC0yNDU5LDcgKzI3NjEsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNj MWYyIDEwMDY0NAogIEBmaW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0ZXIgcGFy YW1ldGVyCiAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0ZXIuICBA dmFye3BhcmFtZXRlcn0gaXMgYQotQEAgLTE4Nzg3LDYgKzE4ODI4LDcgQEAgYSBQeXRob24gdmFs dWUgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xODgyNSw2ICsx ODg2Niw3IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBhbmQgcmV0 dXJuZWQuCiAgQGRlZnVuIGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFs dWV7R0RCTn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSkuICBAdmFy e251bWJlcn0gaW5kaWNhdGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCkBAIC0y NDY3LDcgKzI3NjksNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIElmIEB2YXJ7 bnVtYmVyfSBpcyBuZWdhdGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0cyBhYnNv bHV0ZSB2YWx1ZQogIGFuZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1lbnQgKGku ZS4sIHRoZSBtb3N0IHJlY2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRvIHJldHVy bi4gIElmIEB2YXJ7bnVtYmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsCi1AQCAt MTg3OTgsNiArMTg4NDAsMjggQEAgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwgdGhlIHJldHVy biB2YWx1ZSBpcyBhbHdheXMgYW4gaW5zdGFuY2Ugb2YKK0BAIC0xODgzNiw2ICsxODg3OCwyOCBA QCBJZiBubyBleGNlcHRpb24gaXMgcmFpc2VkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyBh biBpbnN0YW5jZSBvZgogIEBjb2Rle2dkYi5WYWx1ZX0gKEBweHJlZntWYWx1ZXMgRnJvbSBJbmZl cmlvcn0pLgogIEBlbmQgZGVmdW4KICAKQEAgLTI0OTYsNyArMjc5OCw3IEBAIGluZGV4IGZhYjA1 ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQGZpbmRleCBnZGIud3JpdGUKICBAZGVmdW4gd3JpdGUgc3Ry aW5nCiAgUHJpbnQgYSBzdHJpbmcgdG8gQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJk IG91dHB1dCBzdHJlYW0uCi1AQCAtMTg4MTIsNiArMTg4NzYsMTEgQEAgRmx1c2ggQHZhbHVle0dE Qk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVzaGluZworQEAgLTE4 ODUwLDYgKzE4OTE0LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFy ZCBvdXRwdXQgc3RyZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlvbi4KICBAZW5kIGRlZnVuCiAgCkBA IC0yNTA4LDcgKzI4MTAsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBub2Rl IEV4Y2VwdGlvbiBIYW5kbGluZwogIEBzdWJzdWJzZWN0aW9uIEV4Y2VwdGlvbiBIYW5kbGluZwog IEBjaW5kZXggcHl0aG9uIGV4Y2VwdGlvbnMKLUBAIC0xODk0OCw2ICsxOTAxNywxMyBAQCBUaGUg dHlwZSBvZiB0aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1 dGUgaXMgYQorQEAgLTE4OTg2LDYgKzE5MDU1LDEzIEBAIFRoZSB0eXBlIG9mIHRoaXMgQGNvZGV7 Z2RiLlZhbHVlfS4gIFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBpcyBhCiAgVGhlIGZvbGxv d2luZyBtZXRob2RzIGFyZSBwcm92aWRlZDoKICAKICBAdGFibGUgQGNvZGUKQEAgLTI1MjIsNyAr MjgyNCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQGRlZm1ldGhvZCBWYWx1 ZSBkZXJlZmVyZW5jZQogIEZvciBwb2ludGVyIGRhdGEgdHlwZXMsIHRoaXMgbWV0aG9kIHJldHVy bnMgYSBuZXcgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QKICB3aG9zZSBjb250ZW50cyBpcyB0aGUg b2JqZWN0IHBvaW50ZWQgdG8gYnkgdGhlIHBvaW50ZXIuICBGb3IgZXhhbXBsZSwgaWYKLUBAIC0x OTAxOSw2ICsxOTA5NSw5IEBAIG1vZHVsZToKK0BAIC0xOTA1Nyw2ICsxOTEzMyw5IEBAIG1vZHVs ZToKICBUaGlzIGZ1bmN0aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntuYW1lfSBp cyB0aGUgbmFtZSBvZiB0aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEgc3RyaW5n LgogIApAQCAtMjUzMiw3ICsyODM0LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQK ICBPcmRpbmFyaWx5LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEBj b2Rle2dkYi5UeXBlfS4KICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQsIGl0IHdp bGwgdGhyb3cgYW4gZXhjZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTA3MSw2ICsxOTE1MCwx MiBAQCBUaGlzIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBmaWVsZCBpcyBhcnRpZmljaWFsLCB1c3Vh bGx5IG1lYW5pbmcgdGhhdAorQEAgLTE5MTA5LDYgKzE5MTg4LDEyIEBAIFRoaXMgaXMgQGNvZGV7 VHJ1ZX0gaWYgdGhlIGZpZWxkIGlzIGFydGlmaWNpYWwsIHVzdWFsbHkgbWVhbmluZyB0aGF0CiAg aXQgd2FzIHByb3ZpZGVkIGJ5IHRoZSBjb21waWxlciBhbmQgbm90IHRoZSB1c2VyLiAgVGhpcyBh dHRyaWJ1dGUgaXMKICBhbHdheXMgcHJvdmlkZWQsIGFuZCBpcyBAY29kZXtGYWxzZX0gaWYgdGhl IGZpZWxkIGlzIG5vdCBhcnRpZmljaWFsLgogIApAQCAtMjU0NSw3ICsyODQ3LDcgQEAgaW5kZXgg ZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAaXRlbSBiaXRzaXplCiAgSWYgdGhlIGZpZWxkIGlz IHBhY2tlZCwgb3IgaXMgYSBiaXRmaWVsZCwgdGhlbiB0aGlzIHdpbGwgaGF2ZSBhCiAgbm9uLXpl cm8gdmFsdWUsIHdoaWNoIGlzIHRoZSBzaXplIG9mIHRoZSBmaWVsZCBpbiBiaXRzLiAgT3RoZXJ3 aXNlLAotQEAgLTE5MTIzLDcgKzE5MjA4LDcgQEAgSWYgdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBh IHRhcmdldCwgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBhbgorQEAgLTE5MTYxLDcgKzE5MjQ2LDcg QEAgSWYgdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCwgdGhpcyBtZXRob2Qgd2lsbCB0 aHJvdyBhbgogIGV4Y2VwdGlvbi4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjU1NCw3ICsyODU2 LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBJZiB0aGlzIEBjb2Rle2dkYi5U eXBlfSBpcyBhbiBpbnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUsIHRoaXMgd2lsbAogIHJldHVy biBhIG5ldyBAY29kZXtnZGIuVHlwZX0gd2hpY2ggcmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUK ICBAdmFye259dGggdGVtcGxhdGUgYXJndW1lbnQuCi1AQCAtMTkxMzEsNyArMTkyMTYsOCBAQCBy ZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2Yg dGhlCitAQCAtMTkxNjksNyArMTkyNTQsOCBAQCByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9 IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgSWYgdGhpcyBAY29kZXtnZGIuVHlw ZX0gaXMgbm90IGEgdGVtcGxhdGUgdHlwZSwgdGhpcyB3aWxsIHRocm93IGFuCiAgZXhjZXB0aW9u LiAgT3JkaW5hcmlseSwgb25seSBDQHR7Kyt9IGNvZGUgd2lsbCBoYXZlIHRlbXBsYXRlIHR5cGVz LgogIApAQCAtMjU2NCw3ICsyODY2LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQK ICBAZW5kIGRlZm1ldGhvZAogIEBlbmQgdGFibGUKICAKLUBAIC0xOTQ4NSw2ICsxOTU3MSwxMjEg QEAgaW1wb3J0IGdkYi5saWJzdGRjeHgudjYKK0BAIC0xOTUyMyw2ICsxOTYwOSwxMjEgQEAgaW1w b3J0IGdkYi5saWJzdGRjeHgudjYKICBnZGIubGlic3RkY3h4LnY2LnJlZ2lzdGVyX3ByaW50ZXJz IChnZGIuY3VycmVudF9vYmpmaWxlICgpKQogIEBlbmQgc21hbGxleGFtcGxlCiAgCkBAIC0yNjg2 LDcgKzI5ODgsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBub2RlIENvbW1h bmRzIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIENvbW1hbmRzIEluIFB5dGhvbgogIAotQEAg LTE5NzM3LDYgKzE5OTM4LDEzNSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBA dmFsdWV7R0RCTn0uICBEZXBlbmRpbmcgb24gaG93IHRoZQorQEAgLTE5Nzc1LDYgKzE5OTc2LDEz NSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0uICBEZXBl bmRpbmcgb24gaG93IHRoZQogIFB5dGhvbiBjb2RlIGlzIHJlYWQgaW50byBAdmFsdWV7R0RCTn0s IHlvdSBtYXkgbmVlZCB0byBpbXBvcnQgdGhlCiAgQGNvZGV7Z2RifSBtb2R1bGUgZXhwbGljaXRs eS4KICAKQEAgLTI4MjIsNyArMzEyNCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0 CiAgQG5vZGUgRnVuY3Rpb25zIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIFdyaXRpbmcgbmV3 IGNvbnZlbmllbmNlIGZ1bmN0aW9ucwogIAotQEAgLTE5ODQxLDYgKzIwMTcxLDgyIEBAIHdoaWNo IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGluZ30sIGZv ciBtb3JlCitAQCAtMTk4NzksNiArMjAyMDksODIgQEAgd2hpY2ggaXMgdXNlZCB0byBmb3JtYXQg dGhlIHZhbHVlLiAgQHhyZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKICBpbmZvcm1hdGlv bi4KICBAZW5kIGRlZml2YXIKICAKQEAgLTI5MDUsNyArMzIwNyw3IEBAIGluZGV4IGZhYjA1ZmMu LjQ0Y2MxZjIgMTAwNjQ0CiAgQG5vZGUgRnJhbWVzIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9u IEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4KICAKLUBAIC0xOTkw NSw2ICsyMDMxMSwxNCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KK0BAIC0xOTk0Myw2ICsyMDM0 OSwxNCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KICBSZXR1cm5zIHRoZSBmcmFtZSdzIHJlc3Vt ZSBhZGRyZXNzLgogIEBlbmQgZGVmbWV0aG9kCiAgCkBAIC0yOTIwLDcgKzMyMjIsNyBAQCBpbmRl eCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBkZWZtZXRob2QgRnJhbWUgb2xkZXIKICBSZXR1 cm4gdGhlIGZyYW1lIHRoYXQgY2FsbGVkIHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKLUBA IC0xOTkxMywxMCArMjAzMjcsMTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlz IGZyYW1lLgorQEAgLTE5OTUxLDEwICsyMDM2NSwxOCBAQCBSZXR1cm4gdGhlIGZyYW1lIHRoYXQg Y2FsbGVkIHRoaXMgZnJhbWUuCiAgUmV0dXJuIHRoZSBmcmFtZSBjYWxsZWQgYnkgdGhpcyBmcmFt ZS4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjkzOSw3ICszMjQxLDcgQEAgaW5kZXggZmFiMDVm Yy4uNDRjYzFmMiAxMDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgSW50ZXJwcmV0ZXJzCi1A QCAtMjMyMzgsNiArMjM2NjAsOCBAQCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5OgorQEAgLTIz MzA2LDYgKzIzNzI4LDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKICBAaXRlbSBAc3Ry b25ne09wZXJhdGlvbn0KICBAdGFiIEBzdHJvbmd7RGVzY3JpcHRpb259CiAgCkBAIC0yOTQ4LDcg KzMyNTAsMTYgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAaXRlbSBAY29kZXst dmFyLWNyZWF0ZX0KICBAdGFiIGNyZWF0ZSBhIHZhcmlhYmxlIG9iamVjdAogIEBpdGVtIEBjb2Rl ey12YXItZGVsZXRlfQotQEAgLTIzMjczLDYgKzIzNjk3LDIzIEBAIGhvdyBpdCBjYW4gYmUgdXNl ZC4KK0BAIC0yMzMzNCw2ICsyMzc1OCw4IEBAIGFjY2VzcyB0aGlzIGZ1bmN0aW9uYWxpdHk6Cisg QHRhYiB1cGRhdGUgdGhlIHZhcmlhYmxlIGFuZCBpdHMgY2hpbGRyZW4KKyBAaXRlbSBAY29kZXst dmFyLXNldC1mcm96ZW59CisgQHRhYiBzZXQgZnJvemVuZXNzIGF0dHJpYnV0ZQorK0BpdGVtIEBj b2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0KKytAdGFiIHNldCByYW5nZSBvZiBjaGlsZHJlbiB0 byBkaXNwbGF5IG9uIHVwZGF0ZQorIEBlbmQgbXVsdGl0YWJsZQorIAorIEluIHRoZSBuZXh0IHN1 YnNlY3Rpb24gd2UgZGVzY3JpYmUgZWFjaCBvcGVyYXRpb24gaW4gZGV0YWlsIGFuZCBzdWdnZXN0 CitAQCAtMjMzNDEsNiArMjM3NjcsMjMgQEAgaG93IGl0IGNhbiBiZSB1c2VkLgogIAogIEBzdWJo ZWFkaW5nIERlc2NyaXB0aW9uIEFuZCBVc2Ugb2YgT3BlcmF0aW9ucyBvbiBWYXJpYWJsZSBPYmpl Y3RzCiAgCkBAIC0yOTcyLDcgKzMyODMsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0 NAogIEBzdWJoZWFkaW5nIFRoZSBAY29kZXstdmFyLWNyZWF0ZX0gQ29tbWFuZAogIEBmaW5kZXgg LXZhci1jcmVhdGUKICAKLUBAIC0yMzQwNSw3ICsyMzg0Niw3IEBAIFJldHVybnMgdGhlIG51bWJl ciBvZiBjaGlsZHJlbiBvZiBhIHZhcmlhYmxlIG9iamVjdCBAdmFye25hbWV9OgorQEAgLTIzNDcz LDcgKzIzOTE2LDcgQEAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIG9mIGEgdmFyaWFi bGUgb2JqZWN0IEB2YXJ7bmFtZX06CiAgQHN1YnN1YmhlYWRpbmcgU3lub3BzaXMKICAKICBAc21h bGxleGFtcGxlCkBAIC0yOTgxLDcgKzMyOTIsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEw MDY0NAogIEBlbmQgc21hbGxleGFtcGxlCiAgQGFuY2hvcnstdmFyLWxpc3QtY2hpbGRyZW59CiAg Ci1AQCAtMjM0MTgsNiArMjM4NTksMTQgQEAgdmFsdWVzOyBhbmQgaWYgaXQgaXMgMiBvciBAY29k ZXstLXNpbXBsZS12YWx1ZXN9IHByaW50IHRoZSBuYW1lIGFuZAorQEAgLTIzNDg2LDYgKzIzOTI5 LDEyIEBAIHZhbHVlczsgYW5kIGlmIGl0IGlzIDIgb3IgQGNvZGV7LS1zaW1wbGUtdmFsdWVzfSBw cmludCB0aGUgbmFtZSBhbmQKICB2YWx1ZSBmb3Igc2ltcGxlIGRhdGEgdHlwZXMgYW5kIGp1c3Qg dGhlIG5hbWUgZm9yIGFycmF5cywgc3RydWN0dXJlcwogIGFuZCB1bmlvbnMuCiAgCkBAIC0yOTg5 LDI0ICszMzAwLDY5IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiArdG8gcmVwb3J0 LiAgSWYgQHZhcntmcm9tfSBvciBAdmFye3RvfSBpcyBsZXNzIHRoYW4gemVybywgdGhlIHJhbmdl IGlzCiArcmVzZXQgYW5kIGFsbCBjaGlsZHJlbiB3aWxsIGJlIHJlcG9ydGVkLiAgT3RoZXJ3aXNl LCBjaGlsZHJlbiBzdGFydGluZwogK2F0IEB2YXJ7ZnJvbX0gKHplcm8tYmFzZWQpIGFuZCBlbmRp bmcganVzdCBiZWZvcmUgQHZhcnt0b30gd2lsbCBiZQotK3JlcG9ydGVkLiAgVGhlIHNlbGVjdGVk IHJhbmdlIGlzIHN0aWNreTsgZnV0dXJlIGNhbGxzIHRvCi0rQGNvZGV7LXZhci11cGRhdGV9IG9y IEBjb2Rley12YXItbGlzdC1jaGlsZHJlbn0gd2lsbCB1c2UgYW55Ci0rcHJldmlvdXNseSBzZXQg cmFuZ2UuCisrcmVwb3J0ZWQuCiArCiAgRm9yIGVhY2ggY2hpbGQgdGhlIGZvbGxvd2luZyByZXN1 bHRzIGFyZSByZXR1cm5lZDoKICAKICBAdGFibGUgQHZhcgotQEAgLTIzNDQ5LDYgKzIzODk4LDEw IEBAIE90aGVyd2lzZSB0aGlzIHJlc3VsdCBpcyBub3QgcHJlc2VudC4KLSAKLSBAaXRlbSBmcm96 ZW4KK0BAIC0yMzUxOSw2ICsyMzk2OCwxNCBAQCBPdGhlcndpc2UgdGhpcyByZXN1bHQgaXMgbm90 IHByZXNlbnQuCiAgSWYgdGhlIHZhcmlhYmxlIG9iamVjdCBpcyBmcm96ZW4sIHRoaXMgdmFyaWFi bGUgd2lsbCBiZSBwcmVzZW50IHdpdGggYSB2YWx1ZSBvZiAxLgorIEBlbmQgdGFibGUKKyAKKytU aGUgcmVzdWx0IG1heSBoYXZlIGl0cyBvd24gYXR0cmlidXRlczoKICsKKytAdGFibGUgQHZhcgog K0BpdGVtIGhhc19tb3JlCiArVGhpcyBpcyBhbiBpbnRlZ2VyIGF0dHJpYnV0ZSB3aGljaCBpcyBu b256ZXJvIGlmIHRoZXJlIGFyZSBjaGlsZHJlbgogK3JlbWFpbmluZyBhZnRlciB0aGUgZW5kIG9m IHRoZSBzZWxlY3RlZCByYW5nZS4KLSBAZW5kIHRhYmxlCisrQGVuZCB0YWJsZQorKworIEBzdWJz dWJoZWFkaW5nIEV4YW1wbGUKICAKKyBAc21hbGxleGFtcGxlCitAQCAtMjM3MDAsNiArMjQxNTcs OSBAQCBXaXRoIHRoZSBAc2FtcHsqfSBwYXJhbWV0ZXIsIGlmIGEgdmFyaWFibGUgb2JqZWN0IGlz IGJvdW5kIHRvIGEKKyBjdXJyZW50bHkgcnVubmluZyB0aHJlYWQsIGl0IHdpbGwgbm90IGJlIHVw ZGF0ZWQsIHdpdGhvdXQgYW55CisgZGlhZ25vc3RpYy4KKyAKKytJZiBAY29kZXstdmFyLXNldC11 cGRhdGUtcmFuZ2V9IHdhcyBwcmV2aW91c2x5IHVzZWQgb24gYSB2YXJvYmosIHRoZW4KKytvbmx5 IHRoZSBzZWxlY3RlZCByYW5nZSBvZiBjaGlsZHJlbiB3aWxsIGJlIHJlcG9ydGVkLgorKwogIEBz dWJzdWJoZWFkaW5nIEV4YW1wbGUKKyAKKyBAc21hbGxleGFtcGxlCitAQCAtMjM3NjcsNiArMjQy MjcsMzIgQEAgVW5mcmVlemluZyBhIHZhcmlhYmxlIGRvZXMgbm90IHVwZGF0ZSBpdCwgb25seSBz dWJzZXF1ZW50CisgKGdkYikKKyBAZW5kIHNtYWxsZXhhbXBsZQorIAorK0BzdWJoZWFkaW5nIFRo ZSBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9IGNvbW1hbmQKKytAZmluZGV4IC12YXItc2V0 LXVwZGF0ZS1yYW5nZQorK0BhbmNob3J7LXZhci1zZXQtdXBkYXRlLXJhbmdlfQorKworK0BzdWJz dWJoZWFkaW5nIFN5bm9wc2lzCisrCisrQHNtYWxsZXhhbXBsZQorKyAtdmFyLXNldC11cGRhdGUt cmFuZ2UgQHZhcntuYW1lfSBAdmFye2Zyb219IEB2YXJ7dG99CisrQGVuZCBzbWFsbGV4YW1wbGUK KysKKytTZXQgdGhlIHJhbmdlIG9mIGNoaWxkcmVuIHRvIGJlIHJldHVybmVkIGJ5IGZ1dHVyZSBp bnZvY2F0aW9ucyBvZgorK0Bjb2Rley12YXItdXBkYXRlfS4KKysKKytAdmFye2Zyb219IGFuZCBA dmFye3RvfSBpbmRpY2F0ZSB0aGUgcmFuZ2Ugb2YgY2hpbGRyZW4gdG8gcmVwb3J0LiAgSWYKKytA dmFye2Zyb219IG9yIEB2YXJ7dG99IGlzIGxlc3MgdGhhbiB6ZXJvLCB0aGUgcmFuZ2UgaXMgcmVz ZXQgYW5kIGFsbAorK2NoaWxkcmVuIHdpbGwgYmUgcmVwb3J0ZWQuICBPdGhlcndpc2UsIGNoaWxk cmVuIHN0YXJ0aW5nIGF0IEB2YXJ7ZnJvbX0KKysoemVyby1iYXNlZCkgYW5kIGVuZGluZyBqdXN0 IGJlZm9yZSBAdmFye3RvfSB3aWxsIGJlIHJlcG9ydGVkLgorKworK0BzdWJzdWJoZWFkaW5nIEV4 YW1wbGUKKysKKytAc21hbGxleGFtcGxlCisrKGdkYikKKystdmFyLXNldC11cGRhdGUtcmFuZ2Ug ViAxIDIKKyteZG9uZQorK0BlbmQgc21hbGxleGFtcGxlCisrCisgQHN1YmhlYWRpbmcgVGhlIEBj b2Rley12YXItc2V0LXZpc3VhbGl6ZXJ9IGNvbW1hbmQKKyBAZmluZGV4IC12YXItc2V0LXZpc3Vh bGl6ZXIKKyBAYW5jaG9yey12YXItc2V0LXZpc3VhbGl6ZXJ9CiBkaWZmIC0tZ2l0IGEvZ2RiL2Rv Yy9nZGJpbnQudGV4aW5mbyBiL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIGluZGV4IGIxYzA0NTIu LmRhMjRiOTggMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYmludC50ZXhpbmZvCkBAIC0zMTY5LDcg KzM1MjUsNyBAQCBpbmRleCA0OTg0ZjMxLi40YmJiZTRlIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIg aXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGluZy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1 aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjItZnJhbWUu YyBiL2dkYi9kd2FyZjItZnJhbWUuYwotaW5kZXggYzYyMDA2Ny4uNmM0ZmFmMSAxMDA2NDQKK2lu ZGV4IDBmNmRhNDAuLmMxYzE2MmUgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmMKICsr KyBiL2dkYi9kd2FyZjItZnJhbWUuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTMxODAsNyArMzUz Niw3IEBAIGluZGV4IGM2MjAwNjcuLjZjNGZhZjEgMTAwNjQ0CiAgCiAgc3RydWN0IGNvbXBfdW5p dDsKICAKLUBAIC0zMDUsNiArMzA2LDEzIEBAIG5vX2dldF9mcmFtZV9iYXNlICh2b2lkICpiYXRv biwgZ2RiX2J5dGUgKipzdGFydCwgc2l6ZV90ICpsZW5ndGgpCitAQCAtMzEwLDYgKzMxMSwxMyBA QCBub19nZXRfZnJhbWVfYmFzZSAodm9pZCAqYmF0b24sIGdkYl9ieXRlICoqc3RhcnQsIHNpemVf dCAqbGVuZ3RoKQogIH0KICAKICBzdGF0aWMgQ09SRV9BRERSCkBAIC0zMTk0LDcgKzM1NTAsNyBA QCBpbmRleCBjNjIwMDY3Li42YzRmYWYxIDEwMDY0NAogIG5vX2dldF90bHNfYWRkcmVzcyAodm9p ZCAqYmF0b24sIENPUkVfQUREUiBvZmZzZXQpCiAgewogICAgaW50ZXJuYWxfZXJyb3IgKF9fRklM RV9fLCBfX0xJTkVfXywKLUBAIC0zNTUsMTQgKzM2MywxNiBAQCBleGVjdXRlX3N0YWNrX29wIChn ZGJfYnl0ZSAqZXhwLCBVTE9OR0VTVCBsZW4sIGludCBhZGRyX3NpemUsCitAQCAtMzYwLDE0ICsz NjgsMTYgQEAgZXhlY3V0ZV9zdGFja19vcCAoZ2RiX2J5dGUgKmV4cCwgVUxPTkdFU1QgbGVuLCBp bnQgYWRkcl9zaXplLAogICAgY3R4LT5yZWFkX3JlZyA9IHJlYWRfcmVnOwogICAgY3R4LT5yZWFk X21lbSA9IHJlYWRfbWVtOwogICAgY3R4LT5nZXRfZnJhbWVfYmFzZSA9IG5vX2dldF9mcmFtZV9i YXNlOwpAQCAtMzIxMiw3ICszNTY4LDcgQEAgaW5kZXggYzYyMDA2Ny4uNmM0ZmFmMSAxMDA2NDQK ICAKICAgIGZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwogIAotQEAgLTEyNDIsNiArMTI1 MiwxNCBAQCBkd2FyZjJfZnJhbWVfYmFzZV9zbmlmZmVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhp c19mcmFtZSkKK0BAIC0xMjQ3LDYgKzEyNTcsMTQgQEAgZHdhcmYyX2ZyYW1lX2Jhc2Vfc25pZmZl ciAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCiAgCiAgICByZXR1cm4gTlVMTDsKICB9 CkBAIC0zMjI3LDkgKzM1ODMsOSBAQCBpbmRleCBjNjIwMDY3Li42YzRmYWYxIDEwMDY0NAogIAwK ICBjb25zdCBzdHJ1Y3Qgb2JqZmlsZV9kYXRhICpkd2FyZjJfZnJhbWVfb2JqZmlsZV9kYXRhOwog IAotQEAgLTE1MDQsNiArMTUyMiwxNCBAQCBkd2FyZjJfZnJhbWVfZmluZF9mZGUgKENPUkVfQURE UiAqcGMpCi0gICAgICAgc3RydWN0IGR3YXJmMl9mZGUgKmZkZTsKK0BAIC0xNTM2LDYgKzE1NTQs MTQgQEAgZHdhcmYyX2ZyYW1lX2ZpbmRfZmRlIChDT1JFX0FERFIgKnBjKQogICAgICAgIENPUkVf QUREUiBvZmZzZXQ7CisgICAgICAgQ09SRV9BRERSIHNlZWtfcGM7CiAgCiArICAgICAgaWYgKG9i amZpbGUtPnF1aWNrX2FkZHJtYXApCiArCXsKQEAgLTMyMzksOCArMzU5NSw4IEBAIGluZGV4IGM2 MjAwNjcuLjZjNGZhZjEgMTAwNjQ0CiArICAgICAgLyogRklYTUU6IFJlYWQtaW4gb25seSAuZGVi dWdfZnJhbWUvLmVoX2ZyYW1lIHdpdGhvdXQgLmRlYnVnX2luZm8/ICAqLwogKyAgICAgIHJlcXVp cmVfcGFydGlhbF9zeW1ib2xzIChvYmpmaWxlKTsKICsKLSAgICAgICBmZGUgPSBvYmpmaWxlX2Rh dGEgKG9iamZpbGUsIGR3YXJmMl9mcmFtZV9vYmpmaWxlX2RhdGEpOwotICAgICAgIGlmIChmZGUg PT0gTlVMTCkKKyAgICAgICBmZGVfdGFibGUgPSBvYmpmaWxlX2RhdGEgKG9iamZpbGUsIGR3YXJm Ml9mcmFtZV9vYmpmaWxlX2RhdGEpOworICAgICAgIGlmIChmZGVfdGFibGUgPT0gTlVMTCkKICAJ Y29udGludWU7CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi1mcmFtZS5oIGIvZ2RiL2R3YXJmMi1m cmFtZS5oCiBpbmRleCBiMjAzNjYxLi5kZDAzZDU5IDEwMDY0NApAQCAtNDAzNiw3ICs0MzkyLDcg QEAgaW5kZXggMGJmY2ZjYS4uMDEwMThkNiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9j LmggKi8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwot aW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKK2luZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAw NjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAt MSw4ICsxLDcgQEAKQEAgLTQ1MDUsOCArNDg2MSw4IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEg MTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQKICBkd2FyZjJfYnVpbGRfaW5jbHVkZV9wc3ltdGFicyAo c3RydWN0IGR3YXJmMl9jdSAqY3UsCi1AQCAtMTY5MCw2ICsxODY5LDM3IEBAIGR3YXJmMl9idWls ZF9pbmNsdWRlX3BzeW10YWJzIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLSAgIGZyZWVfbGluZV9o ZWFkZXIgKGxoKTsKK0BAIC0xODEyLDYgKzE5OTEsMzcgQEAgbG9va3VwX3NpZ25hdHVyZWRfdHlw ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIFVMT05HRVNUIHNpZykKKyAgIHJldHVybiBlbnRy eTsKICB9CiAgCiArLyogRmluZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBjb21waWxhdGlvbiB1 bml0IGZvciByYW5nZSBsaXN0cyBhbmQKQEAgLTQ1NDAsMjAgKzQ4OTYsMTAgQEAgaW5kZXggNDQ1 YmFiOC4uYmUyZGMyYSAxMDA2NDQKICsgICAgfQogK30KICsKLSBzdGF0aWMgaGFzaHZhbF90Ci0g aGFzaF90eXBlX3NpZ25hdHVyZSAoY29uc3Qgdm9pZCAqaXRlbSkKLSB7Ci1AQCAtMTgxMiw4ICsy MDIyLDcgQEAgbG9va3VwX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IFVMT05HRVNUIHNpZykKLSAgIHJldHVybiBlbnRyeTsKLSB9Ci0gCi0tLyogU3Vicm91dGluZSBv ZiBwcm9jZXNzX3R5cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFyZAot LSAgIHRvIGNvbWJpbmUgdGhlIGNvbW1vbiBwYXJ0cy4KLSsvKiBTdWJyb3V0aW5lIG9mIGR3YXJm Ml9idWlsZF9wc3ltdGFic19oYXJkIHRvIHNpbXBsaWZ5IGl0LgorIC8qIFN1YnJvdXRpbmUgb2Yg cHJvY2Vzc190eXBlX2NvbXBfdW5pdCBhbmQgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQKKyAg ICB0byBjb21iaW5lIHRoZSBjb21tb24gcGFydHMuCiAgICAgUHJvY2VzcyBhIGNvbXBpbGF0aW9u IHVuaXQgZm9yIGEgcHN5bXRhYi4KLSAgICBCVUZGRVIgaXMgYSBwb2ludGVyIHRvIHRoZSBiZWdp bm5pbmcgb2YgdGhlIGR3YXJmIHNlY3Rpb24gYnVmZmVyLAotICAgIGVpdGhlciAuZGVidWdfaW5m byBvciBkZWJ1Z190eXBlcy4KLUBAIC0xODc4LDcgKzIwODcsNyBAQCBwcm9jZXNzX3BzeW10YWJf Y29tcF91bml0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0xODc4LDcgKzIwODgsNyBA QCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAg ICAgfQogIAogICAgLyogU2V0IHRoZSBsYW5ndWFnZSB3ZSdyZSBkZWJ1Z2dpbmcuICAqLwpAQCAt NDU2Miw3ICs0OTA4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAKICAgIC8q IEFsbG9jYXRlIGEgbmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVjdHVyZS4gICovCiAgICBw c3QgPSBzdGFydF9wc3ltdGFiX2NvbW1vbiAob2JqZmlsZSwgb2JqZmlsZS0+c2VjdGlvbl9vZmZz ZXRzLAotQEAgLTE5MjksOCArMjEzOCw4IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE5MjksOCArMjEzOSw4IEBAIHByb2Nlc3NfcHN5 bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgICB9CiAgICBlbHNl IGlmIChjb21wX3VuaXRfZGllLmhhc19wY19pbmZvCiAgCSAgICYmIGNvbXBfdW5pdF9kaWUubG93 cGMgPCBjb21wX3VuaXRfZGllLmhpZ2hwYykKQEAgLTQ1NzMsNyArNDkxOSw3IEBAIGluZGV4IDQ0 NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICAgIGFkZHJtYXBfc2V0X2VtcHR5IChvYmpmaWxlLT5w c3ltdGFic19hZGRybWFwLAogIAkJICAgICAgIGNvbXBfdW5pdF9kaWUubG93cGMgKyBiYXNlYWRk ciwKICAJCSAgICAgICBjb21wX3VuaXRfZGllLmhpZ2hwYyArIGJhc2VhZGRyIC0gMSwgcHN0KTsK LUBAIC0yMzYxLDcgKzI1NzAsNyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwZGksCitAQCAtMjM2MSw3ICsyNTcxLDcgQEAgcGFydGlhbF9kaWVf cGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkgaWdub3Jpbmcg dGhlbS4gICovCiAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAogIAkJIF8o InVuaGFuZGxlZCBjb250YWluaW5nIERJRSB0YWcgJWQgZm9yIERJRSBhdCAlZCIpLApAQCAtNDU4 Miw3ICs0OTI4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgICBwYXJl bnQtPnNjb3BlID0gZ3JhbmRwYXJlbnRfc2NvcGU7CiAgICAgIH0KICAKLUBAIC0yMzc2LDEyICsy NTg1LDIyIEBAIHBhcnRpYWxfZGllX2Z1bGxfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBkaSwKK0BAIC0yMzc2LDEyICsyNTg2LDIyIEBAIHBhcnRpYWxfZGllX2Z1bGxfbmFtZSAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKICAJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICB7CiAgICBjaGFyICpwYXJlbnRfc2NvcGU7CkBAIC00NjA5LDcgKzQ5NTUsNyBAQCBpbmRl eCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTIzOTcs MTIgKzI2MTYsOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTIzOTcsMTIgKzI2MTcsOSBAQCBhZGRf cGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9v ZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC00NjI1LDcgKzQ5NzEsNyBA QCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAogICAgaWYgKGFjdHVhbF9uYW1lID09 IE5VTEwpCiAgICAgIGFjdHVhbF9uYW1lID0gcGRpLT5uYW1lOwotQEAgLTI1MzQsMjIgKzI3NTAs NiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1MzQsMjIgKzI3NTEsNiBAQCBhZGRfcGFydGlhbF9z eW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC00NjQ4LDcgKzQ5OTQsNyBAQCBpbmRleCA0 NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgaWYgKGJ1aWx0X2FjdHVhbF9uYW1lKQogICAgICB4 ZnJlZSAoYWN0dWFsX25hbWUpOwogIH0KLUBAIC0yNTU5LDkgKzI3NTksOSBAQCBhZGRfcGFydGlh bF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTI1NTksOSArMjc2MCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgbmFtZSBsaXN0 ZWQgaW4gdGhlIGRpZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNDY2MCw3ICs1MDA2LDcgQEAg aW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgewogICAgICBjYXNlIERXX1RBR19u YW1lc3BhY2U6CiAgICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Ci1AQCAtMjU3MSw3ICsyNzcxLDIz IEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKK0BAIC0yNTcxLDcg KzI3NzIsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQogICAg ICBjYXNlIERXX1RBR191bmlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdGlvbl90 eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNDY4NCw3ICs1MDMwLDcgQEAg aW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1 cm4gMDsKICAgICAgfQotQEAgLTI3MDAsMjcgKzI5MTYsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFt ZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnN0cnVjdF9wZGksCitAQCAtMjcwMCwyNyArMjkx Nyw2IEBAIGd1ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3Ry dWN0X3BkaSwKICAKICAgICAgICBpZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAJ cmV0dXJuOwpAQCAtNDcxMiw3ICs1MDU4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2 NDQKICAgICAgfQogIH0KICAKLUBAIC0zMTcwLDcgKzMzNjUsNiBAQCBwcm9jZXNzX2Z1bGxfY29t cF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCitAQCAtMzE3MCw3ICsz MzY2LDYgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0 YSAqcGVyX2N1KQogICAgQ09SRV9BRERSIGxvd3BjLCBoaWdocGM7CiAgICBzdHJ1Y3Qgc3ltdGFi ICpzeW10YWI7CiAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKQEAgLTQ3MjAsNyArNTA2Niw3 IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7 CiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNF Q1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKLUBAIC0zMTgwLDMwICszMzc0LDcgQEAgcHJvY2Vzc19m dWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorQEAgLTMx ODAsMzAgKzMzNzUsNyBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Bl cl9jdV9kYXRhICpwZXJfY3UpCiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZmaWxlX3N5bWJv bHM7CiAgCkBAIC00NzUyLDcgKzUwOTgsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0 NAogIAogICAgLyogRG8gbGluZSBudW1iZXIgZGVjb2RpbmcgaW4gcmVhZF9maWxlX3Njb3BlICgp ICovCiAgICBwcm9jZXNzX2RpZSAoY3UtPmRpZXMsIGN1KTsKLUBAIC0zMjM0LDYgKzM0MDUsNyBA QCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJf Y3UpCitAQCAtMzIzNCw2ICszNDA2LDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0 IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQogIHN0YXRpYyB2b2lkCiAgcHJvY2Vzc19kaWUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CkBAIC00NzYw LDcgKzUxMDYsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgc3dpdGNoIChk aWUtPnRhZykKICAgICAgewogICAgICBjYXNlIERXX1RBR19wYWRkaW5nOgotQEAgLTMzMTIsNDIg KzM0ODQsNjkgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC0zMzEyLDQyICszNDg1LDY5IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgLyogUmV0dXJuIHRoZSBmdWxs eSBxdWFsaWZpZWQgbmFtZSBvZiBESUUsIGJhc2VkIG9uIGl0cyBEV19BVF9uYW1lLgogICAgIElm IHNjb3BlIHF1YWxpZmllcnMgYXJlIGFwcHJvcHJpYXRlIHRoZXkgd2lsbCBiZSBhZGRlZC4gIFRo ZSByZXN1bHQKICAgICB3aWxsIGJlIGFsbG9jYXRlZCBvbiB0aGUgb2JqZmlsZV9vYnN0YWNrLCBv ciBOVUxMIGlmIHRoZSBESUUgZG9lcwpAQCAtNDg1Miw3ICs1MTk4LDcgQEAgaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogIHJlYWRfaW1wb3J0X3N0YXRlbWVu dCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotQEAgLTMzNTYs OSArMzU1NSwxNSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMzU2LDkgKzM1NTYsMTUgQEAgcmVhZF9pbXBv cnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICBzdHJ1Y3QgZGllX2luZm8gKmltcG9ydGVkX2RpZTsKICAgIGNvbnN0IGNoYXIgKmltcG9y dGVkX25hbWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lX3ByZWZpeDsKQEAgLTQ4NzAs NyArNTIxNiw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBpbXBvcnRfYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2ltcG9ydCwgY3UpOwogICAgaWYgKGltcG9ydF9h dHRyID09IE5VTEwpCiAgICAgIHsKLUBAIC0zNDA2LDI5ICszNjExLDQ1IEBAIHJlYWRfaW1wb3J0 X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTM0MDYsMjkgKzM2MTIsNDUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuOwogICAgICB9 CiAgCkBAIC00OTI5LDEwMSArNTI3NSwzMSBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0 NAogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTM2NzcsNiArMzg5OCw5MyBAQCB1bnNpZ25lZF9p bnRfY29tcGFyIChjb25zdCB2b2lkICphcCwgY29uc3Qgdm9pZCAqYnApCitAQCAtMzY3Niw3ICsz ODk4LDcgQEAgdW5zaWduZWRfaW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQg KmJwKQorIAogICAgcmV0dXJuIChhID4gYikgLSAoYiA+IGEpOwogIH0KLSAKLStzdGF0aWMgdm9p ZCBleHBsb3JlX2Fic3RyYWN0X29yaWdpbihzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UsIHVuc2lnbmVkKiBkaWVfY2hpbGRyZW5fcCl7Ci0rICBzdHJ1Y3QgYXR0cmli dXRlICphdHRyOwotKyAgdW5zaWduZWQgZGllX2NoaWxkcmVuID0gKmRpZV9jaGlsZHJlbl9wOwot KyAgc3RydWN0IGRpZV9pbmZvICpjaGlsZF9kaWU7CistCiArICAKLSsgIGF0dHIgPSBkd2FyZjJf YXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKKyAvKiBEV19BVF9hYnN0cmFj dF9vcmlnaW4gaW5oZXJpdHMgd2hvbGUgRElFcyAobm90IGp1c3QgdGhlaXIgYXR0cmlidXRlcyku CisgICAgSW5oZXJpdCBvbmx5IHRoZSBjaGlsZHJlbiBvZiB0aGUgRFdfQVRfYWJzdHJhY3Rfb3Jp Z2luIERJRSBub3QgYmVpbmcgYWxyZWFkeQorICAgIHJlZmVyZW5jZWQgYnkgRFdfQVRfYWJzdHJh Y3Rfb3JpZ2luIGZyb20gdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50IERJRS4gICovCitAQCAt MzY5Nyw2ICszOTE5LDE0IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsK KyAKKyAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1 KTsKICsgIAotKyAgLyogR0NDIGN1cnJlbnRseSB1c2VzIERXX0FUX3NwZWNpZmljYXRpb24gdG8g aW5kaWNhdGUgZGllIGluaGVyaXRlbmNlCi0rICAgICBpbiB0aGUgY2FzZSBvZiBpbXBvcnQgc3Rh dGVtZW50cy4gVGhlIGZvbGxvd2luZyBpcyB0byBhY2NvbW1vZGF0ZSB0aGF0ICovCisrICAvKiBH Q0MgNC4zIGluY29ycmVjdGx5IHVzZXMgRFdfQVRfc3BlY2lmaWNhdGlvbiB0byBpbmRpY2F0ZSBk aWUgaW5oZXJpdGVuY2UKKysgICAgIGluIHRoZSBjYXNlIG9mIGltcG9ydCBzdGF0ZW1lbnRzLiBU aGUgZm9sbG93aW5nIGlzIHRvIGFjY29tbW9kYXRlIAorKyAgICAgdGhhdC4gICovCiArICBpZigh YXR0cil7CiArICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zcGVjaWZpY2F0aW9u LCBjdSk7CiArICB9CiArICAKLSsgIGlmIChhdHRyKQotKyAgICB7Ci0rICAgICAgLyogRm9yIHRo ZSBsaXN0IG9mIENISUxEX0RJRXMuICAqLwotKyAgICAgIHVuc2lnbmVkICpvZmZzZXRzOwotKyAg ICAgIHVuc2lnbmVkICpvZmZzZXRzX2VuZCwgKm9mZnNldHA7Ci0rICAgICAgc3RydWN0IGRpZV9p bmZvICpvcmlnaW5fZGllLCAqb3JpZ2luX2NoaWxkX2RpZTsKLSsgICAgICBzdHJ1Y3QgY2xlYW51 cCAqY2xlYW51cHM7Ci0rCi0rICAgICAgb3JpZ2luX2RpZSA9IGZvbGxvd19kaWVfcmVmIChkaWUs IGF0dHIsICZjdSk7Ci0rICAgICAgaWYgKGRpZS0+dGFnICE9IG9yaWdpbl9kaWUtPnRhZykKLSsg ICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAg ICAgXygiRElFIDB4JXggYW5kIGl0cyBhYnN0cmFjdCBvcmlnaW4gMHgleCBoYXZlIGRpZmZlcmVu dCAiCi0rICAgICAgICAgICAgICAgICAgICAgInRhZ3MiKSwKLSsgICAgICAgICAgICAgICAgICAg ZGllLT5vZmZzZXQsIG9yaWdpbl9kaWUtPm9mZnNldCk7Ci0rCi0rICAgICAgb2Zmc2V0cyA9IHht YWxsb2MgKHNpemVvZiAoKm9mZnNldHMpICogZGllX2NoaWxkcmVuKTsKLSsgICAgICBjbGVhbnVw cyA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIG9mZnNldHMpOwotKwotKyAgICAgIG9mZnNldHNfZW5k ID0gb2Zmc2V0czsKLSsgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOwotKyAgICAgIHdoaWxl IChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGF0 dHIgPSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsK LSsgICAgICAgICAgaWYgKCFhdHRyKQotKyAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVf Y29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IG9m IERJRSAweCV4IGhhcyBtaXNzaW5nICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIkRXX0FU X2Fic3RyYWN0X29yaWdpbiIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGllLT5v ZmZzZXQsIGRpZS0+b2Zmc2V0KTsKLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsg ICAgICAgICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGRfb3JpZ2luX2RpZTsKLSsKLSsgICAg ICAgICAgICAgIGNoaWxkX29yaWdpbl9kaWUgPSBmb2xsb3dfZGllX3JlZiAoY2hpbGRfZGllLCBh dHRyLCAmY3UpOwotKyAgICAgICAgICAgICAgaWYgKGNoaWxkX2RpZS0+dGFnICE9IGNoaWxkX29y aWdpbl9kaWUtPnRhZykKLSsgICAgICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21w bGFpbnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IGFu ZCBpdHMgYWJzdHJhY3Qgb3JpZ2luIDB4JXggaGF2ZSAiCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZGlmZmVyZW50IHRhZ3MiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGlsZF9kaWUtPm9mZnNldCwgY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0KTsKLSsgICAgICAgICAg ICAgICpvZmZzZXRzX2VuZCsrID0gY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0OwotKyAgICAgICAg ICAgIH0KLSsgICAgICAgICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7Ci0r ICAgICAgICB9Ci0rICAgICAgcXNvcnQgKG9mZnNldHMsIG9mZnNldHNfZW5kIC0gb2Zmc2V0cywg c2l6ZW9mICgqb2Zmc2V0cyksCi0rICAgICAgICAgICAgIHVuc2lnbmVkX2ludF9jb21wYXIpOwot KyAgICAgIC8qIERpc2FibGVkIGFzIGV4Y2Vzc2l2ZWx5IGV4cGVuc2l2ZSAtIGNoZWNrIGlmIHdl IG1heSBldmVyIGNvbXBsYWluLiAgKi8KLSsgICAgICBpZiAoMCkKLSsgICAgICAgIHsKLSsgICAg ICAgICAgZm9yIChvZmZzZXRwID0gb2Zmc2V0cyArIDE7IG9mZnNldHAgPCBvZmZzZXRzX2VuZDsg b2Zmc2V0cCsrKQotKyAgICAgICAgICAgIGlmIChvZmZzZXRwWy0xXSA9PSAqb2Zmc2V0cCkKLSsg ICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgXygiQ2hpbGQgRElFcyBvZiBESUUgMHgleCBkdXBsaWNpdGx5IGFic3Ry YWN0LW9yaWdpbiAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZWQgRElF IDB4JXgiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgZGllLT5vZmZzZXQsICpvZmZzZXRw KTsKLSsgICAgICAgIH0KLSsKLSsgICAgICBvZmZzZXRwID0gb2Zmc2V0czsKLSsgICAgICBvcmln aW5fY2hpbGRfZGllID0gb3JpZ2luX2RpZS0+Y2hpbGQ7Ci0rICAgICAgd2hpbGUgKG9yaWdpbl9j aGlsZF9kaWUgJiYgb3JpZ2luX2NoaWxkX2RpZS0+dGFnKQotKyAgICAgICAgewotKyAgICAgICAg ICAvKiBJcyBvcmlnaW5fY2hpbGRfZGllIHJlZmVyZW5jZWQgYnkgYW55IG9mIHRoZSBESUUgY2hp bGRyZW4/ICAqLwotKyAgICAgICAgICB3aGlsZSAob2Zmc2V0cCA8IG9mZnNldHNfZW5kICYmICpv ZmZzZXRwIDwgb3JpZ2luX2NoaWxkX2RpZS0+b2Zmc2V0KQotKyAgICAgICAgICAgIG9mZnNldHAr KzsKLSsgICAgICAgICAgaWYgKG9mZnNldHAgPj0gb2Zmc2V0c19lbmQgfHwgKm9mZnNldHAgPiBv cmlnaW5fY2hpbGRfZGllLT5vZmZzZXQpCi0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAg LyogRm91bmQgdGhhdCBvcmlnaW5fY2hpbGRfZGllIGlzIHJlYWxseSBub3QgcmVmZXJlbmNlZC4g ICovCi0rICAgICAgICAgICAgICBwcm9jZXNzX2RpZSAob3JpZ2luX2NoaWxkX2RpZSwgY3UpOwot KyAgICAgICAgICAgIH0KLSsgICAgICAgICAgb3JpZ2luX2NoaWxkX2RpZSA9IHNpYmxpbmdfZGll IChvcmlnaW5fY2hpbGRfZGllKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICBkb19jbGVhbnVwcyAo Y2xlYW51cHMpOwotKyAgICB9Ci0rfQotKyAgCi0gLyogRFdfQVRfYWJzdHJhY3Rfb3JpZ2luIGlu aGVyaXRzIHdob2xlIERJRXMgKG5vdCBqdXN0IHRoZWlyIGF0dHJpYnV0ZXMpLgotICAgIEluaGVy aXQgb25seSB0aGUgY2hpbGRyZW4gb2YgdGhlIERXX0FUX2Fic3RyYWN0X29yaWdpbiBESUUgbm90 IGJlaW5nIGFscmVhZHkKLSAgICByZWZlcmVuY2VkIGJ5IERXX0FUX2Fic3RyYWN0X29yaWdpbiBm cm9tIHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBESUUuICAqLwotQEAgLTM3OTUsNiArNDEw Myw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorICAgaWYgKCFhdHRyKQorICAgICByZXR1cm47CisgCitAQCAtMzc5NSw2ICs0 MDI1LDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgICBjaGFyICpuYW1lOwogICAgQ09SRV9BRERSIGJhc2VhZGRyOwogICAg c3RydWN0IGJsb2NrICpibG9jazsKQEAgLTUwMzEsNyArNTMwNyw3IEBAIGluZGV4IDQ0NWJhYjgu LmJlMmRjMmEgMTAwNjQ0CiAgICBpbnQgaW5saW5lZF9mdW5jID0gKGRpZS0+dGFnID09IERXX1RB R19pbmxpbmVkX3N1YnJvdXRpbmUpOwogIAogICAgaWYgKGlubGluZWRfZnVuYykKLUBAIC0zODEz LDEzICs0MTIyLDIzIEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM4MTMsMTMgKzQwNDQsMjMgQEAgcmVhZF9mdW5jX3Nj b3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBi YXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RF WFQgKG9iamZpbGUpKTsKICAKQEAgLTUwNTAsNyArNTMyNiw3IEBAIGluZGV4IDQ0NWJhYjguLmJl MmRjMmEgMTAwNjQ0CiArCWNoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwlk aWVfY2hpbGRyZW4rKzsKICsgICAgICB9Ci0rICAgIGV4cGxvcmVfYWJzdHJhY3Rfb3JpZ2luKGRp ZSwgY3UsICZkaWVfY2hpbGRyZW4pOworKyAgICBpbmhlcml0X2Fic3RyYWN0X2RpZXMoZGllLCBj dSk7CiAgICAgIHJldHVybjsKIC0KICsgIH0KQEAgLTUwNTgsNyArNTMzNCw3IEBAIGluZGV4IDQ0 NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyAr PSBiYXNlYWRkcjsKICAKLUBAIC0zODQ2LDE2ICs0MTY1LDE1IEBAIHJlYWRfZnVuY19zY29wZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM4NDYsMTQg KzQwODcsMTIgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1ib2xz OwogIApAQCAtNTA3NywxMSArNTM1Myw4IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0 CiArICAgICAgZGllX2NoaWxkcmVuKys7CiAgICAgIH0KICAKLSsgIGV4cGxvcmVfYWJzdHJhY3Rf b3JpZ2luKGRpZSwgY3UsICZkaWVfY2hpbGRyZW4pOwogICAgaW5oZXJpdF9hYnN0cmFjdF9kaWVz IChkaWUsIGN1KTsKLSAKLSAgIG5ldyA9IHBvcF9jb250ZXh0ICgpOwotQEAgLTM5MDUsNyArNDIy Myw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM5MDUsNyArNDE0NCw3IEBAIHJlYWRfbGV4aWNhbF9i bG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog ICAgICAgYXMgbXVsdGlwbGUgbGV4aWNhbCBibG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBh IHNhbmUgd2F5IHdvdWxkCiAgICAgICBiZSBuYXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9w ZXJseSBleHRlbmQgZ2VuZXJpYyBibG9ja3MgdG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAq LwpAQCAtNTA5MCwxNiArNTM2MywxNiBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAog ICAgICByZXR1cm47CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRk cjsKLUBAIC0zOTIyLDcgKzQyNDAsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIyLDcgKzQxNjEs NyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQgKCk7CiAgCiAt ICBpZiAobG9jYWxfc3ltYm9scyAhPSBOVUxMKQotKyAgaWYgKGxvY2FsX3N5bWJvbHMgIT0gTlVM TCB8fCB1c2luZ19kaXJlY3RpdmVzIT0gTlVMTCApCisrICBpZiAobG9jYWxfc3ltYm9scyAhPSBO VUxMIHx8IHVzaW5nX2RpcmVjdGl2ZXMgIT0gTlVMTCkKICAgICAgewogICAgICAgIHN0cnVjdCBi bG9jayAqYmxvY2sKICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAmbG9jYWxfc3ltYm9scywg bmV3LT5vbGRfYmxvY2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3Nyw3ICs0Mzk1LDggQEAg ZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVy biwKK0BAIC00MDc3LDcgKzQzMTYsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9m ZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRpbnVvdXMsIGkuZS4gZGVy aXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAgc3RhdGljIGludAogIGR3 YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dw YywKQEAgLTUxMDksNyArNTM4Miw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAg ewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQUREUiBsb3cgPSAwOwotQEAg LTQxMDUsNyArNDQyNCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC00MTA1LDcgKzQzNDUsNyBAQCBkd2FyZjJfZ2V0 X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCiAgCXsK ICAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0 IGluIHRoZQogIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCkBAIC01MTE4LDcgKzUz OTEsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAkgICAgcmV0dXJuIDA7CiAg CSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwogIAkgIHJl dCA9IC0xOwotQEAgLTQxNDQsNyArNDQ2Myw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19i b3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDQsNyArNDM4NCw3IEBAIGR3YXJm Ml9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09S RV9BRERSIGxvdywgaGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxk OwogIApAQCAtNTEyNyw3ICs1NDAwLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQK ICAgICAgewogICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwogICAgICAgICpoaWdo cGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTQxODEsNyArNDUwMCw3IEBAIGdldF9zY29w ZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxODEsNyArNDQyMSw3IEBA IGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERS IGJlc3RfaGlnaCA9IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1 cnJlbnRfaGlnaDsKICAKQEAgLTUxMzYsNyArNTQwOSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRj MmEgMTAwNjQ0CiAgICAgIHsKICAgICAgICBiZXN0X2xvdyA9IGN1cnJlbnRfbG93OwogICAgICAg IGJlc3RfaGlnaCA9IGN1cnJlbnRfaGlnaDsKLUBAIC00MzkzLDcgKzQ3MTIsMTIgQEAgZHdhcmYy X2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUs CitAQCAtNDM5Myw3ICs0NjMzLDEyIEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9p bmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgICAgICAgICAgYnl0ZV9vZmZz ZXQgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoYXR0cl9mb3JtX2lz X2NvbnN0YW50IChhdHRyKSkKQEAgLTUxNTAsNyArNTQyMyw3IEBAIGluZGV4IDQ0NWJhYjguLmJl MmRjMmEgMTAwNjQ0CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBieXRlX29mZnNldCA9 IGRlY29kZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKICAKLUBAIC00NDc2LDcgKzQ4 MDAsMTEgQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0 IGRpZV9pbmZvICpkaWUsCitAQCAtNDQ3Niw3ICs0NzIxLDExIEBAIGR3YXJmMl9hZGRfZmllbGQg KHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgIGlm IChmaWVsZG5hbWUgPT0gTlVMTCkKICAJcmV0dXJuOwogIApAQCAtNTE2Myw3ICs1NDM2LDcgQEAg aW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgICBwaHlzbmFtZSA9IGR3YXJmMl9s aW5rYWdlX25hbWUgKGRpZSwgY3UpOwogIAogICAgICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkg YWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAotQEAgLTQ2MDcs NyArNDkzNSwxMSBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZp cCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDYwNyw3ICs0ODU2LDExIEBAIGR3YXJmMl9h ZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRp ZSwKICAgIGlmIChmaWVsZG5hbWUgPT0gTlVMTCkKICAgICAgcmV0dXJuOwogIApAQCAtNTE3Niw3 ICs1NDQ5LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHBoeXNuYW1lID0g ZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7CiAgCiAgICAvKiBMb29rIHVwIG1lbWJlciBm dW5jdGlvbiBuYW1lIGluIGZpZWxkbGlzdC4gICovCi1AQCAtNDY1Miw3ICs0OTg0LDcgQEAgZHdh cmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5m byAqZGllLAorQEAgLTQ2NTIsNyArNDkwNSw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1 Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgIC8qIFRoZSBuYW1l IGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24n dAogICAgICAgbmVlZCB0byBkdXBsaWNhdGUgaXQgZm9yIHRoZSB0eXBlLiAgKi8KICAgIGZucC0+ cGh5c25hbWUgPSBwaHlzbmFtZSA/IHBoeXNuYW1lIDogIiI7CkBAIC01MTg1LDcgKzU0NTgsNyBA QCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgdGhpc190eXBlID0gcmVhZF90eXBl X2RpZSAoZGllLCBjdSk7CiAgICBpZiAodGhpc190eXBlICYmIFRZUEVfQ09ERSAodGhpc190eXBl KSA9PSBUWVBFX0NPREVfRlVOQykKICAgICAgewotQEAgLTQ4MzYsNyArNTE2OCw3IEBAIHF1aXJr X2djY19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ4MzYsNyArNTA4OSw3IEBAIHF1aXJrX2djY19tZW1iZXJf ZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGRvbWFpbl90eXBlID0gVFlQRV9UQVJHRVRf VFlQRSAoVFlQRV9GSUVMRF9UWVBFIChwZm5fdHlwZSwgMCkpOwpAQCAtNTE5NCw3ICs1NDY3LDcg QEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHNtYXNoX3RvX21ldGhvZF90eXBl ICh0eXBlLCBkb21haW5fdHlwZSwgVFlQRV9UQVJHRVRfVFlQRSAocGZuX3R5cGUpLAogIAkJCVRZ UEVfRklFTERTIChwZm5fdHlwZSksIFRZUEVfTkZJRUxEUyAocGZuX3R5cGUpLAogIAkJCVRZUEVf VkFSQVJHUyAocGZuX3R5cGUpKTsKLUBAIC00ODg5LDcgKzUyMjEsNyBAQCByZWFkX3N0cnVjdHVy ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt NDg4OSw3ICs1MTQyLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRp ZSwgdHlwZSwgY3UpOwogICAgICB9CiAgCkBAIC01MjAzLDcgKzU0NzYsNyBAQCBpbmRleCA0NDVi YWI4Li5iZTJkYzJhIDEwMDY0NAogICAgSU5JVF9DUExVU19TUEVDSUZJQyAodHlwZSk7CiAgCiAg ICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotQEAgLTQ4OTgsMTQgKzUyMzAsMTggQEAg cmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTQ4OTgsMTQgKzUxNTEsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChjdS0+ bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKICAJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3Vh Z2VfamF2YSkKICAJewpAQCAtNTIyNSw3ICs1NDk4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMy YSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTExNSw3ICs1NDUxLDcgQEAgcmVhZF9lbnVt ZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtNTExNSw3ICs1MzcyLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNldF9kaWVf dHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KICAKQEAgLTUyMzQsNyArNTUwNyw3IEBAIGlu ZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQ RV9DT0RFX0VOVU07CiAgICBuYW1lID0gZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAt NTE0Myw1MSArNTQ3OSw2IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxNDMsNTEgKzU0MDAsNiBAQCByZWFk X2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAg LTUyODYsNyArNTU1OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgLyogR2l2 ZW4gYSBwb2ludGVyIHRvIGEgZGllIHdoaWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlvbiwgcHJvY2Vz cyBhbGwKICAgICB0aGUgZGllcyB0aGF0IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0aGUgZW51bWVy YXRpb24sIGFuZCBjcmVhdGUgdGhlCiAgICAgc3ltYm9sIGZvciB0aGUgZW51bWVyYXRpb24gdHlw ZS4KLUBAIC01MjY1LDYgKzU1NTYsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNjUsNiArNTQ3 NywyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBuZXdfc3ltYm9sIChkaWUsIHRoaXNfdHlwZSwgY3Up OwogIH0KICAKQEAgLTUzMTYsNyArNTU4OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAw NjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBl IERJRSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0 aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTUy NzgsNyArNTU5Miw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNzgsNyArNTUxMyw3IEBAIHJlYWRfYXJyYXlfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0 IHR5cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0 IHR5cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpA QCAtNTMyNSw3ICs1NTk4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHN0 cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC01MzI1LDE2ICs1 NjM5LDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTUzMjUsMTYgKzU1NjAsMTEgQEAgcmVhZF9hcnJheV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxl bWVudF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09S RF9jb2xfbWFqb3IpCkBAIC01MzQ3LDcgKzU2MjAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJh IDEwMDY0NAogIAogICAgLyogVW5kZXJzdGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5 cGVzIChsaWtlIHRoZXkgb2NjdXIgb24KICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAg R2NjIGp1c3QgYWRkcyBhbm90aGVyIGF0dHJpYnV0ZSB0byB0aGUKLUBAIC01NDAxLDEyICs1NzEw LDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC01NDAxLDEyICs1NjMxLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5 cGUgKGRpZSwgc2V0X3R5cGUsIGN1KTsKICB9CiAgCkBAIC01MzY0LDcgKzU2MzcsNyBAQCBpbmRl eCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAg IHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgIENPUkVfQUREUiBiYXNlID0gKENPUkVfQUREUikgMDsK LUBAIC01NDMxLDEwICs1NzQyLDQwIEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQzMSwxMCArNTY2Myw0MCBAQCBy ZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICB9CiAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxMKQogICAgICB7CkBAIC01Mzgw LDkgKzU2NTMsOSBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogKyAgICAgIC8qIEFy dGlmaWNpYWwgdHlwZSB0byBiZSB1c2VkIG9ubHkgYnkgYGluZm8gY29tbW9uJy4gICovCiArICAg ICAgVFlQRV9OQU1FICh0eXBlKSA9ICI8Y29tbW9uPiI7CiArCi0gICAgICAgY2hpbGRfZGllID0g ZGllLT5jaGlsZDsKLSAgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQot IAl7CisrICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKKysgICAgICB3aGlsZSAoY2hpbGRf ZGllICYmIGNoaWxkX2RpZS0+dGFnKQorKwl7CiArCSAgVFlQRV9ORklFTERTICh0eXBlKSsrOwog KwkgIGNoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwl9CkBAIC01Mzk0LDkg KzU2NjcsOSBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogKwkJCQkgICAgICogVFlQ RV9ORklFTERTICh0eXBlKSk7CiArICAgICAgCiArICAgICAgZmllbGQgPSBUWVBFX0ZJRUxEUyAo dHlwZSk7Ci0rICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKLSsgICAgICB3aGlsZSAoY2hp bGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQotKwl7CisgICAgICAgY2hpbGRfZGllID0gZGllLT5j aGlsZDsKKyAgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQorIAl7CiAr CSAgLyogQ3JlYXRlIHRoZSBzeW1ib2wgaW4gdGhlIERXX1RBR19jb21tb25fYmxvY2sgYmxvY2sg aW4gdGhlIGN1cnJlbnQKICsJICAgICBzeW1ib2wgc2NvcGUuICAqLwogIAkgIHN5bSA9IG5ld19z eW1ib2wgKGNoaWxkX2RpZSwgTlVMTCwgY3UpOwpAQCAtNTQwNSw3ICs1Njc4LDcgQEAgaW5kZXgg NDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2Rp ZSwgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoYXR0cikKICAJICAg IHsKLUBAIC01NDQyLDggKzU3ODMsMjUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01NDQyLDggKzU3MDQsMjUgQEAg cmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAJCWJhc2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7CiAg CSAgICAgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAg fQpAQCAtNTQzMSw3ICs1NzA0LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAg ICAgfQogIH0KICAKLUBAIC01NTExLDcgKzU4NjksNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1MTEsNyArNTc5MCw3 IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICAgICAgaWYgKGlzX2Fub255bW91cykKICAJewogIAkgIGNvbnN0IGNoYXIgKnBy ZXZpb3VzX3ByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwpAQCAtNTQ0MCw3ICs1 NzEzLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1A QCAtNTcwNSwyOSArNjA2Myw5NSBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU3MDUsMjkgKzU5ODQsOTUgQEAg cmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAo b2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBl LCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU1NTQsNyArNTgy Nyw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBjaGFyX3R5cGUgPSBsYW5n dWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAgICB0 eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwog IAotQEAgLTU4MjIsNyArNjI0Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitAQCAtNTgyMiw3 ICs2MTY3LDYgQEAgc3RhdGljIHN0cnVjdCB0eXBlICoKICByZWFkX3R5cGVkZWYgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNTU2Miw3ICs1ODM1LDcgQEAgaW5kZXggNDQ1 YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwogICAgc3Ry dWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTMwLDggKzYzNTMsOCBAQCByZWFkX3N1YnJh bmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC01OTMwLDggKzYyNzQsOCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7CiAg ICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBA IC01NTczLDcgKzU4NDYsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgY2hh ciAqbmFtZTsKICAgIAogICAgYmFzZV90eXBlID0gZGllX3R5cGUgKGRpZSwgY3UpOwotQEAgLTU5 NDQsNDIgKzYzNjcsOTAgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk0NCw0MiArNjI4OCw5MCBAQCByZWFkX3N1 YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAJCSAgICAgMCwgTlVMTCwgY3UtPm9iamZpbGUpOwogICAgICB9CiAgCkBAIC01Njk0LDcgKzU5 NjcsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJm Ml9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lKQotQEAgLTY2NzAsOSArNzE0MSw2IEBAIHJl YWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02 NjcwLDkgKzcwNjIsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5m byAqcGFydF9kaWUsCiAgCSAgaWYgKHBhcnRfZGllLT5kaXJuYW1lID09IE5VTEwpCiAgCSAgICBw YXJ0X2RpZS0+ZGlybmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwogIAkgIGJyZWFrOwpAQCAtNTcw NCw3ICs1OTc3LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJY2FzZSBEV19B VF9sb3dfcGM6CiAgCSAgaGFzX2xvd19wY19hdHRyID0gMTsKICAJICBwYXJ0X2RpZS0+bG93cGMg PSBEV19BRERSICgmYXR0cik7Ci1AQCAtNjc0NCwxMCArNzIxMiwxMCBAQCByZWFkX3BhcnRpYWxf ZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc0NCwxMCArNzEz MywxMCBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9k aWUsCiAgCSAgZWxzZQogIAkgICAgcGFydF9kaWUtPnNpYmxpbmcgPSBidWZmZXIgKyBkd2FyZjJf Z2V0X3JlZl9kaWVfb2Zmc2V0ICgmYXR0cik7CiAgCSAgYnJlYWs7CkBAIC01NzE5LDcgKzU5OTIs NyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICAgICAgY2FzZSBEV19BVF9i eXRlX3NpemU6CiAgICAgICAgICAgIHBhcnRfZGllLT5oYXNfYnl0ZV9zaXplID0gMTsKICAgICAg ICAgICAgYnJlYWs7Ci1AQCAtNjc4OSwxMyArNzI1Nyw2IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02Nzg5LDEzICs3MTc4LDYgQEAg cmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkg IHx8IGR3YXJmMl9wZXJfb2JqZmlsZS0+aGFzX3NlY3Rpb25fYXRfemVybykpCiAgICAgIHBhcnRf ZGllLT5oYXNfcGNfaW5mbyA9IDE7CiAgCkBAIC01NzMzLDcgKzYwMDYsNyBAQCBpbmRleCA0NDVi YWI4Li5iZTJkYzJhIDEwMDY0NAogICAgcmV0dXJuIGluZm9fcHRyOwogIH0KICAKLUBAIC02OTA0 LDcgKzczNjUsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBhcnRfZGllLAorQEAgLTY5MDQsNyArNzI4Niw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgICAvKiBJZiB3ZSBmb3VuZCBhIHJlZmVy ZW5jZSBhdHRyaWJ1dGUgYW5kIHRoZSBESUUgaGFzIG5vIG5hbWUsIHRyeQogICAgICAgdG8gZmlu ZCBhIG5hbWUgaW4gdGhlIHJlZmVycmVkIHRvIERJRS4gICovCiAgCkBAIC01NzQzLDcgKzYwMTYs NyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnNwZWNfZGllOwogIAotQEAgLTgyNDQsMTAgKzg3MDYsMTIgQEAg dmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJv bCAqc3ltLAorQEAgLTgyNDQsMTAgKzg2MjcsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgKGkuZS4gd2hl biB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24gaXMKICAgICAgIHJl ZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRoZW4gYWdhaW4sIGl0 IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWluZyB0aGF0IGl0IGlz bid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtNTc1OCw3ICs2MDMxLDcgQEAgaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgRFdBUkYg aW5mb3JtYXRpb24gZW50cnksIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZAotQEAgLTgyNjksMjEgKzg3 MzMsMjQgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MjY5LDIxICs4NjU0LDI0IEBAIG5ld19z eW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9u X29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTU3OTAsNyArNjA2Myw3 IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICAgICAgLyogRGVmYXVsdCBh c3N1bXB0aW9ucy4KICAgICAgICAgICBVc2UgdGhlIHBhc3NlZCB0eXBlIG9yIGRlY29kZSBpdCBm cm9tIHRoZSBkaWUuICAqLwotQEAgLTgzODEsNyArODg0OCwxNSBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTgzODEsNyArODc2OSwxNSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgIGlmIChhdHRy KQogIAkgICAgewogIAkgICAgICB2YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsK QEAgLTU4MDYsNyArNjA3OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCSAg ICAgIGlmIChhdHRyMiAmJiAoRFdfVU5TTkQgKGF0dHIyKSAhPSAwKSkKICAJCWFkZF9zeW1ib2xf dG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgICBlbHNlCi1AQCAtODUxMyw3 ICs4OTg4LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTEzLDcgKzg5MDksNyBAQCBuZXdf c3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCBjdS0+bGlzdF9pbl9z Y29wZSk7CiAgCSAgYnJlYWs7CiAgCWNhc2UgRFdfVEFHX2VudW1lcmF0b3I6CkBAIC01ODE1LDcg KzYwODgsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAkgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9jb25zdF92YWx1ZSwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkg ICAgewotQEAgLTg1MzcsNiArOTAxMiwxMSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTg1Mzcs NiArODkzMywxMSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgIFNZTUJPTF9DTEFTUyAoc3ltKSA9 IExPQ19UWVBFREVGOwogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJv bHMpOwogIAkgIGJyZWFrOwpAQCAtNTgyNyw3ICs2MTAwLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUy ZGMyYSAxMDA2NDQKICAJZGVmYXVsdDoKICAJICAvKiBOb3QgYSB0YWcgd2UgcmVjb2duaXplLiAg SG9wZWZ1bGx5IHdlIGFyZW4ndCBwcm9jZXNzaW5nCiAgCSAgICAgdHJhc2ggZGF0YSwgYnV0IHNp bmNlIHdlIG11c3Qgc3BlY2lmaWNhbGx5IGlnbm9yZSB0aGluZ3MKLUBAIC04NTUwLDggKzkwMzAs NyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTg1NTAsOCArODk1MSw3IEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICAgICAgLyogRm9yIHRoZSBiZW5lZml0IG9mIG9sZCB2ZXJzaW9ucyBvZiBHQ0Ms IGNoZWNrIGZvciBhbm9ueW1vdXMKICAJIG5hbWVzcGFjZXMgYmFzZWQgb24gdGhlIGRlbWFuZ2xl ZCBuYW1lLiAgKi8KICAgICAgICBpZiAoIXByb2Nlc3NpbmdfaGFzX25hbWVzcGFjZV9pbmZvCkBA IC01ODM3LDcgKzYxMTAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAljcF9z Y2FuX2Zvcl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoc3ltKTsKICAgICAgfQogICAgcmV0dXJuIChz eW0pOwotQEAgLTg4MDgsNiArOTI4Nyw5IEBAIHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04ODA4LDYgKzkyMDgsOSBAQCByZWFk X3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTU4NDcsNyArNjEyMCw3IEBAIGluZGV4IDQ0NWJh YjguLmJlMmRjMmEgMTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04ODg5 LDEwICs5MzcxLDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04ODg5LDEwICs5MjkyLDk3IEBAIGRldGVybWluZV9w cmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICAg ICBTbyBpdCBkb2VzIG5vdCBuZWVkIGEgcHJlZml4LiAgKi8KICAJICByZXR1cm4gIiI7CiAgICAg ICAgZGVmYXVsdDoKQEAgLTU5NDYsNyArNjIxOSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEg MTAwNjQ0CiAgLyogUmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZyBmb3JtZWQgYnkgY29u Y2F0ZW5hdGluZyBQUkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBwcm9wcmlhdGUgc2VwYXJh dG9yLiAgSWYgUFJFRklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5LCB0aGVuCiAgICAgc2lt cGx5IGNvcHkgdGhlIFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVseS4gIElmIE9CUyBpcyBu b24tbnVsbCwKLUBAIC04OTQ4LDE0ICs5NTE3LDc1IEBAIHN0YXRpYyBjaGFyICoKK0BAIC04OTQ4 LDE0ICs5NDM4LDc1IEBAIHN0YXRpYyBjaGFyICoKICBkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKQEAgLTU5ODIsNyArNjI1NSwxMSBAQCBpbmRleCA0NDViYWI4Li5iZTJk YzJhIDEwMDY0NAogKwkgICYmIGRpZS0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtKQogKwl7CiAr CSAgc3RydWN0IHR5cGUgKnR5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKLSsKKyAKKy0g IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZSwgY3UpOwor LSAgaWYgKGF0dHIgJiYgRFdfU1RSSU5HIChhdHRyKSkKKy0gICAgcmV0dXJuIERXX1NUUklORyAo YXR0cik7CistICByZXR1cm4gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKwkgIGNfdHlwZV9wcmlu dF9hcmdzICh0eXBlLCBidWYsIDAsIGN1LT5sYW5ndWFnZSk7CiArCiArCSAgaWYgKGN1LT5sYW5n dWFnZSA9PSBsYW5ndWFnZV9qYXZhKQpAQCAtNjAxNCwxMSArNjI5MSw3IEBAIGluZGV4IDQ0NWJh YjguLmJlMmRjMmEgMTAwNjQ0CiArCSAgICBuYW1lID0gY25hbWU7CiArCX0KICsgICAgfQotIAot LSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7 Ci0tICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5H IChhdHRyKTsKLS0gIHJldHVybiBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCiArICByZXR1cm4g bmFtZTsKICB9CiAgCkBAIC02MDI3LDcgKzYzMDAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJh IDEwMDY0NAogIAogIHN0YXRpYyBjaGFyICoKICBkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNo YXIgKm5hbWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTEwMTgxLDI2ICsxMDgxMSwzNSBA QCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAg LTEwMTgxLDI2ICsxMDczMiwzNSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3Qg YXR0cmlidXRlICphdHRyKQogICAgcmV0dXJuIDA7CiAgfQogIApAQCAtNjA3OCw3ICs2MzUxLDcg QEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICB9CiAgCiAgLyogVEhJU19DVSBoYXMg YSByZWZlcmVuY2UgdG8gUEVSX0NVLiAgSWYgbmVjZXNzYXJ5LCBsb2FkIHRoZSBuZXcgY29tcGls YXRpb24KLUBAIC0xMDk5MCw4ICsxMTYyOSw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVj dCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTA5OTAsOCArMTE1 NTAsNiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNp Z25lZCBpbnQgb2Zmc2V0LAogIHsKICAgIGdkYl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAg IHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAqY3VycmVudF9maWxlID0gMDsKQEAgLTYwODcsNyAr NjM2MCw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYy X3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTA5OTks MjkgKzExNjM2LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAq bGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTA5OTksMjkgKzExNTU3LDE5IEBAIGR3YXJm X2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZz ZXQsCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC02MTIyLDcgKzYzOTUsNyBAQCBpbmRl eCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9f dHlwZSA9IHJlYWRfMV9ieXRlIChhYmZkLCBtYWNfcHRyKTsKLUBAIC0xMTAzMiw5MiArMTE2NTks NyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25l ZCBpbnQgb2Zmc2V0LAorQEAgLTExMDMyLDkyICsxMTU4MCw3IEBAIGR3YXJmX2RlY29kZV9tYWNy b3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAg ICAgIC8qIEEgemVybyBtYWNpbmZvIHR5cGUgaW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3Jv CiAgICAgICAgICAgICAgIGluZm9ybWF0aW9uLiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTYy MTYsNyArNjQ4OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICAgICAg ICBjYXNlIERXX01BQ0lORk9fZGVmaW5lOgogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVm OgotQEAgLTExMTMyLDMxICsxMTY3NCwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3Qg bGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTMyLDMxICsxMTU5 NSwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNp Z25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAK ICAgICAgICAgICAgICBpZiAoISBjdXJyZW50X2ZpbGUpCkBAIC02MjU5LDcgKzY1MzIsNyBAQCBp bmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJy ZWFrOwogIAotQEAgLTExMTcwLDIyICsxMTcwMCw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0 cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTExNzAsMjIg KzExNjIxLDkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwg dW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9s ZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRy ICs9IGJ5dGVzX3JlYWQ7CiAgCkBAIC02Mjg1LDcgKzY1NTgsNyBAQCBpbmRleCA0NDViYWI4Li5i ZTJkYzJhIDEwMDY0NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTEx MjM5LDcgKzExNzU2LDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVy ICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTIzOSw3ICsxMTY3Nyw3IEBAIGR3YXJm X2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZz ZXQsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC02Mjk0 LDcgKzY1NjcsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICAvKiBD aGVjayBpZiB0aGUgYXR0cmlidXRlJ3MgZm9ybSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEy NzIsNyArMTE3ODksNyBAQCBhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIpCitAQCAtMTEyNzIsNyArMTE3MTAsNyBAQCBhdHRyX2Zvcm1faXNfc2VjdGlv bl9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgCiAgLyogUmV0dXJuIG5vbi16ZXJv IGlmIEFUVFIncyB2YWx1ZSBmYWxscyBpbiB0aGUgJ2NvbnN0YW50JyBjbGFzcywgb3IKICAgICB6 ZXJvIG90aGVyd2lzZS4gIFdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHlvdSBjYW4g YXBwbHkKQEAgLTYzMDMsNyArNjU3Niw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0 CiAgCiAgICAgSG93ZXZlciwgbm90ZSB0aGF0IGZvciBzb21lIGF0dHJpYnV0ZXMgeW91IG11c3Qg Y2hlY2sKICAgICBhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgYmVmb3JlIHVzaW5nIHRoaXMg dGVzdC4gIERXX0ZPUk1fZGF0YTQKLUBAIC0xMTI5OSw2ICsxMTgxNiwzNCBAQCBhdHRyX2Zvcm1f aXNfY29uc3RhbnQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAtMTEyOTksNiArMTE3Mzcs MzQgQEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAg ICB9CiAgfQogIApAQCAtNjMzOCw3ICs2NjExLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAx MDA2NDQKICBzdGF0aWMgdm9pZAogIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0 IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogIAkJCSAgICAgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCi1AQCAtMTEzMjgsMzUgKzExODczLDI1IEBAIGR3YXJmMl9zeW1ib2xfbWFy a19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAor QEAgLTExMzI4LDM1ICsxMTc5NCwyNSBAQCBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgICBTWU1CT0xf Q09NUFVURURfT1BTIChzeW0pID0gJmR3YXJmMl9sb2NsaXN0X2Z1bmNzOwogICAgICAgIFNZTUJP TF9MT0NBVElPTl9CQVRPTiAoc3ltKSA9IGJhdG9uOwogICAgICB9CkBAIC02Mzg5LDcgKzY2NjIs NyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTEx NjQ0LDYgKzEyMTc5LDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9s aHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQorQEAgLTExNjQ0LDYgKzEyMTAwLDMxIEBAIG9mZnNl dF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhz KQogICAgcmV0dXJuIG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApA QCAtNjQyMSw3ICs2Njk0LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAvKiBT ZXQgdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdz IGhhc2gKICAgICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBU WVBFLiAgKi8KICAKLUBAIC0xMTY1Miw2ICsxMjIxMiw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0xMTY1Miw2ICsxMjEzMyw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1 Y3QgZHdhcmYyX29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTY0MzAsNyArNjcw Myw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBpZiAoY3UtPnR5cGVfaGFz aCA9PSBOVUxMKQogICAgICB7CiAgICAgICAgZ2RiX2Fzc2VydCAoY3UtPnBlcl9jdSAhPSBOVUxM KTsKLUBAIC0xMTc5NCwyMyArMTIzNTYsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdz LCBpbnQgZnJvbV90dHkpCitAQCAtMTE3OTQsMjMgKzEyMjc3LDEzIEBAIHNob3dfZHdhcmYyX2Nt ZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogICAgY21kX3Nob3dfbGlzdCAoc2hvd19kd2Fy ZjJfY21kbGlzdCwgZnJvbV90dHksICIiKTsKICB9CiAgCkBAIC02NDU4LDcgKzY3MzEsNyBAQCBp bmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICAvKiBtdW5tYXAgZGVidWcgc2Vj dGlvbnMgZm9yIE9CSkZJTEUsIGlmIG5lY2Vzc2FyeS4gICovCi1AQCAtMTE4MTksMTUgKzEyMzcx LDE1IEBAIHN0YXRpYyB2b2lkCitAQCAtMTE4MTksMTUgKzEyMjkyLDE1IEBAIHN0YXRpYyB2b2lk CiAgZHdhcmYyX3Blcl9vYmpmaWxlX2NsZWFudXAgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2 b2lkICpkKQogIHsKICAgIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmRhdGEgPSBkOwpAQCAt NjQ4Myw3ICs2NzU2LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICB9CiAgCiAg dm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE4MzUsNiArMTIzODcs NyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKK0BAIC0xMTgzNSw2ICsx MjMwOCw3IEBAIHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwogIHZvaWQKICBf aW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCkKICB7CkBAIC04NzMzLDcgKzkwMDYsNyBAQCBp bmRleCA3OWQzM2ZlLi5hZWNkODIwIDEwMDY0NAogICAgIG9uY2UgZm9yIGVhY2gga25vd24gdGhy ZWFkLiAgKi8KICB0eXBlZGVmIGludCAoKnRocmVhZF9jYWxsYmFja19mdW5jKSAoc3RydWN0IHRo cmVhZF9pbmZvICosIHZvaWQgKik7CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIv Z2RidHlwZXMuYwotaW5kZXggMmY3N2RjYS4uMDlmMTVkYyAxMDA2NDQKK2luZGV4IDJmNzdkY2Eu LjgxNDYxNzUgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysrIGIvZ2RiL2dkYnR5cGVz LmMKIEBAIC0zOCw2ICszOCw5IEBACkBAIC05MzI0LDcgKzk1OTcsNyBAQCBpbmRleCAyZjc3ZGNh Li4wOWYxNWRjIDEwMDY0NAogIC8qIE1ha2UgYSBjb3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNl cHQgdGhhdCB0aGUgcG9pbnRlciAmIHJlZmVyZW5jZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2Vy dmVkLgogICAgIAotQEAgLTI5NzMsNiArMzIyNywyMTkgQEAgY29weV90eXBlIChjb25zdCBzdHJ1 Y3QgdHlwZSAqdHlwZSkKK0BAIC0yOTczLDYgKzMyMjcsMjE3IEBAIGNvcHlfdHlwZSAoY29uc3Qg c3RydWN0IHR5cGUgKnR5cGUpCiAgICByZXR1cm4gbmV3X3R5cGU7CiAgfQogIApAQCAtOTQ4NSwx MSArOTc1OCwyNiBAQCBpbmRleCAyZjc3ZGNhLi4wOWYxNWRjIDEwMDY0NAogKyAgbWFpbl90eXBl X2NyYXdsICh0eXBlLCB0eXBlX21hcmtfdXNlZF9jcmF3bCwgTlVMTCk7CiArfQogKwotKy8qIEEg dHJhdmVyc2UgY2FsbGJhY2sgZm9yIHR5cGVfZGlzY2FyZGFibGVfdGFibGUgd2hpY2ggcmVtb3Zl cyBhbnkKLSsgICB0eXBlX2Rpc2NhcmRhYmxlIHdob3NlIHJlZmVyZW5jZSBjb3VudCBpcyBub3cg emVybyAodW51c2VkIGxpbmspLiAgKi8KKysvKiBJbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3Vu dCBmb3IgVFlQRS4gICovCiArCi0rc3RhdGljIGludAotK3R5cGVfZGlzY2FyZGFibGVfcmVtb3Zl ICh2b2lkICoqc2xvdCwgdm9pZCAqdW51c2VkKQorK3ZvaWQKKyt0eXBlX2luY3JlZiAoc3RydWN0 IHR5cGUgKnR5cGUpCisreworK30KKysKKysvKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3Vu dCBmb3IgVFlQRS4gIElmIFRZUEUgaGFzIG5vIG1vcmUKKysgICByZWZlcmVuY2VzLCBkZWxldGUg aXQuICAqLworKworK3ZvaWQKKyt0eXBlX2RlY3JlZiAoc3RydWN0IHR5cGUgKnR5cGUpCisrewor K30KKysKKysvKiBBIHRyYXZlcnNlIGNhbGxiYWNrIGZvciB0eXBlX2Rpc2NhcmRhYmxlX3RhYmxl IHdoaWNoIHJlbW92ZXMgYW55CisrICAgdHlwZV9kaXNjYXJkYWJsZSB3aG9zZSByZWZlcmVuY2Ug Y291bnQgaXMgbm93IHplcm8gKHVudXNlZCBsaW5rKS4gICovCisrCisrc3RhdGljIGludAorK3R5 cGVfZGlzY2FyZGFibGVfcmVtb3ZlICh2b2lkICoqc2xvdCwgdm9pZCAqdW51c2VkKQogK3sKICsg IHN0cnVjdCB0eXBlICp0eXBlID0gKnNsb3Q7CiArCkBAIC05NTI0LDI3ICs5ODEyLDEwIEBAIGlu ZGV4IDJmNzdkY2EuLjA5ZjE1ZGMgMTAwNjQ0CiArCiArICBodGFiX3RyYXZlcnNlICh0eXBlX2Rp c2NhcmRhYmxlX3RhYmxlLCB0eXBlX2Rpc2NhcmRhYmxlX3JlbW92ZSwgTlVMTCk7CiArfQotKwot Ky8qIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50IGZvciBUWVBFLiAgKi8KLSsvKiBXZSds bCBiZSByZXBsYWNpbmcgdGhpcyB3aXRoIHR5cGUgR0Mgc29vbi4gICovCi0rCi0rdm9pZAotK3R5 cGVfaW5jcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSt7Ci0rfQotKwotKy8qIERlY3JlbWVudCB0 aGUgcmVmZXJlbmNlIGNvdW50IGZvciBUWVBFLiAgSWYgVFlQRSBoYXMgbm8gbW9yZQotKyAgIHJl ZmVyZW5jZXMsIGRlbGV0ZSBpdC4gICovCi0rLyogV2UnbGwgYmUgcmVwbGFjaW5nIHRoaXMgd2l0 aCB0eXBlIEdDIHNvb24uICAqLwotKwotK3ZvaWQKLSt0eXBlX2RlY3JlZiAoc3RydWN0IHR5cGUg KnR5cGUpCi0rewotK30KICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGluaXRpYWxpemUgYXJj aGl0ZWN0dXJlLXNwZWNpZmljIHR5cGVzLiAgKi8KICAKLUBAIC0zNDYzLDYgKzM5MzAsMTEgQEAg dm9pZAorQEAgLTM0NjMsNiArMzkyOCwxMSBAQCB2b2lkCiAgX2luaXRpYWxpemVfZ2RidHlwZXMg KHZvaWQpCiAgewogICAgZ2RidHlwZXNfZGF0YSA9IGdkYmFyY2hfZGF0YV9yZWdpc3Rlcl9wb3N0 X2luaXQgKGdkYnR5cGVzX3Bvc3RfaW5pdCk7CkBAIC0xMDE5NiwxMCArMTA0NjcsMTAgQEAgaW5k ZXggYWFjODJlOS4uNjI2MjkyYyAxMDA2NDQKICAgIFRZUEVfQ1BMVVNfU1BFQ0lGSUMgKHQpID0g KHN0cnVjdCBjcGx1c19zdHJ1Y3RfdHlwZSAqKSAmY3BsdXNfc3RydWN0X2RlZmF1bHQ7CiAgICBy ZXR1cm4gdDsKIGRpZmYgLS1naXQgYS9nZGIvbWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNt ZC12YXIuYwotaW5kZXggMGNmMDNkOS4uODk5MzZkMiAxMDA2NDQKK2luZGV4IDBjZjAzZDkuLjE5 MTNjNDkgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWktY21kLXZhci5jCiArKysgYi9nZGIvbWkvbWkt Y21kLXZhci5jCi1AQCAtMzY5LDI4ICszNjksMzkgQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVu IChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMzY5LDI0ICszNjks MzUgQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJn diwgaW50IGFyZ2MpCiAgICBzdHJ1Y3QgdmFyb2JqICp2YXI7ICAKICAgIFZFQyh2YXJvYmpfcCkg KmNoaWxkcmVuOwogICAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CkBAIC0xMDIyMiwyOSArMTA0OTMs MjYgQEAgaW5kZXggMGNmMDNkOS4uODk5MzZkMiAxMDA2NDQKICAgIGVsc2UKICAgICAgdmFyID0g dmFyb2JqX2dldF9oYW5kbGUgKGFyZ3ZbMV0pOwogIAorLSAgY2hpbGRyZW4gPSB2YXJvYmpfbGlz dF9jaGlsZHJlbiAodmFyKTsKICsgIGlmIChhcmdjID4gMikKICsgICAgewogKyAgICAgIGZyb20g PSBhdG9pIChhcmd2W2FyZ2MgLSAyXSk7CiArICAgICAgdG8gPSBhdG9pIChhcmd2W2FyZ2MgLSAx XSk7Ci0rICAgICAgdmFyb2JqX3NldF9jaGlsZF9yYW5nZSAodmFyLCBmcm9tLCB0byk7CisrICAg IH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIGZyb20gPSAtMTsKKysgICAgICB0byA9IC0xOwog KyAgICB9CiArCi0gICBjaGlsZHJlbiA9IHZhcm9ial9saXN0X2NoaWxkcmVuICh2YXIpOworKyAg Y2hpbGRyZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJlbiAodmFyLCAmZnJvbSwgJnRvKTsKICAgIHVp X291dF9maWVsZF9pbnQgKHVpb3V0LCAibnVtY2hpbGQiLCBWRUNfbGVuZ3RoICh2YXJvYmpfcCwg Y2hpbGRyZW4pKTsKIC0gIGlmIChhcmdjID09IDIpCiArICBpZiAoYXJnYyA9PSAyIHx8IGFyZ2Mg PT0gNCkKICAgICAgcHJpbnRfdmFsdWVzID0gbWlfcGFyc2VfdmFsdWVzX29wdGlvbiAoYXJndlsw XSk7CiAgICBlbHNlCiAgICAgIHByaW50X3ZhbHVlcyA9IFBSSU5UX05PX1ZBTFVFUzsKLSAKLSsg IC8qIFJlLWZldGNoIHRoZSBjaGlsZCByYW5nZSwgYmVjYXVzZSB2YXJvYmpfZ2V0X2NoaWxkX3Jh bmdlIGNvbXB1dGVzCi0rICAgICB0aGUgcmVhbCBzdGFydCBhbmQgZW5kIGluZGljZXMgZm9yIHVz LiAgKi8KLSsgIHZhcm9ial9nZXRfY2hpbGRfcmFuZ2UgKHZhciwgY2hpbGRyZW4sICZmcm9tLCAm dG8pOwotKwotICAgZGlzcGxheV9oaW50ID0gdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHZhcik7 Ci0gICBpZiAoZGlzcGxheV9oaW50KQotICAgICB7Ci1AQCAtMzk4LDIxICs0MDksMjkgQEAgbWlf Y21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFy Z2MpCitAQCAtMzk4LDIxICs0MDksMjggQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFy ICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgICAgeGZyZWUgKGRpc3BsYXlf aGludCk7CiAgICAgIH0KICAKQEAgLTEwMjgyLDEyICsxMDU1MCwxMSBAQCBpbmRleCAwY2YwM2Q5 Li44OTkzNmQyIDEwMDY0NAogICAgICB9CiAtICBkb19jbGVhbnVwcyAoY2xlYW51cF9jaGlsZHJl bik7CiArCi0rICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwKLSsJCSAgICBW RUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pID4gdG8pOworKyAgdWlfb3V0X2ZpZWxkX2lu dCAodWlvdXQsICJoYXNfbW9yZSIsIHZhcm9ial9oYXNfbW9yZSAodmFyLCB0bykpOwogIH0KICAK ICB2b2lkCi1AQCAtNjQ0LDcgKzY2Myw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtNjQ0LDcgKzY2Miw2IEBAIG1pX2NtZF92 YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgIH0K ICAgIGVsc2UKICAgICAgewpAQCAtMTAyOTUsMzcgKzEwNTYyLDYzIEBAIGluZGV4IDBjZjAzZDku Ljg5OTM2ZDIgMTAwNjQ0CiAgICAgICAgc3RydWN0IHZhcm9iaiAqdmFyID0gdmFyb2JqX2dldF9o YW5kbGUgKG5hbWUpOwogIAogICAgICAgIHZhcm9ial91cGRhdGVfb25lICh2YXIsIHByaW50X3Zh bHVlcywgMSAvKiBleHBsaWNpdCAqLyk7Ci1AQCAtNzE0LDE0ICs3MzIsMTcgQEAgdmFyb2JqX3Vw ZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFs dWVzLAorQEAgLTY5OSwxMSArNzE2LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFy b2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKKyAJfQorIAorICAgICAg IGlmIChyLT50eXBlX2NoYW5nZWQpCistCXsKKy0gICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7CistICAg ICAgICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAibmV3X251bV9jaGlsZHJlbiIsIAorLQkJ CSAgICB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoci0+dmFyb2JqKSk7CistCX0KKysJdWlfb3V0 X2ZpZWxkX3N0cmluZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFy b2JqKSk7CisrCisrICAgICAgaWYgKHItPnR5cGVfY2hhbmdlZCB8fCByLT5jaGlsZHJlbl9jaGFu Z2VkKQorKwl1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgIm5ld19udW1fY2hpbGRyZW4iLCAKKysJ CQkgIHZhcm9ial9nZXRfbnVtX2NoaWxkcmVuIChyLT52YXJvYmopKTsKKyAKKyAgICAgICBkaXNw bGF5X2hpbnQgPSB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAodmFyKTsKKyAgICAgICBpZiAoZGlz cGxheV9oaW50KQorQEAgLTcxNCwyNiArNzMxLDU4IEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1 Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKICAKICAgICAg ICBpZiAoci0+Y2hpbGRyZW5fY2hhbmdlZCkKICAJewogLQkgIGludCBpeDsKLSsJICBpbnQgaXgs IGZyb20sIHRvOwotIAkgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotIAkgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwID0KLSAJICAgIG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVp b3V0LCAiY2hpbGRyZW4iKTsKKy0JICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKKy0JICBzdHJ1Y3Qg Y2xlYW51cCAqY2xlYW51cCA9CistCSAgICBtYWtlX2NsZWFudXBfdWlfb3V0X2xpc3RfYmVnaW5f ZW5kICh1aW91dCwgImNoaWxkcmVuIik7CisrCSAgaW50IGZyb20sIHRvOworKwkgIHZhcm9ial9n ZXRfY2hpbGRfcmFuZ2UgKHItPnZhcm9iaiwgJmZyb20sICZ0byk7CisrCSAgdWlfb3V0X2ZpZWxk X2ludCAodWlvdXQsICJoYXNfbW9yZSIsCisrCQkJICAgIHZhcm9ial9oYXNfbW9yZSAoci0+dmFy b2JqLCB0bykpOworKwl9CiAgCi0gCSAgVkVDICh2YXJvYmpfcCkqIGNoaWxkcmVuID0gdmFyb2Jq X2xpc3RfY2hpbGRyZW4gKHItPnZhcm9iaik7Ci0rCSAgdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAo ci0+dmFyb2JqLCBjaGlsZHJlbiwgJmZyb20sICZ0byk7CistCSAgVkVDICh2YXJvYmpfcCkqIGNo aWxkcmVuID0gdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHItPnZhcm9iaik7CisrICAgICAgaWYgKHIt Pm5ldykKKysJeworKwkgIGludCBqOworKwkgIHZhcm9ial9wIGNoaWxkOworKwkgIHN0cnVjdCBj bGVhbnVwICpjbGVhbnVwOwogIAogLQkgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAodmFyb2Jq X3AsIGNoaWxkcmVuLCBpeCwgY2hpbGQpOyArK2l4KQotKwkgIGZvciAoaXggPSBmcm9tOwotKwkg ICAgICAgaXggPCB0byAmJiBWRUNfaXRlcmF0ZSAodmFyb2JqX3AsIGNoaWxkcmVuLCBpeCwgY2hp bGQpOwotKwkgICAgICAgKytpeCkKKysJICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX3VpX291dF9s aXN0X2JlZ2luX2VuZCAodWlvdXQsICJuZXdfY2hpbGRyZW4iKTsKKysJICBmb3IgKGogPSAwOyBW RUNfaXRlcmF0ZSAodmFyb2JqX3AsIHItPm5ldywgaiwgY2hpbGQpOyArK2opCiAgCSAgICB7CiAg CSAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwX2NoaWxkOwogIAkgICAgICBjbGVhbnVwX2No aWxkID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBsZV9iZWdpbl9lbmQgKHVpb3V0LCBOVUxMKTsK LUBAIC03MzAsNiArNzUxLDkgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZh ciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorLQkgICAgICBwcmludF92YXJvYmog KGNoaWxkLCBwcmludF92YWx1ZXMsIDEgLyogcHJpbnQgZXhwcmVzc2lvbiAqLyk7CisrCSAgICAg IHByaW50X3Zhcm9iaiAoY2hpbGQsIHByaW50X3ZhbHVlcywgMSAvKiBwcmludF9leHByZXNzaW9u ICovKTsKKyAJICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXBfY2hpbGQpOwogIAkgICAgfQogIAog IAkgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKLSsKLSsJICB1aV9vdXRfZmllbGRfaW50ICh1aW91 dCwgImhhc19tb3JlIiwKLSsJCQkgICAgVkVDX2xlbmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKSA+ IHRvKTsKKysJICBWRUNfZnJlZSAodmFyb2JqX3AsIHItPm5ldyk7CisrCSAgci0+bmV3ID0gTlVM TDsJLyogUGFyYW5vaWEuICAqLwogIAl9Ci0gICAKKy0gIAorKwogICAgICAgIGlmIChtaV92ZXJz aW9uICh1aW91dCkgPiAxKQotQEAgLTczNywzICs3NjEsMTEgQEAgdmFyb2JqX3VwZGF0ZV9vbmUg KHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorIAlk b19jbGVhbnVwcyAoY2xlYW51cCk7CiAgICAgIH0KICAgIFZFQ19mcmVlICh2YXJvYmpfdXBkYXRl X3Jlc3VsdCwgY2hhbmdlcyk7CiAgfQpAQCAtMTAzMzcsMTEgKzEwNjMwLDI3IEBAIGluZGV4IDBj ZjAzZDkuLjg5OTM2ZDIgMTAwNjQ0CiArICAgIGVycm9yIChfKCJtaV9jbWRfZW5hYmxlX3ByZXR0 eV9wcmludGluZzogbm8gYXJndW1lbnRzIGFsbG93ZWQiKSk7CiArICB2YXJvYmpfZW5hYmxlX3By ZXR0eV9wcmludGluZyAoKTsKICt9CisrCisrdm9pZAorK21pX2NtZF92YXJfc2V0X3VwZGF0ZV9y YW5nZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorK3sKKysgIHN0cnVj dCB2YXJvYmogKnZhcjsKKysgIGludCBmcm9tLCB0bzsKKysKKysgIGlmIChhcmdjICE9IDMpCisr ICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2U6IFVzYWdlOiBWQVJPQkog RlJPTSBUTyIpKTsKKysgIAorKyAgdmFyID0gdmFyb2JqX2dldF9oYW5kbGUgKGFyZ3ZbMF0pOwor KyAgZnJvbSA9IGF0b2kgKGFyZ3ZbMV0pOworKyAgdG8gPSBhdG9pIChhcmd2WzJdKTsKKysKKysg IHZhcm9ial9zZXRfY2hpbGRfcmFuZ2UgKHZhciwgZnJvbSwgdG8pOworK30KIGRpZmYgLS1naXQg YS9nZGIvbWkvbWktY21kcy5jIGIvZ2RiL21pL21pLWNtZHMuYwotaW5kZXggNDkxMTE0Ni4uNzcy NTY2ZSAxMDA2NDQKK2luZGV4IGRkM2Q4MDMuLjhiYTA4NmMgMTAwNjQ0CiAtLS0gYS9nZGIvbWkv bWktY21kcy5jCiArKysgYi9nZGIvbWkvbWktY21kcy5jCi1AQCAtNTEsNiArNTEsNyBAQCBzdHJ1 Y3QgbWlfY21kIG1pX2NtZHNbXSA9CitAQCAtNTIsNiArNTIsNyBAQCBzdHJ1Y3QgbWlfY21kIG1p X2NtZHNbXSA9CiAgICB7ICJkYXRhLXdyaXRlLW1lbW9yeSIsIHsgTlVMTCwgMCB9LCBtaV9jbWRf ZGF0YV93cml0ZV9tZW1vcnl9LAogICAgeyAiZGF0YS13cml0ZS1yZWdpc3Rlci12YWx1ZXMiLCB7 IE5VTEwsIDAgfSwgbWlfY21kX2RhdGFfd3JpdGVfcmVnaXN0ZXJfdmFsdWVzfSwKICAgIHsgImVu YWJsZS10aW1pbmdzIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbmFibGVfdGltaW5nc30sCkBAIC0x MDM0OSwxNSArMTA2NTgsMjQgQEAgaW5kZXggNDkxMTE0Ni4uNzcyNTY2ZSAxMDA2NDQKICAgIHsg ImVudmlyb25tZW50LWNkIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfY2R9LAogICAgeyAiZW52 aXJvbm1lbnQtZGlyZWN0b3J5IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfZGlyfSwKICAgIHsg ImVudmlyb25tZW50LXBhdGgiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2Vudl9wYXRofSwKK0BAIC0x MTIsNiArMTEzLDcgQEAgc3RydWN0IG1pX2NtZCBtaV9jbWRzW10gPQorICAgeyAidmFyLWxpc3Qt Y2hpbGRyZW4iLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVufSwKKyAgIHsg InZhci1zZXQtZm9ybWF0IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zvcm1hdH0sCisg ICB7ICJ2YXItc2V0LWZyb3plbiIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3NldF9mcm96ZW59 LAorKyAgeyAidmFyLXNldC11cGRhdGUtcmFuZ2UiLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9z ZXRfdXBkYXRlX3JhbmdlIH0sCisgICB7ICJ2YXItc2V0LXZpc3VhbGl6ZXIiLCB7IE5VTEwsIDAg fSwgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXplcn0sCisgICB7ICJ2YXItc2hvdy1hdHRyaWJ1dGVz IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2hvd19hdHRyaWJ1dGVzfSwKKyAgIHsgInZhci1z aG93LWZvcm1hdCIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nob3dfZm9ybWF0fSwKIGRpZmYg LS1naXQgYS9nZGIvbWkvbWktY21kcy5oIGIvZ2RiL21pL21pLWNtZHMuaAotaW5kZXggYWZjYmEx ZS4uNzk3OThlZiAxMDA2NDQKK2luZGV4IDg1YWQwYzQuLmRmYWI0MTEgMTAwNjQ0CiAtLS0gYS9n ZGIvbWkvbWktY21kcy5oCiArKysgYi9nZGIvbWkvbWktY21kcy5oCi1AQCAtOTgsNiArOTgsNyBA QCBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXplcjsKK0BA IC05OSw2ICs5OSw4IEBAIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF92 aXN1YWxpemVyOwogIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3Nob3dfYXR0 cmlidXRlczsKICBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zaG93X2Zvcm1h dDsKICBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl91cGRhdGU7CiArZXh0ZXJu IG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF9lbmFibGVfcHJldHR5X3ByaW50aW5nOworK2V4dGVy biBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2U7CiAgCiAgLyog RGVzY3JpcHRpb24gb2YgYSBzaW5nbGUgY29tbWFuZC4gKi8KICAKQEAgLTEwMzk3LDIyICsxMDcx NSwzMSBAQCBpbmRleCBhODQwMDNmLi45MjRjMWM1IDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxl X29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiBkdW1teSBGSVhNRSB0aWwgaW1wbGVtIHN5bSByZWxv YyAqLwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBz ZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuYyBiL2dk Yi9vYmpmaWxlcy5jCi1pbmRleCBjOTgzYjExLi4yYWMxYmQxIDEwMDY0NAoraW5kZXggNDNjNTE3 NC4uNWFkNGY4ZCAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9nZGIvb2JqZmls ZXMuYwotQEAgLTQzMyw5ICs0MzMsOCBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlKQorQEAgLTQzMiwxMCArNDMyLDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSkKKyAJIGRvZXNuJ3QgcmVmZXJlbmNlIGl0LiAgKi8KICAgICAgICBvYmpmaWxl LT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxl ID0gTlVMTDsKICAgICAgfQotICAgCistICAKIC0gIC8qIFJlbW92ZSBhbnkgcmVmZXJlbmNlcyB0 byB0aGlzIG9iamZpbGUgaW4gdGhlIGdsb2JhbCB2YWx1ZQogLSAgICAgbGlzdHMuICAqLwogLSAg cHJlc2VydmVfdmFsdWVzIChvYmpmaWxlKTsKKysKICsgIC8qIFJlbW92ZSBhbnkgcmVmZXJlbmNl cyB0byB0aGlzIG9iamZpbGUgaW4gdGhlIGdsb2JhbCB2YWx1ZSBsaXN0cy4gICovCiArICBvYnNl cnZlcl9ub3RpZnlfb2JqZmlsZV91bmxvYWRpbmcgKG9iamZpbGUpOwogIAogICAgLyogRmlyc3Qg ZG8gYW55IHN5bWJvbCBmaWxlIHNwZWNpZmljIGFjdGlvbnMgcmVxdWlyZWQgd2hlbiB3ZSBhcmUK ICAgICAgIGZpbmlzaGVkIHdpdGggYSBwYXJ0aWN1bGFyIHN5bWJvbCBmaWxlLiAgTm90ZSB0aGF0 IGlmIHRoZSBvYmpmaWxlCi1AQCAtNDczLDYgKzQ3Miw5IEBAIGZyZWVfb2JqZmlsZSAoc3RydWN0 IG9iamZpbGUgKm9iamZpbGUpCitAQCAtNDU4LDEyICs0NTcsMTQgQEAgZnJlZV9vYmpmaWxlIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyAKKyAgIHVubGlua19vYmpmaWxlIChvYmpmaWxlKTsK KyAKKy0gIC8qIElmIHdlIGFyZSBnb2luZyB0byBmcmVlIHRoZSBydW50aW1lIGNvbW1vbiBvYmpm aWxlLCBtYXJrIGl0CistICAgICBhcyB1bmFsbG9jYXRlZC4gICovCisrICAvKiBJZiB3ZSBhcmUg Z29pbmcgdG8gZnJlZSBhbnkgZXhpc3RpbmcgT0JKRklMRSByZWZlcmVuY2UsIGNsZWFyIGl0LiAg Ki8KKyAKICAgIGlmIChvYmpmaWxlID09IHJ0X2NvbW1vbl9vYmpmaWxlKQogICAgICBydF9jb21t b25fb2JqZmlsZSA9IE5VTEw7CiAgCkBAIC0xMDQyMiw3ICsxMDc0OSw3IEBAIGluZGV4IGM5ODNi MTEuLjJhYzFiZDEgMTAwNjQ0CiAgICAvKiBCZWZvcmUgdGhlIHN5bWJvbCB0YWJsZSBjb2RlIHdh cyByZWRvbmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8KICAgICAgIHNlbGVjdGl2ZWx5IGxvYWQgYW5k IHJlbW92ZSBpbmZvcm1hdGlvbiBwYXJ0aWN1bGFyIHRvIGEgc3BlY2lmaWMKICAgICAgIGxpbmth Z2UgdW5pdCwgZ2RiIHVzZWQgdG8gZG8gdGhlc2UgdGhpbmdzIHdoZW5ldmVyIHRoZSBtb25vbGl0 aGljCi1AQCAtNzIzLDYgKzcyNSwyMCBAQCBoYXZlX3BhcnRpYWxfc3ltYm9scyAodm9pZCkKK0BA IC03MTQsNiArNzE1LDIwIEBAIGhhdmVfcGFydGlhbF9zeW1ib2xzICh2b2lkKQogIAlyZXR1cm4g MTsKICAgICAgICB9CiAgICB9CkBAIC0xMDQ0MywzMCArMTA3NzAsOCBAQCBpbmRleCBjOTgzYjEx Li4yYWMxYmQxIDEwMDY0NAogICAgcmV0dXJuIDA7CiAgfQogIAotQEAgLTEwMjAsMyArMTAzNiwy MSBAQCBvYmpmaWxlc19jaGFuZ2VkICh2b2lkKQotIHsKLSAgIG9iamZpbGVzX2NoYW5nZWRfcCA9 IDE7ICAvKiBSZWJ1aWxkIHNlY3Rpb24gbWFwIG5leHQgdGltZSB3ZSBuZWVkIGl0LiAgKi8KLSB9 Ci0rCi0rLyogUmV0dXJuIG5vbi16ZXJvIGlmIEEgYW5kIEIgcG9pbnQgdG8gdGhlIHNhbWUgT0JK RklMRSwgaWdub3JpbmcgYW55IGJpbmFyeQotKyAgIHZzLiBkZWJ1Z2luZm8gdmFyaWFudHMgb2Yg dGhlIHBvaW50ZXJzLiAgSWYgZWl0aGVyIEEgb3IgQiBpcyBOVUxMIHJldHVybgotKyAgIHplcm8g YXMgbm90IGEgbWF0Y2guICAqLwotKwotK2ludAotK21hdGNoaW5nX29iamZpbGVzIChzdHJ1Y3Qg b2JqZmlsZSAqYSwgc3RydWN0IG9iamZpbGUgKmIpCi0rewotKyAgaWYgKGEgPT0gTlVMTCB8fCBi ID09IE5VTEwpCi0rICAgIHJldHVybiAwOwotKwotKyAgaWYgKGEtPnNlcGFyYXRlX2RlYnVnX29i amZpbGVfYmFja2xpbmspCi0rICAgIGEgPSBhLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2ts aW5rOwotKyAgaWYgKGItPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmspCi0rICAgIGIg PSBiLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rOwotKwotKyAgcmV0dXJuIGEgPT0g YjsKLSt9CiBkaWZmIC0tZ2l0IGEvZ2RiL29iamZpbGVzLmggYi9nZGIvb2JqZmlsZXMuaAotaW5k ZXggMTg1NzI2MC4uZTQyMTIzMiAxMDA2NDQKK2luZGV4IGFlY2Y4ZDguLjlhN2Q2MzUgMTAwNjQ0 CiAtLS0gYS9nZGIvb2JqZmlsZXMuaAogKysrIGIvZ2RiL29iamZpbGVzLmgKIEBAIC0yMTIsNiAr MjEyLDExIEBAIHN0cnVjdCBvYmpmaWxlCkBAIC0xMDQ4MSw5ICsxMDc4Niw5IEBAIGluZGV4IDE4 NTcyNjAuLmU0MjEyMzIgMTAwNjQ0CiAgICAgIC8qIE1hcCBhZGRyZXNzZXMgdG8gdGhlIGVudHJp ZXMgb2YgUFNZTVRBQlMuICBJdCB3b3VsZCBiZSBtb3JlIGVmZmljaWVudCB0bwogICAgICAgICBo YXZlIGEgbWFwIHBlciB0aGUgd2hvbGUgcHJvY2VzcyBidXQgQUREUk1BUCBjYW5ub3Qgc2VsZWN0 aXZlbHkgcmVtb3ZlCiAgICAgICAgIGl0cyBpdGVtcyBkdXJpbmcgRlJFRV9PQkpGSUxFLiAgVGhp cyBtYXBwaW5nIGlzIGFscmVhZHkgcHJlc2VudCBldmVuIGZvcgotQEAgLTQyMCw2ICs0MjUsMTUg QEAgc3RydWN0IG9iamZpbGUKLSAjZGVmaW5lIE9CSkZfS0VFUEJGRAkoMSA8PCA0KQkvKiBEbyBu b3QgZGVsZXRlIGJmZCAqLworQEAgLTQxNCw2ICs0MTksMTUgQEAgc3RydWN0IG9iamZpbGUKICAK KyAjZGVmaW5lIE9CSkZfVVNFUkxPQURFRAkoMSA8PCAzKQkvKiBVc2VyIGxvYWRlZCAqLwogIAog Ky8qIFNldCBpZiB3ZSBoYXZlIHRyaWVkIHRvIHJlYWQgcGFydGlhbCBzeW10YWJzIGZvciB0aGlz IG9iamZpbGUuCiArICAgVGhpcyBpcyB1c2VkIHRvIGFsbG93IGxhenkgcmVhZGluZyBvZiBwYXJ0 aWFsIHN5bXRhYnMuICAqLwpAQCAtMTA0OTcsMTYgKzEwODAyLDcgQEAgaW5kZXggMTg1NzI2MC4u ZTQyMTIzMiAxMDA2NDQKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCB0aGUgbWFpbiBzeW1ib2wg dGFibGUgd2FzIGxvYWRlZCBmcm9tIChlLmcuIHRoZQogICAgIGFyZ3VtZW50IHRvIHRoZSAic3lt Ym9sLWZpbGUiIG9yICJmaWxlIiBjb21tYW5kKS4gICovCiAgCi1AQCAtNDk5LDYgKzUxMyw4IEBA IGV4dGVybiBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKmZpbmRfcGNfc2VjdGlvbiAoQ09SRV9BRERSIHBj KTsKLSAKLSBleHRlcm4gaW50IGluX3BsdF9zZWN0aW9uIChDT1JFX0FERFIsIGNoYXIgKik7Ci0g Ci0rZXh0ZXJuIGludCBtYXRjaGluZ19vYmpmaWxlcyAoc3RydWN0IG9iamZpbGUgKmEsIHN0cnVj dCBvYmpmaWxlICpiKTsKLSsKLSAvKiBLZWVwIGEgcmVnaXN0cnkgb2YgcGVyLW9iamZpbGUgZGF0 YS1wb2ludGVycyByZXF1aXJlZCBieSBvdGhlciBHREIKLSAgICBtb2R1bGVzLiAgKi8KLSAKLUBA IC01NTgsNiArNTc0LDEzIEBAIGV4dGVybiB2b2lkICpvYmpmaWxlX2RhdGEgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAorQEAgLTU1NCw2ICs1NjgsMTMgQEAgZXh0ZXJuIHZvaWQgZ2RiX2JmZF91 bnJlZiAoc3RydWN0IGJmZCAqYWJmZCk7CiAgICBBTExfT0JKRklMRVMgKG9iamZpbGUpCSBcCiAg ICAgIEFMTF9PQkpGSUxFX1BTWU1UQUJTIChvYmpmaWxlLCBwKQogIApAQCAtMTY0MDgsMjcgKzE2 NzA0LDI3IEBAIGluZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0CiArICByZXR1cm4gMTsKICt9 CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24tdmFsdWUuYyBiL2dkYi9weXRob24vcHl0 aG9uLXZhbHVlLmMKLWluZGV4IGRkM2M5MTkuLmZiOWRhYjIgMTAwNjQ0CitpbmRleCBkZDNjOTE5 Li5kYzc2NjkyIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tdmFsdWUuYwogKysrIGIv Z2RiL3B5dGhvbi9weXRob24tdmFsdWUuYwotQEAgLTI1LDYgKzI1LDcgQEAKK0BAIC0yNSwxNSAr MjUsNyBAQAogICNpbmNsdWRlICJsYW5ndWFnZS5oIgogICNpbmNsdWRlICJkZnAuaCIKICAjaW5j bHVkZSAidmFscHJpbnQuaCIKLSsjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKLSAKLSAvKiBMaXN0IG9m IGFsbCB2YWx1ZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5dGhvbi4gSXQgaXMK LSAgICBtYWludGFpbmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRpc2NhcmRlZCwgcHJl c2VydmVfdmFsdWVzCi1AQCAtMzMsNyArMzQsNyBAQAotICAgIGdlbmVyaWMgY29kZS4gICovCi0g LyogVGhpcyB2YXJpYWJsZSBpcyB1bm5lY2Vzc2FyaWx5IGluaXRpYWxpemVkIHRvIE5VTEwgaW4g b3JkZXIgdG8gCi0gICAgd29yayBhcm91bmQgYSBsaW5rZXIgYnVnIG9uIE1hY09TLiAgKi8KKy0K Ky0vKiBMaXN0IG9mIGFsbCB2YWx1ZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5 dGhvbi4gSXQgaXMKKy0gICBtYWludGFpbmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRp c2NhcmRlZCwgcHJlc2VydmVfdmFsdWVzCistICAgY2FuIGNvcHkgdGhlIHZhbHVlcycgdHlwZXMg aWYgbmVlZGVkLiAgVGhpcyBpcyBkZWNsYXJlZAorLSAgIHVuY29uZGl0aW9uYWxseSB0byByZWR1 Y2UgdGhlIG51bWJlciBvZiB1c2VzIG9mIEhBVkVfUFlUSE9OIGluIHRoZQorLSAgIGdlbmVyaWMg Y29kZS4gICovCistLyogVGhpcyB2YXJpYWJsZSBpcyB1bm5lY2Vzc2FyaWx5IGluaXRpYWxpemVk IHRvIE5VTEwgaW4gb3JkZXIgdG8gCistICAgd29yayBhcm91bmQgYSBsaW5rZXIgYnVnIG9uIE1h Y09TLiAgKi8KIC1zdHJ1Y3QgdmFsdWUgKnZhbHVlc19pbl9weXRob24gPSBOVUxMOwotK3N0YXRp YyBzdHJ1Y3QgdmFsdWVfb2JqZWN0ICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKKysjaW5jbHVk ZSAib2JzZXJ2ZXIuaCIKICAKICAjaWZkZWYgSEFWRV9QWVRIT04KICAKLUBAIC01MiwxNyArNTMs MjMgQEAgc3RydWN0IHZhbHVlICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKK0BAIC01MiwyNiAr NDQsNDMgQEAgc3RydWN0IHZhbHVlICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKICAvKiBQeXRo b24ncyBsb25nIHR5cGUgY29ycmVzcG9uZHMgdG8gQydzIGxvbmcgbG9uZyB0eXBlLiAgKi8KICAj ZGVmaW5lIGJ1aWx0aW5fdHlwZV9weWxvbmcgYnVpbHRpbl90eXBlIChweXRob25fZ2RiYXJjaCkt PmJ1aWx0aW5fbG9uZ19sb25nCiAgCkBAIC0xNjQ0NSw2NyArMTY3NDEsMTAwIEBAIGluZGV4IGRk M2M5MTkuLmZiOWRhYjIgMTAwNjQ0CiAtdHlwZWRlZiBzdHJ1Y3QgewogK3R5cGVkZWYgc3RydWN0 IHZhbHVlX29iamVjdCB7CiAgICBQeU9iamVjdF9IRUFECisrICBzdHJ1Y3QgdmFsdWVfb2JqZWN0 ICpuZXh0OwogICAgc3RydWN0IHZhbHVlICp2YWx1ZTsKICAgIFB5T2JqZWN0ICphZGRyZXNzOwog ICAgUHlPYmplY3QgKnR5cGU7Ci0rICBzdHJ1Y3QgdmFsdWVfb2JqZWN0ICpuZXh0OwotKyAgc3Ry dWN0IHZhbHVlX29iamVjdCAqcHJldjsKICB9IHZhbHVlX29iamVjdDsKICAKKysvKiBMaXN0IG9m IGFsbCB2YWx1ZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5dGhvbi4gSXQgaXMK KysgICBtYWludGFpbmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRpc2NhcmRlZCwgcHJl c2VydmVfdmFsdWVzCisrICAgY2FuIGNvcHkgdGhlIHZhbHVlcycgdHlwZXMgaWYgbmVlZGVkLiAg Ki8KKysvKiBUaGlzIHZhcmlhYmxlIGlzIHVubmVjZXNzYXJpbHkgaW5pdGlhbGl6ZWQgdG8gTlVM TCBpbiBvcmRlciB0bworKyAgIHdvcmsgYXJvdW5kIGEgbGlua2VyIGJ1ZyBvbiBNYWNPUy4gICov Cisrc3RhdGljIHZhbHVlX29iamVjdCAqdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CisrCiAgLyog Q2FsbGVkIGJ5IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgd2hlbiBkZWFsbG9jYXRpbmcgYSB2YWx1 ZSBvYmplY3QuICAqLwotQEAgLTcxLDcgKzc4LDEyIEBAIHZhbHB5X2RlYWxsb2MgKFB5T2JqZWN0 ICpvYmopCisgc3RhdGljIHZvaWQKKyB2YWxweV9kZWFsbG9jIChQeU9iamVjdCAqb2JqKQogIHsK ICAgIHZhbHVlX29iamVjdCAqc2VsZiA9ICh2YWx1ZV9vYmplY3QgKikgb2JqOworKyAgdmFsdWVf b2JqZWN0ICoqaXRlcjsKICAKIC0gIHZhbHVlX3JlbW92ZV9mcm9tX2xpc3QgKCZ2YWx1ZXNfaW5f cHl0aG9uLCBzZWxmLT52YWx1ZSk7Ci0rICBpZiAoc2VsZiA9PSB2YWx1ZXNfaW5fcHl0aG9uKQot KyAgICB2YWx1ZXNfaW5fcHl0aG9uID0gc2VsZi0+bmV4dDsKLSsgIGlmIChzZWxmLT5wcmV2KQot KyAgICBzZWxmLT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLSsgIGlmIChzZWxmLT5uZXh0KQot KyAgICBzZWxmLT5uZXh0LT5wcmV2ID0gc2VsZi0+cHJldjsKKysgIC8qIFJlbW92ZSBPQkogZnJv bSB0aGUgZ2xvYmFsIGxpc3QuICAqLworKyAgaXRlciA9ICZ2YWx1ZXNfaW5fcHl0aG9uOworKyAg d2hpbGUgKCppdGVyICE9IHNlbGYpCisrICAgIGl0ZXIgPSAmKCppdGVyKS0+bmV4dDsKKysgICpp dGVyID0gKCppdGVyKS0+bmV4dDsKICAKICAgIHZhbHVlX2ZyZWUgKHNlbGYtPnZhbHVlKTsKICAK LUBAIC0xMjIsNyArMTM0LDE3IEBAIHZhbHB5X25ldyAoUHlUeXBlT2JqZWN0ICpzdWJ0eXBlLCBQ eU9iamVjdCAqYXJncywgUHlPYmplY3QgKmtleXdvcmRzKQorQEAgLTEyMiwxMSArMTMxLDIzIEBA IHZhbHB5X25ldyAoUHlUeXBlT2JqZWN0ICpzdWJ0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmpl Y3QgKmtleXdvcmRzKQogICAgdmFsdWVfb2JqLT5hZGRyZXNzID0gTlVMTDsKICAgIHZhbHVlX29i ai0+dHlwZSA9IE5VTEw7CiAgICByZWxlYXNlX3ZhbHVlICh2YWx1ZSk7CiAtICB2YWx1ZV9wcmVw ZW5kX3RvX2xpc3QgKCZ2YWx1ZXNfaW5fcHl0aG9uLCB2YWx1ZSk7Ci0rCi0rICAvKiBOZXcgRlNG IEdEQiByZWZlcmVuY2UgY291bnRpbmcgbm8gbG9uZ2VyIGNvbnNpZGVycyByZWxlYXNlX3ZhbHVl IGFzIG9uZQotKyAgICAgaW5jcmVmLiAgRklYTUU6IFdlIGFyZSBub3cgbGVha2luZyBoZXJlIGlm IFZBTFVFIHdhcyBhbHJlYWR5Ci0rICAgICByZWxlYXNlX3ZhbHVlLWQgYmVmb3JlLiAgKi8KLSsg IHZhbHVlX2luY3JlZiAodmFsdWUpOwotKwogKyAgdmFsdWVfb2JqLT5uZXh0ID0gdmFsdWVzX2lu X3B5dGhvbjsKICsgIHZhbHVlc19pbl9weXRob24gPSB2YWx1ZV9vYmo7Ci0rICBpZiAodmFsdWVf b2JqLT5uZXh0KQotKyAgICB2YWx1ZV9vYmotPm5leHQtPnByZXYgPSB2YWx1ZV9vYmo7Ci0rICB2 YWx1ZV9vYmotPnByZXYgPSBOVUxMOwogIAogICAgcmV0dXJuIChQeU9iamVjdCAqKSB2YWx1ZV9v Ymo7CiAgfQotQEAgLTgwMyw3ICs4MjUsMTcgQEAgdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChzdHJ1 Y3QgdmFsdWUgKnZhbCkKKyAKKysvKiBJdGVyYXRlIG92ZXIgYWxsIHRoZSBWYWx1ZSBvYmplY3Rz LCBjYWxsaW5nIHByZXNlcnZlX29uZV92YWx1ZSBvbgorKyAgIGVhY2guICAqLworK3ZvaWQKKytw cmVzZXJ2ZV9weXRob25fdmFsdWVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaHRhYl90IGNv cGllZF90eXBlcykKKyt7CisrICB2YWx1ZV9vYmplY3QgKml0ZXI7CisrCisrICBmb3IgKGl0ZXIg PSB2YWx1ZXNfaW5fcHl0aG9uOyBpdGVyOyBpdGVyID0gaXRlci0+bmV4dCkKKysgICAgcHJlc2Vy dmVfb25lX3ZhbHVlIChpdGVyLT52YWx1ZSwgb2JqZmlsZSwgY29waWVkX3R5cGVzKTsKKyt9Cisr CisgLyogR2l2ZW4gYSB2YWx1ZSBvZiBhIHBvaW50ZXIgdHlwZSwgYXBwbHkgdGhlIEMgdW5hcnkg KiBvcGVyYXRvciB0byBpdC4gICovCisgc3RhdGljIFB5T2JqZWN0ICoKKyB2YWxweV9kZXJlZmVy ZW5jZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTU0Myw5ICs1NjQsNyBA QCB2YWxweV9uZWdhdGl2ZSAoUHlPYmplY3QgKnNlbGYpCisgc3RhdGljIFB5T2JqZWN0ICoKKyB2 YWxweV9wb3NpdGl2ZSAoUHlPYmplY3QgKnNlbGYpCisgeworLSAgc3RydWN0IHZhbHVlICpjb3B5 ID0gdmFsdWVfY29weSAoKCh2YWx1ZV9vYmplY3QgKikgc2VsZiktPnZhbHVlKTsKKy0KKy0gIHJl dHVybiB2YWx1ZV90b192YWx1ZV9vYmplY3QgKGNvcHkpOworKyAgcmV0dXJuIHZhbHVlX3RvX3Zh bHVlX29iamVjdCAoKCh2YWx1ZV9vYmplY3QgKikgc2VsZiktPnZhbHVlKTsKKyB9CisgCisgc3Rh dGljIFB5T2JqZWN0ICoKK0BAIC04MDMsMTMgKzgyMiwxNSBAQCB2YWx1ZV90b192YWx1ZV9vYmpl Y3QgKHN0cnVjdCB2YWx1ZSAqdmFsKQogICAgICAgIHZhbF9vYmotPmFkZHJlc3MgPSBOVUxMOwog ICAgICAgIHZhbF9vYmotPnR5cGUgPSBOVUxMOwogICAgICAgIHJlbGVhc2VfdmFsdWUgKHZhbCk7 CiAtICAgICAgdmFsdWVfcHJlcGVuZF90b19saXN0ICgmdmFsdWVzX2luX3B5dGhvbiwgdmFsKTsK LSsKLSsgICAgICAvKiBOZXcgRlNGIEdEQiByZWZlcmVuY2UgY291bnRpbmcgbm8gbG9uZ2VyIGNv bnNpZGVycyByZWxlYXNlX3ZhbHVlIGFzIG9uZQotKwkgaW5jcmVmLiAgRklYTUU6IFdlIGFyZSBu b3cgbGVha2luZyBoZXJlIGlmIFZBTFVFIHdhcyBhbHJlYWR5Ci0rCSByZWxlYXNlX3ZhbHVlLWQg YmVmb3JlLiAgKi8KLSsgICAgICB2YWx1ZV9pbmNyZWYgKHZhbCk7Ci0rCiArICAgICAgdmFsX29i ai0+bmV4dCA9IHZhbHVlc19pbl9weXRob247CiArICAgICAgdmFsdWVzX2luX3B5dGhvbiA9IHZh bF9vYmo7Ci0rICAgICAgaWYgKHZhbF9vYmotPm5leHQpCi0rCXZhbF9vYmotPm5leHQtPnByZXYg PSB2YWxfb2JqOwotKyAgICAgIHZhbF9vYmotPnByZXYgPSBOVUxMOwogICAgICB9CiAgCiAgICBy ZXR1cm4gKFB5T2JqZWN0ICopIHZhbF9vYmo7Ci1AQCAtODUzLDcgKzg4NSwzNCBAQCBjb252ZXJ0 X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQorIH0KKyAKKy0vKiBSZXR1cm5zIHZh bHVlIHN0cnVjdHVyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiB2YWx1ZSBvYmplY3QuICAq LworKy8qIFJldHVybnMgYSBib3Jyb3dlZCByZWZlcmVuY2UgdG8gdGhlIHN0cnVjdCB2YWx1ZSBj b3JyZXNwb25kaW5nIHRvCisrICAgdGhlIGdpdmVuIHZhbHVlIG9iamVjdC4gICovCisgc3RydWN0 IHZhbHVlICoKKyB2YWx1ZV9vYmplY3RfdG9fdmFsdWUgKFB5T2JqZWN0ICpzZWxmKQorIHsKK0BA IC04MjEsNyArODQyLDggQEAgdmFsdWVfb2JqZWN0X3RvX3ZhbHVlIChQeU9iamVjdCAqc2VsZikK KyB9CisgCisgLyogVHJ5IHRvIGNvbnZlcnQgYSBQeXRob24gdmFsdWUgdG8gYSBnZGIgdmFsdWUu ICBJZiB0aGUgdmFsdWUgY2Fubm90CistICAgYmUgY29udmVydGVkLCBzZXQgYSBQeXRob24gZXhj ZXB0aW9uIGFuZCByZXR1cm4gTlVMTC4gICovCisrICAgYmUgY29udmVydGVkLCBzZXQgYSBQeXRo b24gZXhjZXB0aW9uIGFuZCByZXR1cm4gTlVMTC4gIFJldHVybnMgYQorKyAgIGJvcnJvd2VkIHJl ZmVyZW5jZSB0byB0aGUgcmVzdWx0aW5nIHN0cnVjdCB2YWx1ZS4gICovCisgCisgc3RydWN0IHZh bHVlICoKKyBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQorQEAgLTg1 Myw3ICs4NzUsMzQgQEAgY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAoUHlPYmplY3QgKm9iaikK ICAJewogIAkgIExPTkdFU1QgbCA9IFB5TG9uZ19Bc0xvbmdMb25nIChvYmopOwogIApAQCAtMTY1 NDEsNyArMTY4NzAsMjEgQEAgaW5kZXggZGQzYzkxOS4uZmI5ZGFiMiAxMDA2NDQKICAJICAgIHZh bHVlID0gdmFsdWVfZnJvbV9sb25nZXN0IChidWlsdGluX3R5cGVfcHlsb25nLCBsKTsKICAJfQog ICAgICAgIGVsc2UgaWYgKFB5RmxvYXRfQ2hlY2sgKG9iaikpCi1AQCAtOTEyLDYgKzk3MSwzNCBA QCBnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAtODc2 LDcgKzkyNSwxMiBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQor IAkgICAgfQorIAl9CisgICAgICAgZWxzZSBpZiAoUHlPYmplY3RfVHlwZUNoZWNrIChvYmosICZ2 YWx1ZV9vYmplY3RfdHlwZSkpCistCXZhbHVlID0gdmFsdWVfY29weSAoKCh2YWx1ZV9vYmplY3Qg Kikgb2JqKS0+dmFsdWUpOworKwl7CisrCSAgLyogVGhpcyBsZXRzIGNhbGxlcnMgZnJlZWx5IGRl Y3JlZiB0aGUgVmFsdWUgd3JhcHBlciBvYmplY3QKKysJICAgICBhbmQgbm90IHdvcnJ5IGFib3V0 IHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSB3aWxsCisrCSAgICAgZGlzYXBwZWFyLiAgKi8KKysJ ICB2YWx1ZSA9IHZhbHVlX2NvcHkgKCgodmFsdWVfb2JqZWN0ICopIG9iaiktPnZhbHVlKTsKKysJ fQorICAgICAgIGVsc2UKKyAJUHlFcnJfRm9ybWF0IChQeUV4Y19UeXBlRXJyb3IsIF8oIkNvdWxk IG5vdCBjb252ZXJ0IFB5dGhvbiBvYmplY3Q6ICVzIiksCisgCQkgICAgICBQeVN0cmluZ19Bc1N0 cmluZyAoUHlPYmplY3RfU3RyIChvYmopKSk7CitAQCAtOTEyLDYgKzk2NiwyNSBAQCBnZGJweV9o aXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAgICByZXR1cm4gdmFsdWVf dG9fdmFsdWVfb2JqZWN0IChyZXNfdmFsKTsKICB9CiAgCkBAIC0xNjU1MCwxOSArMTY4OTMsMTAg QEAgaW5kZXggZGQzYzkxOS4uZmI5ZGFiMiAxMDA2NDQKICtzdGF0aWMgdm9pZAogK3B5dGhvbl90 eXBlc19tYXJrX3VzZWQgKHZvaWQpCiArewotKyAgdmFsdWVfb2JqZWN0ICp2YWxfb2JqOwotKwot KyAgZm9yICh2YWxfb2JqID0gdmFsdWVzX2luX3B5dGhvbjsgdmFsX29iaiAhPSBOVUxMOyB2YWxf b2JqID0gdmFsX29iai0+bmV4dCkKLSsgICAgdHlwZV9tYXJrX3VzZWQgKHZhbHVlX3R5cGUgKHZh bF9vYmotPnZhbHVlKSk7Ci0rfQotKwotK3ZvaWQKLStwcmVzZXJ2ZV9weXRob25fdmFsdWVzIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaHRhYl90IGNvcGllZF90eXBlcykKLSt7Ci0rICB2YWx1 ZV9vYmplY3QgKnZhbF9vYmo7CisrICB2YWx1ZV9vYmplY3QgKml0ZXI7CiArCi0rICBmb3IgKHZh bF9vYmogPSB2YWx1ZXNfaW5fcHl0aG9uOyB2YWxfb2JqICE9IE5VTEw7IHZhbF9vYmogPSB2YWxf b2JqLT5uZXh0KQotKyAgICBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHZhbF9vYmotPnZhbHVlLCBvYmpm aWxlLCBjb3BpZWRfdHlwZXMpOworKyAgZm9yIChpdGVyID0gdmFsdWVzX2luX3B5dGhvbjsgaXRl cjsgaXRlciA9IGl0ZXItPm5leHQpCisrICAgIHR5cGVfbWFya191c2VkICh2YWx1ZV90eXBlIChp dGVyLT52YWx1ZSkpOwogK30KICsKICsvKiBSZXR1cm5zIDEgaW4gT0JKIGlzIGEgZ2RiLlZhbHVl IG9iamVjdCwgMCBvdGhlcndpc2UuICAqLwpAQCAtMTY1NzYsNyArMTY5MTAsNyBAQCBpbmRleCBk ZDNjOTE5Li5mYjlkYWIyIDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAo dm9pZCkKICB7Ci1AQCAtOTIyLDYgKzEwMDksOCBAQCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAo dm9pZCkKK0BAIC05MjIsNiArOTk1LDggQEAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQp CiAgICBQeU1vZHVsZV9BZGRPYmplY3QgKGdkYl9tb2R1bGUsICJWYWx1ZSIsIChQeU9iamVjdCAq KSAmdmFsdWVfb2JqZWN0X3R5cGUpOwogIAogICAgdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CkBA IC0xNjU4NSwyMCArMTY5MTksMzIgQEAgaW5kZXggZGQzYzkxOS4uZmI5ZGFiMiAxMDA2NDQKICB9 CiAgCiAgDAorQEAgLTEwMTksNCArMTA5NCwxMiBAQCBQeVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0 X3R5cGUgPSB7CisgICB2YWxweV9uZXcJCQkgIC8qIHRwX25ldyAqLworIH07CisgCisrI2Vsc2UK KysKKyt2b2lkCisrcHJlc2VydmVfcHl0aG9uX3ZhbHVlcyAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGh0YWJfdCBjb3BpZWRfdHlwZXMpCisreworKyAgLyogTm90aGluZy4gICovCisrfQorKwor ICNlbmRpZiAvKiBIQVZFX1BZVEhPTiAqLwogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1pbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAor aW5kZXggMjU0YmQyOC4uNWEyYTlhZSAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMK ICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC0yNyw2ICsyNyw4IEBACitAQCAtMjcsNiAr MjcsNyBAQAogICNpbmNsdWRlICJvYnNlcnZlci5oIgogICNpbmNsdWRlICJ2YWx1ZS5oIgogICNp bmNsdWRlICJsYW5ndWFnZS5oIgogKyNpbmNsdWRlICJldmVudC1sb29wLmgiCi0rI2luY2x1ZGUg InZhbHByaW50LmgiCiAgCiAgI2luY2x1ZGUgPGN0eXBlLmg+CiAgCi1AQCAtNDUsMTEgKzQ3LDE4 IEBAIHN0YXRpYyBpbnQgZ2RicHlfYXV0b19sb2FkID0gMTsKK0BAIC00NSwxMSArNDYsMTggQEAg c3RhdGljIGludCBnZGJweV9hdXRvX2xvYWQgPSAxOwogICNpbmNsdWRlICJjbGkvY2xpLWRlY29k ZS5oIgogICNpbmNsdWRlICJjaGFyc2V0LmgiCiAgI2luY2x1ZGUgInRvcC5oIgpAQCAtMTY2MTcs NyArMTY5NjMsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAogIHN0YXRpYyBQ eU1ldGhvZERlZiBHZGJNZXRob2RzW107CiAgCi1AQCAtMTk3LDEwICsyMDYsMTAgQEAgcHl0aG9u X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTE5NywxMCArMjA1LDEwIEBA IHB5dGhvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgICBOVUxMIChhbmQg c2V0IGEgUHl0aG9uIGV4Y2VwdGlvbikgb24gZXJyb3IuICBIZWxwZXIgZnVuY3Rpb24gZm9yCiAg ICAgZ2V0X3BhcmFtZXRlci4gICovCiAgCkBAIC0xNjYzMSw3ICsxNjk3Nyw3IEBAIGluZGV4IDI1 NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSB2YXJfc3RyaW5nOgogICAg ICBjYXNlIHZhcl9zdHJpbmdfbm9lc2NhcGU6Ci1AQCAtMjA4LDcgKzIxNyw3IEBAIHBhcmFtZXRl cl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitAQCAtMjA4LDcgKzIx Niw3IEBAIHBhcmFtZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQp CiAgICAgIGNhc2UgdmFyX2ZpbGVuYW1lOgogICAgICBjYXNlIHZhcl9lbnVtOgogICAgICAgIHsK QEAgLTE2NjQwLDcgKzE2OTg2LDcgQEAgaW5kZXggMjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICAJ aWYgKCEgc3RyKQogIAkgIHN0ciA9ICIiOwogIAlyZXR1cm4gUHlTdHJpbmdfRGVjb2RlIChzdHIs IHN0cmxlbiAoc3RyKSwgaG9zdF9jaGFyc2V0ICgpLCBOVUxMKTsKLUBAIC0yMTYsNyArMjI1LDcg QEAgcGFyYW1ldGVyX3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCkKK0BA IC0yMTYsNyArMjI0LDcgQEAgcGFyYW1ldGVyX3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKmNtZCkKICAKICAgICAgY2FzZSB2YXJfYm9vbGVhbjoKICAgICAgICB7CkBAIC0xNjY0 OSw3ICsxNjk5NSw3IEBAIGluZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCSAgUHlfUkVU VVJOX1RSVUU7CiAgCWVsc2UKICAJICBQeV9SRVRVUk5fRkFMU0U7Ci1AQCAtMjI0LDcgKzIzMyw3 IEBAIHBhcmFtZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitA QCAtMjI0LDcgKzIzMiw3IEBAIHBhcmFtZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9l bGVtZW50ICpjbWQpCiAgCiAgICAgIGNhc2UgdmFyX2F1dG9fYm9vbGVhbjoKICAgICAgICB7CkBA IC0xNjY1OCw3ICsxNzAwNCw3IEBAIGluZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCWlm IChhYiA9PSBBVVRPX0JPT0xFQU5fVFJVRSkKICAJICBQeV9SRVRVUk5fVFJVRTsKICAJZWxzZSBp ZiAoYWIgPT0gQVVUT19CT09MRUFOX0ZBTFNFKQotQEAgLTIzNCwxNSArMjQzLDE1IEBAIHBhcmFt ZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitAQCAtMjM0LDE1 ICsyNDIsMTUgQEAgcGFyYW1ldGVyX3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KmNtZCkKICAgICAgICB9CiAgCiAgICAgIGNhc2UgdmFyX2ludGVnZXI6CkBAIC0xNjY3Nyw3ICsx NzAyMyw3IEBAIGluZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCWlmICh2YWwgPT0gVUlO VF9NQVgpCiAgCSAgUHlfUkVUVVJOX05PTkU7CiAgCXJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVk TG9uZyAodmFsKTsKLUBAIC0yODAsNyArMjg5LDcgQEAgZ2RicHlfcGFyYW1ldGVyIChQeU9iamVj dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAtMjgwLDcgKzI4OCw3IEBAIGdkYnB5X3BhcmFt ZXRlciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogIAogICAgaWYgKCEgY21kLT52 YXIpCiAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJvciwgImAlcycg aXMgbm90IGEgcGFyYW1ldGVyIiwgYXJnKTsKQEAgLTE2Njg2LDcgKzE3MDMyLDcgQEAgaW5kZXgg MjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICB9CiAgCiAgLyogQSBQeXRob24gZnVuY3Rpb24gd2hp Y2ggZXZhbHVhdGVzIGEgc3RyaW5nIHVzaW5nIHRoZSBnZGIgQ0xJLiAgKi8KLUBAIC0zMTksNiAr MzI4LDIzMyBAQCBleGVjdXRlX2dkYl9jb21tYW5kIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3Qg KmFyZ3MpCitAQCAtMzE5LDYgKzMyNywyMzMgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgUHlfUkVUVVJOX05PTkU7CiAgfQogIApAQCAt MTY5MjAsNyArMTcyNjYsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAwKICAK ICAvKiBQcmludGluZy4gICovCi1AQCAtMzU3LDYgKzU5Myw2OSBAQCBnZGJweV9wcmludF9zdGFj ayAodm9pZCkKK0BAIC0zNTcsNiArNTkyLDY5IEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQog IAogIAwKICAKQEAgLTE2OTkwLDE1MiArMTczMzYsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNh IDEwMDY0NAogIC8qIFRoZSAiY3VycmVudCIgb2JqZmlsZS4gIFRoaXMgaXMgc2V0IHdoZW4gZ2Ri IGRldGVjdHMgdGhhdCBhIG5ldwogICAgIG9iamZpbGUgaGFzIGJlZW4gbG9hZGVkLiAgSXQgaXMg b25seSBzZXQgZm9yIHRoZSBkdXJhdGlvbiBvZiBhIGNhbGwKICAgICB0byBnZGJweV9uZXdfb2Jq ZmlsZTsgaXQgaXMgTlVMTCBhdCBvdGhlciB0aW1lcy4gICovCi1AQCAtNDc1LDYgKzc3NCwxNDQg QEAgZ2RicHlfb2JqZmlsZXMgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9iamVjdCAqdW51c2VkMikK LSAgIHJldHVybiBsaXN0OwotIH0KLSAKLSsMCi0rCi0rLyogSGVscGVyIGZ1bmN0aW9uIGZvciBm aW5kX3ByZXR0eV9wcmludGVyIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYQotKyAgIGxpc3QsIGNhbGxz IGVhY2ggZnVuY3Rpb24gYW5kIGluc3BlY3RzIG91dHB1dC4gICovCi0rc3RhdGljIFB5T2JqZWN0 ICoKLStzZWFyY2hfcHBfbGlzdCAoUHlPYmplY3QgKmxpc3QsIFB5T2JqZWN0ICp2YWx1ZSkKLSt7 Ci0rICBQeV9zc2l6ZV90IHBwX2xpc3Rfc2l6ZSwgbGlzdF9pbmRleDsKLSsgIFB5T2JqZWN0ICpm dW5jdGlvbiwgKnByaW50ZXIgPSBOVUxMOwotKyAgCi0rICBwcF9saXN0X3NpemUgPSBQeUxpc3Rf U2l6ZSAobGlzdCk7Ci0rICBmb3IgKGxpc3RfaW5kZXggPSAwOyBsaXN0X2luZGV4IDwgcHBfbGlz dF9zaXplOyBsaXN0X2luZGV4KyspCi0rICAgIHsKLSsgICAgICBmdW5jdGlvbiA9IFB5TGlzdF9H ZXRJdGVtIChsaXN0LCBsaXN0X2luZGV4KTsKLSsgICAgICBpZiAoISBmdW5jdGlvbikKLSsJcmV0 dXJuIE5VTEw7Ci0rCi0rICAgICAgLyogZ2RicHlfaW5zdGFudGlhdGVfcHJpbnRlciBjYW4gcmV0 dXJuIHRocmVlIHBvc3NpYmxlIHJldHVybgotKwkgdmFsdWVzOiAgTlVMTCBvbiBlcnJvcjsgIFB5 X05vbmUgaWYgdGhlIHByZXR0eS1wcmludGVyCi0rCSBpbiB0aGUgbGlzdCBjYW5ub3QgcHJpbnQg dGhlIHZhbHVlOyBvciBhIHByaW50ZXIgaW5zdGFuY2UgaWYKLSsJIHRoZSBwcmludGVyIGNhbiBw cmludCB0aGUgdmFsdWUuICAqLwotKyAgICAgIHByaW50ZXIgPSBnZGJweV9pbnN0YW50aWF0ZV9w cmludGVyIChmdW5jdGlvbiwgdmFsdWUpOwotKyAgICAgIGlmICghIHByaW50ZXIpCi0rCXJldHVy biBOVUxMOwotKyAgICAgIGVsc2UgaWYgKHByaW50ZXIgIT0gUHlfTm9uZSkKLSsJcmV0dXJuIHBy aW50ZXI7Ci0rCi0rICAgICAgUHlfREVDUkVGIChwcmludGVyKTsKLSsgICAgfQotKwotKyAgUHlf UkVUVVJOX05PTkU7Ci0rfQotKwotKy8qIEZpbmQgdGhlIHByZXR0eS1wcmludGluZyBjb25zdHJ1 Y3RvciBmdW5jdGlvbiBmb3IgVFlQRS4gIElmIG5vCi0rICAgcHJldHR5LXByaW50ZXIgZXhpc3Rz LCByZXR1cm4gTlVMTC4gIElmIG9uZSBleGlzdHMsIHJldHVybiBhIG5ldwotKyAgIHJlZmVyZW5j ZS4gICovCi0rc3RhdGljIFB5T2JqZWN0ICoKLStmaW5kX3ByZXR0eV9wcmludGVyIChQeU9iamVj dCAqdmFsdWUpCi0rewotKyAgUHlPYmplY3QgKnBwX2xpc3QgPSBOVUxMOwotKyAgUHlPYmplY3Qg KmZ1bmN0aW9uID0gTlVMTDsKLSsgIHN0cnVjdCBvYmpmaWxlICpvYmo7Ci0rICB2b2xhdGlsZSBz dHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7Ci0rCi0rICAvKiBMb29rIGF0IHRoZSBwcmV0dHkt cHJpbnRlciBkaWN0aW9uYXJ5IGZvciBlYWNoIG9iamZpbGUuICAqLwotKyAgQUxMX09CSkZJTEVT IChvYmopCi0rICB7Ci0rICAgIFB5T2JqZWN0ICpvYmpmID0gb2JqZmlsZV90b19vYmpmaWxlX29i amVjdCAob2JqKTsKLSsgICAgaWYgKCFvYmpmKQotKyAgICAgIGNvbnRpbnVlOwotKwotKyAgICBw cF9saXN0ID0gb2JqZnB5X2dldF9wcmludGVycyAob2JqZiwgTlVMTCk7Ci0rICAgIGZ1bmN0aW9u ID0gc2VhcmNoX3BwX2xpc3QgKHBwX2xpc3QsIHZhbHVlKTsKLSsKLSsgICAgLyogSWYgdGhlcmUg aXMgYW4gZXJyb3IgaW4gYW55IG9iamZpbGUgbGlzdCwgYWJvcnQgdGhlIHNlYXJjaCBhbmQKLSsg ICAgICAgZXhpdC4gICovCi0rICAgIGlmICghIGZ1bmN0aW9uKQotKyAgICAgIHsKLSsJUHlfWERF Q1JFRiAocHBfbGlzdCk7Ci0rCXJldHVybiBOVUxMOwotKyAgICAgIH0KLSsKLSsgICAgaWYgKGZ1 bmN0aW9uICE9IFB5X05vbmUpCi0rICAgICAgZ290byBkb25lOwotKyAgICAKLSsgICAgLyogSW4g dGhpcyBsb29wLCBpZiBmdW5jdGlvbiBpcyBub3QgYW4gaW5zdGFudGlhdGlvbiBvZiBhCi0rICAg IHByZXR0eS1wcmludGVyLCBhbmQgaXQgaXMgbm90IG51bGwsIHRoZW4gaXQgaXMgYSByZXR1cm4g b2YKLSsgICAgUHlfUkVUVVJOX05PTkUsIHdoaWNoIG11c3QgYmUgZGVjcmVtZW50ZWQuICAqLwot KyAgICBQeV9ERUNSRUYgKGZ1bmN0aW9uKTsKLSsgICAgUHlfWERFQ1JFRiAocHBfbGlzdCk7Ci0r ICB9Ci0rCi0rICBwcF9saXN0ID0gTlVMTDsKLSsgIC8qIEZldGNoIHRoZSBnbG9iYWwgcHJldHR5 IHByaW50ZXIgZGljdGlvbmFyeS4gICovCi0rICBpZiAoISBQeU9iamVjdF9IYXNBdHRyU3RyaW5n IChnZGJfbW9kdWxlLCAicHJldHR5X3ByaW50ZXJzIikpCi0rICAgIGdvdG8gZG9uZTsKLSsgIHBw X2xpc3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nIChnZGJfbW9kdWxlLCAicHJldHR5X3ByaW50 ZXJzIik7Ci0rICBpZiAoISBwcF9saXN0KQotKyAgICBnb3RvIGRvbmU7Ci0rICBpZiAoISBQeUxp c3RfQ2hlY2sgKHBwX2xpc3QpKQotKyAgICBnb3RvIGRvbmU7Ci0rCi0rICBmdW5jdGlvbiA9IHNl YXJjaF9wcF9saXN0IChwcF9saXN0LCB2YWx1ZSk7Ci0rCi0rIGRvbmU6Ci0rICBQeV9YREVDUkVG IChwcF9saXN0KTsKLSsgIAotKyAgcmV0dXJuIGZ1bmN0aW9uOwotK30KLSsKLSsvKiBQcmV0dHkt cHJpbnQgYSBzaW5nbGUgdmFsdWUsIHZpYSB0aGUgcHJpbnRlciBvYmplY3QgUFJJTlRFUi4gIElm Ci0rICAgdGhlIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcsIGFuIHhtYWxsb2MoKWQgY29weSBp cyByZXR1cm5lZC4KLSsgICBPdGhlcndpc2UsIGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFs dWUsIGEgKk9VVF9WQUxVRSBpcyBzZXQgdG8KLSsgICB0aGUgdmFsdWUsIGFuZCBOVUxMIGlzIHJl dHVybmVkLiAgT24gZXJyb3IsICpPVVRfVkFMVUUgaXMgc2V0IHRvCi0rICAgTlVMTCBhbmQgTlVM TCBpcyByZXR1cm5lZC4gICovCi0rc3RhdGljIGNoYXIgKgotK3ByZXR0eV9wcmludF9vbmVfdmFs dWUgKFB5T2JqZWN0ICpwcmludGVyLCBzdHJ1Y3QgdmFsdWUgKipvdXRfdmFsdWUpCi0rewotKyAg Y2hhciAqb3V0cHV0ID0gTlVMTDsKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4 Y2VwdDsKLSsKLSsgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCi0rICAgIHsK LSsgICAgICBQeU9iamVjdCAqcmVzdWx0OwotKwotKyAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0Nh bGxNZXRob2RPYmpBcmdzIChwcmludGVyLCBnZGJweV90b19zdHJpbmdfY3N0LCBOVUxMKTsKLSsg ICAgICBpZiAocmVzdWx0KQotKwl7Ci0rCSAgaWYgKGdkYnB5X2lzX3N0cmluZyAocmVzdWx0KSkK LSsJICAgIG91dHB1dCA9IHB5dGhvbl9zdHJpbmdfdG9faG9zdF9zdHJpbmcgKHJlc3VsdCk7Ci0r CSAgZWxzZSBpZiAoUHlPYmplY3RfVHlwZUNoZWNrIChyZXN1bHQsICZ2YWx1ZV9vYmplY3RfdHlw ZSkpCi0rCSAgICB7Ci0rCSAgICAgIC8qIElmIHdlIGp1c3QgY2FsbCBjb252ZXJ0X3ZhbHVlX2Zy b21fcHl0aG9uIGZvciB0aGlzCi0rCQkgdHlwZSwgd2Ugd29uJ3Qga25vdyB3aG8gb3ducyB0aGUg cmVzdWx0LiAgRm9yIHRoaXMKLSsJCSBvbmUgY2FzZSB3ZSBuZWVkIHRvIGNvcHkgdGhlIHJlc3Vs dGluZyB2YWx1ZS4gICovCi0rCSAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IHZhbHVlX29iamVjdF90 b192YWx1ZSAocmVzdWx0KTsKLSsJICAgICAgKm91dF92YWx1ZSA9IHZhbHVlX2NvcHkgKHYpOwot KwkgICAgfQotKwkgIGVsc2UKLSsJICAgICpvdXRfdmFsdWUgPSBjb252ZXJ0X3ZhbHVlX2Zyb21f cHl0aG9uIChyZXN1bHQpOwotKwkgIFB5X0RFQ1JFRiAocmVzdWx0KTsKLSsJfQotKyAgICB9Ci0r Ci0rICByZXR1cm4gb3V0cHV0OwotK30KLSsKLSsvKiBJbnN0YW50aWF0ZSBhIHByZXR0eS1wcmlu dGVyIGdpdmVuIGEgY29uc3RydWN0b3IsIENPTlMsIGFuZCBhCi0rICAgdmFsdWUsIFZBTC4gIFJl dHVybiBOVUxMIG9uIGVycm9yLiAgT3duZXJzaGlwIG9mIHRoZSBvYmplY3QKLSsgICBpbnN0YW5j ZSBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgcmVjaWV2ZXIgKi8KLStQeU9iamVjdCAqCi0rZ2RicHlf aW5zdGFudGlhdGVfcHJpbnRlciAoUHlPYmplY3QgKmNvbnMsIFB5T2JqZWN0ICp2YWx1ZSkKLSt7 Ci0rICBQeU9iamVjdCAqcmVzdWx0OwotKyAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9u T2JqQXJncyAoY29ucywgdmFsdWUsIE5VTEwpOwotKyAgcmV0dXJuIHJlc3VsdDsKLSt9Ci0rCi0g I2Vsc2UgLyogSEFWRV9QWVRIT04gKi8KLSAKLSAvKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgZ2RiICJweXRob24iIGNvbW1hbmQuICAqLwotQEAgLTUwMSw2ICs5MzgsMTMgQEAgZXZhbF9w eXRob25fZnJvbV9jb250cm9sX2NvbW1hbmQgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmNtZCkKK0BA IC01MDEsNiArNzk5LDEzIEBAIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1 Y3QgY29tbWFuZF9saW5lICpjbWQpCiAgICBlcnJvciAoXygiUHl0aG9uIHNjcmlwdGluZyBpcyBu b3Qgc3VwcG9ydGVkIGluIHRoaXMgY29weSBvZiBHREIuIikpOwogIH0KICAKQEAgLTE3MTQ5LDcg KzE3MzUwLDcgQEAgaW5kZXggMjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICAjZW5kaWYgLyogSEFW RV9QWVRIT04gKi8KICAKICAMCi1AQCAtNTkyLDEzICsxMDM2LDI3IEBAIEVuYWJsZXMgb3IgZGlz YWJsZXMgYXV0by1sb2FkaW5nIG9mIFB5dGhvbiBjb2RlIHdoZW4gYW4gb2JqZWN0IGlzIG9wZW5l ZC4iKSwKK0BAIC01OTIsMTMgKzg5NywyNyBAQCBFbmFibGVzIG9yIGRpc2FibGVzIGF1dG8tbG9h ZGluZyBvZiBQeXRob24gY29kZSB3aGVuIGFuIG9iamVjdCBpcyBvcGVuZWQuIiksCiAgICBQeU1v ZHVsZV9BZGRTdHJpbmdDb25zdGFudCAoZ2RiX21vZHVsZSwgIlZFUlNJT04iLCAoY2hhciopIHZl cnNpb24pOwogICAgUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQgKGdkYl9tb2R1bGUsICJIT1NU X0NPTkZJRyIsIChjaGFyKikgaG9zdF9uYW1lKTsKICAgIFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0 YW50IChnZGJfbW9kdWxlLCAiVEFSR0VUX0NPTkZJRyIsIChjaGFyKikgdGFyZ2V0X25hbWUpOwpA QCAtMTcxNzcsNyArMTczNzgsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAog ICAgUHlSdW5fU2ltcGxlU3RyaW5nICgiaW1wb3J0IGdkYiIpOwogICAgUHlSdW5fU2ltcGxlU3Ry aW5nICgiZ2RiLnByZXR0eV9wcmludGVycyA9IFtdIik7Ci1AQCAtNjM0LDYgKzEwOTIsMTUgQEAg Y2xhc3MgR2RiT3V0cHV0RmlsZTpcblwKK0BAIC02MzQsNiArOTUzLDE1IEBAIGNsYXNzIEdkYk91 dHB1dEZpbGU6XG5cCiAgXG5cCiAgc3lzLnN0ZGVyciA9IEdkYk91dHB1dEZpbGUoKVxuXAogIHN5 cy5zdGRvdXQgPSBHZGJPdXRwdXRGaWxlKClcblwKQEAgLTE3MTkzLDcgKzE3Mzk0LDcgQEAgaW5k ZXggMjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICAiKTsKICAKICAgIC8qIFJlbGVhc2UgdGhlIEdJ TCB3aGlsZSBnZGIgcnVucy4gICovCi1AQCAtNjUzLDkgKzExMjAsMTQgQEAgc3RhdGljIFB5TWV0 aG9kRGVmIEdkYk1ldGhvZHNbXSA9CitAQCAtNjUzLDkgKzk4MSwxNCBAQCBzdGF0aWMgUHlNZXRo b2REZWYgR2RiTWV0aG9kc1tdID0KICAgICAgIkdldCBhIHZhbHVlIGZyb20gaGlzdG9yeSIgfSwK ICAgIHsgImV4ZWN1dGUiLCBleGVjdXRlX2dkYl9jb21tYW5kLCBNRVRIX1ZBUkFSR1MsCiAgICAg ICJFeGVjdXRlIGEgZ2RiIGNvbW1hbmQiIH0sCkBAIC0xNzIwOCw3ICsxNzQwOSw3IEBAIGluZGV4 IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgICB7ICJkZWZhdWx0X3Zpc3VhbGl6ZXIiLCBnZGJw eV9kZWZhdWx0X3Zpc3VhbGl6ZXIsIE1FVEhfVkFSQVJHUywKICAgICAgIkZpbmQgdGhlIGRlZmF1 bHQgdmlzdWFsaXplciBmb3IgYSBWYWx1ZS4iIH0sCiAgCi1AQCAtNjc2LDYgKzExNDgsMzcgQEAg UmV0dXJuIGEgc3RyaW5nIGV4cGxhaW5pbmcgdW53aW5kIHN0b3AgcmVhc29uLiIgfSwKK0BAIC02 NzYsNiArMTAwOSwzNyBAQCBSZXR1cm4gYSBzdHJpbmcgZXhwbGFpbmluZyB1bndpbmQgc3RvcCBy ZWFzb24uIiB9LAogICAgICAibG9va3VwX3R5cGUgKG5hbWUgWywgYmxvY2tdKSAtPiB0eXBlXG5c CiAgUmV0dXJuIGEgVHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lLiIgfSwKICAK QEAgLTE3MjQ3LDE2ICsxNzQ0OCwxNSBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAog ICAgICAiV3JpdGUgYSBzdHJpbmcgdXNpbmcgZ2RiJ3MgZmlsdGVyZWQgc3RyZWFtLiIgfSwKICAg IHsgImZsdXNoIiwgZ2RicHlfZmx1c2gsIE1FVEhfTk9BUkdTLAogZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHl0aG9uLmggYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1pbmRleCAzM2IwNDM3Li5iNzYx YTY1IDEwMDY0NAoraW5kZXggMzNiMDQzNy4uYmJiNjE4NCAxMDA2NDQKIC0tLSBhL2dkYi9weXRo b24vcHl0aG9uLmgKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmgKLUBAIC0yMiwxMCArMjIsMTQg QEAKK0BAIC0yMiwxNCArMjIsMTggQEAKICAKICAjaW5jbHVkZSAidmFsdWUuaCIKICAKIC1leHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZXNfaW5fcHl0aG9uOwotK3ZvaWQgcHJlc2VydmVfcHl0aG9u X3ZhbHVlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGh0YWJfdCBjb3BpZWRfdHlwZXMpOwot IAorLQogIHZvaWQgZXZhbF9weXRob25fZnJvbV9jb250cm9sX2NvbW1hbmQgKHN0cnVjdCBjb21t YW5kX2xpbmUgKik7CiAgCiArdm9pZCBzb3VyY2VfcHl0aG9uX3NjcmlwdCAoRklMRSAqc3RyZWFt LCBjaGFyICpmaWxlKTsKQEAgLTE3MjY2LDYgKzE3NDY2LDEyIEBAIGluZGV4IDMzYjA0MzcuLmI3 NjFhNjUgMTAwNjQ0CiAgaW50IGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogIAkJCSAgICAgIGludCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5n dWFnZSk7CisgCisrdm9pZCBwcmVzZXJ2ZV9weXRob25fdmFsdWVzIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwgaHRhYl90IGNvcGllZF90eXBlcyk7CisrCisgI2VuZGlmIC8qIEdEQl9QWVRIT05f SCAqLwogZGlmZiAtLWdpdCBhL2dkYi9zY20tbGFuZy5jIGIvZ2RiL3NjbS1sYW5nLmMKIGluZGV4 IGRlMzQ4OTQuLjA3NTE4YjAgMTAwNjQ0CiAtLS0gYS9nZGIvc2NtLWxhbmcuYwpAQCAtMTczNTEs MTAgKzE3NTU3LDEwIEBAIGluZGV4IDZjZmFhODUuLjY4YWFkYzAgMTAwNjQ0CiAgCiAgZXh0ZXJu IGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliOyAvKiAtV21pc3Np bmctcHJvdG90eXBlcyAqLwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3NvbGliLmMK LWluZGV4IDE1N2FhYmEuLjRjMWIwZmIgMTAwNjQ0CitpbmRleCA1NjRhNTVjLi44Yzc1YjgxIDEw MDY0NAogLS0tIGEvZ2RiL3NvbGliLmMKICsrKyBiL2dkYi9zb2xpYi5jCi1AQCAtMTA3MiwxMyAr MTA3MiwxMiBAQCBzaG93X2F1dG9fc29saWJfYWRkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50 IGZyb21fdHR5LAorQEAgLTEwNjYsMTMgKzEwNjYsMTIgQEAgc2hvd19hdXRvX3NvbGliX2FkZCAo c3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKICBzdHJ1Y3Qgc3ltYm9sICoKICBz b2xpYl9nbG9iYWxfbG9va3VwIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAg ICAgY29uc3QgY2hhciAqbmFtZSwKQEAgLTE3NDkzLDcgKzE3Njk5LDcgQEAgaW5kZXggMWMzNzgw MS4uNTk0ZWIxNiAxMDA2NDQKICAJICBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKE5VTEwsIHN5 bSwgZnJhbWUsIHN0cmVhbSwgNCAqIG51bV90YWJzKTsKICAJICBicmVhazsKIGRpZmYgLS1naXQg YS9nZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZpbGUuYwotaW5kZXggMzY0ODBjMS4uNGRlYThkNyAx MDA2NDQKK2luZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltZmlsZS5j CiArKysgYi9nZGIvc3ltZmlsZS5jCiBAQCAtNTIsNyArNTIsNiBAQApAQCAtMTc1NzYsNyArMTc3 ODIsMTggQEAgaW5kZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKICAgICAgewogICAgICAgIHdy YXBfaGVyZSAoIiIpOwogICAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCIobm8gZGVidWdnaW5n IHN5bWJvbHMgZm91bmQpIikpOwotQEAgLTIzMzcsNyArMjM1OCw3IEBAIHJlcmVhZF9zeW1ib2xz ICh2b2lkKQorQEAgLTExNjYsNyArMTE4Nyw5IEBAIHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJv bV90dHkpCisgICAgICBkZXNjcmlwdG9ycyBhcyB3ZWxsLiAgKi8KKyAgIG5vX3NoYXJlZF9saWJy YXJpZXMgKE5VTEwsIGZyb21fdHR5KTsKKyAKKy0gIHN5bWZpbGVfb2JqZmlsZSA9IE5VTEw7Cisr ICAvKiBmcmVlX29iamZpbGUgc2hvdWxkIGhhdmUgY2xlYXJlZCBpdC4gICovCisrICBnZGJfYXNz ZXJ0IChzeW1maWxlX29iamZpbGUgPT0gTlVMTCk7CisrCisgICBpZiAoZnJvbV90dHkpCisgICAg IHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzeW1ib2wgZmlsZSBub3cuXG4iKSk7CisgfQorQEAg LTIzNDYsNyArMjM2OSw3IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAogIAkgICAgICAvKiBS ZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhpcyBvYmpmaWxlIGluIHRoZSBnbG9iYWwKICAJCSB2 YWx1ZSBsaXN0cy4gICovCkBAIC0xNzU4NSw3ICsxNzgwMiw3IEBAIGluZGV4IDM2NDgwYzEuLjRk ZWE4ZDcgMTAwNjQ0CiAgCiAgCSAgICAgIC8qIE51a2UgYWxsIHRoZSBzdGF0ZSB0aGF0IHdlIHdp bGwgcmUtcmVhZC4gIE11Y2ggb2YgdGhlIGZvbGxvd2luZwogIAkgICAgICAgICBjb2RlIHdoaWNo IHNldHMgdGhpbmdzIHRvIE5VTEwgcmVhbGx5IGlzIG5lY2Vzc2FyeSB0byB0ZWxsCi1AQCAtMjQy NSwxMyArMjQ0NiwxNSBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yNDM0LDEzICsyNDU3 LDE1IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAkgICAgICAgICB6ZXJvIGlzIE9LIHNpbmNl IGRieHJlYWQuYyBhbHNvIGRvZXMgd2hhdCBpdCBuZWVkcyB0byBkbyBpZgogIAkgICAgICAgICBv YmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMuc2l6ZSBpcyAwLiAgKi8KICAJICAgICAgKCpvYmpmaWxl LT5zZi0+c3ltX3JlYWQpIChvYmpmaWxlLCAwKTsKQEAgLTE3NjAyLDcgKzE3ODE5LDcgQEAgaW5k ZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKICAJICAgICAgLyogV2UncmUgZG9uZSByZWFkaW5n IHRoZSBzeW1ib2wgZmlsZTsgZmluaXNoIG9mZiBjb21wbGFpbnRzLiAgKi8KICAJICAgICAgY2xl YXJfY29tcGxhaW50cyAoJnN5bWZpbGVfY29tcGxhaW50cywgMCwgMSk7CiAgCi1AQCAtMjQ0MCw2 ICsyNDYzLDkgQEAgcmVyZWFkX3N5bWJvbHMgKHZvaWQpCitAQCAtMjQ0OSw2ICsyNDc0LDkgQEAg cmVyZWFkX3N5bWJvbHMgKHZvaWQpCiAgCiAgCSAgICAgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsK ICAKQEAgLTE3NjEyLDcgKzE3ODI5LDcgQEAgaW5kZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQK ICAJICAgICAgLyogRGlzY2FyZCBjbGVhbnVwcyBhcyBzeW1ib2wgcmVhZGluZyB3YXMgc3VjY2Vz c2Z1bC4gICovCiAgCSAgICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7CiAgCi1A QCAtMjcyOSw3ICsyNzU1LDcgQEAgYWxsb2NhdGVfc3ltdGFiIChjaGFyICpmaWxlbmFtZSwgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMjczOCw3ICsyNzY2LDcgQEAgYWxsb2NhdGVfc3lt dGFiIChjaGFyICpmaWxlbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgfQogIAogIHN0 cnVjdCBwYXJ0aWFsX3N5bXRhYiAqCkBAIC0xNzYyMSw3ICsxNzgzOCw3IEBAIGluZGV4IDM2NDgw YzEuLjRkZWE4ZDcgMTAwNjQ0CiAgewogICAgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3ltdGFi OwogIAotQEAgLTI4MjAsMTAgKzI4NDYsNiBAQCBjbGVhcl9zeW10YWJfdXNlcnMgKHZvaWQpCitA QCAtMjgyOSwxMCArMjg1Nyw2IEBAIGNsZWFyX3N5bXRhYl91c2VycyAodm9pZCkKICAgICAgIGJl dHdlZW4gZXhwcmVzc2lvbnMgYW5kIHdoaWNoIG91Z2h0IHRvIGJlIHJlc2V0IGVhY2ggdGltZS4g ICovCiAgICBleHByZXNzaW9uX2NvbnRleHRfYmxvY2sgPSBOVUxMOwogICAgaW5uZXJtb3N0X2Js b2NrID0gTlVMTDsKQEAgLTE3NjMyLDcgKzE3ODQ5LDcgQEAgaW5kZXggMzY0ODBjMS4uNGRlYThk NyAxMDA2NDQKICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0zMDQzLDcgKzMwNjUsOCBAQCBhZ2Fp bjI6CitAQCAtMzA1Miw3ICszMDc2LDggQEAgYWdhaW4yOgogIAogIHN0cnVjdCBwYXJ0aWFsX3N5 bXRhYiAqCiAgc3RhcnRfcHN5bXRhYl9jb21tb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApA QCAtMTc3MDksNyArMTc5MjYsNyBAQCBpbmRleCBlYjM1MzY5Li5kZmQ4YzhjIDEwMDY0NAogIAkg IHsKICAJICAgIHByaW50Zl9maWx0ZXJlZCAoIkdsb2JhbCBzeW1ib2wgYCIpOwogZGlmZiAtLWdp dCBhL2dkYi9zeW10YWIuYyBiL2dkYi9zeW10YWIuYwotaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAx MDA2NDQKK2luZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltdGFiLmMK ICsrKyBiL2dkYi9zeW10YWIuYwogQEAgLTQyLDYgKzQyLDcgQEAKQEAgLTE3OTQ5LDcgKzE4MTY2 LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgIGlmIChzeW0gIT0gTlVMTCkK ICAgICAgcmV0dXJuIHN5bTsKICAKLUBAIC0xMzY0LDMwICsxMzUyLDc5IEBAIGxvb2t1cF9zeW1i b2xfYXV4IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdlX25hbWUsCitAQCAt MTM2NCwzMCArMTM1Miw4MSBAQCBsb29rdXBfc3ltYm9sX2F1eCAoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAogICAgIERvbid0IHNlYXJjaCBTVEFUSUNfQkxPQ0sg b3IgR0xPQkFMX0JMT0NLLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCkBAIC0xNzk2 Nyw3ICsxODE4NCw2IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiArICBjb25zdCBz dHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ2RlZjsKICsKICsgIGxhbmdkZWYgPSBsYW5ndWFnZV9k ZWYgKGxhbmd1YWdlKTsKLSsKICAKICAgIC8qIENoZWNrIGlmIGVpdGhlciBubyBibG9jayBpcyBz cGVjaWZpZWQgb3IgaXQncyBhIGdsb2JhbCBibG9jay4gICovCiAgCkBAIC0xNzk5MSw4ICsxODIw Nyw4IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiArICAgIAogKyAgICAgIGlmIChs YW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cyApCiArICAgICAgICB7Ci0rICAgICAgICAgIHN5bSA9 IGxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUobmFtZSwgYmxvY2ssZG9tYWluLAotKwkJCQkgICAgICAg YmxvY2tfc2NvcGUgKGJsb2NrX2l0ZXJhdG9yKSwgMCwgMSk7CisrICAgICAgICAgIHN5bSA9IGNw X2xvb2t1cF9zeW1ib2xfaW1wb3J0cyAoYmxvY2tfc2NvcGUgKGJsb2NrX2l0ZXJhdG9yKSwgbmFt ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19pdGVy YXRvciwgZG9tYWluLCAxKTsKICsKICsgICAgICAgICAgaWYgKHN5bSAhPSBOVUxMKQogKyAgICAg ICAgICAgIHJldHVybiBzeW07CkBAIC0xODAzMyw2ICsxODI0OSw5IEBAIGluZGV4IGM4ODE1NmEu LjU2N2ZhMDcgMTAwNjQ0CiArICAgICAgICAgICAgfQogKyAgICAgICAgfQogKworKyAgICAgIGlm IChCTE9DS19GVU5DVElPTiAoYmxvY2tfaXRlcmF0b3IpICE9IE5VTEwgJiYgYmxvY2tfaW5saW5l ZF9wIChibG9ja19pdGVyYXRvcikpCisrICAgICAgICBicmVhazsKKysKICsgICAgICBibG9ja19p dGVyYXRvciA9IEJMT0NLX1NVUEVSQkxPQ0sgKGJsb2NrX2l0ZXJhdG9yKTsKICAgICAgfQogIApA QCAtMTgwNDEsNyArMTgyNjAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAog ICAgcmV0dXJuIE5VTEw7CiAgfQotQEAgLTE0MTYsMTMgKzE0NTMsMTIgQEAgbG9va3VwX29iamZp bGVfZnJvbV9ibG9jayAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaykKK0BAIC0xNDE2LDEzICsx NDU1LDEyIEBAIGxvb2t1cF9vYmpmaWxlX2Zyb21fYmxvY2sgKGNvbnN0IHN0cnVjdCBibG9jayAq YmxvY2spCiAgICAgYmxvY2tfZm91bmQgYXBwcm9wcmlhdGVseS4gICovCiAgCiAgc3RydWN0IHN5 bWJvbCAqCkBAIC0xODA1Nyw3ICsxODI3Niw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAw NjQ0CiAgICBpZiAoc3ltKQogICAgICB7CiAgICAgICAgYmxvY2tfZm91bmQgPSBibG9jazsKLUBA IC0xNDM4LDcgKzE0NzQsNiBAQCBsb29rdXBfc3ltYm9sX2F1eF9ibG9jayAoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAorQEAgLTE0MzgsNyArMTQ3Niw2IEBAIGxv b2t1cF9zeW1ib2xfYXV4X2Jsb2NrIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5r YWdlX25hbWUsCiAgc3RydWN0IHN5bWJvbCAqCiAgbG9va3VwX2dsb2JhbF9zeW1ib2xfZnJvbV9v YmpmaWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCQkJICAgY29uc3QgY2hh ciAqbmFtZSwKQEAgLTE4MDY1LDcgKzE4Mjg0LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAx MDA2NDQKICAJCQkJICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKQogIHsKICAgIHN0cnVjdCBz eW1ib2wgKnN5bTsKLUBAIC0xNDUyLDcgKzE0ODcsNyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9m cm9tX29iamZpbGUgKGNvbnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0NTIsNyAr MTQ4OSw3IEBAIGxvb2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUsCiAgICB7CiAgICAgIGJ2ID0gQkxPQ0tWRUNUT1IgKHMpOwogICAg ICBibG9jayA9IEJMT0NLVkVDVE9SX0JMT0NLIChidiwgR0xPQkFMX0JMT0NLKTsKQEAgLTE4MDc0 LDcgKzE4MjkzLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgICAgaWYgKHN5 bSkKICAgICAgICB7CiAgCWJsb2NrX2ZvdW5kID0gYmxvY2s7Ci1AQCAtMTQ2MSwyMyArMTQ5Niwy MyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUgKGNvbnN0IHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAorQEAgLTE0NjEsMjMgKzE0OTgsMjMgQEAgbG9va3VwX2dsb2JhbF9zeW1i b2xfZnJvbV9vYmpmaWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIH0KICAK ICAgIC8qIE5vdyBnbyB0aHJvdWdoIHBzeW10YWJzLiAgKi8KQEAgLTE4MTAyLDcgKzE4MzIxLDcg QEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAKICAgIHJldHVybiBOVUxMOwogIH0K LUBAIC0xNDg4LDggKzE1MjMsNyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUg KGNvbnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0ODgsOCArMTUyNSw3IEBAIGxv b2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCiAgICAgc3RhdGljIHN5bWJvbHMuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9s ICoKQEAgLTE4MTEyLDcgKzE4MzMxLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQK ICAJCQkgICBjb25zdCBkb21haW5fZW51bSBkb21haW4pCiAgewogICAgc3RydWN0IHN5bWJvbCAq c3ltOwotQEAgLTE1MDIsNyArMTUzNiw3IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3N5bXRhYnMgKGlu dCBibG9ja19pbmRleCwKK0BAIC0xNTAyLDcgKzE1MzgsNyBAQCBsb29rdXBfc3ltYm9sX2F1eF9z eW10YWJzIChpbnQgYmxvY2tfaW5kZXgsCiAgICB7CiAgICAgIGJ2ID0gQkxPQ0tWRUNUT1IgKHMp OwogICAgICBibG9jayA9IEJMT0NLVkVDVE9SX0JMT0NLIChidiwgYmxvY2tfaW5kZXgpOwpAQCAt MTgxMjEsNyArMTgzNDAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogICAgICBp ZiAoc3ltKQogICAgICAgIHsKICAJYmxvY2tfZm91bmQgPSBibG9jazsKLUBAIC0xNTIwLDcgKzE1 NTQsNiBAQCBsb29rdXBfc3ltYm9sX2F1eF9zeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsCitAQCAt MTUyMCw3ICsxNTU2LDYgQEAgbG9va3VwX3N5bWJvbF9hdXhfc3ltdGFicyAoaW50IGJsb2NrX2lu ZGV4LAogIAogIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICoKICBsb29rdXBfc3ltYm9sX2F1eF9wc3lt dGFicyAoaW50IGJsb2NrX2luZGV4LCBjb25zdCBjaGFyICpuYW1lLApAQCAtMTgxMjksNyArMTgz NDgsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAkJCSAgICBjb25zdCBkb21h aW5fZW51bSBkb21haW4pCiAgewogICAgc3RydWN0IHN5bWJvbCAqc3ltOwotQEAgLTE1MzEsMTYg KzE1NjQsMTUgQEAgbG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwg Y29uc3QgY2hhciAqbmFtZSwKK0BAIC0xNTMxLDE2ICsxNTY2LDE1IEBAIGxvb2t1cF9zeW1ib2xf YXV4X3BzeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICBzdHJ1 Y3Qgc3ltdGFiICpzOwogICAgY29uc3QgaW50IHBzeW10YWJfaW5kZXggPSAoYmxvY2tfaW5kZXgg PT0gR0xPQkFMX0JMT0NLID8gMSA6IDApOwogIApAQCAtMTgxNDksNyArMTgzNjgsNyBAQCBpbmRl eCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAlpZiAoIXN5bSkKICAJICB7CiAgCSAgICAvKiBU aGlzIHNob3VsZG4ndCBiZSBuZWNlc3NhcnksIGJ1dCBhcyBhIGxhc3QgcmVzb3J0IHRyeQotQEAg LTE1NTcsNyArMTU4OSw3IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJzIChpbnQgYmxvY2tf aW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTU1Nyw3ICsxNTkxLDcgQEAgbG9va3VwX3N5 bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAqbmFtZSwKICAJ ICAgIGJsb2NrID0gQkxPQ0tWRUNUT1JfQkxPQ0sgKGJ2LAogIAkJCQkgICAgICAgYmxvY2tfaW5k ZXggPT0gR0xPQkFMX0JMT0NLID8KICAJCQkJICAgICAgIFNUQVRJQ19CTE9DSyA6IEdMT0JBTF9C TE9DSyk7CkBAIC0xODE1OCw3ICsxODM3Nyw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAw NjQ0CiAgCSAgICBpZiAoIXN5bSkKICAJICAgICAgZXJyb3IgKF8oIkludGVybmFsOiAlcyBzeW1i b2wgYCVzJyBmb3VuZCBpbiAlcyBwc3ltdGFiIGJ1dCBub3QgaW4gc3ltdGFiLlxuJXMgbWF5IGJl IGFuIGlubGluZWQgZnVuY3Rpb24sIG9yIG1heSBiZSBhIHRlbXBsYXRlIGZ1bmN0aW9uXG4oaWYg YSB0ZW1wbGF0ZSwgdHJ5IHNwZWNpZnlpbmcgYW4gaW5zdGFudGlhdGlvbjogJXM8dHlwZT4pLiIp LAogIAkJICAgICBibG9ja19pbmRleCA9PSBHTE9CQUxfQkxPQ0sgPyAiZ2xvYmFsIiA6ICJzdGF0 aWMiLAotQEAgLTE1NzYsNyArMTYwOCw2IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJzIChp bnQgYmxvY2tfaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTU3Niw3ICsxNjEwLDYgQEAg bG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAq bmFtZSwKICAKICBzdHJ1Y3Qgc3ltYm9sICoKICBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2Fs IChjb25zdCBjaGFyICpuYW1lLApAQCAtMTgxNjYsNyArMTgzODUsNyBAQCBpbmRleCBjODgxNTZh Li41NjdmYTA3IDEwMDY0NAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAg CQkJICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKQogIHsKLUBAIC0xNjEwLDExICsxNjQx LDExIEBAIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCitA QCAtMTYxMCwxMSArMTY0MywxMSBAQCBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25z dCBjaGFyICpuYW1lLAogICAgICAgdGhhbiB0aGF0IG9uZSwgc28gSSBkb24ndCB0aGluayB3ZSBz aG91bGQgd29ycnkgYWJvdXQgdGhhdCBmb3IKICAgICAgIG5vdy4gICovCiAgCkBAIC0xODE4MCw3 ICsxODM5OSw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgfQogIAogIC8qIExv b2t1cCBhIHN5bWJvbCBpbiB0aGUgc3RhdGljIGJsb2NrIGFzc29jaWF0ZWQgdG8gQkxPQ0ssIGlm IHRoZXJlCi1AQCAtMTYyMiwxNCArMTY1MywxMyBAQCBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxv Y2FsIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTE2MjIsMTQgKzE2NTUsMTMgQEAgYmFzaWNfbG9v a3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKICAKICBzdHJ1Y3Qgc3ltYm9s ICoKICBsb29rdXBfc3ltYm9sX3N0YXRpYyAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTE4MTk2LDcg KzE4NDE1LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgIGVsc2UKICAgICAg cmV0dXJuIE5VTEw7CiAgfQotQEAgLTE2MzksNyArMTY2OSw2IEBAIGxvb2t1cF9zeW1ib2xfc3Rh dGljIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTE2MzksNyArMTY3MSw2IEBAIGxvb2t1cF9zeW1i b2xfc3RhdGljIChjb25zdCBjaGFyICpuYW1lLAogIAogIHN0cnVjdCBzeW1ib2wgKgogIGxvb2t1 cF9zeW1ib2xfZ2xvYmFsIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTgyMDQsNyArMTg0MjMsNyBA QCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAkJICAgICAgY29uc3Qgc3RydWN0IGJs b2NrICpibG9jaywKICAJCSAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICB7Ci1AQCAt MTY0OSwxNSArMTY3OCwxNSBAQCBsb29rdXBfc3ltYm9sX2dsb2JhbCAoY29uc3QgY2hhciAqbmFt ZSwKK0BAIC0xNjQ5LDE1ICsxNjgwLDE1IEBAIGxvb2t1cF9zeW1ib2xfZ2xvYmFsIChjb25zdCBj aGFyICpuYW1lLAogICAgLyogQ2FsbCBsaWJyYXJ5LXNwZWNpZmljIGxvb2t1cCBwcm9jZWR1cmUu ICAqLwogICAgb2JqZmlsZSA9IGxvb2t1cF9vYmpmaWxlX2Zyb21fYmxvY2sgKGJsb2NrKTsKICAg IGlmIChvYmpmaWxlICE9IE5VTEwpCkBAIC0xODIyMyw3ICsxODQ0Miw3IEBAIGluZGV4IGM4ODE1 NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgfQogIAogIGludAotQEAgLTE2ODEsMTQgKzE3MTAsMTEgQEAg c3ltYm9sX21hdGNoZXNfZG9tYWluIChlbnVtIGxhbmd1YWdlIHN5bWJvbF9sYW5ndWFnZSwKK0BA IC0xNjgxLDE0ICsxNzEyLDExIEBAIHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoZW51bSBsYW5ndWFn ZSBzeW1ib2xfbGFuZ3VhZ2UsCiAgfQogIAogIC8qIExvb2ssIGluIHBhcnRpYWxfc3ltdGFiIFBT VCwgZm9yIHN5bWJvbCB3aG9zZSBuYXR1cmFsIG5hbWUgaXMgTkFNRS4KQEAgLTE4MjQwLDcgKzE4 NDU5LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgcGFy dGlhbF9zeW1ib2wgKnRlbXA7CiAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKipzdGFydCwgKipw c3ltOwotQEAgLTE3NDAsOSArMTc2Niw3IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfc3ltdGFiICpwc3QsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTc0MCw5ICsxNzY4 LDcgQEAgbG9va3VwX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwg Y29uc3QgY2hhciAqbmFtZSwKICAJaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywg XygiZmFpbGVkIGludGVybmFsIGNvbnNpc3RlbmN5IGNoZWNrIikpOwogIAogICAgICAgIHdoaWxl ICh0b3AgPD0gcmVhbF90b3AKQEAgLTE4MjUxLDcgKzE4NDcwLDcgQEAgaW5kZXggYzg4MTU2YS4u NTY3ZmEwNyAxMDA2NDQKICAJewogIAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4gKFNZTUJP TF9MQU5HVUFHRSAoKnRvcCksCiAgCQkJCSAgICAgU1lNQk9MX0RPTUFJTiAoKnRvcCksIGRvbWFp bikpCi1AQCAtMTc1OSwxNSArMTc4Myw5IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfc3ltdGFiICpwc3QsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTc1OSwxNSArMTc4 NSw5IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3Qs IGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgZm9yIChwc3ltID0gc3RhcnQ7IHBzeW0gPCBzdGFy dCArIGxlbmd0aDsgcHN5bSsrKQogIAl7CiAgCSAgaWYgKHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAo U1lNQk9MX0xBTkdVQUdFICgqcHN5bSksCkBAIC0xODI3MCw3ICsxODQ4OSw3IEBAIGluZGV4IGM4 ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTE4MDksMjIgKzE4Mjcs MjUgQEAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUgKGNvbnN0IGNoYXIgKm5hbWUpCitA QCAtMTgwOSwyMiArMTgyOSwyNSBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29u c3QgY2hhciAqbmFtZSkKICAgIHsKICAgICAgYnYgPSBCTE9DS1ZFQ1RPUiAocyk7CiAgICAgIGJs b2NrID0gQkxPQ0tWRUNUT1JfQkxPQ0sgKGJ2LCBHTE9CQUxfQkxPQ0spOwpAQCAtMTgzMDEsNyAr MTg1MjAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAlpZiAoIXN5bSkKICAJ ICB7CiAgCSAgICAvKiBUaGlzIHNob3VsZG4ndCBiZSBuZWNlc3NhcnksIGJ1dCBhcyBhIGxhc3Qg cmVzb3J0Ci1AQCAtMTgzMyw3ICsxODU0LDcgQEAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50X3R5 cGUgKGNvbnN0IGNoYXIgKm5hbWUpCitAQCAtMTgzMyw3ICsxODU2LDcgQEAgYmFzaWNfbG9va3Vw X3RyYW5zcGFyZW50X3R5cGUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgCSAgICAgKiB0aGUgcHN5bXRh YiBnZXRzIGl0IHdyb25nIGluIHNvbWUgY2FzZXMuCiAgCSAgICAgKi8KICAJICAgIGJsb2NrID0g QkxPQ0tWRUNUT1JfQkxPQ0sgKGJ2LCBTVEFUSUNfQkxPQ0spOwpAQCAtMTgzMTAsNyArMTg1Mjks NyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAkgICAgaWYgKCFzeW0pCiAgCSAg ICAgIGVycm9yIChfKCJJbnRlcm5hbDogZ2xvYmFsIHN5bWJvbCBgJXMnIGZvdW5kIGluICVzIHBz eW10YWIgYnV0IG5vdCBpbiBzeW10YWIuXG5cCiAgJXMgbWF5IGJlIGFuIGlubGluZWQgZnVuY3Rp b24sIG9yIG1heSBiZSBhIHRlbXBsYXRlIGZ1bmN0aW9uXG5cCi1AQCAtMTg1NywyMSArMTg3OCwy NiBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFtZSkKK0BA IC0xODU3LDIxICsxODgwLDI2IEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChjb25z dCBjaGFyICpuYW1lKQogICAgewogICAgICBidiA9IEJMT0NLVkVDVE9SIChzKTsKICAgICAgYmxv Y2sgPSBCTE9DS1ZFQ1RPUl9CTE9DSyAoYnYsIFNUQVRJQ19CTE9DSyk7CkBAIC0xODM0MSw3ICsx ODU2MCw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCWlmICghc3ltKQogIAkg IHsKICAJICAgIC8qIFRoaXMgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSwgYnV0IGFzIGEgbGFzdCBy ZXNvcnQKLUBAIC0xODgwLDcgKzE5MDYsNyBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlw ZSAoY29uc3QgY2hhciAqbmFtZSkKK0BAIC0xODgwLDcgKzE5MDgsNyBAQCBiYXNpY19sb29rdXBf dHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFtZSkKICAJICAgICAqIHRoZSBwc3ltdGFi IGdldHMgaXQgd3JvbmcgaW4gc29tZSBjYXNlcy4KICAJICAgICAqLwogIAkgICAgYmxvY2sgPSBC TE9DS1ZFQ1RPUl9CTE9DSyAoYnYsIEdMT0JBTF9CTE9DSyk7CkBAIC0xODM1MCw3ICsxODU2OSw3 IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCSAgICBpZiAoIXN5bSkKICAJICAg ICAgZXJyb3IgKF8oIkludGVybmFsOiBzdGF0aWMgc3ltYm9sIGAlcycgZm91bmQgaW4gJXMgcHN5 bXRhYiBidXQgbm90IGluIHN5bXRhYi5cblwKICAlcyBtYXkgYmUgYW4gaW5saW5lZCBmdW5jdGlv biwgb3IgbWF5IGJlIGEgdGVtcGxhdGUgZnVuY3Rpb25cblwKLUBAIC0xOTA1LDkgKzE5MzEsMjMg QEAgZmluZF9tYWluX3BzeW10YWIgKHZvaWQpCitAQCAtMTkwNSw5ICsxOTMzLDIzIEBAIGZpbmRf bWFpbl9wc3ltdGFiICh2b2lkKQogICAgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3Q7CiAgICBz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsKICAKQEAgLTE4Mzc2LDcgKzE4NTk1LDcgQEAgaW5kZXgg Yzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgICAgICB7CiAgCXJldHVybiAocHN0KTsKICAgICAg ICB9Ci1AQCAtMTkyNSwxNCArMTk2NSwxMCBAQCBmaW5kX21haW5fcHN5bXRhYiAodm9pZCkKK0BA IC0xOTI1LDE0ICsxOTY3LDEwIEBAIGZpbmRfbWFpbl9wc3ltdGFiICh2b2lkKQogICAgIHNlYXJj aCBvbiB0aGUgc3ltYm9scy4gIEVhY2ggc3ltYm9sIHdoaWNoIGlzIG1hcmtlZCBhcyBiZWluZyBh IE9iakMvQysrCiAgICAgc3ltYm9sIChsYW5ndWFnZV9jcGx1cyBvciBsYW5ndWFnZV9vYmpjIHNl dCkgaGFzIGJvdGggdGhlIGVuY29kZWQgYW5kCiAgICAgbm9uLWVuY29kZWQgbmFtZXMgdGVzdGVk IGZvciBhIG1hdGNoLgpAQCAtMTgzOTEsNyArMTg2MTAsNyBAQCBpbmRleCBjODgxNTZhLi41Njdm YTA3IDEwMDY0NAogIAkJICAgICBjb25zdCBkb21haW5fZW51bSBkb21haW4pCiAgewogICAgc3Ry dWN0IGRpY3RfaXRlcmF0b3IgaXRlcjsKLUBAIC0xOTQ1LDkgKzE5ODEsNyBAQCBsb29rdXBfYmxv Y2tfc3ltYm9sIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLCBjb25zdCBjaGFyICpuYW1lLAor QEAgLTE5NDUsOSArMTk4Myw3IEBAIGxvb2t1cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0cnVjdCBi bG9jayAqYmxvY2ssIGNvbnN0IGNoYXIgKm5hbWUsCiAgCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1l X25leHQgKG5hbWUsICZpdGVyKSkKICAJewogIAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4g KFNZTUJPTF9MQU5HVUFHRSAoc3ltKSwKQEAgLTE4NDAyLDcgKzE4NjIxLDcgQEAgaW5kZXggYzg4 MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAJICAgIHJldHVybiBzeW07CiAgCX0KICAgICAgICByZXR1 cm4gTlVMTDsKLUBAIC0xOTY3LDkgKzIwMDEsNyBAQCBsb29rdXBfYmxvY2tfc3ltYm9sIChjb25z dCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLCBjb25zdCBjaGFyICpuYW1lLAorQEAgLTE5NjcsOSArMjAw Myw3IEBAIGxvb2t1cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssIGNv bnN0IGNoYXIgKm5hbWUsCiAgCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1lX25leHQgKG5hbWUsICZp dGVyKSkKICAJewogIAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4gKFNZTUJPTF9MQU5HVUFH RSAoc3ltKSwKQEAgLTE4NDEzLDcgKzE4NjMyLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAx MDA2NDQKICAJICAgIHsKICAJICAgICAgc3ltX2ZvdW5kID0gc3ltOwogIAkgICAgICBpZiAoIVNZ TUJPTF9JU19BUkdVTUVOVCAoc3ltKSkKLUBAIC0zMTcyLDcgKzMyMDQsNyBAQCBzZWFyY2hfc3lt Ym9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51bSBraW5kLCBpbnQgbmZpbGVzLCBjaGFyICpm aWxlc1tdLAorQEAgLTMxNzIsNyArMzIwNiw3IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdl eHAsIGRvbWFpbl9lbnVtIGtpbmQsIGludCBuZmlsZXMsIGNoYXIgKmZpbGVzW10sCiAgICAgICBt YXRjaGluZyB0aGUgcmVnZXhwLiAgVGhhdCB3YXkgd2UgZG9uJ3QgaGF2ZSB0byByZXByb2R1Y2Ug YWxsIG9mCiAgICAgICB0aGUgbWFjaGluZXJ5IGJlbG93LiAqLwogIApAQCAtMTg1NTIsMTAgKzE4 NzcxLDEwIEBAIGluZGV4IDJjNzQzZTkuLmVmMjk2MTAgMTAwNjQ0CiAgLyogU3R1ZmYgdGhhdCBz aG91bGQgYmUgc2hhcmVkIGFtb25nIHRoZSB2YXJpb3VzIHJlbW90ZSB0YXJnZXRzLiAgKi8KICAK IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCi1pbmRleCBkMWUzOGYzLi5jNzUxMWNjIDEwMDY0NAoraW5kZXggNzk5M2FjNS4uMTgx Yjc1MiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCiArKysgYi9nZGIvdGVz dHN1aXRlL0NoYW5nZUxvZwotQEAgLTEyNTIsNiArMTI1MiwxMDMgQEAKK0BAIC0xMjYzLDYgKzEy NjMsMTAzIEBACiAgCWdkYl9zdGFydF9jbWQuCiAgCVVzZSBydW50b19tYWluIGJlZm9yZSBhbnkg dGVzdCB0aGF0IHJlcXVpcmVzIGV4ZWN1dGlvbi4KICAKQEAgLTE5NDY1LDcgKzE5Njg0LDcgQEAg aW5kZXggMDAwMDAwMC4uYjgwOWM0ZQogKyNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAuLjUzNDEyMGEKK2luZGV4IDAwMDAwMDAuLmIwNTQxMWUKIC0tLSAvZGV2L251bGwKICsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogQEAgLTAs MCArMSw2NCBAQApAQCAtMTk1MjMsMTAgKzE5NzQyLDEwIEBAIGluZGV4IDAwMDAwMDAuLjUzNDEy MGEKICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbMjZcXFxdIiAi Zmlyc3Q6IHB0eXBlIGFycmF5IgogKwotK2dkYl90ZXN0ICJwIGFycmF5XFsxXF0iICJcXCRcWzAt OVxdID0gMSAnXFxcXDEnIgotK2dkYl90ZXN0ICJwIGFycmF5XFsyXF0iICJcXCRcWzAtOVxdID0g MiAnXFxcXDInIgotK2dkYl90ZXN0ICJwIGFycmF5XFszXF0iICJcXCRcWzAtOVxdID0gMyAnXFxc XDMnIgotK2dkYl90ZXN0ICJwIGFycmF5XFs0XF0iICJcXCRcWzAtOVxdID0gNCAnXFxcXDQnIgor K2dkYl90ZXN0ICJwIGFycmF5XFsxXF0iICJcXCRcWzAtOVxdID0gMSAnXFxcXDAwMSciCisrZ2Ri X3Rlc3QgInAgYXJyYXlcWzJcXSIgIlxcJFxbMC05XF0gPSAyICdcXFxcMDAyJyIKKytnZGJfdGVz dCAicCBhcnJheVxbM1xdIiAiXFwkXFswLTlcXSA9IDMgJ1xcXFwwMDMnIgorK2dkYl90ZXN0ICJw IGFycmF5XFs0XF0iICJcXCRcWzAtOVxdID0gNCAnXFxcXDAwNCciCiArCiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgImJyZWFrX2hlcmUiCiArCkBAIC0yMDk4OCw0OSArMjEyMDcsMTMxIEBA IGluZGV4IDAwMDAwMDAuLmU1MDgxMDMKICtnZGJfdGVzdCAicHJpbnQgX2EiICI9IDExIgogK2dk Yl90ZXN0ICJwcmludCBhYiIgIj0gMjIiCiArZ2RiX3Rlc3QgInByaW50IGFiYyIgIj0gMzMiCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjCi1pbmRleCA0Nzg2ZmQ1Li44ZmY1 NjIyIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNj Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtdXNpbmcuY2MKLUBAIC0xLDI2 ICsxLDEyOSBAQAotK25hbWVzcGFjZSBNCi0rewotKyAgaW50IHggPSA5MTE7CitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5jYyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi5jYjcxMmZhCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZlLmNjCitAQCAtMCwwICsxLDE2IEBACisrbmFt ZXNwYWNlIEF7CisrICBpbnQgYXggPSA5OwogK30KICsKLStuYW1lc3BhY2UgTgotK3sKLSsgIGlu dCB4ID0gOTEyOworK25hbWVzcGFjZSBCeworKyAgdXNpbmcgbmFtZXNwYWNlIEE7CiArfQogKwot K2ludCBtYXJrZXIxMCAoKQotK3sKLSsgIHVzaW5nIG5hbWVzcGFjZSBNOwotKyAgaW50IHkgPSB4 ICsgMTsgICAgICAgLy8gbWFya2VyMTAgc3RvcAotKyAgdXNpbmcgbmFtZXNwYWNlIE47Ci0rICBy ZXR1cm4geTsKKytuYW1lc3BhY2UgQ3sKKysgIHVzaW5nIG5hbWVzcGFjZSBCOwogK30KICsKLStu YW1lc3BhY2UgSgotK3sKLSsgIGludCBqeCA9IDQ0OworK2ludCBtYWluKCl7CisrICB1c2luZyBu YW1lc3BhY2UgQzsKKysgIHJldHVybiBheDsKICt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZl LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuZXhwCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNGU2YWQyMAorLS0tIC9kZXYvbnVsbAor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5leHAKK0BAIC0w LDAgKzEsNTMgQEAKKysjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwotK25hbWVzcGFjZSBLCi0rewotKyAgaW50Ci0rICBtYXJrZXI5ICgpCi0rICB7Ci0r ICAgIC8veDsKLSsgICAgcmV0dXJuIG1hcmtlcjEwICgpOwotKyAgfQorKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKysKKytpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKysgICAgc3RyYWNlICR0 cmFjZWxldmVsCiArfQogKwotK25hbWVzcGFjZSBMCi0rewotKyAgdXNpbmcgbmFtZXNwYWNlIEo7 Ci0rICBpbnQKLSsgIG1hcmtlcjggKCkKKytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAwCisr Cisrc2V0IHRlc3RmaWxlIG5hbWVzcGFjZS1yZWN1cnNpdmUKKytzZXQgc3JjZmlsZSAke3Rlc3Rm aWxlfS5jYworK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytp ZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7Ymlu ZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAi Q291bGRuJ3QgY29tcGlsZSB0ZXN0IHByb2dyYW0iCisrICAgIHJldHVybiAtMQorK30KKysKKytp ZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHtiaW5maWxlfV0geworKyAgICByZXR1cm4gLTE7CisrfQor KworKworKyMgR2V0IHRoaW5ncyBzdGFydGVkLgorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0Cisr Z2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxl fQorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyB0 ZXN0IHByaW50aW5nIG9mIG5hbWVzcGFjZSBpbXBvcnRlZCB3aXRoaW4KKysjIHRoZSBmdW5jdGlv bi4KKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1 biB0byBicmVha3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVlCisrfQorKworK3NldHVwX3hmYWls ICotKi0qCisrZ2RiX3Rlc3QgInByaW50IGF4IiAiPSA5IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25h bWVzcGFjZS11c2luZy5jYworaW5kZXggNDc4NmZkNS4uOGZmNTYyMiAxMDA2NDQKKy0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5jYworKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjCitAQCAtMSwyNiArMSwxMjkgQEAKKytuYW1lc3Bh Y2UgTQorK3sKKysgIGludCB4ID0gOTExOworK30KKysKKytuYW1lc3BhY2UgTgorK3sKKysgIGlu dCB4ID0gOTEyOworK30KKysKKytpbnQgbWFya2VyMTAgKCkKKyt7CisrICB1c2luZyBuYW1lc3Bh Y2UgTTsKKysgIGludCB5ID0geCArIDE7ICAgICAgIC8vIG1hcmtlcjEwIHN0b3AKKysgIHVzaW5n IG5hbWVzcGFjZSBOOworKyAgcmV0dXJuIHk7CisrfQorKworK25hbWVzcGFjZSBKCisreworKyAg aW50IGp4ID0gNDQ7CisrfQorKworK25hbWVzcGFjZSBLCisreworKyAgaW50CisrICBtYXJrZXI5 ICgpCisrICB7CisrICAgIC8veDsKKysgICAgcmV0dXJuIG1hcmtlcjEwICgpOworKyAgfQorK30K KysKKytuYW1lc3BhY2UgTAorK3sKKysgIHVzaW5nIG5hbWVzcGFjZSBKOworKyAgaW50CisrICBt YXJrZXI4ICgpCiArICB7CiArICAgIGp4OwogKyAgICByZXR1cm4gSzo6bWFya2VyOSAoKTsKQEAg LTIxMTU0LDEwICsyMTQ1NSwyMiBAQCBpbmRleCA0Nzg2ZmQ1Li44ZmY1NjIyIDEwMDY0NAogKyAg cmV0dXJuIG1hcmtlcjEgKCk7CiAgfQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L25hbWVzcGFjZS11c2luZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtdXNp bmcuZXhwCi1pbmRleCBmMjQ5NzNmLi5mYTZiNjY5IDEwMDY0NAoraW5kZXggZjI0OTczZi4uYzAx NWVmNyAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5l eHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5leHAKLUBAIC00 NiwxNSArNDYsNjEgQEAgaWYgIVtydW50b19tYWluXSB0aGVuIHsKK0BAIC0yOCw2ICsyOCwxMSBA QCBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7 YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYgorICAgICByZXR1cm4gLTEKKyB9CisgCisraWYgW2dl dF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xOworK30KKysKKysK KyAjIEdldCB0aGluZ3Mgc3RhcnRlZC4KKyAKKyBnZGJfZXhpdAorQEAgLTQ2LDE1ICs1MSw2MSBA QCBpZiAhW3J1bnRvX21haW5dIHRoZW4gewogIAogIGdkYl90ZXN0ICJwcmludCBfYSIgIj0gMSIK ICAKQEAgLTIxMjE5LDcgKzIxNTMyLDcgQEAgaW5kZXggZjI0OTczZi4uZmE2YjY2OSAxMDA2NDQK ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICMgVGVzdCBw cmludGluZyBvZiBuYW1lc3BhY2UgYWxpYXNlcwogIAotQEAgLTY0LDE0ICsxMTAsMjQgQEAgaWYg IVtydW50byBtYXJrZXIyXSB0aGVuIHsKK0BAIC02NCwxNiArMTE1LDMyIEBAIGlmICFbcnVudG8g bWFya2VyMl0gdGhlbiB7CiAgICAgIGNvbnRpbnVlCiAgfQogIApAQCAtMjEyNDUsOSArMjE1NTgs MTggQEAgaW5kZXggZjI0OTczZi4uZmE2YjY2OSAxMDA2NDQKICsgICAgcGVycm9yICJjb3VsZG4n dCBydW4gdG8gYnJlYWtwb2ludCBtYXJrZXIzIgogK30KICAKLSBnZGJfdGVzdCAicHJpbnQgX2Ei ICJObyBzeW1ib2wgXCJfYVwiIGluIGN1cnJlbnQgY29udGV4dC4iICJQcmludCBhIHdpdGhvdXQg aW1wb3J0IgorLWdkYl90ZXN0ICJwcmludCBfYSIgIk5vIHN5bWJvbCBcIl9hXCIgaW4gY3VycmVu dCBjb250ZXh0LiIgIlByaW50IGEgd2l0aG91dCBpbXBvcnQiCisrIyBnY2MtNC0zIHB1dHMgaW1w b3J0IHN0YXRlbWVudHMgZm9yIGFsaWFzZXMgaW4KKysjIHRoZSBnbG9iYWwgc2NvcGUgaW5zdGVh ZCBvZiB0aGUgY29ycmVzcG9uZGluZworKyMgZnVuY3Rpb24gc2NvcGUuIFRoZXNlIHdyb25nIGlt cG9ydCBzdGF0ZW1lbnRzIHRocm93CisrIyB0aGlzIHRlc3Qgb2ZmLiBUaGlzIGlzIGZpeGVkIGlu IGdjYy00LTQuCisraWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MtNC0zLSpdIHRoZW4geyBzZXR1 cF94ZmFpbCAqLSotKiB9CisrCisrZ2RiX3Rlc3QgInByaW50IF9hIiAiTm8gc3ltYm9sIFwiX2Fc IiBpbiBjdXJyZW50IGNvbnRleHQuIiAiUHJpbnQgX2Egd2l0aG91dCBpbXBvcnQiCiAgCi1AQCAt ODQsNCArMTQwLDU3IEBAIGlmICFbcnVudG8gbWFya2VyNF0gdGhlbiB7CisgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIFRlc3QgcHJpbnRpbmcgb2YgaW5k aXZpZHVhbGx5IGltcG9ydGVkIGVsZW1lbnRzCitAQCAtODQsNCArMTUxLDU3IEBAIGlmICFbcnVu dG8gbWFya2VyNF0gdGhlbiB7CiAgICAgIGNvbnRpbnVlCiAgfQogIApAQCAtMjEyNTcsOCArMjE1 NzksOCBAQCBpbmRleCBmMjQ5NzNmLi5mYTZiNjY5IDEwMDY0NAogKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiArIyBUZXN0IHByaW50aW5nIG9mIG5hbWVzcGFj ZSBhbGlhc2VzCiArCi0raWYgIVtydW50byBtYXJrZXI2XSB0aGVuIHsKLSsgICAgcGVycm9yICJj b3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBtYXJrZXI2IgorK2lmICFbcnVudG8gbWFya2VyNV0g dGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIG1hcmtlcjUiCiArICAgIGNvbnRp bnVlCiArfQogKwpAQCAtMjE0NzEsMTAgKzIxNzkzLDEwIEBAIGluZGV4IDhhNmI3OTUuLjk5OTdh NDUgMTAwNjQ0CiAgXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0r JGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXChjaGFyXFwpIGF0Liokc3JjZmlsZTox MTFccgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5jYyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5jYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAuLjE2NTE1MTAKK2luZGV4IDAwMDAwMDAuLjZkOWMyZjEKIC0tLSAvZGV2L251 bGwKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5jYwotQEAgLTAsMCArMSw0 NSBAQAorQEAgLTAsMCArMSw0OCBAQAogK25hbWVzcGFjZSBBCiArewogKyAgaW50IHggPSAxMTsK QEAgLTIxNDkyLDIyICsyMTgxNCwyNSBAQCBpbmRleCAwMDAwMDAwLi4xNjUxNTEwCiArICBmdW5j KCkKICsgIHsKICsgICAgeCA9IDMzOwotKyAgICB5Kys7IC8vIG1hcmtlcjEKKysgICAgeSs9eDsg Ly8gbWFya2VyMQogKwogKyAgICAgIHsKICsgICAgICAgIGludCB4ID0gNDQ7Ci0rICAgICAgICB5 Kys7IC8vIG1hcmtlcjIKKysgICAgICAgIHkrPXg7IC8vIG1hcmtlcjIKICsKICsgICAgICAgICAg ewogKyAgICAgICAgICAgIGludCB4ID0gNTU7Ci0rICAgICAgICAgICAgeSsrOyAvLyBtYXJrZXIz CisrICAgICAgICAgICAgeSs9eDsgLy8gbWFya2VyMwogKwogKyAgICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgICBpbnQgeiA9IHg7IC8vcHJldmVudCBnY2MgZnJvbSBvcHRpbWl6aW5nIGF3 YXkgdGhpcyBzY29wZQogKyAgICAgICAgICAgICAgICB1c2luZyBuYW1lc3BhY2UgQTsKLSsgICAg ICAgICAgICAgICAgeSsrOyAvLyBtYXJrZXI0CisrICAgICAgICAgICAgICAgIHkrPXg7IC8vIG1h cmtlcjQKICsKICsgICAgICAgICAgICAgICAgdXNpbmcgQTo6eDsKLSsgICAgICAgICAgICAgICAg eSsrOyAvLyBtYXJrZXI1CisrICAgICAgICAgICAgICAgIHkrPXg7IC8vIG1hcmtlcjUKKysgICAg ICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLT54OwogKyAgICAgICAg ICAgICAgfQogKyAgICAgICAgICB9CiArICAgICAgfQpAQCAtMjE1MjIsMTAgKzIxODQ3LDEwIEBA IGluZGV4IDAwMDAwMDAuLjE2NTE1MTAKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3Avc2hhZG93aW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5leHAK IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mY2JmNjgwCitpbmRleCAwMDAw MDAwLi42OTIyZWVkCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9z aGFkb3dpbmcuZXhwCi1AQCAtMCwwICsxLDg1IEBACitAQCAtMCwwICsxLDkxIEBACiArIyBDb3B5 cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKICsjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CkBAIC0yMTU1Niw2ICsyMTg4MSwxMCBAQCBpbmRleCAwMDAwMDAwLi5mY2JmNjgwCiArICAg IHJldHVybiAtMQogK30KICsKKytpZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHtiaW5maWxlfV0gewor KyAgICByZXR1cm4gLTE7CisrfQorKwogKyMgR2V0IHRoaW5ncyBzdGFydGVkLgogKwogK2dkYl9l eGl0CkBAIC0yMTYxMCw2ICsyMTkzOSw4IEBAIGluZGV4IDAwMDAwMDAuLmZjYmY2ODAKICtnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyNSJdCiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgIm1hcmtlcjUiCiArCisraWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2Mt NC0zLSpdIHRoZW4geyBzZXR1cF94ZmFpbCAqLSotKiB9CisrCiArZ2RiX3Rlc3QgInByaW50IHgi ICI9IDExIiAiUHJpbnQgaW1wb3J0ZWQgbmFtZXNwYWNlIHgiCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NApAQCAtMjMzMzksMTAgKzIz NjcwLDEwIEBAIGluZGV4IDAwMDAwMDAuLmQ0NDQ1NTQKICtnZGJfdGVzdCAicHl0aG9uIHByaW50 IHQwIiAiXFw8Z2RiLkluZmVyaW9yVGhyZWFkIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0r PiIgInZlcmlmeSBJbmZlcmlvclRocmVhZCBvYmplY3QiCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCAncmVzdWx0ID0nLCB0MC5udW0iICIgPSBcWzAtOVxdKyIgInRlc3QgSW5mZXJpb3IubnVtIgog ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tbWkuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1taS5leHAKLWluZGV4IDMyNTg4MTAuLmU3YmZl NTQgMTAwNjQ0CitpbmRleCAzMjU4ODEwLi4wOTVlZTc4IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1taS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weXRob24tbWkuZXhwCi1AQCAtNDgsNyArNDgsMjEgQEAgbWlfZ2RiX3Rlc3QgInB5dGhv biBleGVjZmlsZSAoJyR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKK0BA IC00OCwyMyArNDgsNDIgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBleGVjZmlsZSAoJyR7c3JjZGly fS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKICBtaV9jb250aW51ZV90b19saW5lIFtn ZGJfZ2V0X2xpbmVfbnVtYmVyIHtNSSBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNdIFwK ICAgICJzdGVwIHRvIGJyZWFrcG9pbnQiCiAgCkBAIC0yMzM2NSwyNCArMjM2OTYsMTExIEBAIGlu ZGV4IDMyNTg4MTAuLmU3YmZlNTQgMTAwNjQ0CiAgCiAgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4g Y29udGFpbmVyIHsKICB9ICJleGFtaW5lIGNvbnRhaW5lciBjaGlsZHJlbj0wIgotQEAgLTkyLDYg KzEwNiwxNSBAQCBtaV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKLSAgICAgeyB7 Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0KLSB9ICJ2YXJvYmogdXBkYXRlIGFmdGVy IGNob29zaW5nIHZpYSBleHByZXNzaW9uIgogIAorIG1pX25leHQgIm5leHQgb3ZlciB1cGRhdGUg MSIKKyAKKy1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKKy0gICAgeyB7Y29u dGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KKy19ICJ2YXJvYmogdXBkYXRlIDEiCisrbWlf dmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAxIiB7CisrICAg IHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMAorK30gewor K30geworKyAgICB7IG5hbWUge2NvbnRhaW5lci5cWzBcXX0gZXhwIHtcWzBcXX0gbnVtY2hpbGQg MCB0eXBlIGludCB0aHJlYWQtaWQgMSB9CisrfQorIAorIG1pX25leHQgIm5leHQgb3ZlciB1cGRh dGUgMiIKKyAKKy1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKKy0gICAgeyB7 Y29udGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KKy0gICAgeyB7Y29udGFpbmVyLlxbMVxd fSB7XFsxXF19IDAgaW50IH0KKy19ICJ2YXJvYmogdXBkYXRlIDIiCisrbWlfdmFyb2JqX3VwZGF0 ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAyIiB7CisrICAgIHR5cGVfY2hhbmdl ZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDIgaGFzX21vcmUgMAorK30geworK30geworKyAgICB7 IG5hbWUge2NvbnRhaW5lci5cWzFcXX0gZXhwIHtcWzFcXX0gbnVtY2hpbGQgMCB0eXBlIGludCB0 aHJlYWQtaWQgMSB9CisrfQorIAorIG1pX2dkYl90ZXN0ICItdmFyLXNldC12aXN1YWxpemVyIGNv bnRhaW5lciBOb25lIiBcCisgICAiXFxeZG9uZSIgXAorQEAgLTc4LDE5ICs5Nyw2OCBAQCBtaV9n ZGJfdGVzdCAiLXZhci1zZXQtdmlzdWFsaXplciBjb250YWluZXIgZ2RiLmRlZmF1bHRfdmlzdWFs aXplciIgXAorICAgIlxcXmRvbmUiIFwKKyAgICJjaG9vc2UgZGVmYXVsdCB2aXN1YWxpemVyIgor IAorLW1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgeworLSAgICB7IHtjb250YWlu ZXIuXFswXF19IHtcWzBcXX0gMCBpbnQgfQorLSAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFc XX0gMCBpbnQgfQorLX0gInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgZGVmYXVsdCIKKytt aV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNo b29zaW5nIGRlZmF1bHQiIHsKKysgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRy ZW4gMiBoYXNfbW9yZSAwCisrfSB7CisrfSB7CisrICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxd fSBleHAge1xbMFxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KKysgICAgeyBu YW1lIHtjb250YWluZXIuXFsxXF19IGV4cCB7XFsxXF19IG51bWNoaWxkIDAgdHlwZSBpbnQgdGhy ZWFkLWlkIDEgfQorK30KKyAKKyBtaV9nZGJfdGVzdCAiLXZhci1zZXQtdmlzdWFsaXplciBjb250 YWluZXIgQ29udGFpbmVyUHJpbnRlciIgXAorICAgIlxcXmRvbmUiIFwKKyAgICJjaG9vc2Ugdmlz dWFsaXplciB1c2luZyBleHByZXNzaW9uIgorIAorLW1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBj b250YWluZXIgeworK21pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAorKyAgInZh cm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgdmlhIGV4cHJlc3Npb24iIHsKKysgICAgICB0eXBl X2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJlbiAyIGhhc19tb3JlIDAKKysgIH0geworKyAg fSB7CisrICAgICAgeyBuYW1lIHtjb250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxk IDAgdHlwZSBpbnQgdGhyZWFkLWlkIDEgfQorKyAgICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMVxd fSBleHAge1xbMVxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KKysgIH0KKysK ICttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBjb250YWluZXIgMSAyIDIgewogKyAgICB7 IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQgfQogK30gImxpc3QgdmFyb2JqIGNoaWxk cmVuIGFmdGVyIHNlbGVjdGluZyBjaGlsZCByYW5nZSIKICsKICttaV9saXN0X3Zhcm9ial9jaGls ZHJlbl9yYW5nZSBjb250YWluZXIgLTEgLTEgMiB7CisgICAgIHsge2NvbnRhaW5lci5cWzBcXX0g e1xbMFxdfSAwIGludCB9CisgICAgIHsge2NvbnRhaW5lci5cWzFcXX0ge1xbMVxdfSAwIGludCB9 CistfSAidmFyb2JqIHVwZGF0ZSBhZnRlciBjaG9vc2luZyB2aWEgZXhwcmVzc2lvbiIKKyt9ICJs aXN0IHZhcm9iaiBjaGlsZHJlbiBhZnRlciByZXNldHRpbmcgY2hpbGQgcmFuZ2UiCisrCisrbWlf bmV4dCAibmV4dCBvdmVyIHVwZGF0ZSAzIgorKworK21pX2dkYl90ZXN0ICItdmFyLXNldC11cGRh dGUtcmFuZ2UgY29udGFpbmVyIDAgMSIgXAorKyAgIlxcXmRvbmUiIFwKKysgICJzZXQgdXBkYXRl IHJhbmdlIgorKworKyMgVGhpcyBzaG91bGQgdHJ1bmNhdGUgdGhlIGxpc3QuCisrbWlfbGlzdF92 YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsKICsgICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFsw XF19IDAgaW50IH0KKyt9ICJsaXN0IGNoaWxkcmVuIGFmdGVyIHNldHRpbmcgdXBkYXRlIHJhbmdl IgorKworKyMgVGhpcyBzaG91bGQgcmV0dXJuIGp1c3QgdGhlIGl0ZW1zIGluIFsxLDIpLgorK21p X2xpc3RfdmFyb2JqX2NoaWxkcmVuX3JhbmdlIGNvbnRhaW5lciAxIDIgMiB7CiArICAgIHsge2Nv bnRhaW5lci5cWzFcXX0ge1xbMVxdfSAwIGludCB9Ci0rfSAibGlzdCB2YXJvYmogY2hpbGRyZW4g YWZ0ZXIgcmVzZXR0aW5nIGNoaWxkIHJhbmdlIgorK30gImxpc3Qgc2VsZWN0ZWQgY2hpbGRyZW4g YWZ0ZXIgc2V0dGluZyByYW5nZSIKICsKKysjIFRoaXMgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBi eSB0aGUgcHJldmlvdXMgbGlzdC1jaGlsZHJlbiByZXF1ZXN0LgorK21pX2xpc3RfdmFyb2JqX2No aWxkcmVuIGNvbnRhaW5lciB7CisrICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGlu dCB9CisrfSAibGlzdCBjaGlsZHJlbiBhZnRlciBsaXN0aW5nIHNlbGVjdGVkIHJhbmdlIgorKwor K21pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgNCIKKysKKysjIFRoaXMgc2hvdWxkIG9ubHkgc2hv dyB0aGUgZmlyc3QgY2hpbGQsIGJlY2F1c2UgdGhlIHVwZGF0ZSByYW5nZSBoYXMKKysjIGJlZW4g c2V0LgorK21pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAorKyAgInVwZGF0ZSBh ZnRlciBuZXh0IHdpdGggcmVzdHJpY3RlZCByYW5nZSIgeworKyAgICAgIHR5cGVfY2hhbmdlZCBm YWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMQorKyAgfSB7CisrICAgICAgeyBuYW1l IHtjb250YWluZXIuXFswXF19IGluX3Njb3BlIHRydWUgdHlwZV9jaGFuZ2VkIGZhbHNlIH0KKysg IH0geworKyAgfQorIAogIG1pX2NvbnRpbnVlX3RvX2xpbmUgXAogICAgICBbZ2RiX2dldF9saW5l X251bWJlciB7QW5vdGhlciBNSSBicmVha3BvaW50fSAke3Rlc3RmaWxlfS5jXSBcCi0gICAgICJz dGVwIHRvIHNlY29uZCBicmVha3BvaW50IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eXRob24tcHJldHR5cHJpbnQuYwotaW5kZXggM2NhZmM0OC4uNWNjMzViZSAxMDA2NDQKK2luZGV4 IDNjYWZjNDguLjZiYmJmMWQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHl0aG9uLXByZXR0eXByaW50LmMKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRo b24tcHJldHR5cHJpbnQuYwogQEAgLTE1LDYgKzE1LDggQEAKQEAgLTIzNDIwLDYgKzIzODM4LDE2 IEBAIGluZGV4IDNjYWZjNDguLjVjYzM1YmUgMTAwNjQ0CiAgCiAgICBzdHJ1Y3QgbnMgIG5zOwog ICAgbnMubnVsbF9zdHIgPSAiZW1iZWRkZWRcMG51bGxcMHN0cmluZyI7CitAQCAtMTkzLDYgKzIw Myw5IEBAIG1haW4gKCkKKyAgIGFkZF9pdGVtICgmYywgNzIpOworIAorICNpZmRlZiBNSQorKyAg YWRkX2l0ZW0gKCZjLCAxMDExKTsKKysgIGMuZWxlbWVudHNbMF0gPSAxMDIzOworKworICAgZG9f bm90aGluZyAoKTsKKyAjZW5kaWYKKyAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHl0aG9uLXByZXR0eXByaW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eXRob24tcHJldHR5cHJpbnQuZXhwCiBpbmRleCAwMWQ0YTA2Li5iMmRjODVkIDEwMDY0NAogLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5leHAKQEAgLTIz Njk5LDE5ICsyNDEyNyw5MiBAQCBpbmRleCAwYzkzYTczLi5kMGMzNDkzIDEwMDY0NAogIGdsb2Jh bCBHREIKICAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cCBi L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCi1pbmRleCA5YjRjNDY0Li4zM2YyNzdh IDEwMDY0NAoraW5kZXggZTY5MTIzMi4uNjRiYzI4ZSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAotQEAgLTEyNTgsNyArMTI1OCw3IEBAIHByb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWlj IHtuYW1lIGNoaWxkcmVuIHRlc3RuYW1lfSB7Ci0gICAgIHNldCBlciAiXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFsiCitAQCAtMTIwMSw3ICsxMjAxLDcgQEAgcHJvYyBtaV9jcmVhdGVfdmFyb2JqIHsg bmFtZSBleHByZXNzaW9uIHRlc3RuYW1lIH0geworIAorIHByb2MgbWlfY3JlYXRlX2Zsb2F0aW5n X3Zhcm9iaiB7IG5hbWUgZXhwcmVzc2lvbiB0ZXN0bmFtZSB9IHsKKyAgICAgbWlfZ2RiX3Rlc3Qg Ii12YXItY3JlYXRlICRuYW1lIEAgJGV4cHJlc3Npb24iIFwKKy0gICAgICAgICJcXF5kb25lLG5h bWU9XCIkbmFtZVwiLG51bWNoaWxkPVwiXFswLTlcXStcIix2YWx1ZT1cIi4qXCIsdHlwZT0uKiIg XAorKyAgICAgICAgIlxcXmRvbmUsbmFtZT1cIiRuYW1lXCIsbnVtY2hpbGQ9XCJcKC0xXHxcWzAt OVxdK1wpXCIsdmFsdWU9XCIuKlwiLHR5cGU9LioiIFwKKyAgICAgICAgICR0ZXN0bmFtZQorIH0K KyAKK0BAIC0xMjUwLDE2ICsxMjUwLDY0IEBAIHByb2MgbWlfdmFyb2JqX3VwZGF0ZV93aXRoX3R5 cGVfY2hhbmdlIHsgbmFtZSBuZXdfdHlwZSBuZXdfY2hpbGRyZW4gdGVzdG5hbWUgfSB7CisgICAg IG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQorIH0KICAKLSAg ICAgYXBwZW5kIGVyICJ7bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIiIKKy0jIFVwZGF0ZSBhIGR5bmFtaWMgdmFyb2JqIG5hbWVkIE5BTUUuICBD SElMRFJFTiBpcyBhIGxpc3Qgb2YgY2hpbGRyZW4sCistIyBpbiB0aGUgc2FtZSBmb3JtIGFzIG1p X2xpc3RfdmFyb2JqX2NoaWxkcmVuLiAgVEVTVE5BTUUgaXMgdGhlIG5hbWUKKy0jIG9mIHRoZSB0 ZXN0LgorLXByb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1lIGNoaWxkcmVuIHRlc3Ru YW1lfSB7CistICAgIHNldCBjaGlsZHJlbl9leHBfaiBbbWlfY2hpbGRfcmVnZXhwICRjaGlsZHJl biAwXQorKyMgQSBoZWxwZXIgdGhhdCB0dXJucyBhIGtleS92YWx1ZSBsaXN0IGludG8gYSByZWd1 bGFyIGV4cHJlc3Npb24KKysjIG1hdGNoaW5nIHNvbWUgTUkgb3V0cHV0LgorK3Byb2MgbWlfdmFy b2JqX3VwZGF0ZV9rdl9oZWxwZXIge2xpc3R9IHsKKysgICAgc2V0IGZpcnN0IDEKKysgICAgc2V0 IHJ4ICIiCisrICAgIGZvcmVhY2gge2tleSB2YWx1ZX0gJGxpc3QgeworKwlpZiB7ISRmaXJzdH0g eworKwkgICAgYXBwZW5kIHJ4ICwKKysJfQorKwlzZXQgZmlyc3QgMAorKwlpZiB7JGtleSA9PSAi bmV3X2NoaWxkcmVuIn0geworKwkgICAgYXBwZW5kIHJ4ICIka2V5PVxcXFskdmFsdWVcXFxdIgor Kwl9IGVsc2UgeworKwkgICAgYXBwZW5kIHJ4ICIka2V5PVwiJHZhbHVlXCIiCisrCX0KKysgICAg fQorKyAgICByZXR1cm4gJHJ4CisrfQorKworKyMgQSBoZWxwZXIgZm9yIG1pX3Zhcm9ial91cGRh dGVfZHluYW1pYyB0aGF0IGNvbXB1dGVzIGEgbWF0Y2gKKysjIGV4cHJlc3Npb24gZ2l2ZW4gYSBj aGlsZCBsaXN0LgorK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBlciB7Y2hpbGRy ZW59IHsKKysgICAgc2V0IGNyeCAiIgorIAorLSAgICBzZXQgZXIgIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbIgorKyAgICBzZXQgZmlyc3QgMQorKyAgICBmb3JlYWNoIGNoaWxkICRjaGlsZHJlbiB7 CisrCWlmIHshJGZpcnN0fSB7CisrCSAgICBhcHBlbmQgY3J4ICwKKysJfQorKwlzZXQgZmlyc3Qg MAorKwlhcHBlbmQgY3J4ICJ7IgorKwlhcHBlbmQgY3J4IFttaV92YXJvYmpfdXBkYXRlX2t2X2hl bHBlciAkY2hpbGRdCisrCWFwcGVuZCBjcnggIn0iCisrICAgIH0KKysKKysgICAgcmV0dXJuICRj cngKKyt9CisrCisrIyBVcGRhdGUgYSBkeW5hbWljIHZhcm9iaiBuYW1lZCBOQU1FLiAgQ0hJTERS RU4gaXMgYSBsaXN0IG9mIGNoaWxkcmVuCisrIyB0aGF0IGhhdmUgYmVlbiB1cGRhdGVkOyBORVdf Q0hJTERSRU4gaXMgYSBsaXN0IG9mIGNoaWxkcmVuIHRoYXQgd2VyZQorKyMgYWRkZWQgdG8gdGhl IHByaW1hcnkgdmFyb2JqLiAgRWFjaCBjaGlsZCBpcyBhIGxpc3Qgb2Yga2V5L3ZhbHVlCisrIyBw YWlycyB0aGF0IGFyZSBleHBlY3RlZC4gIFNFTEYgaXMgYSBrZXkvdmFsdWUgbGlzdCBob2xkaW5n CisrIyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFyb2JqIGl0c2VsZi4gIFRFU1ROQU1FIGlzIHRo ZSBuYW1lIG9mIHRoZQorKyMgdGVzdC4KKytwcm9jIG1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyB7 bmFtZSB0ZXN0bmFtZSBzZWxmIGNoaWxkcmVuIG5ld19jaGlsZHJlbn0geworKyAgICBpZiB7W2xs ZW5ndGggJG5ld19jaGlsZHJlbl19IHsKKysJc2V0IG5ld3J4IFttaV92YXJvYmpfdXBkYXRlX2R5 bmFtaWNfaGVscGVyICRuZXdfY2hpbGRyZW5dCisrCWxhcHBlbmQgc2VsZiBuZXdfY2hpbGRyZW4g JG5ld3J4CisrICAgIH0KKysgICAgc2V0IHNlbGZyeCBbbWlfdmFyb2JqX3VwZGF0ZV9rdl9oZWxw ZXIgJHNlbGZdCisrICAgIHNldCBjcnggW21pX3Zhcm9ial91cGRhdGVfZHluYW1pY19oZWxwZXIg JGNoaWxkcmVuXQorIAorLSAgICBhcHBlbmQgZXIgIntuYW1lPVwiJG5hbWVcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiIgogLSAgICBhcHBlbmQgZXIgIixjaGlsZHJl bj1cXFxbJGNoaWxkcmVuX2V4cF9qLipcXFxdfVxcXF0iCi0rICAgIGFwcGVuZCBlciAiLGNoaWxk cmVuPVxcXFskY2hpbGRyZW5fZXhwX2ouKlxcXF0saGFzX21vcmU9XCIuXCJ9XFxcXSIKKysgICAg c2V0IGVyICJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9 XCJ0cnVlXCIiCisrICAgIGFwcGVuZCBlciAiLCRzZWxmcnhcfSIKKysgICAgaWYgeyIkY3J4IiAh PSAiIn0geworKwlhcHBlbmQgZXIgIiwkY3J4IgorKyAgICB9CisrICAgIGFwcGVuZCBlciAiXFxc XSIKICAKICAgICAgdmVyYm9zZSAtbG9nICJFeHBlY3Rpbmc6ICRlciIKICAgICAgbWlfZ2RiX3Rl c3QgIi12YXItdXBkYXRlICRuYW1lIiAkZXIgJHRlc3RuYW1lCi1AQCAtMTMyOCwxNCArMTMyOCwx MyBAQCBwcm9jIG1pX2NoaWxkX3JlZ2V4cCB7Y2hpbGRyZW4gYWRkX2NoaWxkfSB7CitAQCAtMTMy OSwxNCArMTM3NywxMyBAQCBwcm9jIG1pX2NoaWxkX3JlZ2V4cCB7Y2hpbGRyZW4gYWRkX2NoaWxk fSB7CiAgIyBoYXZlIG5vIHZhbHVlLgogICMKICBwcm9jIG1pX2xpc3RfdmFyb2JqX2NoaWxkcmVu IHsgdmFybmFtZSBjaGlsZHJlbiB0ZXN0bmFtZSB9IHsKQEAgLTIzNzMwLDcgKzI0MjMxLDcgQEAg aW5kZXggOWI0YzQ2NC4uMzNmMjc3YSAxMDA2NDQKICAgICAgc2V0IG9wdGlvbnMgIiIKICAgICAg aWYge1tsbGVuZ3RoICR2YXJuYW1lXSA9PSAyfSB7CiAgICAgICAgICBzZXQgb3B0aW9ucyBbbGlu ZGV4ICR2YXJuYW1lIDFdCi1AQCAtMTM1MSw5ICsxMzUwLDE4IEBAIHByb2MgbWlfbGlzdF92YXJv YmpfY2hpbGRyZW5fcmFuZ2Uge3Zhcm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9 IHsKK0BAIC0xMzUyLDkgKzEzOTksMTggQEAgcHJvYyBtaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9y YW5nZSB7dmFybmFtZSBudW1jaGlsZHJlbiBjaGlsZHJlbiB0ZXN0bmFtZX0gewogICAgICAgICAg c2V0IGV4cGVjdGVkICJcXF5kb25lLG51bWNoaWxkPVwiMFwiIgogICAgICB9CiAgCkBAIC0yNDAw OCw3ICsyNDUwOSw3IEBAIGluZGV4IDE1NjJkNWEuLmQ4NmE3ZWIgMTAwNjQ0CiAgZXh0ZXJuIGxv bmcgdWlfZmlsZV9yZWFkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBsb25nIGxl bmd0aF9idWYpOwogIAogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKLWlu ZGV4IGViNzVmMmUuLjFlMjQ2YjggMTAwNjQ0CitpbmRleCBhMjY2YjAyLi4zZDk1M2UzIDEwMDY0 NAogLS0tIGEvZ2RiL3V0aWxzLmMKICsrKyBiL2dkYi91dGlscy5jCiBAQCAtMjYwNSw3ICsyNjA1 LDEwIEBAIGZwcmludGZfc3ltYm9sX2ZpbHRlcmVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBj aGFyICpuYW1lLApAQCAtMjQxMjMsNyArMjQ2MjQsNyBAQCBpbmRleCBhOWM4NzVkLi4xMmY2ZjA3 IDEwMDY0NAogIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMK LWluZGV4IDVlNWM0ZWQuLjU5YzkwMTggMTAwNjQ0CitpbmRleCA1ZTVjNGVkLi40NDZhNGQxIDEw MDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICsz OCw3IEBACkBAIC0yNDQ3NywxOCArMjQ5NzgsMTUgQEAgaW5kZXggNWU1YzRlZC4uNTljOTAxOCAx MDA2NDQKICAKICAJICBpZiAoVFlQRV9GTl9GSUVMRF9TVEFUSUNfUCAoZiwgaikpCiAgCSAgICB7 Ci1AQCAtMjc1Miw5ICsyOTMyLDkgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qg c3RydWN0IHR5cGUgKmN1cnR5cGUsCitAQCAtMjc1Miw3ICsyOTMyLDcgQEAgdmFsdWVfbWF5YmVf bmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5cGUgKmN1cnR5cGUsCiAgICBzdHJ1Y3Qgc3lt Ym9sICpzeW07CiAgICBzdHJ1Y3QgdmFsdWUgKnJlc3VsdDsKICAKIC0gIHN5bSA9IGNwX2xvb2t1 cF9zeW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2VfbmFtZSwgbmFtZSwgTlVMTCwKLSsgIHN5bSA9 IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsIChuYW1lc3BhY2VfbmFtZSwg bmFtZSwKKysgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsKG5h bWVzcGFjZV9uYW1lLCBuYW1lLAogIAkJCQkgICAgZ2V0X3NlbGVjdGVkX2Jsb2NrICgwKSwgCi0t CQkJCSAgICBWQVJfRE9NQUlOKTsKLSsJCQkJICAgIFZBUl9ET01BSU4sIDApOworIAkJCQkgICAg VkFSX0RPTUFJTik7CiAgCi0gICBpZiAoc3ltID09IE5VTEwpCi0gICAgIHJldHVybiBOVUxMOwog QEAgLTI4OTYsNyArMzA3Niw3IEBAIHZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBp bnQgY29tcGxhaW4pCiAgCiAgICAvKiBDYWxsaW5nIGxvb2t1cF9ibG9ja19zeW1ib2wgaXMgbmVj ZXNzYXJ5IHRvIGdldCB0aGUgTE9DX1JFR0lTVEVSCkBAIC0yNDUyOSw3ICsyNTAyNyw3IEBAIGlu ZGV4IGNiYjVkOTQuLmNmMzViZjAgMTAwNjQ0CiAgCSAgKytyZXBzOwogIAkgICsrcmVwMTsKIGRp ZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCA2NWE1YWE5Li4wMDdl NGIwIDEwMDY0NAoraW5kZXggNjVhNWFhOS4uYzk0Mzc4MSAxMDA2NDQKIC0tLSBhL2dkYi92YWx1 ZS5jCiArKysgYi9nZGIvdmFsdWUuYwogQEAgLTM3LDggKzM3LDEwIEBACkBAIC0yNDU0Myw3ICsy NTA0MSwyMiBAQCBpbmRleCA2NWE1YWE5Li4wMDdlNGIwIDEwMDY0NAogIAogICNpbmNsdWRlICJw eXRob24vcHl0aG9uLmgiCiAgCi1AQCAtMjU3LDcgKzI1OSw5IEBAIGFsbG9jYXRlX3ZhbHVlX2xh enkgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTE3MCw2ICsxNzIsMTQgQEAgc3RydWN0IHZhbHVl CisgICAgICB0YWtlbiBvZmYgdGhpcyBsaXN0LiAgKi8KKyAgIHN0cnVjdCB2YWx1ZSAqbmV4dDsK KyAKKysgIC8qIFRoZSByZWZlcmVuY2UgY291bnQuICBBIHZhbHVlIHRoYXQgaXMgc3RpbGwgb24g dGhlIGBhbGxfdmFsdWVzJworKyAgICAgbGlzdCB3aWxsIGhhdmUgYSByZWZlcmVuY2UgY291bnQg b2YgMC4gIEEgY2FsbCB0byBgcmVsZWFzZV92YWx1ZScKKysgICAgIHdpbGwgaW5jcmVtZW50IHRo ZSByZWZlcmVuY2UgY291bnQgKGFuZCByZW1vdmUgdGhlIHZhbHVlIGZyb20gdGhlCisrICAgICBs aXN0LCB0aGUgZmlyc3QgdGltZSkuICBBIGNhbGwgdG8gYHZhbHVlX2ZyZWUnIHdpbGwgZGVjcmVt ZW50IHRoZQorKyAgICAgcmVmZXJlbmNlIGNvdW50LCBhbmQgd2lsbCBmcmVlIHRoZSB2YWx1ZSB3 aGVuIHRoZXJlIGFyZSBubyBtb3JlCisrICAgICByZWZlcmVuY2VzLiAgKi8KKysgIGludCByZWZj b3VudDsKKysKKyAgIC8qIFJlZ2lzdGVyIG51bWJlciBpZiB0aGUgdmFsdWUgaXMgZnJvbSBhIHJl Z2lzdGVyLiAgKi8KKyAgIHNob3J0IHJlZ251bTsKKyAKK0BAIC0yNTcsNyArMjY3LDkgQEAgYWxs b2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICB2YWwtPm5leHQgPSBhbGxf dmFsdWVzOwogICAgYWxsX3ZhbHVlcyA9IHZhbDsKICAgIHZhbC0+dHlwZSA9IHR5cGU7CkBAIC0y NDU1Myw3ICsyNTA2Niw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiAgICBWQUxV RV9MVkFMICh2YWwpID0gbm90X2x2YWw7CiAgICB2YWwtPmxvY2F0aW9uLmFkZHJlc3MgPSAwOwog ICAgVkFMVUVfRlJBTUVfSUQgKHZhbCkgPSBudWxsX2ZyYW1lX2lkOwotQEAgLTM2Nyw2ICszNzEs OCBAQCB2YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorQEAgLTM2Nyw2ICszNzksOCBA QCB2YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogIHZvaWQKICBkZXByZWNhdGVkX3Nl dF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7 CkBAIC0yNDU2MiwyNyArMjUwNzUsOTEgQEAgaW5kZXggNjVhNWFhOS4uMDA3ZTRiMCAxMDA2NDQK ICAgIHZhbHVlLT50eXBlID0gdHlwZTsKICB9CiAgCi1AQCAtNjIzLDYgKzYyOSw5IEBAIHZhbHVl X2ZyZWUgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTYyMywyNyArNjM3LDI4IEBAIHZhbHVlX2Zy ZWUgKHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGlmICh2YWwpCiAgICAgIHsKLSsgICAgICB0 eXBlX2RlY3JlZiAodmFsLT50eXBlKTsKLSsgICAgICB0eXBlX2RlY3JlZiAodmFsLT5lbmNsb3Np bmdfdHlwZSk7Ci0rCi0gICAgICAgZ2RiX2Fzc2VydCAodmFsLT5yZWZlcmVuY2VfY291bnQgPiAw KTsKLSAgICAgICB2YWwtPnJlZmVyZW5jZV9jb3VudC0tOwotICAgICAgIGlmICh2YWwtPnJlZmVy ZW5jZV9jb3VudCA+IDApCi1AQCAtNjQyLDggKzY1MSw4IEBAIHZhbHVlX2ZyZWUgKHN0cnVjdCB2 YWx1ZSAqdmFsKQotIAl9CistICAgICAgZ2RiX2Fzc2VydCAodmFsLT5yZWZlcmVuY2VfY291bnQg PiAwKTsKKy0gICAgICB2YWwtPnJlZmVyZW5jZV9jb3VudC0tOworLSAgICAgIGlmICh2YWwtPnJl ZmVyZW5jZV9jb3VudCA+IDApCistCXJldHVybjsKKysgICAgICAvKiBJZiB0aGUgY291bnQgd2Fz IGFscmVhZHkgMCwgdGhlbiB0aGUgdmFsdWUgd2FzIG9uIHRoZQorKwkgYWxsX3ZhbHVlcyBsaXN0 LCBhbmQgd2UgbXVzdCBiZSBmcmVlaW5nIGJhY2sgdG8gc29tZQorKwkgcG9pbnQuICAqLworKyAg ICAgIGlmICh2YWwtPnJlZmNvdW50IDw9IDEpCisrCXsKKysJICB0eXBlX2RlY3JlZiAodmFsLT50 eXBlKTsKKysJICB0eXBlX2RlY3JlZiAodmFsLT5lbmNsb3NpbmdfdHlwZSk7CisgCistICAgICAg LyogSWYgdGhlcmUncyBhbiBhc3NvY2lhdGVkIHBhcmVudCB2YWx1ZSwgZHJvcCBvdXIgcmVmZXJl bmNlIHRvCistCSBpdC4gICovCistICAgICAgaWYgKHZhbC0+cGFyZW50ICE9IE5VTEwpCistCXZh bHVlX2ZyZWUgKHZhbC0+cGFyZW50KTsKKysJICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFs X2NvbXB1dGVkKQorKwkgICAgeworKwkgICAgICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB2 YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOworIAorLSAgICAgIGlmIChWQUxVRV9MVkFMICh2 YWwpID09IGx2YWxfY29tcHV0ZWQpCistCXsKKy0JICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3Mg PSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOworKwkgICAgICBpZiAoZnVuY3MtPmZyZWVf Y2xvc3VyZSkKKysJCWZ1bmNzLT5mcmVlX2Nsb3N1cmUgKHZhbCk7CisrCSAgICB9CiAgCi0gICAg ICAgeGZyZWUgKHZhbC0+Y29udGVudHMpOwotKyAgICAgIHhmcmVlICh2YWwpOworLQkgIGlmIChm dW5jcy0+ZnJlZV9jbG9zdXJlKQorLQkgICAgZnVuY3MtPmZyZWVfY2xvc3VyZSAodmFsKTsKKysJ ICB4ZnJlZSAodmFsLT5jb250ZW50cyk7CisrCSAgeGZyZWUgKHZhbCk7CisgCX0KKy0KKy0gICAg ICB4ZnJlZSAodmFsLT5jb250ZW50cyk7CisrICAgICAgZWxzZQorKwktLXZhbC0+cmVmY291bnQ7 CiAgICAgIH0KIC0gIHhmcmVlICh2YWwpOwogIH0KICAKICAvKiBGcmVlIGFsbCB2YWx1ZXMgYWxs b2NhdGVkIHNpbmNlIE1BUksgd2FzIG9idGFpbmVkIGJ5IHZhbHVlX21hcmsKLUBAIC03MzYsNiAr NzQ1LDkgQEAgdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCitAQCAtNjg2LDIyICs3MDEs MjYgQEAgZnJlZV9hbGxfdmFsdWVzICh2b2lkKQorIHZvaWQKKyByZWxlYXNlX3ZhbHVlIChzdHJ1 Y3QgdmFsdWUgKnZhbCkKKyB7CistICBzdHJ1Y3QgdmFsdWUgKnY7CistCistICBpZiAoYWxsX3Zh bHVlcyA9PSB2YWwpCistICAgIHsKKy0gICAgICBhbGxfdmFsdWVzID0gdmFsLT5uZXh0OworLSAg ICAgIHJldHVybjsKKy0gICAgfQorLQorLSAgZm9yICh2ID0gYWxsX3ZhbHVlczsgdjsgdiA9IHYt Pm5leHQpCisrICAvKiBJZiB0aGUgcmVmZXJlbmNlIGNvdW50IGlzIG5vbnplcm8sIHRoZW4gd2Ug aGF2ZSBhbHJlYWR5IHJlbW92ZWQKKysgICAgIHRoZSBpdGVtIGZyb20gdGhlIGxpc3QsIHNvIHRo ZXJlIGlzIG5vIHJlYXNvbiB0byBkbyBpdCBhZ2Fpbi4gICovCisrICBpZiAodmFsLT5yZWZjb3Vu dCA9PSAwKQorICAgICB7CistICAgICAgaWYgKHYtPm5leHQgPT0gdmFsKQorKyAgICAgIGlmIChh bGxfdmFsdWVzID09IHZhbCkKKysJYWxsX3ZhbHVlcyA9IHZhbC0+bmV4dDsKKysgICAgICBlbHNl CisgCXsKKy0JICB2LT5uZXh0ID0gdmFsLT5uZXh0OworLQkgIGJyZWFrOworKwkgIHN0cnVjdCB2 YWx1ZSAqdjsKKysJICBmb3IgKHYgPSBhbGxfdmFsdWVzOyB2OyB2ID0gdi0+bmV4dCkKKysJICAg IHsKKysJICAgICAgaWYgKHYtPm5leHQgPT0gdmFsKQorKwkJeworKwkJICB2LT5uZXh0ID0gdmFs LT5uZXh0OworKwkJICBicmVhazsKKysJCX0KKysJICAgIH0KKyAJfQorICAgICB9CisrICArK3Zh bC0+cmVmY291bnQ7CisgfQorIAorIC8qIFJlbGVhc2UgYWxsIHZhbHVlcyB1cCB0byBtYXJrICAq LworQEAgLTczNiw2ICs3NTUsOSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKICAg ICAgdmFsID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoZW5jbF90eXBlKTsKICAgIGVsc2UKICAgICAg dmFsID0gYWxsb2NhdGVfdmFsdWUgKGVuY2xfdHlwZSk7CkBAIC0yNDU5Miw3ICsyNTE2OSw3IEBA IGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiAgICB2YWwtPnR5cGUgPSBhcmctPnR5cGU7 CiAgICBWQUxVRV9MVkFMICh2YWwpID0gVkFMVUVfTFZBTCAoYXJnKTsKICAgIHZhbC0+bG9jYXRp b24gPSBhcmctPmxvY2F0aW9uOwotQEAgLTc3MSwxMiArNzgzLDE1IEBAIHZhbHVlX2NvcHkgKHN0 cnVjdCB2YWx1ZSAqYXJnKQorQEAgLTc3MSwxMiArNzkzLDE1IEBAIHZhbHVlX2NvcHkgKHN0cnVj dCB2YWx1ZSAqYXJnKQogIHZvaWQKICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1 Y3QgdmFsdWUgKmNvbXBvbmVudCwgc3RydWN0IHZhbHVlICp3aG9sZSkKICB7CkBAIC0yNDYwOCw3 ICsyNTE4NSw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiAgICBpZiAoVkFMVUVf TFZBTCAod2hvbGUpID09IGx2YWxfY29tcHV0ZWQpCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgbHZh bF9mdW5jcyAqZnVuY3MgPSB3aG9sZS0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3M7Ci1AQCAtNzg0 LDYgKzc5OSwxMCBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUg KmNvbXBvbmVudCwgc3RydWN0IHZhbHVlICp3aG9sZSkKK0BAIC03ODQsNiArODA5LDEwIEBAIHNl dF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LCBzdHJ1 Y3QgdmFsdWUgKndob2xlKQogICAgICAgIGlmIChmdW5jcy0+Y29weV9jbG9zdXJlKQogICAgICAg ICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xv c3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0yNDYxOSw3ICsyNTE5Niw3IEBAIGluZGV4IDY1YTVh YTkuLjAwN2U0YjAgMTAwNjQ0CiAgfQogIAogIAwKLUBAIC05MTQsNiArOTMzLDI5IEBAIHNob3df dmFsdWVzIChjaGFyICpudW1fZXhwLCBpbnQgZnJvbV90dHkpCitAQCAtOTE0LDYgKzk0MywyOSBA QCBzaG93X3ZhbHVlcyAoY2hhciAqbnVtX2V4cCwgaW50IGZyb21fdHR5KQogICAgICAgIG51bV9l eHBbMV0gPSAnXDAnOwogICAgICB9CiAgfQpAQCAtMjQ2NDksNyArMjUyMjYsNyBAQCBpbmRleCA2 NWE1YWE5Li4wMDdlNGIwIDEwMDY0NAogIAwKICAvKiBJbnRlcm5hbCB2YXJpYWJsZXMuICBUaGVz ZSBhcmUgdmFyaWFibGVzIHdpdGhpbiB0aGUgZGVidWdnZXIKICAgICB0aGF0IGhvbGQgdmFsdWVz IGFzc2lnbmVkIGJ5IGRlYnVnZ2VyIGNvbW1hbmRzLgotQEAgLTEzODgsNiArMTQzMCwzNyBAQCBj YWxsX2ludGVybmFsX2Z1bmN0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0xMzg4 LDYgKzE0NDAsMzcgQEAgY2FsbF9pbnRlcm5hbF9mdW5jdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCiAgICByZXR1cm4gKCppZm4tPmhhbmRsZXIpIChnZGJhcmNoLCBsYW5ndWFnZSwgaWZu LT5jb29raWUsIGFyZ2MsIGFyZ3YpOwogIH0KICAKQEAgLTI0Njg3LDcgKzI1MjY0LDcgQEAgaW5k ZXggNjVhNWFhOS4uMDA3ZTRiMCAxMDA2NDQKICAvKiBUaGUgJ2Z1bmN0aW9uJyBjb21tYW5kLiAg VGhpcyBkb2VzIG5vdGhpbmcgLS0gaXQgaXMganVzdCBhCiAgICAgcGxhY2Vob2xkZXIgdG8gbGV0 ICJoZWxwIGZ1bmN0aW9uIE5BTUUiIHdvcmsuICBUaGlzIGlzIGFsc28gdXNlZCBhcwogICAgIHRo ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3ViLWNvbW1hbmQgdGhhdCBpcyBjcmVhdGVkIHdoZW4K LUBAIC0xNDMwLDE3ICsxNTAzLDI2IEBAIGFkZF9pbnRlcm5hbF9mdW5jdGlvbiAoY29uc3QgY2hh ciAqbmFtZSwgY29uc3QgY2hhciAqZG9jLAorQEAgLTE0MzAsMTYgKzE1MTMsMTUgQEAgYWRkX2lu dGVybmFsX2Z1bmN0aW9uIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpkb2MsCiAgLyog VXBkYXRlIFZBTFVFIGJlZm9yZSBkaXNjYXJkaW5nIE9CSkZJTEUuICBDT1BJRURfVFlQRVMgaXMg dXNlZCB0bwogICAgIHByZXZlbnQgY3ljbGVzIC8gZHVwbGljYXRlcy4gICovCiAgCkBAIC0yNDY5 OCwyNyArMjUyNzUsMTUgQEAgaW5kZXggNjVhNWFhOS4uMDA3ZTRiMCAxMDA2NDQKICB7CiAgICBp ZiAoVFlQRV9PQkpGSUxFICh2YWx1ZS0+dHlwZSkgPT0gb2JqZmlsZSkKIC0gICAgdmFsdWUtPnR5 cGUgPSBjb3B5X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlLCB2YWx1ZS0+dHlwZSwgY29waWVkX3R5 cGVzKTsKLSsgICAgewotKyAgICAgIC8qIE5vIG5lZWQgdG8gZGVjcmVmIHRoZSBvbGQgdHlwZSBo ZXJlLCBzaW5jZSB3ZSBrbm93IGl0IGhhcyBubwotKwkgcmVmZXJlbmNlIGNvdW50LiAgKi8KLSsg ICAgICB2YWx1ZS0+dHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHZhbHVlLT50eXBlLCBjb3Bp ZWRfdHlwZXMpOwotKyAgICAgIHR5cGVfaW5jcmVmICh2YWx1ZS0+dHlwZSk7Ci0rICAgIH0KKysg ICAgdmFsdWUtPnR5cGUgPSBjb3B5X3R5cGVfcmVjdXJzaXZlICh2YWx1ZS0+dHlwZSwgY29waWVk X3R5cGVzKTsKICAKICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVlLT5lbmNsb3NpbmdfdHlwZSkg PT0gb2JqZmlsZSkKIC0gICAgdmFsdWUtPmVuY2xvc2luZ190eXBlID0gY29weV90eXBlX3JlY3Vy c2l2ZSAob2JqZmlsZSwKIC0JCQkJCQkgdmFsdWUtPmVuY2xvc2luZ190eXBlLAotLQkJCQkJCSBj b3BpZWRfdHlwZXMpOwotKyAgICB7Ci0rICAgICAgLyogTm8gbmVlZCB0byBkZWNyZWYgdGhlIG9s ZCB0eXBlIGhlcmUsIHNpbmNlIHdlIGtub3cgaXQgaGFzIG5vCi0rCSByZWZlcmVuY2UgY291bnQu ICAqLwotKyAgICAgIHZhbHVlLT5lbmNsb3NpbmdfdHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUg KHZhbHVlLT5lbmNsb3NpbmdfdHlwZSwKLSsJCQkJCQkgICBjb3BpZWRfdHlwZXMpOwotKyAgICAg IHR5cGVfaW5jcmVmICh2YWx1ZS0+ZW5jbG9zaW5nX3R5cGUpOwotKyAgICB9CisrICAgIHZhbHVl LT5lbmNsb3NpbmdfdHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHZhbHVlLT5lbmNsb3Npbmdf dHlwZSwKKyAJCQkJCQkgY29waWVkX3R5cGVzKTsKICB9CiAgCi0gLyogTGlrZXdpc2UgZm9yIGlu dGVybmFsIHZhcmlhYmxlIFZBUi4gICovCiBAQCAtMTQ1NCw3ICsxNTM2LDcgQEAgcHJlc2VydmVf b25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfU0NBTEFSOgogICAgICAgIGlmICh2YXIt PnUuc2NhbGFyLnR5cGUgJiYgVFlQRV9PQkpGSUxFICh2YXItPnUuc2NhbGFyLnR5cGUpID09IG9i amZpbGUpCkBAIC0yNDgzOSw3ICsyNTQwNCw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAw NjQ0CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkICh2YWx1ZV90eXBlc19tYXJrX3VzZWQp OwogIH0KIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCi1pbmRleCAyOWFk NzgzLi5iYzk2MzA5IDEwMDY0NAoraW5kZXggMjlhZDc4My4uZWU4NDQwYiAxMDA2NDQKIC0tLSBh L2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAogQEAgLTM0NCwxMSArMzQ0LDE2IEBAIGV4 dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAg LTI0ODY3LDcgKzI1NDMyLDcgQEAgaW5kZXggMjlhZDc4My4uYmM5NjMwOSAxMDA2NDQKICAJCQkJ CSAgaW50IHdhbnRfYWRkcmVzcywKICAJCQkJCSAgZW51bSBub3NpZGUgbm9zaWRlKTsKICAKLUBA IC02NTgsMTIgKzY2NCwxMyBAQCBleHRlcm4gdm9pZCB0eXBlZGVmX3ByaW50IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3cywKK0BAIC02NTgsMTIgKzY2NCwxMiBAQCBleHRl cm4gdm9pZCB0eXBlZGVmX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAq bmV3cywKICAKICBleHRlcm4gY2hhciAqaW50ZXJuYWx2YXJfbmFtZSAoc3RydWN0IGludGVybmFs dmFyICp2YXIpOwogIApAQCAtMjQ4NzcsMTMgKzI1NDQyLDEyIEBAIGluZGV4IDI5YWQ3ODMuLmJj OTYzMDkgMTAwNjQ0CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY29weSAoc3RydWN0 IHZhbHVlICopOwogIAotK2V4dGVybiB2b2lkIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZh bHVlICp2YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCi0rCQkJCWh0YWJfdCBjb3BpZWRf dHlwZXMpOworK2V4dGVybiB2b2lkIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICos IHN0cnVjdCBvYmpmaWxlICosIGh0YWJfdCk7CiArCiAgLyogRnJvbSB2YWxvcHMuYyAqLwogIAog IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsK LUBAIC02ODEsNyArNjg4LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2NhdGVf c3BhY2VfaW5faW5mZXJpb3IgKGludCk7CitAQCAtNjgxLDcgKzY4Nyw3IEBAIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChpbnQpOwogIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29t cGxhaW4pOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAoc3RydWN0IHZhbHVlICphcnJheSwKQEAgLTI0ODkzLDEwICsyNTQ1NywxNSBAQCBpbmRleCAy OWFkNzgzLi5iYzk2MzA5IDEwMDY0NAogIC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAg CiBkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCi1pbmRleCA0YTk0OTg4 Li45YmZjMTMwIDEwMDY0NAoraW5kZXggNGE5NDk4OC4uMzQzMzNmYiAxMDA2NDQKIC0tLSBhL2dk Yi92YXJvYmouYwogKysrIGIvZ2RiL3Zhcm9iai5jCi1AQCAtMjksMTEgKzI5LDE0IEBACitAQCAt MjYsMTQgKzI2LDE4IEBACisgI2luY2x1ZGUgImdkYmNtZC5oIgorICNpbmNsdWRlICJibG9jay5o IgorICNpbmNsdWRlICJ2YWxwcmludC5oIgorKyNpbmNsdWRlICJvYmpmaWxlcy5oIgorKyNpbmNs dWRlICJwYXJzZXItZGVmcy5oIgogIAogICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCiAgI2luY2x1 ZGUgImdkYl9zdHJpbmcuaCIKQEAgLTI0OTA3LDExICsyNTQ3NiwxMCBAQCBpbmRleCA0YTk0OTg4 Li45YmZjMTMwIDEwMDY0NAogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW5m ZXJpb3IuaCIKICsjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKLSsjaW5jbHVkZSAicGFyc2VyLWRlZnMu aCIKICAKICAjaWYgSEFWRV9QWVRIT04KICAjaW5jbHVkZSAicHl0aG9uL3B5dGhvbi5oIgotQEAg LTU5LDYgKzYyLDE1IEBAIGNoYXIgKnZhcm9ial9mb3JtYXRfc3RyaW5nW10gPQorQEAgLTU5LDYg KzYzLDE1IEBAIGNoYXIgKnZhcm9ial9mb3JtYXRfc3RyaW5nW10gPQogIC8qIFN0cmluZyByZXBy ZXNlbnRhdGlvbnMgb2YgZ2RiJ3Mga25vd24gbGFuZ3VhZ2VzICovCiAgY2hhciAqdmFyb2JqX2xh bmd1YWdlX3N0cmluZ1tdID0geyAidW5rbm93biIsICJDIiwgIkMrKyIsICJKYXZhIiB9OwogIApA QCAtMjQ5MjcsNyArMjU0OTUsNyBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIC8q IERhdGEgc3RydWN0dXJlcyAqLwogIAogIC8qIEV2ZXJ5IHJvb3QgdmFyaWFibGUgaGFzIG9uZSBv ZiB0aGVzZSBzdHJ1Y3R1cmVzIHNhdmVkIGluIGl0cwotQEAgLTE3Myw2ICsxODUsMTcgQEAgc3Ry dWN0IHZhcm9iagorQEAgLTE3Myw5ICsxODYsMzEgQEAgc3RydWN0IHZhcm9iagogICAgICAgZnJv emVuLiAgKi8KICAgIGludCBub3RfZmV0Y2hlZDsKICAKQEAgLTI0OTQ1LDcgKzI1NTEzLDIxIEBA IGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiAgICAvKiBUaGUgcHJldHR5LXByaW50ZXIg dGhhdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4gIElmIE5VTEwsIHRoZW4gYQogICAgICAgbmV3IHBy aW50ZXIgb2JqZWN0IGlzIG5lZWRlZCwgYW5kIG9uZSB3aWxsIGJlIGNvbnN0cnVjdGVkLiAgKi8K ICAgIFB5T2JqZWN0ICpwcmV0dHlfcHJpbnRlcjsKLUBAIC0yMjEsNiArMjQ0LDggQEAgc3RhdGlj IHZvaWQgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKKysKKysgIC8qIFRoZSBp dGVyYXRvciByZXR1cm5lZCBieSB0aGUgcHJpbnRlcidzICdjaGlsZHJlbicgbWV0aG9kLCBvciBO VUxMCisrICAgICBpZiBub3QgYXZhaWxhYmxlLiAgKi8KKysgIFB5T2JqZWN0ICpjaGlsZF9pdGVy OworKworKyAgLyogV2UgcmVxdWVzdCBvbmUgZXh0cmEgaXRlbSBmcm9tIHRoZSBpdGVyYXRvciwg c28gdGhhdCB3ZSBjYW4KKysgICAgIHJlcG9ydCB0byB0aGUgY2FsbGVyIHdoZXRoZXIgdGhlcmUg YXJlIG1vcmUgaXRlbXMgdGhhbiB3ZSBoYXZlCisrICAgICBhbHJlYWR5IHJlcG9ydGVkLiAgSG93 ZXZlciwgd2UgZG9uJ3Qgd2FudCB0byBpbnN0YWxsIHRoaXMgdmFsdWUKKysgICAgIHdoZW4gd2Ug cmVhZCBpdCwgYmVjYXVzZSB0aGF0IHdpbGwgbWVzcyB1cCBmdXR1cmUgdXBkYXRlcy4gIFNvLAor KyAgICAgd2Ugc3Rhc2ggaXQgaGVyZSBpbnN0ZWFkLiAgKi8KKysgIFB5T2JqZWN0ICpzYXZlZF9p dGVtOworIH07CisgCisgc3RydWN0IGNwc3RhY2sKK0BAIC0yMjEsNiArMjU2LDggQEAgc3RhdGlj IHZvaWQgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKICAKICBzdGF0aWMgc3Ry dWN0IGNsZWFudXAgKm1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2 YXIpOwogIApAQCAtMjQ5NTQsNyArMjU1MzYsNyBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEw MDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X3R5cGUgKHN0cnVjdCB2YXJvYmogKnZhcik7 CiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhcm9iaiAq dmFyKTsKLUBAIC0yMzYsOCArMjYxLDYgQEAgc3RhdGljIGNoYXIgKmNwcG9wIChzdHJ1Y3QgY3Bz dGFjayAqKnBzdGFjayk7CitAQCAtMjM2LDggKzI3Myw2IEBAIHN0YXRpYyBjaGFyICpjcHBvcCAo c3RydWN0IGNwc3RhY2sgKipwc3RhY2spOwogIHN0YXRpYyBpbnQgaW5zdGFsbF9uZXdfdmFsdWUg KHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgCiAgCQkJICAgICAgaW50 IGluaXRpYWwpOwogIApAQCAtMjQ5NjMsNyArMjU1NDUsMTYgQEAgaW5kZXggNGE5NDk4OC4uOWJm YzEzMCAxMDA2NDQKICAvKiBMYW5ndWFnZS1zcGVjaWZpYyByb3V0aW5lcy4gKi8KICAKICBzdGF0 aWMgZW51bSB2YXJvYmpfbGFuZ3VhZ2VzIHZhcmlhYmxlX2xhbmd1YWdlIChzdHJ1Y3QgdmFyb2Jq ICp2YXIpOwotQEAgLTYxNCw5ICs2MzcsOSBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1l LAorQEAgLTQ1MCw2ICs0ODUsOCBAQCBpc19yb290X3AgKHN0cnVjdCB2YXJvYmogKnZhcikKKyBz dHJ1Y3QgY2xlYW51cCAqCisgdmFyb2JqX2Vuc3VyZV9weXRob25fZW52IChzdHJ1Y3QgdmFyb2Jq ICp2YXIpCisgeworKyAgZ2RiX2Fzc2VydCAodmFyLT5yb290LT5pc192YWxpZCk7CisrCisgICBy ZXR1cm4gZW5zdXJlX3B5dGhvbl9lbnYgKHZhci0+cm9vdC0+ZXhwLT5nZGJhcmNoLAorIAkJCSAg ICB2YXItPnJvb3QtPmV4cC0+bGFuZ3VhZ2VfZGVmbik7CisgfQorQEAgLTYxNCw5ICs2NTEsOSBA QCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAogIAkgIGRvX2NsZWFudXBzIChvbGRfY2hh aW4pOwogIAkgIHJldHVybiBOVUxMOwogIAl9CkBAIC0yNDk3NCwxOCArMjU1NjUsMzM5IEBAIGlu ZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hh aW4pOwogICAgcmV0dXJuIHZhcjsKICB9Ci1AQCAtODg0LDcgKzkwNyw5IEBAIHVwZGF0ZV9keW5h bWljX3Zhcm9ial9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLAorQEAgLTczMSwxNSArNzY4 LDggQEAgaW5zdGFudGlhdGVfcHJldHR5X3ByaW50ZXIgKFB5T2JqZWN0ICpjb25zdHJ1Y3Rvciwg c3RydWN0IHZhbHVlICp2YWx1ZSkKKyAjaWYgSEFWRV9QWVRIT04KKyAgIFB5T2JqZWN0ICp2YWxf b2JqID0gTlVMTDsgCisgICBQeU9iamVjdCAqcHJpbnRlcjsKKy0gIHZvbGF0aWxlIHN0cnVjdCBn ZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKyAKKy0gIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFT S19BTEwpCistICAgIHsKKy0gICAgICB2YWx1ZSA9IHZhbHVlX2NvcHkgKHZhbHVlKTsKKy0gICAg fQorLSAgR0RCX1BZX0hBTkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7CisgICB2YWxfb2JqID0gdmFs dWVfdG9fdmFsdWVfb2JqZWN0ICh2YWx1ZSk7CistCisgICBpZiAoISB2YWxfb2JqKQorICAgICBy ZXR1cm4gTlVMTDsKKyAKK0BAIC03OTIsNyArODIyLDEyIEBAIHZhcm9ial9nZXRfZGlzcGxheV9o aW50IChzdHJ1Y3QgdmFyb2JqICp2YXIpCisgICBjaGFyICpyZXN1bHQgPSBOVUxMOworIAorICNp ZiBIQVZFX1BZVEhPTgorLSAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG8gPSB2YXJvYmpfZW5zdXJl X3B5dGhvbl9lbnYgKHZhcik7CisrICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgIAorKyAg aWYgKCF2YXItPnJvb3QtPmlzX3ZhbGlkKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIGJhY2tf dG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7CisgCisgICBpZiAodmFyLT5wcmV0 dHlfcHJpbnRlcikKKyAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAodmFyLT5w cmV0dHlfcHJpbnRlcik7CitAQCAtODAzLDYgKzgzOCwxNyBAQCB2YXJvYmpfZ2V0X2Rpc3BsYXlf aGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQorICAgcmV0dXJuIHJlc3VsdDsKKyB9CisgCisrLyog UmV0dXJuIHRydWUgaWYgdGhlIHZhcm9iaiBoYXMgaXRlbXMgYWZ0ZXIgVE8sIGZhbHNlIG90aGVy d2lzZS4gICovCisrCisraW50CisrdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGludCB0bykKKyt7CisrICBpZiAoVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4p ID4gdG8pCisrICAgIHJldHVybiAxOworKyAgcmV0dXJuIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwg dmFyLT5jaGlsZHJlbikgPT0gdG8KKysJICAmJiB2YXItPnNhdmVkX2l0ZW0gIT0gTlVMTCk7Cisr fQorKworIC8qIElmIHRoZSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYSBzcGVjaWZpYyB0 aHJlYWQsIHRoYXQKKyAgICBpcyBpdHMgZXZhbHVhdGlvbiBjYW4gYWx3YXlzIGJlIGRvbmUgaW4g Y29udGV4dCBvZiBhIGZyYW1lCisgICAgaW5zaWRlIHRoYXQgdGhyZWFkLCByZXR1cm5zIEdEQiBp ZCBvZiB0aGUgdGhyZWFkIC0tIHdoaWNoCitAQCAtODM1LDIyICs4ODEsNzMgQEAgdmFyb2JqX2dl dF9mcm96ZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKKyAgIHJldHVybiB2YXItPmZyb3plbjsKKyB9 CisgCisrLyogQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCByZXN0cmljdHMgYSByYW5nZSB0byB3aGF0 IGlzIGFjdHVhbGx5CisrICAgYXZhaWxhYmxlIGluIGEgVkVDLiAgVGhpcyBmb2xsb3dzIHRoZSB1 c3VhbCBydWxlcyBmb3IgdGhlIG1lYW5pbmcKKysgICBvZiBGUk9NIGFuZCBUTyAtLSBpZiBlaXRo ZXIgaXMgbmVnYXRpdmUsIHRoZSBlbnRpcmUgcmFuZ2UgaXMKKysgICB1c2VkLiAgKi8KKysKKytz dGF0aWMgdm9pZAorK3Jlc3RyaWN0X3JhbmdlIChWRUMgKHZhcm9ial9wKSAqY2hpbGRyZW4sIGlu dCAqZnJvbSwgaW50ICp0bykKKyt7CisrICBpZiAoKmZyb20gPCAwIHx8ICp0byA8IDApCisrICAg IHsKKysgICAgICAqZnJvbSA9IDA7CisrICAgICAgKnRvID0gVkVDX2xlbmd0aCAodmFyb2JqX3As IGNoaWxkcmVuKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgaWYgKCpmcm9tID4g VkVDX2xlbmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKSkKKysJKmZyb20gPSBWRUNfbGVuZ3RoICh2 YXJvYmpfcCwgY2hpbGRyZW4pOworKyAgICAgIGlmICgqdG8gPiBWRUNfbGVuZ3RoICh2YXJvYmpf cCwgY2hpbGRyZW4pKQorKwkqdG8gPSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pOwor KyAgICAgIGlmICgqZnJvbSA+ICp0bykKKysJKmZyb20gPSAqdG87CisrICAgIH0KKyt9CisrCisr LyogQSBoZWxwZXIgZm9yIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiB0aGF0IGluc3Rh bGxzIGEgbmV3CisrICAgY2hpbGQgd2hlbiBuZWVkZWQuICAqLworKworK3N0YXRpYyB2b2lkCisr aW5zdGFsbF9keW5hbWljX2NoaWxkIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisrCQkgICAgICAgVkVD ICh2YXJvYmpfcCkgKipjaGFuZ2VkLAorKwkJICAgICAgIFZFQyAodmFyb2JqX3ApICoqbmV3LAor KwkJICAgICAgIGludCAqY2NoYW5nZWQsCisrCQkgICAgICAgaW50IGluZGV4LAorKwkJICAgICAg IGNvbnN0IGNoYXIgKm5hbWUsCisrCQkgICAgICAgc3RydWN0IHZhbHVlICp2YWx1ZSkKKyt7Cisr ICBpZiAoVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pIDwgaW5kZXggKyAxKQor KyAgICB7CisrICAgICAgLyogVGhlcmUncyBubyBjaGlsZCB5ZXQuICAqLworKyAgICAgIHN0cnVj dCB2YXJvYmogKmNoaWxkID0gdmFyb2JqX2FkZF9jaGlsZCAodmFyLCBuYW1lLCB2YWx1ZSk7Cisr ICAgICAgaWYgKG5ldykKKysJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpuZXcsIGNoaWxkKTsK KysgICAgICAqY2NoYW5nZWQgPSAxOworKyAgICB9CisrICBlbHNlIAorKyAgICB7CisrICAgICAg dmFyb2JqX3AgZXhpc3RpbmcgPSBWRUNfaW5kZXggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBp bmRleCk7CisrICAgICAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlIChleGlzdGluZywgdmFsdWUsIDAp KQorKwl7CisrCSAgaWYgKGNoYW5nZWQpCisrCSAgICBWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwg KmNoYW5nZWQsIGV4aXN0aW5nKTsKKysJfQorKyAgICB9CisrfQorKworIHN0YXRpYyBpbnQKKyB1 cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKKyAJCQkJ VkVDICh2YXJvYmpfcCkgKipjaGFuZ2VkLAorLQkJCQlWRUMgKHZhcm9ial9wKSAqKm5ld19hbmRf dW5jaGFuZ2VkLAorLQkJCQlpbnQgKmNjaGFuZ2VkKQorLQorKwkJCQlWRUMgKHZhcm9ial9wKSAq Km5ldywKKysJCQkJaW50ICpjY2hhbmdlZCwKKysJCQkJaW50IHVwZGF0ZV9jaGlsZHJlbiwKKysJ CQkJaW50IHRvKQorIHsKKyAjaWYgSEFWRV9QWVRIT04KKy0gIC8qIEZJWE1FOiB3ZSAqbWlnaHQq IHdhbnQgdG8gcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYXMKKy0gICAgIGEgc3RhbmRhbG9u ZSBmdW5jdGlvbiwgc28gdGhhdCBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMKKy0gICAgIHRoYW4g dmFyb2JqIGNvZGUgY2FuIGJlbmVmaXQgZm9yIHRoaXMuICAqLworICAgc3RydWN0IGNsZWFudXAg KmJhY2tfdG87CisgICBQeU9iamVjdCAqY2hpbGRyZW47CistICBQeU9iamVjdCAqaXRlcmF0b3I7 CisgICBpbnQgaTsKKy0gIGludCBjaGlsZHJlbl9jaGFuZ2VkID0gMDsKKyAgIFB5T2JqZWN0ICpw cmludGVyID0gdmFyLT5wcmV0dHlfcHJpbnRlcjsKKyAKKyAgIGJhY2tfdG8gPSB2YXJvYmpfZW5z dXJlX3B5dGhvbl9lbnYgKHZhcik7CitAQCAtODYyLDk2ICs5NTksMTAzIEBAIHVwZGF0ZV9keW5h bWljX3Zhcm9ial9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLAorICAgICAgIHJldHVybiAw OwogICAgICB9Ci0gICBtYWtlX2NsZWFudXBfcHlfZGVjcmVmIChpdGVyYXRvcik7CisgCistICBj aGlsZHJlbiA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzIChwcmludGVyLCBnZGJweV9jaGls ZHJlbl9jc3QsCistCQkJCQkgTlVMTCk7CistCistICBpZiAoIWNoaWxkcmVuKQorKyAgaWYgKHVw ZGF0ZV9jaGlsZHJlbiB8fCAhdmFyLT5jaGlsZF9pdGVyKQorICAgICB7CistICAgICAgZ2RicHlf cHJpbnRfc3RhY2sgKCk7CistICAgICAgZXJyb3IgKF8oIk51bGwgdmFsdWUgcmV0dXJuZWQgZm9y IGNoaWxkcmVuIikpOworLSAgICB9CisrICAgICAgY2hpbGRyZW4gPSBQeU9iamVjdF9DYWxsTWV0 aG9kT2JqQXJncyAocHJpbnRlciwgZ2RicHlfY2hpbGRyZW5fY3N0LAorKwkJCQkJICAgICBOVUxM KTsKKyAKKy0gIG1ha2VfY2xlYW51cF9weV9kZWNyZWYgKGNoaWxkcmVuKTsKKysgICAgICBpZiAo IWNoaWxkcmVuKQorKwl7CisrCSAgZ2RicHlfcHJpbnRfc3RhY2sgKCk7CisrCSAgZXJyb3IgKF8o Ik51bGwgdmFsdWUgcmV0dXJuZWQgZm9yIGNoaWxkcmVuIikpOworKwl9CisgCistICBpZiAoIVB5 SXRlcl9DaGVjayAoY2hpbGRyZW4pKQorLSAgICBlcnJvciAoXygiUmV0dXJuZWQgdmFsdWUgaXMg bm90IGl0ZXJhYmxlIikpOworKyAgICAgIG1ha2VfY2xlYW51cF9weV9kZWNyZWYgKGNoaWxkcmVu KTsKKyAKKy0gIGl0ZXJhdG9yID0gUHlPYmplY3RfR2V0SXRlciAoY2hpbGRyZW4pOworLSAgaWYg KCFpdGVyYXRvcikKKy0gICAgeworLSAgICAgIGdkYnB5X3ByaW50X3N0YWNrICgpOworLSAgICAg IGVycm9yIChfKCJDb3VsZCBub3QgZ2V0IGNoaWxkcmVuIGl0ZXJhdG9yIikpOworKyAgICAgIGlm ICghUHlJdGVyX0NoZWNrIChjaGlsZHJlbikpCisrCWVycm9yIChfKCJSZXR1cm5lZCB2YWx1ZSBp cyBub3QgaXRlcmFibGUiKSk7CisrCisrICAgICAgUHlfWERFQ1JFRiAodmFyLT5jaGlsZF9pdGVy KTsKKysgICAgICB2YXItPmNoaWxkX2l0ZXIgPSBQeU9iamVjdF9HZXRJdGVyIChjaGlsZHJlbik7 CisrICAgICAgaWYgKCF2YXItPmNoaWxkX2l0ZXIpCisrCXsKKysJICBnZGJweV9wcmludF9zdGFj ayAoKTsKKysJICBlcnJvciAoXygiQ291bGQgbm90IGdldCBjaGlsZHJlbiBpdGVyYXRvciIpKTsK KysJfQorKworKyAgICAgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7CisrICAgICAgdmFy LT5zYXZlZF9pdGVtID0gTlVMTDsKKysKKysgICAgICBpID0gMDsKKyAgICAgfQorLSAgbWFrZV9j bGVhbnVwX3B5X2RlY3JlZiAoaXRlcmF0b3IpOworKyAgZWxzZQorKyAgICBpID0gVkVDX2xlbmd0 aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pOwogIAogLSAgZm9yIChpID0gMDsgOyArK2kpCiAr ICAvKiBXZSBhc2sgZm9yIG9uZSBleHRyYSBjaGlsZCwgc28gdGhhdCBNSSBjYW4gcmVwb3J0IHdo ZXRoZXIgdGhlcmUKICsgICAgIGFyZSBtb3JlIGNoaWxkcmVuLiAgKi8KLSsgIGZvciAoaSA9IDA7 IHZhci0+dG8gPCAwIHx8IGkgPCB2YXItPnRvICsgMTsgKytpKQorKyAgZm9yICg7IHRvIDwgMCB8 fCBpIDwgdG8gKyAxOyArK2kpCisgICAgIHsKKy0gICAgICBQeU9iamVjdCAqaXRlbSA9IFB5SXRl cl9OZXh0IChpdGVyYXRvcik7CistICAgICAgUHlPYmplY3QgKnB5X3Y7CistICAgICAgc3RydWN0 IHZhbHVlICp2OworLSAgICAgIGNoYXIgKm5hbWU7CistICAgICAgc3RydWN0IGNsZWFudXAgKmlu bmVyOworLSAgICAgIAorLSAgICAgIGlmICghaXRlbSkKKy0JYnJlYWs7CistICAgICAgaW5uZXIg PSBtYWtlX2NsZWFudXBfcHlfZGVjcmVmIChpdGVtKTsKKysgICAgICBQeU9iamVjdCAqaXRlbTsK KyAKKy0gICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUgKGl0ZW0sICJzTyIsICZuYW1lLCAmcHlf dikpCistCWVycm9yIChfKCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKKy0g ICAgICAKKy0gICAgICBpZiAoUHlPYmplY3RfVHlwZUNoZWNrIChweV92LCAmdmFsdWVfb2JqZWN0 X3R5cGUpKQorKyAgICAgIC8qIFNlZSBpZiB0aGVyZSB3YXMgYSBsZWZ0b3ZlciBmcm9tIGxhc3Qg dGltZS4gICovCisrICAgICAgaWYgKHZhci0+c2F2ZWRfaXRlbSkKKyAJeworLQkgIC8qIElmIHdl IGp1c3QgY2FsbCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIGZvciB0aGlzIHR5cGUsCistCSAg ICAgd2Ugd29uJ3Qga25vdyB3aG8gb3ducyB0aGUgcmVzdWx0LiAgRm9yIHRoaXMgb25lIGNhc2Ug d2UKKy0JICAgICBuZWVkIHRvIGNvcHkgdGhlIHJlc3VsdGluZyB2YWx1ZS4gICovCistCSAgdiA9 IHZhbHVlX29iamVjdF90b192YWx1ZSAocHlfdik7CistCSAgdiA9IHZhbHVlX2NvcHkgKHYpOwor KwkgIGl0ZW0gPSB2YXItPnNhdmVkX2l0ZW07CisrCSAgdmFyLT5zYXZlZF9pdGVtID0gTlVMTDsK KyAJfQorICAgICAgIGVsc2UKKy0JdiA9IGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gKHB5X3Yp OworKwlpdGVtID0gUHlJdGVyX05leHQgKHZhci0+Y2hpbGRfaXRlcik7CisgCistICAgICAgLyog VE9ETzogVGhpcyBhc3N1bWUgdGhlIG5hbWUgb2YgdGhlIGktdGggY2hpbGQgbmV2ZXIgY2hhbmdl cy4gICovCisrICAgICAgaWYgKCFpdGVtKQorKwlicmVhazsKKyAKKy0gICAgICAvKiBOb3cgc2Vl IHdoYXQgdG8gZG8gaGVyZS4gICovCistICAgICAgaWYgKFZFQ19sZW5ndGggKHZhcm9ial9wLCB2 YXItPmNoaWxkcmVuKSA8IGkgKyAxKQorKyAgICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gcHVzaCB0 aGUgZXh0cmEgY2hpbGQgb24gYW55IHJlcG9ydCBsaXN0LiAgKi8KKysgICAgICBpZiAodG8gPCAw IHx8IGkgPCB0bykKKyAJeworLQkgIC8qIFRoZXJlJ3Mgbm8gY2hpbGQgeWV0LiAgKi8KKy0JICBz dHJ1Y3QgdmFyb2JqICpjaGlsZCA9IHZhcm9ial9hZGRfY2hpbGQgKHZhciwgbmFtZSwgdik7Cist CSAgaWYgKG5ld19hbmRfdW5jaGFuZ2VkKQorLQkgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3As ICpuZXdfYW5kX3VuY2hhbmdlZCwgY2hpbGQpOworLQkgIGNoaWxkcmVuX2NoYW5nZWQgPSAxOwor KwkgIFB5T2JqZWN0ICpweV92OworKwkgIGNoYXIgKm5hbWU7CisrCSAgc3RydWN0IHZhbHVlICp2 OworKwkgIHN0cnVjdCBjbGVhbnVwICppbm5lcjsKKysKKysJICBpbm5lciA9IG1ha2VfY2xlYW51 cF9weV9kZWNyZWYgKGl0ZW0pOworKworKwkgIGlmICghUHlBcmdfUGFyc2VUdXBsZSAoaXRlbSwg InNPIiwgJm5hbWUsICZweV92KSkKKysJICAgIGVycm9yIChfKCJJbnZhbGlkIGl0ZW0gZnJvbSB0 aGUgY2hpbGQgbGlzdCIpKTsKKysKKysJICB2ID0gY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAo cHlfdik7CisrCSAgaW5zdGFsbF9keW5hbWljX2NoaWxkICh2YXIsIGNoYW5nZWQsIG5ldywKKysJ CQkJIGNjaGFuZ2VkLCBpLCBuYW1lLCB2KTsKKysJICBkb19jbGVhbnVwcyAoaW5uZXIpOworIAl9 CistICAgICAgZWxzZSAKKysgICAgICBlbHNlCisgCXsKKy0JICB2YXJvYmpfcCBleGlzdGluZyA9 IFZFQ19pbmRleCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGkpOworLQkgIGlmIChpbnN0YWxs X25ld192YWx1ZSAoZXhpc3RpbmcsIHYsIDApICYmIGNoYW5nZWQpCistCSAgICB7CistCSAgICAg IGlmIChjaGFuZ2VkKQorLQkJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpjaGFuZ2VkLCBleGlz dGluZyk7CistCSAgICB9CistCSAgZWxzZQorLQkgICAgeworLQkgICAgICBpZiAobmV3X2FuZF91 bmNoYW5nZWQpCistCQlWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKm5ld19hbmRfdW5jaGFuZ2Vk LCBleGlzdGluZyk7CistCSAgICB9CistCX0KKysJICBQeV9YREVDUkVGICh2YXItPnNhdmVkX2l0 ZW0pOworKwkgIHZhci0+c2F2ZWRfaXRlbSA9IGl0ZW07CisgCistICAgICAgZG9fY2xlYW51cHMg KGlubmVyKTsKKysJICAvKiBXZSB3YW50IHRvIHRydW5jYXRlIHRoZSBjaGlsZCBsaXN0IGp1c3Qg YmVmb3JlIHRoaXMKKysJICAgICBlbGVtZW50LiAgKi8KKysJICBicmVhazsKKysJfQorICAgICB9 CisgCisgICBpZiAoaSA8IFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKSkKICAg ICAgewotICAgICAgIFB5T2JqZWN0ICppdGVtID0gUHlJdGVyX05leHQgKGl0ZXJhdG9yKTsKLSAg ICAgICBQeU9iamVjdCAqcHlfdjsKLUBAIC0xMDE1LDcgKzEwNDAsNiBAQCB2YXJvYmpfbGlzdF9j aGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKQorLSAgICAgIGludCBpOworLSAgICAgIGNoaWxk cmVuX2NoYW5nZWQgPSAxOworLSAgICAgIGZvciAoaSA9IDA7IGkgPCBWRUNfbGVuZ3RoICh2YXJv YmpfcCwgdmFyLT5jaGlsZHJlbik7ICsraSkKKy0JdmFyb2JqX2RlbGV0ZSAoVkVDX2luZGV4ICh2 YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwgaSksIE5VTEwsIDApOworKyAgICAgIGludCBqOworKyAg ICAgICpjY2hhbmdlZCA9IDE7CisrICAgICAgZm9yIChqID0gaTsgaiA8IFZFQ19sZW5ndGggKHZh cm9ial9wLCB2YXItPmNoaWxkcmVuKTsgKytqKQorKwl2YXJvYmpfZGVsZXRlIChWRUNfaW5kZXgg KHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBqKSwgTlVMTCwgMCk7CisrICAgICAgVkVDX3RydW5j YXRlICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwgaSk7CisgICAgIH0KKy0gIFZFQ190cnVuY2F0 ZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGkpOworKworKyAgLyogSWYgdGhlcmUgYXJlIGZl d2VyIGNoaWxkcmVuIHRoYW4gcmVxdWVzdGVkLCBub3RlIHRoYXQgdGhlIGxpc3Qgb2YKKysgICAg IGNoaWxkcmVuIGNoYW5nZWQuICAqLworKyAgaWYgKHRvID49IDAgJiYgVkVDX2xlbmd0aCAodmFy b2JqX3AsIHZhci0+Y2hpbGRyZW4pIDwgdG8pCisrICAgICpjY2hhbmdlZCA9IDE7CisrCisgICB2 YXItPm51bV9jaGlsZHJlbiA9IFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKTsK KyAgCisgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgCistICAqY2NoYW5nZWQgPSBjaGlsZHJl bl9jaGFuZ2VkOworICAgcmV0dXJuIDE7CisgI2Vsc2UKKyAgIGdkYl9hc3NlcnQgKDAgJiYgInNo b3VsZCBuZXZlciBiZSBjYWxsZWQgaWYgUHl0aG9uIGlzIG5vdCBlbmFibGVkIik7CitAQCAtOTY0 LDggKzEwNjgsNyBAQCB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFy KQorICAgaWYgKHZhci0+bnVtX2NoaWxkcmVuID09IC0xKQorICAgICB7CisgICAgICAgaW50IGNo YW5nZWQ7CistICAgICAgaWYgKCF2YXItPnByZXR0eV9wcmludGVyCistCSAgfHwgIXVwZGF0ZV9k eW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmY2hhbmdlZCkpCisrICAg ICAgaWYgKCF2YXItPnByZXR0eV9wcmludGVyKQorIAl2YXItPm51bV9jaGlsZHJlbiA9IG51bWJl cl9vZl9jaGlsZHJlbiAodmFyKTsKKyAgICAgfQorIAorQEAgLTk3Niw3ICsxMDc5LDcgQEAgdmFy b2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKKyAgICB0aGUgcmV0dXJu IGNvZGUgaXMgdGhlIG51bWJlciBvZiBzdWNoIGNoaWxkcmVuIG9yIC0xIG9uIGVycm9yICovCisg CisgVkVDICh2YXJvYmpfcCkqCistdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmog KnZhcikKKyt2YXJvYmpfbGlzdF9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLCBpbnQgKmZy b20sIGludCAqdG8pCisgeworICAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CisgICBjaGFyICpuYW1l OworQEAgLTk4OCw4ICsxMDkxLDEyIEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFy b2JqICp2YXIpCisgICAgICAgLyogVGhpcywgaW4gdGhlb3J5LCBjYW4gcmVzdWx0IGluIHRoZSBu dW1iZXIgb2YgY2hpbGRyZW4gY2hhbmdpbmcgd2l0aG91dAorIAkgZnJvbnRlbmQgbm90aWNpbmcu ICBCdXQgd2VsbCwgY2FsbGluZyAtdmFyLWxpc3QtY2hpbGRyZW4gb24gdGhlIHNhbWUKKyAJIHZh cm9iaiB0d2ljZSBpcyBub3Qgc29tZXRoaW5nIGEgc2FuZSBmcm9udGVuZCB3b3VsZCBkby4gICov CistICAgICAgJiYgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5V TEwsICZjaGlsZHJlbl9jaGFuZ2VkKSkKKy0gICAgcmV0dXJuIHZhci0+Y2hpbGRyZW47CisrICAg ICAgJiYgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwsICZj aGlsZHJlbl9jaGFuZ2VkLAorKwkJCQkJIDAsICp0bykpCisrICAgIHsKKysgICAgICByZXN0cmlj dF9yYW5nZSAodmFyLT5jaGlsZHJlbiwgZnJvbSwgdG8pOworKyAgICAgIHJldHVybiB2YXItPmNo aWxkcmVuOworKyAgICB9CisgCisgICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCisgICAg IHZhci0+bnVtX2NoaWxkcmVuID0gbnVtYmVyX29mX2NoaWxkcmVuICh2YXIpOworQEAgLTEwMTUs MTAgKzExMjIsMTAgQEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikK ICAJICBuYW1lID0gbmFtZV9vZl9jaGlsZCAodmFyLCBpKTsKICAJICBleGlzdGluZyA9IGNyZWF0 ZV9jaGlsZCAodmFyLCBpLCBuYW1lKTsKICAJICBWRUNfcmVwbGFjZSAodmFyb2JqX3AsIHZhci0+ Y2hpbGRyZW4sIGksIGV4aXN0aW5nKTsKQEAgLTI0OTkzLDcgKzI1OTA1LDExIEBAIGluZGV4IDRh OTQ5ODguLjliZmMxMzAgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTEwMjksNyArMTA1Myw2 IEBAIHZhcm9ial9hZGRfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqbmFt ZSwgc3RydWN0IHZhbHVlICp2YWx1ZSkKKysgIHJlc3RyaWN0X3JhbmdlICh2YXItPmNoaWxkcmVu LCBmcm9tLCB0byk7CisgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKKyB9CisgCitAQCAtMTAyOSw3 ICsxMTM2LDYgQEAgdmFyb2JqX2FkZF9jaGlsZCAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogIAkJCQkJVkVDX2xlbmd0aCAodmFyb2Jq X3AsIHZhci0+Y2hpbGRyZW4pLCAKICAJCQkJCW5hbWUsIHZhbHVlKTsKICAgIFZFQ19zYWZlX3B1 c2ggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCB2KTsKQEAgLTI1MDAxLDcgKzI1OTE3LDcgQEAg aW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKICAgIHJldHVybiB2OwogIH0KICAKLUBAIC0x MTY4LDYgKzExOTEsMTEyIEBAIHZhcm9ial9zZXRfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwg Y2hhciAqZXhwcmVzc2lvbikKK0BAIC0xMTY4LDYgKzEyNzQsMTE1IEBAIHZhcm9ial9zZXRfdmFs dWUgKHN0cnVjdCB2YXJvYmogKnZhciwgY2hhciAqZXhwcmVzc2lvbikKICAgIHJldHVybiAxOwog IH0KICAKQEAgLTI1MDE5LDYgKzI1OTM1LDkgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2 NDQKICsKICsgIFB5X1hERUNSRUYgKHZhci0+cHJldHR5X3ByaW50ZXIpOwogKyAgdmFyLT5wcmV0 dHlfcHJpbnRlciA9IHZpc3VhbGl6ZXI7CisrCisrICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0 ZXIpOworKyAgdmFyLT5jaGlsZF9pdGVyID0gTlVMTDsKICt9CiArCiArLyogSW5zdGFsbCB0aGUg ZGVmYXVsdCB2aXN1YWxpemVyIGZvciBWQVIuICAqLwpAQCAtMjUxMTQsNyArMjYwMzMsNyBAQCBp bmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIC8qIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byBh IHZhcmlhYmxlIG9iamVjdC4gIElmIElOSVRJQUwgaXMgbm9uLXplcm8sCiAgICAgdGhpcyBpcyB0 aGUgZmlyc3QgYXNzaWduZW1lbnQgYWZ0ZXIgdGhlIHZhcmlhYmxlIG9iamVjdCB3YXMganVzdAog ICAgIGNyZWF0ZWQsIG9yIGNoYW5nZWQgdHlwZS4gIEluIHRoYXQgY2FzZSwganVzdCBhc3NpZ24g dGhlIHZhbHVlIAotQEAgLTEyNzQsNyArMTQwMyw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1 Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQorQEAgLTEy NzQsNyArMTQ4OSw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQogIAl7CiAgCSAgY2hhbmdlZCA9IDE7CiAg CX0KQEAgLTI1MTIzLDcgKzI2MDQyLDcgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQK ICAJewogIAkgIC8qIFRyeSB0byBjb21wYXJlIHRoZSB2YWx1ZXMuICBUaGF0IHJlcXVpcmVzIHRo YXQgYm90aAogIAkgICAgIHZhbHVlcyBhcmUgbm9uLWxhenkuICAqLwotQEAgLTEzMjgsNjUgKzE0 NTcsNDcgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZh bHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCitAQCAtMTMyOCw2NSArMTU0MywzMiBAQCBpbnN0YWxs X25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQg aW5pdGlhbCkKICAgICAgdmFyLT5ub3RfZmV0Y2hlZCA9IDA7CiAgICB2YXItPnVwZGF0ZWQgPSAw OwogIApAQCAtMjUxMzYsNyArMjYwNTUsMTMgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2 NDQKICAKIC1zdGF0aWMgdm9pZAogLWluc3RhbGxfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAq dmFyLCBQeU9iamVjdCAqdmlzdWFsaXplcikKLS17CisrLyogUmV0dXJuIHRoZSByZXF1ZXN0ZWQg cmFuZ2UgZm9yIGEgdmFyb2JqLiAgVkFSIGlzIHRoZSB2YXJvYmouICBGUk9NCisrICAgYW5kIFRP IGFyZSBvdXQgcGFyYW1ldGVyczsgKkZST00gYW5kICpUTyB3aWxsIGJlIHNldCB0byB0aGUKKysg ICBzZWxlY3RlZCBzdWItcmFuZ2Ugb2YgVkFSLiAgSWYgbm8gcmFuZ2Ugd2FzIHNlbGVjdGVkIHVz aW5nCisrICAgLXZhci1zZXQtdXBkYXRlLXJhbmdlLCB0aGVuIGJvdGggd2lsbCBiZSAtMS4gICov Cisrdm9pZAorK3Zhcm9ial9nZXRfY2hpbGRfcmFuZ2UgKHN0cnVjdCB2YXJvYmogKnZhciwgaW50 ICpmcm9tLCBpbnQgKnRvKQorIHsKIC0jaWYgSEFWRV9QWVRIT04KIC0gIC8qIElmIHRoZXJlIGFy ZSBhbnkgY2hpbGRyZW4gbm93LCB3aXBlIHRoZW0uICAqLwogLSAgdmFyb2JqX2RlbGV0ZSAodmFy LCBOVUxMLCAxIC8qIGNoaWxkcmVuIG9ubHkgKi8pOwpAQCAtMjUxNTYsMTkgKzI2MDgxLDE3IEBA IGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiAtI2Vsc2UKIC0gIGVycm9yIChfKCJQeXRo b24gc3VwcG9ydCByZXF1aXJlZCIpKTsKIC0jZW5kaWYKLS19Ci0tCisrICAqZnJvbSA9IHZhci0+ ZnJvbTsKKysgICp0byA9IHZhci0+dG87CisgfQorIAogLXN0YXRpYyB2b2lkCiAtaW5zdGFsbF9k ZWZhdWx0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhcikKLSsvKiBSZXR1cm4gdGhlIGVm ZmVjdGl2ZSByZXF1ZXN0ZWQgcmFuZ2UgZm9yIGEgdmFyb2JqLiAgVkFSIGlzIHRoZQotKyAgIHZh cm9iai4gIENISUxEUkVOIGlzIHRoZSBjb21wdXRlZCBsaXN0IG9mIGNoaWxkcmVuLiAgRlJPTSBh bmQgVE8KLSsgICBhcmUgb3V0IHBhcmFtZXRlcnMuICBJZiBWQVIgaGFzIG5vIGJvdW5kcyBzZWxl Y3RlZCwgKkZST00gYW5kICpUTwotKyAgIHdpbGwgYmUgc2V0IHRvIHRoZSBmdWxsIHJhbmdlIG9m IENISUxEUkVOLiAgT3RoZXJ3aXNlLCAqRlJPTSBhbmQKLSsgICAqVE8gd2lsbCBiZSBzZXQgdG8g dGhlIHNlbGVjdGVkIHN1Yi1yYW5nZSBvZiBWQVIsIGNsaXBwZWQgdG8gYmUgaW4KLSsgICByYW5n ZSBvZiBDSElMRFJFTi4gICovCisrLyogU2V0IHRoZSBzZWxlY3RlZCBzdWItcmFuZ2Ugb2YgY2hp bGRyZW4gb2YgVkFSIHRvIHN0YXJ0IGF0IGluZGV4CisrICAgRlJPTSBhbmQgZW5kIGF0IGluZGV4 IFRPLiAgSWYgZWl0aGVyIEZST00gb3IgVE8gaXMgbGVzcyB0aGFuIHplcm8sCisrICAgdGhpcyBp cyBpbnRlcnByZXRlZCBhcyBhIHJlcXVlc3QgZm9yIGFsbCBjaGlsZHJlbi4gICovCiArdm9pZAot K3Zhcm9ial9nZXRfY2hpbGRfcmFuZ2UgKHN0cnVjdCB2YXJvYmogKnZhciwgVkVDICh2YXJvYmpf cCkgKmNoaWxkcmVuLAotKwkJCWludCAqZnJvbSwgaW50ICp0bykKKyt2YXJvYmpfc2V0X2NoaWxk X3JhbmdlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCBmcm9tLCBpbnQgdG8pCiAgewogLSNpZiBI QVZFX1BZVEhPTgogLSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7CkBAIC0yNTE3Nyw1MCArMjYx MDAsMzIgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKIC0gIGNsZWFudXAgPSB2YXJv YmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7CiAtCiAtICBpZiAodmFyLT52YWx1ZSkKLSsgIGlm ICh2YXItPmZyb20gPCAwIHx8IHZhci0+dG8gPCAwKQotICAgICB7CistICAgIHsKIC0gICAgICBw cmV0dHlfcHJpbnRlciA9IGdkYnB5X2dldF92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhci0+dmFs dWUpOwogLSAgICAgIGlmICghIHByZXR0eV9wcmludGVyKQogLQl7CiAtCSAgZ2RicHlfcHJpbnRf c3RhY2sgKCk7CiAtCSAgZXJyb3IgKF8oIkNhbm5vdCBpbnN0YW50aWF0ZSBwcmludGVyIGZvciBk ZWZhdWx0IHZpc3VhbGl6ZXIiKSk7CiAtCX0KLSsgICAgICAqZnJvbSA9IDA7Ci0rICAgICAgKnRv ID0gVkVDX2xlbmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKTsKLSAgICAgfQorLSAgICB9CiAtICAg ICAgCiAtICBpZiAocHJldHR5X3ByaW50ZXIgPT0gUHlfTm9uZSkKLSsgIGVsc2UKLSAgICAgewor LSAgICB7CiAtICAgICAgUHlfREVDUkVGIChwcmV0dHlfcHJpbnRlcik7CiAtICAgICAgcHJldHR5 X3ByaW50ZXIgPSBOVUxMOwotKyAgICAgICpmcm9tID0gdmFyLT5mcm9tOwotKyAgICAgIGlmICgq ZnJvbSA+IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbikpCi0rCSpmcm9tID0gVkVDX2xl bmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKTsKLSsgICAgICAqdG8gPSB2YXItPnRvOwotKyAgICAg IGlmICgqdG8gPiBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pKQotKwkqdG8gPSBWRUNf bGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pOwotICAgICB9CistICAgIH0KIC0gIAogLSAgaW5z dGFsbF92aXN1YWxpemVyICh2YXIsIHByZXR0eV9wcmludGVyKTsKIC0gIGRvX2NsZWFudXBzIChj bGVhbnVwKTsKIC0jZWxzZQogLSAgLyogTm8gZXJyb3IgaXMgcmlnaHQgYXMgdGhpcyBmdW5jdGlv biBpcyBpbnNlcnRlZCBqdXN0IGFzIGEgaG9vay4gICovCiAtI2VuZGlmCi0rfQotKwotKy8qIFNl dCB0aGUgc2VsZWN0ZWQgc3ViLXJhbmdlIG9mIGNoaWxkcmVuIG9mIFZBUiB0byBzdGFydCBhdCBp bmRleAotKyAgIEZST00gYW5kIGVuZCBhdCBpbmRleCBUTy4gIElmIGVpdGhlciBGUk9NIG9yIFRP IGlzIGxlc3MgdGhhbiB6ZXJvLAotKyAgIHRoaXMgaXMgaW50ZXJwcmV0ZWQgYXMgYSByZXF1ZXN0 IGZvciBhbGwgY2hpbGRyZW4uICAqLwotK3ZvaWQKLSt2YXJvYmpfc2V0X2NoaWxkX3JhbmdlIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGludCBmcm9tLCBpbnQgdG8pCi0rewogKyAgdmFyLT5mcm9tID0g ZnJvbTsKICsgIHZhci0+dG8gPSB0bzsKICB9CiAgCiAgdm9pZCAKLUBAIC0xNDA0LDMxICsxNTE1 LDE5IEBAIHZhcm9ial9zZXRfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBj aGFyICp2aXN1YWxpemVyKQorQEAgLTE0MDQsMzEgKzE1ODYsMTkgQEAgdmFyb2JqX3NldF92aXN1 YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIgKnZpc3VhbGl6ZXIpCiAgICBt YWtlX2NsZWFudXBfcHlfZGVjcmVmIChnbG9iYWxzKTsKICAKICAgIGNvbnN0cnVjdG9yID0gUHlS dW5fU3RyaW5nICh2aXN1YWxpemVyLCBQeV9ldmFsX2lucHV0LCBnbG9iYWxzLCBnbG9iYWxzKTsK QEAgLTI1MjMzLDkgKzI2MTM4LDkgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKIC0g ICAgfQogLSAgZWxzZQogLSAgICBwcmV0dHlfcHJpbnRlciA9IGluc3RhbnRpYXRlX3ByZXR0eV9w cmludGVyIChjb25zdHJ1Y3RvciwgdmFyLT52YWx1ZSk7Ci0gCi0tICBQeV9YREVDUkVGIChjb25z dHJ1Y3Rvcik7CiAtCistICBQeV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7CisgCiAtICBpZiAoISBw cmV0dHlfcHJpbnRlcikKICsgIGlmICghIGNvbnN0cnVjdG9yKQogICAgICB7CkBAIC0yNTI1OCw3 ICsyNjE2Myw1NyBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIAogICAgZG9fY2xl YW51cHMgKGJhY2tfdG8pOwogICNlbHNlCi1AQCAtMTg2NCw2ICsxOTYzLDkgQEAgbmV3X3Zhcmlh YmxlICh2b2lkKQorQEAgLTE1NDMsNyArMTcxMyw3IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3Vs dCkgKnZhcm9ial91cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCisg CSBVSSwgc28gd2UgbmVlZCBub3QgYm90aGVyIGdldHRpbmcgaXQuICAqLworICAgICAgIGlmICh2 LT5wcmV0dHlfcHJpbnRlcikKKyAJeworLQkgIFZFQyAodmFyb2JqX3ApICpjaGFuZ2VkID0gMCwg Km5ld19hbmRfdW5jaGFuZ2VkID0gMDsKKysJICBWRUMgKHZhcm9ial9wKSAqY2hhbmdlZCA9IDAs ICpuZXcgPSAwOworIAkgIGludCBpLCBjaGlsZHJlbl9jaGFuZ2VkOworIAkgIHZhcm9ial9wIHRt cDsKKyAKK0BAIC0xNTU1LDI4ICsxNzI1LDI4IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkg KnZhcm9ial91cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCisgCisg CSAgLyogSWYgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIHJldHVybnMgMCwgdGhlbiB3 ZSBoYXZlCisgCSAgICAgYSBub24tY29uZm9ybWluZyBwcmV0dHktcHJpbnRlciwgc28gd2Ugc2tp cCBpdC4gICovCistCSAgaWYgKHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgJmNo YW5nZWQsICZuZXdfYW5kX3VuY2hhbmdlZCwKKy0JCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2Vk KSkKKysJICBpZiAodXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCAmY2hhbmdlZCwg Jm5ldywKKysJCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkLCAxLCB2LT50bykpCisgCSAgICB7 CistCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkKQorLQkJci5jaGlsZHJlbl9jaGFuZ2VkID0g MTsKKy0JICAgICAgZm9yIChpID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGFuZ2VkLCBp LCB0bXApOyArK2kpCisrCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkIHx8IG5ldykKKyAJCXsK Ky0JCSAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9IHt0bXB9OworLQkJICByLmNoYW5nZWQgPSAx OworLQkJICByLnZhbHVlX2luc3RhbGxlZCA9IDE7CistCQkgIFZFQ19zYWZlX3B1c2ggKHZhcm9i al91cGRhdGVfcmVzdWx0LCBzdGFjaywgJnIpOworKwkJICByLmNoaWxkcmVuX2NoYW5nZWQgPSAx OworKwkJICByLm5ldyA9IG5ldzsKKyAJCX0KKy0JICAgICAgZm9yIChpID0gMDsKKy0JCSAgIFZF Q19pdGVyYXRlICh2YXJvYmpfcCwgbmV3X2FuZF91bmNoYW5nZWQsIGksIHRtcCk7CistCQkgICAr K2kpCisrCSAgICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hhbmdlZCwg aSwgdG1wKTsgKytpKQorIAkJeworIAkJICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3RtcH07 CisrCQkgIHIuY2hhbmdlZCA9IDE7CisgCQkgIHIudmFsdWVfaW5zdGFsbGVkID0gMTsKKyAJCSAg VkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7CisgCQl9Cisg CSAgICAgIGlmIChyLmNoYW5nZWQgfHwgci5jaGlsZHJlbl9jaGFuZ2VkKQorIAkJVkVDX3NhZmVf cHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOworKworKwkgICAgICAvKiBG cmVlIENIQU5HRUQsIGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVyBoYXMgYmVlbiBwdXQKKysJCSBp bnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8KKysJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBj aGFuZ2VkKTsKKysKKyAJICAgICAgY29udGludWU7CisgCSAgICB9CisgCX0KK0BAIC0xODY0LDcg KzIwMzQsMTIgQEAgbmV3X3ZhcmlhYmxlICh2b2lkKQogICAgdmFyLT5mcm96ZW4gPSAwOwogICAg dmFyLT5ub3RfZmV0Y2hlZCA9IDA7CiAgICB2YXItPmNoaWxkcmVuX3JlcXVlc3RlZCA9IDA7CkBA IC0yNTI2Niw5ICsyNjIyMSwyNCBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogKyAg dmFyLT50byA9IC0xOwogKyAgdmFyLT5jb25zdHJ1Y3RvciA9IDA7CiAgICB2YXItPnByZXR0eV9w cmludGVyID0gMDsKKysgIHZhci0+Y2hpbGRfaXRlciA9IDA7CisrICB2YXItPnNhdmVkX2l0ZW0g PSAwOwogIAogICAgcmV0dXJuIHZhcjsKLUBAIC0xOTI3LDYgKzIwMjksMTggQEAgbWFrZV9jbGVh bnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKKyB9CitAQCAtMTg5NCw3ICsy MDY5LDEwIEBAIGZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKKyAgIGlmICh2YXIt PnByZXR0eV9wcmludGVyKQorICAgICB7CisgICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAg PSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7CistICAgICAgUHlfREVDUkVGICh2YXIt PnByZXR0eV9wcmludGVyKTsKKysgICAgICBQeV9YREVDUkVGICh2YXItPmNvbnN0cnVjdG9yKTsK KysgICAgICBQeV9YREVDUkVGICh2YXItPnByZXR0eV9wcmludGVyKTsKKysgICAgICBQeV9YREVD UkVGICh2YXItPmNoaWxkX2l0ZXIpOworKyAgICAgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRl bSk7CisgICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXApOworICAgICB9CisgI2VuZGlmCitAQCAt MTkyNyw2ICsyMTA1LDE4IEBAIG1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFy b2JqICp2YXIpCiAgICByZXR1cm4gbWFrZV9jbGVhbnVwIChkb19mcmVlX3ZhcmlhYmxlX2NsZWFu dXAsIHZhcik7CiAgfQogIApAQCAtMjUyODcsMTYgKzI2MjU3LDE2IEBAIGluZGV4IDRhOTQ5ODgu LjliZmMxMzAgMTAwNjQ0CiAgLyogVGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJs ZS4gSXQgYWxzbyBza2lwcyBwYXN0IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5 cGUgb2YgdGhlIHZhcmlhYmxlLgogIAotQEAgLTIxODcsNyArMjMwMSw3IEBAIHZhbHVlX2dldF9w cmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgZW51bSB2YXJvYmpfZGlzcGxheV9mb3Jt YXRzIGZvcm1hdCwKLSAgIGxvbmcgZHVtbXk7Ci0gICBzdHJ1Y3QgdWlfZmlsZSAqc3RiOwotICAg c3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLS0gIGdkYl9ieXRlICp0aGV2YWx1ZSA9IE5VTEw7 Ci0rICBjaGFyICp0aGV2YWx1ZSA9IE5VTEw7Ci0gICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyBvcHRzOwotICAgaW50IGxlbiA9IDA7CitAQCAtMjE0MSw2ICsyMzMxLDggQEAgdmFsdWVfb2Zf cm9vdCAoc3RydWN0IHZhcm9iaiAqKnZhcl9oYW5kbGUsIGludCAqdHlwZV9jaGFuZ2VkKQorICAg ICAgIGVsc2UKKyAJeworIAkgIHRtcF92YXItPm9ial9uYW1lID0geHN0cmR1cCAodmFyLT5vYmpf bmFtZSk7CisrCSAgdG1wX3Zhci0+ZnJvbSA9IHZhci0+ZnJvbTsKKysJICB0bXBfdmFyLT50byA9 IHZhci0+dG87CisgCSAgdmFyb2JqX2RlbGV0ZSAodmFyLCBOVUxMLCAwKTsKICAKLUBAIC0zMTcz LDYgKzMyODcsMTkgQEAgamF2YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFy LCBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQorIAkgIGluc3RhbGxfdmFyaWFi bGUgKHRtcF92YXIpOworQEAgLTMxNzMsNiArMzM2NSwxOSBAQCBqYXZhX3ZhbHVlX29mX3Zhcmlh YmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3Jt YXQpCiAgICByZXR1cm4gY3BsdXNfdmFsdWVfb2ZfdmFyaWFibGUgKHZhciwgZm9ybWF0KTsKICB9 CiAgCkBAIC0yNTMxNiw3ICsyNjI4Niw3IEBAIGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0 CiAgLyogSXRlcmF0ZSBhbGwgdGhlIGV4aXN0aW5nIF9yb290XyBWQVJPQkpzIGFuZCBjYWxsIHRo ZSBGVU5DIGNhbGxiYWNrIGZvciB0aGVtCiAgICAgd2l0aCBhbiBhcmJpdHJhcnkgY2FsbGVyIHN1 cHBsaWVkIERBVEEgcG9pbnRlci4gICovCiAgCi1AQCAtMzE5MCw0OCArMzMxNywxMTAgQEAgYWxs X3Jvb3RfdmFyb2JqcyAodm9pZCAoKmZ1bmMpIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHZvaWQgKmRh dGEpLCB2b2lkICpkYXRhKQorQEAgLTMxOTAsNDggKzMzOTUsMTEwIEBAIGFsbF9yb290X3Zhcm9i anMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpkYXRhKSwgdm9pZCAq ZGF0YSkKICAgICAgICAoKmZ1bmMpICh2YXJfcm9vdC0+cm9vdHZhciwgZGF0YSk7CiAgICAgIH0K ICB9CkBAIC0yNTQ1NCw4ICsyNjQyNCwxMiBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0 NAogIAkgIHRtcF92YXItPm9ial9uYW1lID0geHN0cmR1cCAodmFyLT5vYmpfbmFtZSk7CiAgCSAg dmFyb2JqX2RlbGV0ZSAodmFyLCBOVUxMLCAwKTsKICAJICBpbnN0YWxsX3ZhcmlhYmxlICh0bXBf dmFyKTsKLUBAIC0zMjQzLDEyICszNDMyLDYxIEBAIHZhcm9ial9pbnZhbGlkYXRlX2l0ZXIgKHN0 cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqdW51c2VkKQotICAgICB2YXItPnJvb3QtPmlzX3ZhbGlk ID0gMDsKK0BAIC0zMjM5LDE2ICszNTA2LDY0IEBAIHZhcm9ial9pbnZhbGlkYXRlX2l0ZXIgKHN0 cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqdW51c2VkKQorICAgICAgIGVsc2UKKyAJdmFyLT5yb290 LT5pc192YWxpZCA9IDA7CisgICAgIH0KKy0gIGVsc2UgLyogbG9jYWxzIG11c3QgYmUgaW52YWxp ZGF0ZWQuICAqLworLSAgICB2YXItPnJvb3QtPmlzX3ZhbGlkID0gMDsKICB9CiAgCiAtLyogSW52 YWxpZGF0ZSB0aGUgdmFyb2JqcyB0aGF0IGFyZSB0aWVkIHRvIGxvY2FscyBhbmQgcmUtY3JlYXRl IHRoZSBvbmVzIHRoYXQKQEAgLTI1NDY3LDggKzI2NDQxLDcgQEAgaW5kZXggNGE5NDk4OC4uOWJm YzEzMCAxMDA2NDQKIC12YXJvYmpfaW52YWxpZGF0ZSAodm9pZCkKICtzdGF0aWMgdm9pZCAKICt2 YXJvYmpfaW52YWxpZGF0ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCi0gewotLSAgYWxsX3Jv b3RfdmFyb2JqcyAodmFyb2JqX2ludmFsaWRhdGVfaXRlciwgTlVMTCk7CisrewogKyAgLyogQ2hl Y2sgYWxsIHRoZSBWQVJPQkpzLCBldmVuIG5vbi1yb290IG9uZXMuICBDaGlsZCBWQVJPQkpzIGNh biByZWZlcmVuY2UKICsgICAgIHR5cGVzIGZyb20gb3RoZXIgT0JKRklMRXMgdGhyb3VnaCBUWVBF X0lTX09QQVFVRSByZXNvbHV0aW9ucyBieQogKyAgICAgY2hlY2tfdHlwZWRlZi4gICovCkBAIC0y NTQ5NSw3ICsyNjQ2OCw4IEBAIGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiArCiArc3Rh dGljIHZvaWQKICt2YXJvYmpfcmV2YWxpZGF0ZV9mb3Jfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUpCi0reworIHsKKy0gIGFsbF9yb290X3Zhcm9ianMgKHZhcm9ial9pbnZhbGlkYXRl X2l0ZXIsIE5VTEwpOwogKyAgdmFyb2JqX3JldmFsaWRhdGUgKCk7CiArfQogKwwKQEAgLTI1NTE3 LDI5ICsyNjQ5MSw1OCBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogKwkJCSAgICBz aG93X3Zhcm9iamRlYnVnLAogKwkJCSAgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICsKKysKICsg IG9ic2VydmVyX2F0dGFjaF9vYmpmaWxlX3VubG9hZGluZyAodmFyb2JqX2ludmFsaWRhdGUgKTsK ICsgIG9ic2VydmVyX2F0dGFjaF9vYmpmaWxlX3VubG9hZGVkICh2YXJvYmpfcmV2YWxpZGF0ZSk7 CiArICBvYnNlcnZlcl9hdHRhY2hfbmV3X29iamZpbGUgKHZhcm9ial9yZXZhbGlkYXRlX2Zvcl9v YmpmaWxlKTsKICsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKHZhcm9ial90eXBlc19tYXJr X3VzZWQpOwogIH0KIGRpZmYgLS1naXQgYS9nZGIvdmFyb2JqLmggYi9nZGIvdmFyb2JqLmgKLWlu ZGV4IDcyOTcyNDMuLmFhYmQ3NDMgMTAwNjQ0CitpbmRleCA3Mjk3MjQzLi5mYmUyZjJmIDEwMDY0 NAogLS0tIGEvZ2RiL3Zhcm9iai5oCiArKysgYi9nZGIvdmFyb2JqLmgKLUBAIC0xMTIsNiArMTEy LDEyIEBAIGV4dGVybiB2b2lkIHZhcm9ial9zZXRfZnJvemVuIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGludCBmcm96ZW4pOworQEAgLTc4LDYgKzc4LDEyIEBAIHR5cGVkZWYgc3RydWN0IHZhcm9ial91 cGRhdGVfcmVzdWx0X3QKKyAgICAgIG5ldyB2YWx1ZSBvZiB2YXJvYmogaXMgYWxyZWFkeSBjb21w dXRlZCBhbmQgaW5zdGFsbGVkLCBvciBoYXMgdG8KKyAgICAgIGJlIHlldCBpbnN0YWxsZWQuICBE b24ndCB1c2UgdGhpcyBvdXRzaWRlIHZhcm9iai5jICovCisgICBpbnQgdmFsdWVfaW5zdGFsbGVk OyAgCisrCisrICAvKiBUaGlzIHdpbGwgYmUgbm9uLU5VTEwgd2hlbiBuZXcgY2hpbGRyZW4gd2Vy ZSBhZGRlZCB0byB0aGUgdmFyb2JqLgorKyAgICAgSXQgbGlzdHMgdGhlIG5ldyBjaGlsZHJlbiAo d2hpY2ggbXVzdCBuZWNlc3NhcmlseSBjb21lIGF0IHRoZSBlbmQKKysgICAgIG9mIHRoZSBjaGls ZCBsaXN0KSBhZGRlZCBkdXJpbmcgYW4gdXBkYXRlLiAgVGhlIGNhbGxlciBpcworKyAgICAgcmVz cG9uc2libGUgZm9yIGZyZWVpbmcgdGhpcyB2ZWN0b3IuICAqLworKyAgVkVDICh2YXJvYmpfcCkg Km5ldzsKKyB9IHZhcm9ial91cGRhdGVfcmVzdWx0OworIAorIERFRl9WRUNfTyAodmFyb2JqX3Vw ZGF0ZV9yZXN1bHQpOworQEAgLTExMiwxMyArMTE4LDI0IEBAIGV4dGVybiB2b2lkIHZhcm9ial9z ZXRfZnJvemVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCBmcm96ZW4pOwogIAogIGV4dGVybiBp bnQgdmFyb2JqX2dldF9mcm96ZW4gKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCi0rZXh0ZXJuIHZv aWQgdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLAotKwkJCQkgICAg VkVDICh2YXJvYmpfcCkgKmNoaWxkcmVuLAotKwkJCQkgICAgaW50ICpmcm9tLCBpbnQgKnRvKTsK KytleHRlcm4gdm9pZCB2YXJvYmpfZ2V0X2NoaWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGludCAqZnJvbSwgaW50ICp0byk7CiArCiArZXh0ZXJuIHZvaWQgdmFyb2JqX3NldF9jaGlsZF9y YW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBpbnQgZnJvbSwgaW50IHRvKTsKICsKICBleHRlcm4g Y2hhciAqdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCiAg ZXh0ZXJuIGludCB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKTsK LUBAIC0xNDMsMTIgKzE0OSwxMyBAQCBleHRlcm4gdm9pZCBhbGxfcm9vdF92YXJvYmpzICh2b2lk ICgqZnVuYykgKHN0cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqZGF0YSksCisgCistLyogUmV0dXJu IHRoZSBsaXN0IG9mIGNoaWxkcmVuIG9mIFZBUi4gIFRoZSByZXR1cm5lZCB2ZWN0b3IKKy0gICBz aG91bGQgbm90IGJlIG1vZGlmaWVkIGluIGFueSB3YXkuICAqLworLWV4dGVybiBWRUMgKHZhcm9i al9wKSogdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcik7CisrLyogUmV0 dXJuIHRoZSBsaXN0IG9mIGNoaWxkcmVuIG9mIFZBUi4gIFRoZSByZXR1cm5lZCB2ZWN0b3Igc2hv dWxkIG5vdAorKyAgIGJlIG1vZGlmaWVkIGluIGFueSB3YXkuICBGUk9NIGFuZCBUTyBhcmUgaW4v b3V0IHBhcmFtZXRlcnMKKysgICBpbmRpY2F0aW5nIHRoZSByYW5nZSBvZiBjaGlsZHJlbiB0byBy ZXR1cm4uICBJZiBlaXRoZXIgKkZST00gb3IgKlRPCisrICAgaXMgbGVzcyB0aGFuIHplcm8gb24g ZW50cnksIHRoZW4gYWxsIGNoaWxkcmVuIHdpbGwgYmUgcmV0dXJuZWQuICBPbgorKyAgIHJldHVy biwgKkZST00gYW5kICpUTyB3aWxsIGJlIHVwZGF0ZWQgdG8gaW5kaWNhdGUgdGhlIHJlYWwgcmFu Z2UKKysgICB0aGF0IHdhcyByZXR1cm5lZC4gIFRoZSByZXN1bHRpbmcgVkVDIHdpbGwgY29udGFp biBhdCBsZWFzdCB0aGUKKysgICBjaGlsZHJlbiBmcm9tICpGUk9NIHRvIGp1c3QgYmVmb3JlICpU TzsgaXQgbWlnaHQgY29udGFpbiBtb3JlCisrICAgY2hpbGRyZW4sIGRlcGVuZGluZyBvbiB3aGV0 aGVyIGFueSBtb3JlIHdlcmUgYXZhaWxhYmxlLiAgKi8KKytleHRlcm4gVkVDICh2YXJvYmpfcCkq IHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisrCQkJCQkgICAgIGlu dCAqZnJvbSwgaW50ICp0byk7CisgCisgZXh0ZXJuIGNoYXIgKnZhcm9ial9nZXRfdHlwZSAoc3Ry dWN0IHZhcm9iaiAqdmFyKTsKKyAKK0BAIC0xNDMsMTIgKzE2MCwxNSBAQCBleHRlcm4gdm9pZCBh bGxfcm9vdF92YXJvYmpzICh2b2lkICgqZnVuYykgKHN0cnVjdCB2YXJvYmogKnZhciwgdm9pZCAq ZGF0YSksCiAgZXh0ZXJuIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUg KHN0cnVjdCB2YXJvYmogKip2YXJwLCAKICAJCQkJCQkgaW50IGV4cGxpY2l0KTsKICAKQEAgLTI1 NTU0LDYgKzI2NTU3LDggQEAgaW5kZXggNzI5NzI0My4uYWFiZDc0MyAxMDA2NDQKICt2YXJvYmpf c2V0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqdmlzdWFsaXpl cik7CiArCiArZXh0ZXJuIHZvaWQgdmFyb2JqX2VuYWJsZV9wcmV0dHlfcHJpbnRpbmcgKHZvaWQp OworKworK2V4dGVybiBpbnQgdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGlu dCB0byk7CiAgCiAgI2VuZGlmIC8qIFZBUk9CSl9IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3hjb2Zm cmVhZC5jIGIvZ2RiL3hjb2ZmcmVhZC5jCkBAIC0yNTU2OCwzICsyNjU3Myw2OCBAQCBpbmRleCBj NTZhYjg2Li5kYWNmOTEzIDEwMDY0NAogICAgeGNvZmZfc3ltZmlsZV9maW5pc2gsCQkvKiBzeW1f ZmluaXNoOiBmaW5pc2hlZCB3aXRoIGZpbGUsIGNsZWFudXAgKi8KICAgIHhjb2ZmX3N5bWZpbGVf b2Zmc2V0cywJLyogc3ltX29mZnNldHM6IHhsYXRlIG9mZnNldHMgZXh0LT5pbnQgZm9ybSAqLwog ICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBzZWdtZW50 IGluZm9ybWF0aW9uIGZyb20KK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NvZmYvZ28zMmV4ZS5oIGIv aW5jbHVkZS9jb2ZmL2dvMzJleGUuaAoraW5kZXggYzg1ZGEwYy4uMjI0OGZmMiAxMDA2NDQKKy0t LSBhL2luY2x1ZGUvY29mZi9nbzMyZXhlLmgKKysrKyBiL2luY2x1ZGUvY29mZi9nbzMyZXhlLmgK K0BAIC0xNiwxMSArMTYsOSBAQAorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiAg Ki8KKyAKKy0jZGVmaW5lIFNUVUJTSVpFIDIwNDgKKy0KKyBzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhk cl9nbzMyX2V4ZQorICAgeworLSAgICBjaGFyIHN0dWJbU1RVQlNJWkVdOy8qIHRoZSBzdHViIHRv IGxvYWQgdGhlIGltYWdlCSovCisrICAgIGNoYXIgc3R1YltHTzMyX1NUVUJTSVpFXTsgLyogdGhl IHN0dWIgdG8gbG9hZCB0aGUgaW1hZ2UgKi8KKyAJCQkvKiB0aGUgc3RhbmRhcmQgQ09GRiBoZWFk ZXIgICAgICovCisgICAgIGNoYXIgZl9tYWdpY1syXTsJLyogbWFnaWMgbnVtYmVyCQkJKi8KKyAg ICAgY2hhciBmX25zY25zWzJdOwkvKiBudW1iZXIgb2Ygc2VjdGlvbnMJCSovCitAQCAtMzQsNCAr MzIsNCBAQCBzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkcl9nbzMyX2V4ZQorICN1bmRlZiBGSUxIRFIK KyAjZGVmaW5lCUZJTEhEUglzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkcl9nbzMyX2V4ZQorICN1bmRl ZiBGSUxIU1oKKy0jZGVmaW5lCUZJTEhTWglTVFVCU0laRSsyMAorKyNkZWZpbmUJRklMSFNaCUdP MzJfU1RVQlNJWkUrMjAKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NvZmYvaW50ZXJuYWwuaCBiL2lu Y2x1ZGUvY29mZi9pbnRlcm5hbC5oCitpbmRleCBjNWQ2Y2QxLi4zNmQwM2ViIDEwMDY0NAorLS0t IGEvaW5jbHVkZS9jb2ZmL2ludGVybmFsLmgKKysrKyBiL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5o CitAQCAtNTgsMTAgKzU4LDE5IEBAIHN0cnVjdCBpbnRlcm5hbF9leHRyYV9wZV9maWxlaGRyCisg ICBiZmRfdm1hICBudF9zaWduYXR1cmU7ICAgCS8qIHJlcXVpcmVkIE5UIHNpZ25hdHVyZSwgMHg0 NTUwICovIAorIH07CisgCisrI2RlZmluZSBHTzMyX1NUVUJTSVpFIDIwNDgKKysKKyBzdHJ1Y3Qg aW50ZXJuYWxfZmlsZWhkcgorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9leHRyYV9wZV9maWxlaGRy IHBlOworIAorKyAgLyogY29mZi1zdGdvMzIgRVhFIHN0dWIgaGVhZGVyIGJlZm9yZSBCRkQgdGRh dGEgaGFzIGJlZW4gYWxsb2NhdGVkLgorKyAgICAgSXRzIGRhdGEgaXMga2VwdCBpbiBJTlRFUk5B TF9GSUxFSERSLkdPMzJTVFVCIGFmdGVyd2FyZHMuCisrICAgICAKKysgICAgIEZfR08zMlNUVUIg aXMgc2V0IGlmZiBnbzMyc3R1YiBjb250YWlucyBhIHZhbGlkIGRhdGEuICBBcnRpZmljYWwgaGVh ZGVycworKyAgICAgY3JlYXRlZCBpbiBCRkQgaGF2ZSBubyBwcmUtc2V0IGdvMzJzdHViLiAgKi8K KysgIGNoYXIgZ28zMnN0dWJbR08zMl9TVFVCU0laRV07CisrCisgICAvKiBTdGFuZGFyZCBjb2Zm IGludGVybmFsIGluZm8uICAqLworICAgdW5zaWduZWQgc2hvcnQgZl9tYWdpYzsJLyogbWFnaWMg bnVtYmVyCQkJKi8KKyAgIHVuc2lnbmVkIHNob3J0IGZfbnNjbnM7CS8qIG51bWJlciBvZiBzZWN0 aW9ucwkJKi8KK0BAIC04NCw3ICs5Myw4IEBAIHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyCisgIAlG X0FSMzJXCQlmaWxlIGlzIDMyLWJpdCBiaWctZW5kaWFuCisgIAlGX0RZTkxPQUQJcnMvNjAwMCBh aXg6IGR5bmFtaWNhbGx5IGxvYWRhYmxlIHcvaW1wb3J0cyAmIGV4cG9ydHMKKyAgCUZfU0hST0JK CXJzLzYwMDAgYWl4OiBmaWxlIGlzIGEgc2hhcmVkIG9iamVjdAorLSAgICAgICAgRl9ETEwgICAg ICAgICAgIFBFIGZvcm1hdCBETEwuICAqLworKwlGX0RMTCAgICAgICAgICAgUEUgZm9ybWF0IERM TAorKwlGX0dPMzJTVFVCICAgICAgRmllbGQgZ28zMnN0dWIgY29udGFpbnMgdmFsaWQgZGF0YS4g ICovCisgCisgI2RlZmluZQlGX1JFTEZMRwkoMHgwMDAxKQorICNkZWZpbmUJRl9FWEVDCQkoMHgw MDAyKQorQEAgLTk2LDYgKzEwNiw3IEBAIHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyCisgI2RlZmlu ZQlGX0RZTkxPQUQJKDB4MTAwMCkKKyAjZGVmaW5lCUZfU0hST0JKCSgweDIwMDApCisgI2RlZmlu ZSBGX0RMTCAgICAgICAgICAgKDB4MjAwMCkKKysjZGVmaW5lIEZfR08zMlNUVUIgICAgICAoMHg0 MDAwKQorIAorIC8qIEV4dHJhIHN0cnVjdHVyZSB3aGljaCBpcyB1c2VkIGluIHRoZSBvcHRpb25h bCBoZWFkZXIuICAqLworIHR5cGVkZWYgc3RydWN0IF9JTUFHRV9EQVRBX0RJUkVDVE9SWSAKCmRp ZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDQ1ZDQ2ZDMuLmNiMmY3YTQgMTAw NjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0xMCw3ICsxMCw3IEBAIE5hbWU6 IGdkYiV7P193aXRoX2RlYnVnOi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2Yg Z2RiL3ZlcnNpb24uaW4uCiAjIE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJl ZCBOLk0gZm9yIG9mZmljaWFsIHJlbGVhc2VzLCBsaWtlIDYuMyAKICMgYW5kLCBzaW5jZSBKYW51 YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAw NTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIg KGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNoKS4KLVZlcnNpb246IDYuOC41MC4yMDA5MDgwMwor VmVyc2lvbjogNi44LjUwLjIwMDkwODEwCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5z IGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScg aXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNv bXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgpAQCAtMjE3LDggKzIxNyw4IEBAIFBhdGNoMjI5OiBn ZGItNi4zLWJ6MTQwNTMyLXBwYy11bndpbmRpbmctdGVzdC5wYXRjaAogIyBUZXN0Y2FzZSBmb3Ig ZXhlYygpIGZyb20gdGhyZWFkZWQgcHJvZ3JhbSAoQlogMjAyNjg5KS4KIFBhdGNoMjMxOiBnZGIt Ni4zLWJ6MjAyNjg5LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAotIyBCYWNrcG9ydGVk IHBvc3QgZ2RiLTYuOC41MC4yMDA5MDgwMyBzbmFwc2hvdCBmaXh1cHMuCi0jUGF0Y2gyMzI6IGdk Yi02LjguNTAuMjAwOTA4MDMtdXBzdHJlYW0ucGF0Y2gKKyMgQmFja3BvcnRlZCBwb3N0IGdkYi02 LjguNTAuMjAwOTA4MTAgc25hcHNob3QgZml4dXBzLgorI1BhdGNoMjMyOiBnZGItNi44LjUwLjIw MDkwODEwLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGlu c3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KIFBhdGNoMjM0OiBnZGItNi42LWJ6 MjMwMDAwLXBvd2VyNi1kaXNhc3NlbWJseS10ZXN0LnBhdGNoCkBAIC04MjUsNiArODI1LDEwIEBA IGZpCiAlZW5kaWYKIAogJWNoYW5nZWxvZworKiBNb24gQXVnIDEwIDIwMDkgSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwODEwLTEKKy0gVXBn cmFkZSB0byB0aGUgRlNGIEdEQiBnZGItNi44LjUwIHNuYXBzaG90OiA2LjguNTAuMjAwOTA4MTAK Ky0gYXJjaGVyLWphbmtyYXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OiA5M2VjMTZlNmY1MDAwZGQ2 NGQ0MzNkODY2NzRlODIwZWQwZjM1YjcyCisKICogVHVlIEF1ZyAgNCAyMDA5IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDYuOC41MC4yMDA5MDgwMy0yCiAtIERy b3AgdGhlIGJ1bmRsZWQgbGlic3RkYysrIHB5dGhvbiAtIGl0IHNob3VsZCBiZSBwYWNrYWdlZCBv biBpdHMgb3duIG5vdy4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGY0 M2ZkMzkuLjQ2NmFkYTUgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSAr MSBAQAotZjEyMDUyNmI3MmEzZGZkMjllOWYwNmE1NjJlMzRhYTEgIGdkYi02LjguNTAuMjAwOTA4 MDMudGFyLmJ6MgorYjQ1NDk0OTgzNDU4NDk0NTg0NjRjOGZlMjUwM2EzN2MgIGdkYi02LjguNTAu MjAwOTA4MTAudGFyLmJ6Mgo=