From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: - Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090810 Date: Thu, 23 Jul 2026 18:29:08 GMT Message-ID: <178483134824.1.390494575794042776.rpms-gdb-273e7e98b274@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 273e7e98b2741c63eac8f15b72507b4334cf0aee ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMjczZTdlOThiMjc0MWM2M2VhYzhmMTViNzI1MDdiNDMzNGNmMGFlZQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMTBUMTM6MjI6NTErMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzIwODUvLTEwMzkgaW4gNiBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMjczZTdlOThi Mjc0MWM2M2VhYzhmMTViNzI1MDdiNDMzNGNmMGFlZT9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFVwZ3JhZGUgdG8gdGhlIEZTRiBHREIgZ2RiLTYu OC41MCBzbmFwc2hvdDogNi44LjUwLjIwMDkwODEwCi0gYXJjaGVyLWphbmtyYXRvY2h2aWwtZmVk b3JhMTIgY29tbWl0OgogICAgOTNlYzE2ZTZmNTAwMGRkNjRkNDMzZDg2Njc0ZTgyMGVkMGYzNWI3 MgoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQppbmRleCA1ODc5YTMz Li43OGE2MDExIDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEg KzEgQEAKLWdkYi02LjguNTAuMjAwOTA4MDMudGFyLmJ6MgorZ2RiLTYuOC41MC4yMDA5MDgxMC50 YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1waWUtMjAwNTAxMTAucGF0Y2ggYi9nZGItNi4z LXBpZS0yMDA1MDExMC5wYXRjaAppbmRleCA3MWFlYWFhLi5lMTczNmIzIDEwMDY0NAotLS0gYS9n ZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaAorKysgYi9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRj aApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIAlGaXggc2Nhbl9keW50YWcoKSBmb3IgYmluYXJpZXMg cHJvdmlkZWQgYnkgdmFsZ3JpbmQgKEJaIDQ2MDMxOSkuCiAKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9h bWQ2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2Ri L2FtZDY0LXRkZXAuYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL2FtZDY0LXRkZXAuYwkyMDA5LTA4LTAzIDIxOjM5OjM5LjAw MDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3JpZy9nZGIvYW1kNjQtdGRl cC5jCTIwMDktMDgtMTAgMDA6NTA6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDgwOS9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDgtMTAgMTQ6NTk6NTguMDAwMDAwMDAwICsw MjAwCiBAQCAtMzYsNiArMzYsNyBAQAogICNpbmNsdWRlICJyZWdjYWNoZS5oIgogICNpbmNsdWRl ICJyZWdzZXQuaCIKQEAgLTEzOCwxMCArMTM4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9hbWQ2NC10ZGVwLmMKICAgIHJldHVybiBwYzsKICB9CiAgCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvYXV4di5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIv YXV4di5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9hdXh2 LmMJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9hdXh2LmMJMjAwOS0wOC0wMyAyMTozOTozOS4wMDAwMDAwMDAgKzAyMDAKKy0t LSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2F1eHYuYwkyMDA5LTA3LTAyIDE5OjI1OjUy LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2F1eHYuYwkyMDA5 LTA4LTEwIDE0OjU5OjU4LjAwMDAwMDAwMCArMDIwMAogQEAgLTc4LDcgKzc4LDcgQEAgcHJvY2Zz X3hmZXJfYXV4diAoc3RydWN0IHRhcmdldF9vcHMgKm9wcwogICAgIFJldHVybiAxIGlmIGFuIGVu dHJ5IHdhcyByZWFkIGludG8gKlRZUEVQIGFuZCAqVkFMUC4gICovCiAgc3RhdGljIGludApAQCAt MjMwLDEwICsyMzAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2F1eHYuYwog IAlicmVhazsKICAgICAgfQogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2F1eHYu aAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2F1eHYuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvYXV4di5oCTIwMDktMDgtMDMgMjE6Mzk6MDgu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYXV4di5oCTIwMDkt MDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5v cmlnL2dkYi9hdXh2LmgJMjAwOS0wNi0wNyAyMTowNzowOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjUwLjIwMDkwODA5L2dkYi9hdXh2LmgJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAwMDAw MDAgKzAyMDAKIEBAIC0zMSwxNCArMzEsMTQgQEAKICAgICBSZXR1cm4gMSBpZiBhbiBlbnRyeSB3 YXMgcmVhZCBpbnRvICpUWVBFUCBhbmQgKlZBTFAuICAqLwogIGV4dGVybiBpbnQgdGFyZ2V0X2F1 eHZfcGFyc2UgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCkBAIC0yNTEsMTAgKzI1MSwxMCBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYXV4di5oCiAgCiAgLyogUHJpbnQgdGhlIGNv bnRlbnRzIG9mIHRoZSB0YXJnZXQncyBBVVhWIG9uIHRoZSBzcGVjaWZpZWQgZmlsZS4gKi8KICBl eHRlcm4gaW50IGZwcmludF90YXJnZXRfYXV4diAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIHN0cnVj dCB0YXJnZXRfb3BzICpvcHMpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2R3YXJm MnJlYWQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2R3YXJmMnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIw MDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCist LS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0xMCAx NDo1OToyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9kd2Fy ZjJyZWFkLmMJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xNjU5LDcg KzE2NTksNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpmaWxlICpvCiAgICBk d2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxlLT5laF9mcmFt ZSk7CiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxl LT5mcmFtZSk7CkBAIC0yNjQsMTAgKzI2NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgfHwgKG9iamZpbGUtPmdsb2JhbF9wc3ltYm9scy5z aXplID09IDAKICAJICAmJiBvYmpmaWxlLT5zdGF0aWNfcHN5bWJvbHMuc2l6ZSA9PSAwKSkKICAg ICAgewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDkvZ2RiL2VsZnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02Ljgu NTAuMjAwOTA4MDMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMDktMDgtMDMgMjE6Mzk6MDguMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZWxmcmVhZC5jCTIwMDktMDgt MDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmln L2dkYi9lbGZyZWFkLmMJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjUwLjIwMDkwODA5L2dkYi9lbGZyZWFkLmMJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAw MDAwMDAgKzAyMDAKIEBAIC02ODEsNyArNjgxLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0 IG9iamZpbGUgKm9iamZpbAogICAgLyogSWYgd2UgYXJlIHJlaW5pdGlhbGl6aW5nLCBvciBpZiB3 ZSBoYXZlIG5ldmVyIGxvYWRlZCBzeW1zIHlldCwKICAgICAgIHNldCB0YWJsZSB0byBlbXB0eS4g IE1BSU5MSU5FIGlzIGNsZWFyZWQgc28gdGhhdCAqX3JlYWRfcHN5bXRhYgpAQCAtMjc3LDEwICsy NzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2VsZnJlYWQuYwogICAgICB7 CiAgICAgICAgaW5pdF9wc3ltYm9sX2xpc3QgKG9iamZpbGUsIDApOwogICAgICAgIG1haW5saW5l ID0gMDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZydW4uYworSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDkvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA5MDgwMy5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZnJ1bi5jCTIwMDktMDgtMDQg MDY6MDQ6MjUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dk Yi9pbmZydW4uYwkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02 LjguNTAuMjAwOTA4MDkvZ2RiL2luZnJ1bi5jCTIwMDktMDgtMTAgMTQ6NTk6NTguMDAwMDAwMDAw ICswMjAwCiBAQCAtMzUzMSw2ICszNTMxLDEwIEBAIGluZnJ1bjogQlBTVEFUX1dIQVRfU0VUX0xP TkdKTVBfUkVTVU1FICgKICAjZW5kaWYKICAJICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7 CkBAIC0yOTIsMTAgKzI5MiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaW5m cnVuLmMKICAJICAvKiBJZiByZXF1ZXN0ZWQsIHN0b3Agd2hlbiB0aGUgZHluYW1pYyBsaW5rZXIg bm90aWZpZXMKICAJICAgICBnZGIgb2YgZXZlbnRzLiAgVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8g Z2V0IGNvbnRyb2wKICAJICAgICBhbmQgcGxhY2UgYnJlYWtwb2ludHMgaW4gaW5pdGlhbGl6ZXIg cm91dGluZXMgZm9yCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvb2JqZmlsZXMuYwor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL29iamZpbGVzLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL29iamZpbGVzLmMJMjAwOS0wOC0wMyAyMToz OTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9vYmpmaWxl cy5jCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4y MDA5MDgwOS5vcmlnL2dkYi9vYmpmaWxlcy5jCTIwMDktMDgtMTAgMDA6NTA6MzAuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvb2JqZmlsZXMuYwkyMDA5LTA4LTEw IDE0OjU5OjU4LjAwMDAwMDAwMCArMDIwMAogQEAgLTUyLDYgKzUyLDkgQEAKICAjaW5jbHVkZSAi ZXhlYy5oIgogICNpbmNsdWRlICJvYnNlcnZlci5oIgpAQCAtMzI0LDcgKzMyNCw3IEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9vYmpmaWxlcy5jCiAgICBpZiAoc3ltZmlsZV9vYmpm aWxlID09IE5VTEwpCiAgICAgIHJldHVybiAwOwogIAotQEAgLTQ3NSw2ICs0ODYsOSBAQCBmcmVl X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTQ2NSw2ICs0NzYsOSBAQCBm cmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgaWYgKG9iamZpbGUgPT0g c3ltZmlsZV9vYmpmaWxlKQogICAgICBzeW1maWxlX29iamZpbGUgPSBOVUxMOwogIApAQCAtMzM0 LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL29iamZpbGVzLmMK ICAgIC8qIEJlZm9yZSB0aGUgc3ltYm9sIHRhYmxlIGNvZGUgd2FzIHJlZG9uZSB0byBtYWtlIGl0 IGVhc2llciB0bwogICAgICAgc2VsZWN0aXZlbHkgbG9hZCBhbmQgcmVtb3ZlIGluZm9ybWF0aW9u IHBhcnRpY3VsYXIgdG8gYSBzcGVjaWZpYwogICAgICAgbGlua2FnZSB1bml0LCBnZGIgdXNlZCB0 byBkbyB0aGVzZSB0aGluZ3Mgd2hlbmV2ZXIgdGhlIG1vbm9saXRoaWMKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwODA5 L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9y aWcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA4LTAzIDIxOjQx OjQ5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3JpZy9nZGIvc29s aWItc3ZyNC5jCTIwMDktMDgtMTAgMTQ6NTY6MTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC41MC4yMDA5MDgwOS9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTAgMTQ6NTk6NTguMDAwMDAw MDAwICswMjAwCiBAQCAtNDcsNiArNDcsNyBAQAogICNpbmNsdWRlICJleGVjLmgiCiAgI2luY2x1 ZGUgImF1eHYuaCIKQEAgLTk5OSwxMCArOTk5LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9zb2xpYi1zdnI0LmMKICsgIGFkZF9pbmZvICgibGlua21hcCIsIGluZm9fbGlua21h cF9jb21tYW5kLAogKwkgICAgIkRpc3BsYXkgdGhlIGluZmVyaW9yJ3MgbGlua21hcC4iKTsKICB9 Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saWIuYworSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDkvZ2RiL3NvbGliLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkw ODAzLm9yaWcvZ2RiL3NvbGliLmMJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCTIwMDktMDgtMDQgMDU6NTc6MzYu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zb2xpYi5j CTIwMDktMDgtMTAgMDA6NTA6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDgwOS9nZGIvc29saWIuYwkyMDA5LTA4LTEwIDE1OjA3OjEzLjAwMDAwMDAwMCArMDIwMAogQEAg LTgxLDYgKzgxLDggQEAgc2V0X3NvbGliX29wcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIAog IAogIC8qIGV4dGVybmFsIGRhdGEgZGVjbGFyYXRpb25zICovCkBAIC0xMDIxLDM1ICsxMDIxLDcg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLmMKICAvKgogIAogICAgIEdM T0JBTCBGVU5DVElPTgotQEAgLTQyOCwxMCArNDMyLDIzIEBAIGZyZWVfc28gKHN0cnVjdCBzb19s aXN0ICpzbykKLSAgICAgICAKLSAgIGlmIChzby0+YWJmZCkKLSAgICAgewotLSAgICAgIGJmZF9m aWxlbmFtZSA9IGJmZF9nZXRfZmlsZW5hbWUgKHNvLT5hYmZkKTsKLS0gICAgICBpZiAoISBiZmRf Y2xvc2UgKHNvLT5hYmZkKSkKLS0Jd2FybmluZyAoXygiY2Fubm90IGNsb3NlIFwiJXNcIjogJXMi KSwKLS0JCSBiZmRfZmlsZW5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKLSsg ICAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsKLSsKLSsgICAgICBBTExfT0JKRklMRVMgKG9i amZpbGUpCi0rCWlmIChvYmpmaWxlLT5vYmZkID09IHNvLT5hYmZkKQotKwkgIHsKLSsJICAgIGdk Yl9hc3NlcnQgKG9iamZpbGUtPmZsYWdzICYgT0JKRl9LRUVQQkZEKTsKLSsJICAgIG9iamZpbGUt PmZsYWdzICY9IH5PQkpGX0tFRVBCRkQ7Ci0rCSAgICBicmVhazsKLSsJICB9Ci0rCi0rICAgICAg aWYgKCFvYmpmaWxlKQotKwl7Ci0rCSAgYmZkX2ZpbGVuYW1lID0gYmZkX2dldF9maWxlbmFtZSAo c28tPmFiZmQpOwotKwkgIGlmICghIGJmZF9jbG9zZSAoc28tPmFiZmQpKQotKwkgICAgd2Fybmlu ZyAoXygiY2Fubm90IGNsb3NlIFwiJXNcIjogJXMiKSwKLSsJCSAgICAgYmZkX2ZpbGVuYW1lLCBi ZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7Ci0rCX0KLSAgICAgfQotIAotICAgaWYgKGJm ZF9maWxlbmFtZSkKLUBAIC00NTgsMTUgKzQ3NSw0MCBAQCBzeW1ib2xfYWRkX3N0dWIgKHN0cnVj dCBzb19saXN0ICpzbywgaW50CitAQCAtNDQ5LDE0ICs0NTMsMzggQEAgc3ltYm9sX2FkZF9zdHVi IChzdHJ1Y3Qgc29fbGlzdCAqc28sIGludAogICAgLyogSGF2ZSB3ZSBhbHJlYWR5IGxvYWRlZCB0 aGlzIHNoYXJlZCBvYmplY3Q/ICAqLwogICAgQUxMX09CSkZJTEVTIChzby0+b2JqZmlsZSkKICAg ICAgewpAQCAtMTA3NSwyNSArMTA0NywyMiBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvc29saWIuYwogICAgc2FwID0gYnVpbGRfc2VjdGlvbl9hZGRyX2luZm9fZnJvbV9zZWN0aW9u X3RhYmxlIChzby0+c2VjdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNvLT5zZWN0aW9uc19lbmQpOwogIAotLSAgc28tPm9iamZpbGUg PSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFncywKLS0JCQkJCSAgc2Fw LCBPQkpGX1NIQVJFRCB8IE9CSkZfS0VFUEJGRCk7CistICBzby0+b2JqZmlsZSA9IHN5bWJvbF9m aWxlX2FkZF9mcm9tX2JmZCAoc28tPmFiZmQsIGZsYWdzLCBzYXAsIE9CSkZfU0hBUkVEKTsKICsg IGlmIChzby0+bWFpbikKICsgICAgewogKyAgICAgIGlmIChkZWJ1Z19zb2xpYikKICsgICAgICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICsJCQkgICAgInN5bWJvbF9hZGRfc3R1 YjogYWRkaW5nIHN5bWJvbHMgZm9yIG1haW5cbiIpOwotKyAgICAgIHNvLT5vYmpmaWxlID0gc3lt Ym9sX2ZpbGVfYWRkX2Zyb21fYmZkIChzby0+YWJmZCwgKGZsYWdzICYgflNZTUZJTEVfVkVSQk9T RSkgfCBTWU1GSUxFX01BSU5MSU5FLAotKwkJCQkJICAgICAgc2FwLCBPQkpGX0tFRVBCRkQpOwor KyAgICAgIHNvLT5vYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChzby0+YWJmZCwg KGZsYWdzICYgflNZTUZJTEVfVkVSQk9TRSkgfCBTWU1GSUxFX01BSU5MSU5FLCBzYXAsIDApOwog KyAgICAgIHNvLT5tYWluX3JlbG9jYXRlZCA9IDE7CiArICAgIH0KICsgIGVsc2UKLSsgICAgc28t Pm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFncywKLSsJ CQkJCSAgICBzYXAsIE9CSkZfU0hBUkVEIHwgT0JKRl9LRUVQQkZEKTsKKysgICAgc28tPm9iamZp bGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFncywgc2FwLCBPQkpG X1NIQVJFRCk7CiArCi0gICBmcmVlX3NlY3Rpb25fYWRkcl9pbmZvIChzYXApOwotIAotICAgcmV0 dXJuOwotQEAgLTYwNiw2ICs2NDgsMTAgQEAgdXBkYXRlX3NvbGliX2xpc3QgKGludCBmcm9tX3R0 eSwgc3RydWN0IAorICAgcF9yZWZjb3VudCA9IHhtYWxsb2MgKHNpemVvZiAoKnBfcmVmY291bnQp KTsKKyAgICpwX3JlZmNvdW50ID0gMjsgIC8qIEJvdGggc29saWIgYW5kIG9iamZpbGUgcmVmZXIg dG8gdGhpcyBhYmZkLiAgKi8KKyAgIHNvLT5hYmZkLT51c3JkYXRhID0gcF9yZWZjb3VudDsKK0BA IC02MDAsNiArNjI4LDEwIEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90dHksIHN0cnVj dCAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBAIC0xMTA0LDcgKzEwNzMsNyBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saWIuYwogIAkgICAgICBpZiAoISBzdHJjbXAg KGdkYi0+c29fb3JpZ2luYWxfbmFtZSwgaS0+c29fb3JpZ2luYWxfbmFtZSkpCiAgCQlicmVhazsJ ICAgICAgCiAgCSAgICB9Ci1AQCAtNjYwLDE4ICs3MDYsNyBAQCB1cGRhdGVfc29saWJfbGlzdCAo aW50IGZyb21fdHR5LCBzdHJ1Y3QgCitAQCAtNjU0LDE4ICs2ODYsNyBAQCB1cGRhdGVfc29saWJf bGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCiAgICAgICAgLyogRmlsbCBpbiB0aGUgcmVzdCBv ZiBlYWNoIG9mIHRoZSBgc3RydWN0IHNvX2xpc3QnIG5vZGVzLiAgKi8KICAgICAgICBmb3IgKGkg PSBpbmZlcmlvcjsgaTsgaSA9IGktPm5leHQpCiAgCXsKQEAgLTExMjQsNyArMTA5Myw3IEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCiAgCiAgCSAgLyogTm90aWZ5IGFu eSBvYnNlcnZlciB0aGF0IHRoZSBzaGFyZWQgb2JqZWN0IGhhcyBiZWVuCiAgICAgICAgICAgICAg IGxvYWRlZCBub3cgdGhhdCB3ZSd2ZSBhZGRlZCBpdCB0byBHREIncyB0YWJsZXMuICAqLwotQEAg LTc4MSw2ICs4MTYsMzIgQEAgc29saWJfYWRkIChjaGFyICpwYXR0ZXJuLCBpbnQgZnJvbV90dHks IAorQEAgLTc3NSw2ICs3OTYsMzIgQEAgc29saWJfYWRkIChjaGFyICpwYXR0ZXJuLCBpbnQgZnJv bV90dHksIAogICAgfQogIH0KICAKQEAgLTExNTcsNyArMTEyNiw3IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9zb2xpYi5jCiAgCiAgLyoKICAKLUBAIC0xMTM0LDQgKzExOTUsMTIg QEAgVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGVudmlyb25tZQorQEAgLTExMjgsNCAr MTE3NSwxMiBAQCBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZW52aXJvbm1lCiAgCQkJ CSAgICAgcmVsb2FkX3NoYXJlZF9saWJyYXJpZXMsCiAgCQkJCSAgICAgc2hvd19zb2xpYl9zZWFy Y2hfcGF0aCwKICAJCQkJICAgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKQEAgLTExNzAsMTAgKzEx MzksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLmMKICsJCQkgICBO VUxMLCBOVUxMLAogKwkJCSAgICZzZXRkZWJ1Z2xpc3QsICZzaG93ZGVidWdsaXN0KTsKICB9Ci1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saXN0LmgKK0luZGV4OiBnZGItNi44LjUw LjIwMDkwODA5L2dkYi9zb2xpc3QuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4 MDMub3JpZy9nZGIvc29saXN0LmgJMjAwOS0wOC0wMyAyMTozOTowOC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zb2xpc3QuaAkyMDA5LTA4LTAzIDIxOjM5OjM5 LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3JpZy9nZGIvc29saXN0 LmgJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwODA5L2dkYi9zb2xpc3QuaAkyMDA5LTA4LTEwIDE0OjU5OjU4LjAwMDAwMDAwMCArMDIwMAog QEAgLTYxLDYgKzYxLDggQEAgc3RydWN0IHNvX2xpc3QKICAgICAgYmZkICphYmZkOwogICAgICBj aGFyIHN5bWJvbHNfbG9hZGVkOwkvKiBmbGFnOiBzeW1ib2xzIHJlYWQgaW4geWV0PyAqLwpAQCAt MTE5NCwxMCArMTE2MywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29saXN0 LmgKICtleHRlcm4gaW50IGRlYnVnX3NvbGliOwogKwogICNlbmRpZgotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUtbWVtLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwODA5 L2dkYi9zeW1maWxlLW1lbS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5v cmlnL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDgtMDMgMjE6Mzk6MzguMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA4LTAzIDIx OjM5OjM5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDkub3JpZy9nZGIv c3ltZmlsZS1tZW0uYwkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOC0xMCAxNDo1OTo1OC4w MDAwMDAwMDAgKzAyMDAKIEBAIC0xMTUsNyArMTE1LDcgQEAgc3ltYm9sX2ZpbGVfYWRkX2Zyb21f bWVtb3J5IChzdHJ1Y3QgYmZkIAogIAkrK2k7CiAgICAgICAgfQpAQCAtMTIwNywxMCArMTE3Niwx MCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FpLCBPQkpGX1NIQVJFRCk7CiAgCiAgICAv KiBUaGlzIG1pZ2h0IGNoYW5nZSBvdXIgaWRlYXMgYWJvdXQgZnJhbWVzIGFscmVhZHkgbG9va2Vk IGF0LiAgKi8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKK0luZGV4 OiBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9zeW1maWxlLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAzIDIxOjM5OjM4LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwkyMDA5 LTA4LTA0IDA2OjAyOjQ1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MDku b3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTAgMTQ6NTk6MjguMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTAgMTQ6NTk6NTgu MDAwMDAwMDAwICswMjAwCiBAQCAtNDksNiArNDksNyBAQAogICNpbmNsdWRlICJyZWFkbGluZS9y ZWFkbGluZS5oIgogICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCkBAIC0xMjkwLDcgKzEyNTksNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgCiAgICBmcmVlX2Fs bF9vYmpmaWxlcyAoKTsKICAKLUBAIC0zMzgwLDYgKzMzODksOCBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkKK0BAIC0zMzg3LDYgKzMzOTYsOCBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKICAJICAg ICAgLyogRGlzY2FyZCBjbGVhbnVwcyBhcyBzeW1ib2wgcmVhZGluZyB3YXMgc3VjY2Vzc2Z1bC4g ICovCiAgCSAgICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7CiAgCkBAIC0xMjk5 LDEwICsxMjY4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMK ICAJICAgICAgLyogSWYgdGhlIG10aW1lIGhhcyBjaGFuZ2VkIGJldHdlZW4gdGhlIHRpbWUgd2Ug c2V0IG5ld19tb2R0aW1lCiAgCSAgICAgICAgIGFuZCBub3csIHdlICp3YW50KiB0aGlzIHRvIGJl IG91dCBvZiBkYXRlLCBzbyBkb24ndCBjYWxsIHN0YXQKICAJICAgICAgICAgYWdhaW4gbm93LiAg Ki8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDkvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA5MDgwMy5vcmlnL2dkYi90YXJnZXQuaAkyMDA5LTA4LTAzIDIxOjM5OjM5LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCTIwMDktMDgtMDMgMjE6 Mzk6MzkuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi90 YXJnZXQuaAkyMDA5LTA4LTEwIDE0OjU5OjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu NTAuMjAwOTA4MDkvZ2RiL3RhcmdldC5oCTIwMDktMDgtMTAgMTQ6NTk6NTguMDAwMDAwMDAwICsw MjAwCiBAQCAtNTI0LDcgKzUyNCw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgICAgIFJldHVy biAtMSBpZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgYnVmZmVyIGZvciBhIHdob2xlIGVudHJ5Lgog ICAgICAgICBSZXR1cm4gMSBpZiBhbiBlbnRyeSB3YXMgcmVhZCBpbnRvICpUWVBFUCBhbmQgKlZB TFAuICAqLwpAQCAtMTMxMiwxMCArMTI4MSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvdGFyZ2V0LmgKICAKICAgICAgLyogU2VhcmNoIFNFQVJDSF9TUEFDRV9MRU4gYnl0ZXMg YmVnaW5uaW5nIGF0IFNUQVJUX0FERFIgZm9yIHRoZQogICAgICAgICBzZXF1ZW5jZSBvZiBieXRl cyBpbiBQQVRURVJOIHdpdGggbGVuZ3RoIFBBVFRFUk5fTEVOLgotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5 bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3lt ZmlsZS5oCTIwMDktMDgtMDMgMjE6Mzk6MzguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDMgMjE6Mzk6MzkuMDAwMDAwMDAwICsw MjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zeW1maWxlLmgJMjAwOS0wOC0x MCAxNDo1OToyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9z eW1maWxlLmgJMjAwOS0wOC0xMCAxNDo1OTo1OC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0yMjksNyAr MjI5LDEzIEBAIGVudW0gc3ltZmlsZV9hZGRfZmxhZ3MKICAgICAgU1lNRklMRV9NQUlOTElORSA9 IDEgPDwgMiwKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIv Z2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCAwMDY2NjlmLi4yNmI0Y2YwIDEwMDY0 NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvY29yZWxvdy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb3JlbG93LmMJ MjAwOS0wNy0zMSAxNzoyNToyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9jb3JlbG93LmMJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAKKy0t LSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDA5LTA3LTMxIDE3OjI1 OjIxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2NvcmVsb3cu YwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAgLTQ1LDYgKzQ1LDEwIEBA CiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICAjaW5jbHVkZSAic29saWIuaCIKQEAgLTg5LDEw ICs4OSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29yZWxvdy5jCiArCQkJ ICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwOS9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wOC0wNCAwNjoz MTo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44 LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4LTEwIDAwOjUwOjMw LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAgLTEzNzMzLDYgKzEz NzMzLDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgogIAogIEBlbmQgdGFibGUKQEAgLTEyMSwxMCAr MTIxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9kb2MvZ2RiLnRleGluZm8K ICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBzZWN0aW9ucwogIEBjaW5kZXggZGVidWcg bGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBhIHNwZWNpYWwgc2VjdGlvbiBvZiB0aGUg ZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc29s aWItc3ZyNC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc29saWItc3ZyNC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJ MjAwOS0wOC0wNCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAK Ky0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA4LTEw IDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3Nv bGliLXN2cjQuYwkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAwMDAwMCArMDIwMAogQEAgLTExMDEs OSArMTEwMSwzMyBAQCBzdnI0X2N1cnJlbnRfc29zICh2b2lkKQogIAkJICAgICBzYWZlX3N0cmVy cm9yIChlcnJjb2RlKSk7CiAgCSAgZWxzZQpAQCAtMTYyLDEwICsxNjIsMTAgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL3NvbGliLXN2cjQuYwogIAkgICAgfQogIAkgIHhmcmVlIChi dWZmZXIpOwogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYworSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMDQgMDY6MzE6NTgu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCTIw MDktMDgtMDQgMDY6MzI6MTIuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgw OS5vcmlnL2dkYi9zeW1maWxlLmMJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9zeW1maWxlLmMJMjAwOS0wOC0xMCAxNDo1ODo1 My4wMDAwMDAwMDAgKzAyMDAKIEBAIC01NSw2ICs1NSw3IEBACiAgI2luY2x1ZGUgImVsZi1iZmQu aCIKICAjaW5jbHVkZSAic29saWIuaCIKQEAgLTE3NCw3ICsxNzQsNyBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgCiAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgog ICNpbmNsdWRlIDxmY250bC5oPgotQEAgLTExOTMsMTYgKzExOTQsNjUgQEAgc3ltYm9sX2ZpbGVf Y2xlYXIgKGludCBmcm9tX3R0eSkKK0BAIC0xMTk1LDE2ICsxMTk2LDY1IEBAIHN5bWJvbF9maWxl X2NsZWFyIChpbnQgZnJvbV90dHkpCiAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzeW1i b2wgZmlsZSBub3cuXG4iKSk7CiAgfQogIApAQCAtMjQyLDcgKzI0Miw3IEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICB7CiAgICBzdHJ1Y3QgYnVpbGRfaWQgKnJl dHZhbDsKICAKLUBAIC0xMjE4LDYgKzEyNjgsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAq YWJmZCkKK0BAIC0xMjIwLDYgKzEyNzAsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJm ZCkKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtNTkxLDcgKzU5MSw3IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICAvKiBSZXR1cm4gaWYgRklMRU5BTUUg aGFzIE5UX0dOVV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuICAqLwogIAogIHN0 YXRpYyBpbnQKLUBAIC0xMjM1LDcgKzE2MjcsNyBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNo YXIgKmZpbGVuYW1lLCBzCitAQCAtMTIzNyw3ICsxNjI5LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChj b25zdCBjaGFyICpmaWxlbmFtZSwgcwogICAgaWYgKGFiZmQgPT0gTlVMTCkKICAgICAgcmV0dXJu IDA7CiAgCkBAIC02MDAsNyArNjAwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L3N5bWZpbGUuYwogIAogICAgaWYgKGZvdW5kID09IE5VTEwpCiAgICAgIHdhcm5pbmcgKF8oIkZp bGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVkIiksIGZpbGVuYW1lKTsKLUBA IC0xMjU0LDggKzE2NDYsOSBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1l LCBzCitAQCAtMTI1Niw4ICsxNjQ4LDkgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFyICpm aWxlbmFtZSwgcwogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC02MTIsNyArNjEyLDcgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIHsKICAgIGNoYXIgKmxp bmssICpzLCAqcmV0dmFsID0gTlVMTDsKICAgIGdkYl9ieXRlICpkYXRhID0gYnVpbGRfaWQtPmRh dGE7Ci1AQCAtMTI2Myw3ICsxNjU2LDkgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0 cnVjdCBidWlsZAorQEAgLTEyNjUsNyArMTY1OCw5IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVu YW1lIChzdHJ1Y3QgYnVpbGQKICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNUT1JZLy5idWlsZC1p ZC9hYi9jZGVmICovCiAgICBsaW5rID0geG1hbGxvYyAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVj dG9yeSkgKyAoc2l6ZW9mICIvLmJ1aWxkLWlkLyIgLSAxKSArIDEKQEAgLTYyMyw3ICs2MjMsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgICBzID0gbGluayAr IHNwcmludGYgKGxpbmssICIlcy8uYnVpbGQtaWQvIiwgZGVidWdfZmlsZV9kaXJlY3RvcnkpOwog ICAgaWYgKHNpemUgPiAwKQogICAgICB7Ci1AQCAtMTI3NCwxMiArMTY2OSwxNCBAQCBidWlsZF9p ZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCitAQCAtMTI3NiwxMiArMTY3MSwxNCBA QCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCiAgICAgICpzKysgPSAn Lyc7CiAgICB3aGlsZSAoc2l6ZS0tID4gMCkKICAgICAgcyArPSBzcHJpbnRmIChzLCAiJTAyeCIs ICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC02NDAsNyArNjQwLDcgQEAgSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIAogICAgaWYgKHJldHZhbCAhPSBOVUxMICYmICFi dWlsZF9pZF92ZXJpZnkgKHJldHZhbCwgYnVpbGRfaWQpKQogICAgICB7Ci1AQCAtMTI4Nyw5ICsx Njg0LDE1MCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCitAQCAt MTI4OSw5ICsxNjg2LDE1MCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1 aWxkCiAgICAgICAgcmV0dmFsID0gTlVMTDsKICAgICAgfQogIApAQCAtNjQ5LDkgKzY0OSw5IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICsgIGVsc2UKICsgICAg eGZyZWUgKGxpbmspOwogKwotKyAgcmV0dXJuIHJldHZhbDsKLSt9Ci0rCisgICByZXR1cm4gcmV0 dmFsOworIH0KKyAKICsvKiBUaGlzIE1JU1NJTkdfRklMRVBBSVJfSEFTSCB0cmFja2VyIGlzIHVz ZWQgb25seSBmb3IgdGhlIGR1cGxpY2l0ZSBtZXNzYWdlcwogKyAgICAgVHJ5IHRvIGluc3RhbGwg dGhlIGhhc2ggZmlsZSAuLi4KICsgICBhdm9pZGFuY2UuICAqLwpAQCAtNjc0LDkgKzY3NCw5IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICsKICsgIHJldHZhbCA9 IG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssIHNpemUpOwogKyAgbWVt c2V0IChyZXR2YWwsIDAsIHNpemUpOwotICAgcmV0dXJuIHJldHZhbDsKLSB9Ci0gCisrICByZXR1 cm4gcmV0dmFsOworK30KKysKICtzdGF0aWMgaGFzaHZhbF90CiArbWlzc2luZ19maWxlcGFpcl9o YXNoX2Z1bmMgKGNvbnN0IHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyICplbGVtKQogK3sKQEAgLTc5 MSw3ICs3OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAg c3RhdGljIGNoYXIgKgogIGdldF9kZWJ1Z19saW5rX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQpCiAgewotQEAgLTEzNzIsMzIgKzE5MTAsMzYg QEAgc3RhdGljIGNoYXIgKgorQEAgLTEzNzQsMzIgKzE5MTIsMzYgQEAgc3RhdGljIGNoYXIgKgog IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewog ICAgYXNlY3Rpb24gKnNlY3Q7CkBAIC04MzYsNyArODM2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogICAgICB9CiAgCiAgICBiYXNlbmFtZSA9IGdldF9kZWJ1 Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7Ci1AQCAtMTQwNSw3ICsxOTQ3LDcgQEAgZmlu ZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0MDcsNyArMTk0OSw3 IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKICAgIGlmIChiYXNl bmFtZSA9PSBOVUxMKQogICAgICAvKiBUaGVyZSdzIG5vIHNlcGFyYXRlIGRlYnVnIGluZm8sIGhl bmNlIHRoZXJlJ3Mgbm8gd2F5IHdlIGNvdWxkCiAgICAgICAgIGxvYWQgaXQgPT4gbm8gd2Fybmlu Zy4gICovCkBAIC04NDUsMTggKzg0NSwxOCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvc3ltZmlsZS5jCiAgCiAgICBkaXIgPSB4c3RyZHVwIChvYmpmaWxlLT5uYW1lKTsKICAKLUBA IC0xNDIxLDIzICsxOTYzLDE5IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9i amZpbGUKLSAgIGdkYl9hc3NlcnQgKGkgPj0gMCAmJiBJU19ESVJfU0VQQVJBVE9SIChkaXJbaV0p KTsKLSAgIGRpcltpKzFdID0gJ1wwJzsKK0BAIC0xNDI5LDI0ICsxOTcxLDE5IEBAIGZpbmRfc2Vw YXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKKyAgIGlmIChjYW5vbl9uYW1lICYmIHN0 cmxlbiAoY2Fub25fbmFtZSkgPiBpKQorICAgICBpID0gc3RybGVuIChjYW5vbl9uYW1lKTsKICAK IC0gIGRlYnVnZmlsZSA9IGFsbG9jYSAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAx Ci0tICAgICAgICAgICAgICAgICAgICAgICsgc3RybGVuIChkaXIpCistICAgICAgICAgICAgICAg ICAgICAgICsgaQogLSAgICAgICAgICAgICAgICAgICAgICArIHN0cmxlbiAoREVCVUdfU1VCRElS RUNUT1JZKQogLSAgICAgICAgICAgICAgICAgICAgICArIHN0cmxlbiAoIi8iKQogLSAgICAgICAg ICAgICAgICAgICAgICArIHN0cmxlbiAoYmFzZW5hbWUpCiAtICAgICAgICAgICAgICAgICAgICAg ICsgMSk7CiArICBkZWJ1Z2ZpbGUgPSB4bWFsbG9jIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0 b3J5KSArIDEKLSsJCSAgICAgICArIHN0cmxlbiAoZGlyKQorKwkJICAgICAgICsgaQogKwkJICAg ICAgICsgc3RybGVuIChERUJVR19TVUJESVJFQ1RPUlkpCiArCQkgICAgICAgKyBzdHJsZW4gKCIv IikKICsJCSAgICAgICArIHN0cmxlbiAoYmFzZW5hbWUpCkBAIC04NzAsMzkgKzg3MCw0MiBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAtICAgIHsKIC0gICAgICB4 ZnJlZSAoYmFzZW5hbWUpOwogLSAgICAgIHhmcmVlIChkaXIpOworLSAgICAgIHhmcmVlIChjYW5v bl9uYW1lKTsKIC0gICAgICByZXR1cm4geHN0cmR1cCAoZGVidWdmaWxlKTsKIC0gICAgfQogKyAg ICBnb3RvIGNsZWFudXBfcmV0dXJuX2RlYnVnZmlsZTsKICAKICAgIC8qIFRoZW4gdHJ5IGluIHRo ZSBzdWJkaXJlY3RvcnkgbmFtZWQgREVCVUdfU1VCRElSRUNUT1JZLiAgKi8KICAgIHN0cmNweSAo ZGVidWdmaWxlLCBkaXIpOwotQEAgLTE0NDYsMTEgKzE5ODQsNyBAQCBmaW5kX3NlcGFyYXRlX2Rl YnVnX2ZpbGUgKHN0cnVjdCBvYmpmaWxlCitAQCAtMTQ1NSwxMiArMTk5Miw3IEBAIGZpbmRfc2Vw YXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKICAgIHN0cmNhdCAoZGVidWdmaWxlLCBi YXNlbmFtZSk7CiAgCiAgICBpZiAoc2VwYXJhdGVfZGVidWdfZmlsZV9leGlzdHMgKGRlYnVnZmls ZSwgY3JjMzIsIG9iamZpbGUtPm5hbWUpKQogLSAgICB7CiAtICAgICAgeGZyZWUgKGJhc2VuYW1l KTsKIC0gICAgICB4ZnJlZSAoZGlyKTsKKy0gICAgICB4ZnJlZSAoY2Fub25fbmFtZSk7CiAtICAg ICAgcmV0dXJuIHhzdHJkdXAgKGRlYnVnZmlsZSk7CiAtICAgIH0KICsgICAgZ290byBjbGVhbnVw X3JldHVybl9kZWJ1Z2ZpbGU7CiAgCiAgICAvKiBUaGVuIHRyeSBpbiB0aGUgZ2xvYmFsIGRlYnVn ZmlsZSBkaXJlY3RvcnkuICAqLwogICAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRlYnVnX2ZpbGVfZGly ZWN0b3J5KTsKLUBAIC0xNDU5LDExICsxOTkzLDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxl IChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0NjksMTIgKzIwMDEsNyBAQCBmaW5kX3NlcGFyYXRlX2Rl YnVnX2ZpbGUgKHN0cnVjdCBvYmpmaWxlCiAgICBzdHJjYXQgKGRlYnVnZmlsZSwgYmFzZW5hbWUp OwogIAogICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2ZpbGUsIGNyYzMy LCBvYmpmaWxlLT5uYW1lKSkKIC0gICAgewogLSAgICAgIHhmcmVlIChiYXNlbmFtZSk7CiAtICAg ICAgeGZyZWUgKGRpcik7CistICAgICAgeGZyZWUgKGNhbm9uX25hbWUpOwogLSAgICAgIHJldHVy biB4c3RyZHVwIChkZWJ1Z2ZpbGUpOwogLSAgICB9CiArICAgIGdvdG8gY2xlYW51cF9yZXR1cm5f ZGVidWdmaWxlOwogIAogICAgLyogSWYgdGhlIGZpbGUgaXMgaW4gdGhlIHN5c3Jvb3QsIHRyeSB1 c2luZyBpdHMgYmFzZSBwYXRoIGluIHRoZQogICAgICAgZ2xvYmFsIGRlYnVnZmlsZSBkaXJlY3Rv cnkuICAqLwotQEAgLTE0NzgsMjAgKzIwMDgsMTggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxl IChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTE0ODgsMjEgKzIwMTUsMTggQEAgZmluZF9zZXBhcmF0ZV9k ZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQogICAgICAgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNl bmFtZSk7CiAgCiAgICAgICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2Zp bGUsIGNyYzMyLCBvYmpmaWxlLT5uYW1lKSkKQEAgLTkxMCwxNyArOTEzLDE3IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKIC0JICB4ZnJlZSAoY2Fub25fbmFtZSk7 CiAtCSAgeGZyZWUgKGJhc2VuYW1lKTsKIC0JICB4ZnJlZSAoZGlyKTsKKy0JICB4ZnJlZSAoY2Fu b25fbmFtZSk7CiAtCSAgcmV0dXJuIHhzdHJkdXAgKGRlYnVnZmlsZSk7CiAtCX0KLSsgICAgICAg IGdvdG8gY2xlYW51cF9yZXR1cm5fZGVidWdmaWxlOworKwlnb3RvIGNsZWFudXBfcmV0dXJuX2Rl YnVnZmlsZTsKICAgICAgfQotLSAgCisgICAKIC0gIGlmIChjYW5vbl9uYW1lKQogLSAgICB4ZnJl ZSAoY2Fub25fbmFtZSk7Ci0gCiArICBkZWJ1Z2ZpbGUgPSBOVUxMOwogKyAgZGVidWdfcHJpbnRf bWlzc2luZyAob2JqZmlsZS0+bmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwotKworIAogK2NsZWFu dXBfcmV0dXJuX2RlYnVnZmlsZToKICsgIHhmcmVlIChidWlsZF9pZF9maWxlbmFtZSk7CiArICB4 ZnJlZSAoY2Fub25fbmFtZSk7CkBAIC05MzEsNyArOTM0LDcgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwogIH0KICAKICAKLUBAIC00MjQzLDQgKzQ3NzEsMTYgQEAg U2hvdyBwcmludGluZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcworQEAgLTQyNTQsNCArNDc3 OCwxNiBAQCBTaG93IHByaW50aW5nIG9mIHN5bWJvbCBsb2FkaW5nIG1lc3NhZ2VzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZXRwcmludGxpc3QsICZzaG93cHJp bnRsaXN0KTsKQEAgLTk0OCwxMCArOTUxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9zeW1maWxlLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQg KGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiAgfQotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDkvZ2RiL3N5 bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3lt ZmlsZS5oCTIwMDktMDgtMDQgMDY6Mjk6NDcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDQgMDY6MzI6MTIuMDAwMDAwMDAwICsw MjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgwOS5vcmlnL2dkYi9zeW1maWxlLmgJMjAwOS0wOC0x MCAwMDo1MDozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi9z eW1maWxlLmgJMjAwOS0wOC0xMCAxNDo1NjoxMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zODgsNiAr Mzg4LDEzIEBAIGV4dGVybiBpbnQgc3ltZmlsZV9tYXBfb2Zmc2V0c190b19zZWdtZW4KICBzdHJ1 Y3Qgc3ltZmlsZV9zZWdtZW50X2RhdGEgKmdldF9zeW1maWxlX3NlZ21lbnRfZGF0YSAoYmZkICph YmZkKTsKICB2b2lkIGZyZWVfc3ltZmlsZV9zZWdtZW50X2RhdGEgKHN0cnVjdCBzeW1maWxlX3Nl Z21lbnRfZGF0YSAqZGF0YSk7CkBAIC05NjYsMTAgKzk2OSwxMCBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKICBl eHRlcm4gaW50IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKik7Ci1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwOS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0w OC0wNCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOC0wNCAwNjozMjoxMi4wMDAwMDAwMDAgKzAy MDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAkyMDA5LTA4LTEwIDAwOjUwOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAw OTA4MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDA5LTA4LTEwIDE0OjU2OjExLjAwMDAw MDAwMCArMDIwMAogQEAgLTEyNDgsNiArMTI0OCwxNiBAQCBwcm9jIGRlZmF1bHRfZ2RiX3N0YXJ0 IHsgfSB7CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9 CkBAIC05ODcsMTAgKzk5MCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJldHVybiAwOwogIH0KICAKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1z dXBwb3J0LmV4cAkyMDA5LTA4LTA0IDA2OjI5OjQ3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0wOC0w NCAwNjozMjoxMi4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwODA5Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0wOC0xMCAwMDo1MDozMC4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODA5L2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCTIwMDktMDgtMTAgMTQ6NTY6MTEuMDAwMDAwMDAwICswMjAwCiBAQCAtMjIx LDYgKzIyMSwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKICAJICAg IH0KICAgICAgCX0KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5w YXRjaAppbmRleCA2YWQ3MTcwLi44YTExZTM2IDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNo CisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dp a2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgMDIyMmNi MWY0ZGRkMWVkYTMyOTY1ZTQ2NGNiNjBiMWU0NGUxMTBiMgorY29tbWl0IDkzZWMxNmU2ZjUwMDBk ZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKIAogYnJhbmNoIGBhcmNoZXInIC0gdGhlIG1lcmdl IG9mIGJyYW5jaGVzOgogYXJjaGVyLXRyb21leS1jYWxsLWZyYW1lLWNmYQpAQCAtMTAsMTIgKzEw LDI4OSBAQCBhcmNoZXItdHJvbWV5LWRlbGF5ZWQtc3ltZmlsZQogYXJjaGVyLXRyb21leS1kdy1v cC12YWx1ZQogYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXItamFua3JhdG9jaHZpbC1t aXNjCi1hcmNoZXItamFua3JhdG9jaHZpbC1leHByLWN1bXVsYXRpdmUKLQlhcmNoZXIta2VpdGhz LWV4cHItY3VtdWxhdGl2ZQotYXJjaGVyLWphbmtyYXRvY2h2aWwtcHl0aG9uCi0JYXJjaGVyLXRy b21leS1weXRob24KK2FyY2hlci1rZWl0aHMtZXhwci1jdW11bGF0aXZlCithcmNoZXItdHJvbWV5 LXB5dGhvbgogCiAKK2RpZmYgLS1naXQgYS9iZmQvY29mZi1zdGdvMzIuYyBiL2JmZC9jb2ZmLXN0 Z28zMi5jCitpbmRleCBiODkyOGJlLi44YmY3NjY3IDEwMDY0NAorLS0tIGEvYmZkL2NvZmYtc3Rn bzMyLmMKKysrKyBiL2JmZC9jb2ZmLXN0Z28zMi5jCitAQCAtMTAyLDkgKzEwMiw2IEBAIHN0YXRp YyBiZmRfYm9vbGVhbgorIAorICNpbmNsdWRlICJjb2ZmLWkzODYuYyIKKyAKKy0vKiBJIGhvbGQg aW4gdGhlIHVzcmRhdGEgdGhlIHN0dWIuICAqLworLSNkZWZpbmUgYmZkX2NvZmZfZ28zMnN0dWIg YmZkX3VzcmRhdGEKKy0KKyAvKiBUaGlzIG1hY3JvIGlzIHVzZWQsIGJlY2F1c2UgSSBjYW5ub3Qg YXNzdW1lIHRoZSBlbmRpYW5lc3Mgb2YgdGhlCisgICAgaG9zdCBzeXN0ZW0uICAqLworICNkZWZp bmUgX0goaW5kZXgpIChIX0dFVF8xNiAoYWJmZCwgKGhlYWRlcitpbmRleCoyKSkpCitAQCAtMTEy LDcgKzEwOSw3IEBAIHN0YXRpYyBiZmRfYm9vbGVhbgorIC8qIFRoZXNlIGJ5dGVzIGFyZSBhIDIw NDgtYnl0ZSBET1MgZXhlY3V0YWJsZSwgd2hpY2ggbG9hZHMgdGhlIENPRkYKKyAgICBpbWFnZSBp bnRvIG1lbW9yeSBhbmQgdGhlbiBydW5zIGl0LiBJdCBpcyBjYWxsZWQgJ3N0dWInLiAgKi8KKyAK Ky1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdHViX2J5dGVzW1NUVUJTSVpFXSA9Cisrc3Rh dGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1Yl9ieXRlc1tHTzMyX1NUVUJTSVpFXSA9Cisgewor ICNpbmNsdWRlICJnbzMyc3R1Yi5oIgorIH07CitAQCAtMTIwLDcgKzExNyw3IEBAIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNbU1RVQlNJWkVdID0KKyAvKgorICAgIEkgaGF2 ZSBub3QgY29tbWVudGVkIGVhY2ggc3dhcCBmdW5jdGlvbiBiZWxvdywgYmVjYXVzZSB0aGUKKyAg ICB0ZWNobmlxdWUgaXMgaW4gYW55IGZ1bmN0aW9uIHRoZSBzYW1lLiBGb3IgdGhlIC4uLmluIGZ1 bmN0aW9uLAorLSAgIGFsbCB0aGUgcG9pbnRlcnMgYXJlIGFkanVzdGVkIGJ5IGFkZGluZyBTVFVC U0laRSBhbmQgZm9yIHRoZQorKyAgIGFsbCB0aGUgcG9pbnRlcnMgYXJlIGFkanVzdGVkIGJ5IGFk ZGluZyBHTzMyX1NUVUJTSVpFIGFuZCBmb3IgdGhlCisgICAgLi4ub3V0IGZ1bmN0aW9uLCBpdCBp cyBzdWJ0cmFjdGVkIGZpcnN0IGFuZCBhZnRlciBjYWxsaW5nIHRoZQorICAgIHN0YW5kYXJkIHN3 YXAgZnVuY3Rpb24gaXQgaXMgcmVzZXQgdG8gdGhlIG9sZCB2YWx1ZS4gICovCisgCitAQCAtMTMy LDI1ICsxMjksMjAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1Yl9ieXRlc1tTVFVC U0laRV0gPQorIAorIHN0YXRpYyB2b2lkCisgYWRqdXN0X2ZpbGVoZHJfaW5fcG9zdCAgKGFiZmQs IHNyYywgZHN0KQorLSAgICAgYmZkICphYmZkOworKyAgICAgYmZkICphYmZkIEFUVFJJQlVURV9V TlVTRUQ7CisgICAgICBQVFIgc3JjOworICAgICAgUFRSIGRzdDsKKyB7CisgICBGSUxIRFIgKmZp bGVoZHJfc3JjID0gKEZJTEhEUiAqKSBzcmM7CisgICBzdHJ1Y3QgaW50ZXJuYWxfZmlsZWhkciAq ZmlsZWhkcl9kc3QgPSAoc3RydWN0IGludGVybmFsX2ZpbGVoZHIgKikgZHN0OworIAorLSAgQURK VVNUX1ZBTCAoZmlsZWhkcl9kc3QtPmZfc3ltcHRyLCBTVFVCU0laRSk7CisrICBBREpVU1RfVkFM IChmaWxlaGRyX2RzdC0+Zl9zeW1wdHIsIEdPMzJfU1RVQlNJWkUpOworIAorLSAgLyogU2F2ZSBu b3cgdGhlIHN0dWIgdG8gYmUgdXNlZCBsYXRlci4gICovCistICBiZmRfY29mZl9nbzMyc3R1YiAo YWJmZCkgPSAoUFRSKSBiZmRfYWxsb2MgKGFiZmQsIChiZmRfc2l6ZV90eXBlKSBTVFVCU0laRSk7 CistCistICAvKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgbm8gc3RhdHVzLCBJIGRvIG5v dCBzZXQgaGVyZQorLSAgICAgYW55IGJmZF9lcnJvcl8uLi4KKy0gICAgIFRoYXQgbWVhbnMsIGJl Zm9yZSB0aGUgdXNlIG9mIGJmZF9jb2ZmX2dvMzJzdHViICgpLCB0aGlzIHZhbHVlCistICAgICBz aG91bGQgYmUgY2hlY2tlZCBpZiBpdCBpcyAhPSBOVUxMLiAgKi8KKy0gIGlmIChiZmRfY29mZl9n bzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKKy0gICAgcmV0dXJuOworLSAgbWVtY3B5IChiZmRfY29m Zl9nbzMyc3R1YiAoYWJmZCksIGZpbGVoZHJfc3JjLT5zdHViLCBTVFVCU0laRSk7CisrICAvKiBT YXZlIG5vdyB0aGUgc3R1YiB0byBiZSB1c2VkIGxhdGVyLiAgUHV0IHRoZSBzdHViIGRhdGEgdG8g RklMRUhEUl9EU1QKKysgICAgIGZpcnN0IGFzIGNvZmZfZGF0YSAoYWJmZCkgc3RpbGwgZG9lcyBu b3QgZXhpc3QuICBJdCBtYXkgbm90IGV2ZW4gYmUgZXZlcgorKyAgICAgY3JlYXRlZCBhcyB3ZSBh cmUganVzdCBjaGVja2luZyB0aGUgZmlsZSBmb3JtYXQgb2YgQUJGRC4gICovCisrICBtZW1jcHkg KGZpbGVoZHJfZHN0LT5nbzMyc3R1YiwgZmlsZWhkcl9zcmMtPnN0dWIsIEdPMzJfU1RVQlNJWkUp OworKyAgZmlsZWhkcl9kc3QtPmZfZmxhZ3MgfD0gRl9HTzMyU1RVQjsKKyB9CisgCisgc3RhdGlj IHZvaWQKK0BAIC0xNjYsMTMgKzE1OCwxMyBAQCBhZGp1c3RfZmlsZWhkcl9vdXRfcHJlICAoYWJm ZCwgaW4sIG91dCkKKyAgIGNyZWF0ZV9nbzMyX3N0dWIgKGFiZmQpOworIAorICAgLyogQ29weSB0 aGUgc3R1YiB0byB0aGUgZmlsZSBoZWFkZXIuICAqLworLSAgaWYgKGJmZF9jb2ZmX2dvMzJzdHVi IChhYmZkKSAhPSBOVUxMKQorLSAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5zdHViLCBiZmRfY29m Zl9nbzMyc3R1YiAoYWJmZCksIFNUVUJTSVpFKTsKKysgIGlmIChjb2ZmX2RhdGEgKGFiZmQpLT5n bzMyc3R1YiAhPSBOVUxMKQorKyAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5zdHViLCBjb2ZmX2Rh dGEgKGFiZmQpLT5nbzMyc3R1YiwgR08zMl9TVFVCU0laRSk7CisgICBlbHNlCisgICAgIC8qIFVz ZSB0aGUgZGVmYXVsdC4gICovCistICAgIG1lbWNweSAoZmlsZWhkcl9vdXQtPnN0dWIsIHN0dWJf Ynl0ZXMsIFNUVUJTSVpFKTsKKysgICAgbWVtY3B5IChmaWxlaGRyX291dC0+c3R1Yiwgc3R1Yl9i eXRlcywgR08zMl9TVFVCU0laRSk7CisgCistICBBREpVU1RfVkFMIChmaWxlaGRyX2luLT5mX3N5 bXB0ciwgLVNUVUJTSVpFKTsKKysgIEFESlVTVF9WQUwgKGZpbGVoZHJfaW4tPmZfc3ltcHRyLCAt R08zMl9TVFVCU0laRSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTgzLDcgKzE3NSw3IEBA IGFkanVzdF9maWxlaGRyX291dF9wb3N0ICAoYWJmZCwgaW4sIG91dCkKKyB7CisgICBzdHJ1Y3Qg aW50ZXJuYWxfZmlsZWhkciAqZmlsZWhkcl9pbiA9IChzdHJ1Y3QgaW50ZXJuYWxfZmlsZWhkciAq KSBpbjsKKyAgIC8qIFVuZG8gdGhlIGFib3ZlIGNoYW5nZS4gICovCistICBBREpVU1RfVkFMIChm aWxlaGRyX2luLT5mX3N5bXB0ciwgU1RVQlNJWkUpOworKyAgQURKVVNUX1ZBTCAoZmlsZWhkcl9p bi0+Zl9zeW1wdHIsIEdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTE5 NCw5ICsxODYsOSBAQCBhZGp1c3Rfc2NuaGRyX2luX3Bvc3QgIChhYmZkLCBleHQsIGluKQorIHsK KyAgIHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKnNjbmhkcl9pbnQgPSAoc3RydWN0IGludGVybmFs X3NjbmhkciAqKSBpbjsKKyAKKy0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfc2NucHRyLCBT VFVCU0laRSk7CistICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3JlbHB0ciwgU1RVQlNJWkUp OworLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCBTVFVCU0laRSk7CisrICBB REpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpV U1RfVkFMIChzY25oZHJfaW50LT5zX3JlbHB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpVU1Rf VkFMIChzY25oZHJfaW50LT5zX2xubm9wdHIsIEdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0 aWMgdm9pZAorQEAgLTIwNyw5ICsxOTksOSBAQCBhZGp1c3Rfc2NuaGRyX291dF9wcmUgIChhYmZk LCBpbiwgb3V0KQorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKnNjbmhkcl9pbnQgPSAo c3RydWN0IGludGVybmFsX3NjbmhkciAqKSBpbjsKKyAKKy0gIEFESlVTVF9WQUwgKHNjbmhkcl9p bnQtPnNfc2NucHRyLCAtU1RVQlNJWkUpOworLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19y ZWxwdHIsIC1TVFVCU0laRSk7CistICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX2xubm9wdHIs IC1TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgLUdPMzJf U1RVQlNJWkUpOworKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIsIC1HTzMyX1NU VUJTSVpFKTsKKysgIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfbG5ub3B0ciwgLUdPMzJfU1RV QlNJWkUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTIyMCw5ICsyMTIsOSBAQCBhZGp1c3Rf c2NuaGRyX291dF9wb3N0IChhYmZkLCBpbiwgb3V0KQorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9z Y25oZHIgKnNjbmhkcl9pbnQgPSAoc3RydWN0IGludGVybmFsX3NjbmhkciAqKSBpbjsKKyAKKy0g IEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfc2NucHRyLCBTVFVCU0laRSk7CistICBBREpVU1Rf VkFMIChzY25oZHJfaW50LT5zX3JlbHB0ciwgU1RVQlNJWkUpOworLSAgQURKVVNUX1ZBTCAoc2Nu aGRyX2ludC0+c19sbm5vcHRyLCBTVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50 LT5zX3NjbnB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5z X3JlbHB0ciwgR08zMl9TVFVCU0laRSk7CisrICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX2xu bm9wdHIsIEdPMzJfU1RVQlNJWkUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTIzOSw3ICsy MzEsNyBAQCBhZGp1c3RfYXV4X2luX3Bvc3QgIChhYmZkLCBleHQxLCB0eXBlLCBjbGFzcywgaW5k eCwgbnVtYXV4LCBpbjEpCisgCisgICBpZiAoY2xhc3MgPT0gQ19CTE9DSyB8fCBjbGFzcyA9PSBD X0ZDTiB8fCBJU0ZDTiAodHlwZSkgfHwgSVNUQUcgKGNsYXNzKSkKKyAgICAgeworLSAgICAgIEFE SlVTVF9WQUwgKGluLT54X3N5bS54X2ZjbmFyeS54X2Zjbi54X2xubm9wdHIsIFNUVUJTSVpFKTsK KysgICAgICBBREpVU1RfVkFMIChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCBH TzMyX1NUVUJTSVpFKTsKKyAgICAgfQorIH0KKyAKK0BAIC0yNTcsNyArMjQ5LDcgQEAgYWRqdXN0 X2F1eF9vdXRfcHJlICAoYWJmZCwgaW5wLCB0eXBlLCBjbGFzcywgaW5keCwgbnVtYXV4LCBleHRw KQorIAorICAgaWYgKGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3MgPT0gQ19GQ04gfHwgSVNGQ04g KHR5cGUpIHx8IElTVEFHIChjbGFzcykpCisgICAgIHsKKy0gICAgICBBREpVU1RfVkFMIChpbi0+ eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCAtU1RVQlNJWkUpOworKyAgICAgIEFESlVT VF9WQUwgKGluLT54X3N5bS54X2ZjbmFyeS54X2Zjbi54X2xubm9wdHIsIC1HTzMyX1NUVUJTSVpF KTsKKyAgICAgfQorIH0KKyAKK0BAIC0yNzUsNyArMjY3LDcgQEAgYWRqdXN0X2F1eF9vdXRfcG9z dCAoYWJmZCwgaW5wLCB0eXBlLCBjbGFzcywgaW5keCwgbnVtYXV4LCBleHRwKQorIAorICAgaWYg KGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3MgPT0gQ19GQ04gfHwgSVNGQ04gKHR5cGUpIHx8IElT VEFHIChjbGFzcykpCisgICAgIHsKKy0gICAgICBBREpVU1RfVkFMIChpbi0+eF9zeW0ueF9mY25h cnkueF9mY24ueF9sbm5vcHRyLCBTVFVCU0laRSk7CisrICAgICAgQURKVVNUX1ZBTCAoaW4tPnhf c3ltLnhfZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgR08zMl9TVFVCU0laRSk7CisgICAgIH0KKyB9 CisgCitAQCAtMjk2LDcgKzI4OCw3IEBAIGNyZWF0ZV9nbzMyX3N0dWIgKGFiZmQpCisgICAgICBi ZmQgKmFiZmQ7CisgeworICAgLyogRG8gaXQgb25seSBvbmNlLiAgKi8KKy0gIGlmIChiZmRfY29m Zl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKKysgIGlmIChjb2ZmX2RhdGEgKGFiZmQpLT5nbzMy c3R1YiA9PSBOVUxMKQorICAgICB7CisgICAgICAgY2hhciAqc3R1YjsKKyAgICAgICBzdHJ1Y3Qg c3RhdCBzdDsKK0BAIC0zNjIsMzIgKzM1NCwzMiBAQCBjcmVhdGVfZ28zMl9zdHViIChhYmZkKQor IAkgIGdvdG8gc3R1Yl9lbmQ7CisgCX0KKyAgICAgICAvKiBOb3cgd2UgZm91bmQgYSBjb3JyZWN0 IHN0dWIgKGhvcGVmdWxseSkuICAqLworLSAgICAgIGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKQor KyAgICAgIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViCisgCT0gKFBUUikgYmZkX2FsbG9jIChh YmZkLCAoYmZkX3NpemVfdHlwZSkgY29mZl9zdGFydCk7CistICAgICAgaWYgKGJmZF9jb2ZmX2dv MzJzdHViIChhYmZkKSA9PSBOVUxMKQorKyAgICAgIGlmIChjb2ZmX2RhdGEgKGFiZmQpLT5nbzMy c3R1YiA9PSBOVUxMKQorIAl7CisgCSAgY2xvc2UgKGYpOworIAkgIHJldHVybjsKKyAJfQorICAg ICAgIGxzZWVrIChmLCAwTCwgU0VFS19TRVQpOworLSAgICAgIGlmICgodW5zaWduZWQgbG9uZykg cmVhZCAoZiwgYmZkX2NvZmZfZ28zMnN0dWIgKGFiZmQpLCBjb2ZmX3N0YXJ0KQorKyAgICAgIGlm ICgodW5zaWduZWQgbG9uZykgcmVhZCAoZiwgY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIsIGNv ZmZfc3RhcnQpCisgCSAgIT0gY29mZl9zdGFydCkKKyAJeworLQkgIGJmZF9yZWxlYXNlIChhYmZk LCBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkpOworLQkgIGJmZF9jb2ZmX2dvMzJzdHViIChhYmZk KSA9IE5VTEw7CisrCSAgYmZkX3JlbGVhc2UgKGFiZmQsIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJz dHViKTsKKysJICBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YiA9IE5VTEw7CisgCX0KKyAgICAg ICBjbG9zZSAoZik7CisgICAgIH0KKyBzdHViX2VuZDoKKyAgIC8qIFRoZXJlIHdhcyBzb21ldGhp bmcgd3JvbmcgYWJvdmUsIHNvIHVzZSBub3cgdGhlIHN0YW5kYXJkIGJ1aWx0aW4KKyAgICAgIHN0 dWIuICAqLworLSAgaWYgKGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSA9PSBOVUxMKQorKyAgaWYg KGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViID09IE5VTEwpCisgICAgIHsKKy0gICAgICBiZmRf Y29mZl9nbzMyc3R1YiAoYWJmZCkKKy0JPSAoUFRSKSBiZmRfYWxsb2MgKGFiZmQsIChiZmRfc2l6 ZV90eXBlKSBTVFVCU0laRSk7CistICAgICAgaWYgKGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSA9 PSBOVUxMKQorKyAgICAgIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViCisrCT0gKFBUUikgYmZk X2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgR08zMl9TVFVCU0laRSk7CisrICAgICAgaWYg KGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViID09IE5VTEwpCisgCXJldHVybjsKKy0gICAgICBt ZW1jcHkgKGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSwgc3R1Yl9ieXRlcywgU1RVQlNJWkUpOwor KyAgICAgIG1lbWNweSAoY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIsIHN0dWJfYnl0ZXMsIEdP MzJfU1RVQlNJWkUpOworICAgICB9CisgfQorIAorQEAgLTQwMywxMyArMzk1LDIwIEBAIGdvMzJf c3R1YmJlZF9jb2ZmX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEgIChpYmZkLCBvYmZkKQorICAg aWYgKGliZmQtPnh2ZWMgIT0gb2JmZC0+eHZlYykKKyAgICAgcmV0dXJuIFRSVUU7CisgCistICAv KiBDaGVjayBpZiBib3RoIGhhdmUgYSB2YWxpZCBzdHViLiAgKi8KKy0gIGlmIChiZmRfY29mZl9n bzMyc3R1YiAoaWJmZCkgPT0gTlVMTAorLSAgICAgIHx8IGJmZF9jb2ZmX2dvMzJzdHViIChvYmZk KSA9PSBOVUxMKQorKyAgLyogQ2hlY2sgaWYgd2UgaGF2ZSBhIHNvdXJjZSBzdHViLiAgKi8KKysg IGlmIChjb2ZmX2RhdGEgKGliZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQorICAgICByZXR1cm4gVFJV RTsKKyAKKysgIC8qIEFzIGFkanVzdF9maWxlaGRyX291dF9wcmUgbWF5IGdldCBjYWxsZWQgb25s eSBhZnRlciB0aGlzIGZ1bmN0aW9uLAorKyAgICAgb3B0aW9uYWxseSBhbGxvY2F0ZSB0aGUgb3V0 cHV0IHN0dWIuICAqLworKyAgaWYgKGNvZmZfZGF0YSAob2JmZCktPmdvMzJzdHViID09IE5VTEwp CisrICAgIGNvZmZfZGF0YSAob2JmZCktPmdvMzJzdHViID0gKFBUUikgYmZkX2FsbG9jIChvYmZk LAorKwkJCQkJCShiZmRfc2l6ZV90eXBlKSBHTzMyX1NUVUJTSVpFKTsKKysKKyAgIC8qIE5vdyBj b3B5IHRoZSBzdHViLiAgKi8KKy0gIG1lbWNweSAoYmZkX2NvZmZfZ28zMnN0dWIgKG9iZmQpLCBi ZmRfY29mZl9nbzMyc3R1YiAoaWJmZCksIFNUVUJTSVpFKTsKKysgIGlmIChjb2ZmX2RhdGEgKG9i ZmQpLT5nbzMyc3R1YiAhPSBOVUxMKQorKyAgICBtZW1jcHkgKGNvZmZfZGF0YSAob2JmZCktPmdv MzJzdHViLCBjb2ZmX2RhdGEgKGliZmQpLT5nbzMyc3R1YiwKKysJICAgIEdPMzJfU1RVQlNJWkUp OworIAorICAgcmV0dXJuIFRSVUU7CisgfQorZGlmZiAtLWdpdCBhL2JmZC9jb2ZmY29kZS5oIGIv YmZkL2NvZmZjb2RlLmgKK2luZGV4IDRiNzQ4YjQuLjFjYzg2MGEgMTAwNjQ0CistLS0gYS9iZmQv Y29mZmNvZGUuaAorKysrIGIvYmZkL2NvZmZjb2RlLmgKK0BAIC0xOTkyLDYgKzE5OTIsMTEgQEAg Y29mZl9ta29iamVjdF9ob29rIChiZmQgKiBhYmZkLAorICAgICBhYmZkLT5mbGFncyB8PSBIQVNf REVCVUc7CisgI2VuZGlmCisgCisrICBpZiAoKGludGVybmFsX2YtPmZfZmxhZ3MgJiBGX0dPMzJT VFVCKSAhPSAwKQorKyAgICBjb2ZmLT5nbzMyc3R1YiA9IChjaGFyICopIGJmZF9hbGxvYyAoYWJm ZCwgKGJmZF9zaXplX3R5cGUpIEdPMzJfU1RVQlNJWkUpOworKyAgaWYgKGNvZmYtPmdvMzJzdHVi ICE9IE5VTEwpCisrICAgIG1lbWNweSAoY29mZi0+Z28zMnN0dWIsIGludGVybmFsX2YtPmdvMzJz dHViLCBHTzMyX1NUVUJTSVpFKTsKKysKKyAgIHJldHVybiBjb2ZmOworIH0KKyAjZW5kaWYKK2Rp ZmYgLS1naXQgYS9iZmQvbGliY29mZi1pbi5oIGIvYmZkL2xpYmNvZmYtaW4uaAoraW5kZXggMTZi NmM3Yi4uZjMxMDhlZSAxMDA2NDQKKy0tLSBhL2JmZC9saWJjb2ZmLWluLmgKKysrKyBiL2JmZC9s aWJjb2ZmLWluLmgKK0BAIC0xMDYsNiArMTA2LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgY29mZl90ZGF0 YQorICAgICAgdXNlZCBieSBBUk0gY29kZS4gICovCisgICBmbGFnd29yZCBmbGFnczsKKyAKKysg IC8qIGNvZmYtc3RnbzMyIEVYRSBzdHViIGhlYWRlciBhZnRlciBCRkQgdGRhdGEgaGFzIGJlZW4g YWxsb2NhdGVkLiAgSXRzIGRhdGEKKysgICAgIGlzIGtlcHQgaW4gaW50ZXJuYWxfZmlsZWhkci5n bzMyc3R1YiBiZWZvcmVoYW5kLiAgKi8KKysgIGNoYXIgKmdvMzJzdHViOworIH0gY29mZl9kYXRh X3R5cGU7CisgCisgLyogVGRhdGEgZm9yIHBlIGltYWdlIGZpbGVzLiAgKi8KK2RpZmYgLS1naXQg YS9iZmQvbGliY29mZi5oIGIvYmZkL2xpYmNvZmYuaAoraW5kZXggYTRhYjQwNS4uNGJiNDNmMyAx MDA2NDQKKy0tLSBhL2JmZC9saWJjb2ZmLmgKKysrKyBiL2JmZC9saWJjb2ZmLmgKK0BAIC0xMTAs NiArMTEwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgY29mZl90ZGF0YQorICAgICAgdXNlZCBieSBBUk0g Y29kZS4gICovCisgICBmbGFnd29yZCBmbGFnczsKKyAKKysgIC8qIGNvZmYtc3RnbzMyIEVYRSBz dHViIGhlYWRlciBhZnRlciBCRkQgdGRhdGEgaGFzIGJlZW4gYWxsb2NhdGVkLiAgSXRzIGRhdGEK KysgICAgIGlzIGtlcHQgaW4gaW50ZXJuYWxfZmlsZWhkci5nbzMyc3R1YiBiZWZvcmVoYW5kLiAg Ki8KKysgIGNoYXIgKmdvMzJzdHViOworIH0gY29mZl9kYXRhX3R5cGU7CisgCisgLyogVGRhdGEg Zm9yIHBlIGltYWdlIGZpbGVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9n ZGIvTWFrZWZpbGUuaW4KIGluZGV4IGNjYzRkYjguLjQ5NmM5ZjIgMTAwNjQ0CiAtLS0gYS9nZGIv TWFrZWZpbGUuaW4KQEAgLTE5NSw3ICs0NzIsNyBAQCBpbmRleCBjY2M0ZGI4Li40OTZjOWYyIDEw MDY0NAogICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBpcyBjb25kaXRpb25h bCBvbiBHTlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBpZiBHTlUgTWFrZSBp cyBub3QgZm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9n ZGIvTkVXUwotaW5kZXggOTcwZjRkZi4uZThkZTQ3NCAxMDA2NDQKK2luZGV4IDBiOGUzYWYuLjQ0 NjI0NmYgMTAwNjQ0CiAtLS0gYS9nZGIvTkVXUwogKysrIGIvZ2RiL05FV1MKIEBAIC00MjUsNiAr NDI1LDEzIEBAIHg4Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFyd2luKgpAQCAtMzQw LDcgKzYxNyw3IEBAIGluZGV4IDUzZTczNzEuLjgyOTBhZGMgMTAwNjQ0CiArCiAgI2VuZGlmIC8q IEJMT0NLX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9p bnQuYwotaW5kZXggMmU1OThlNC4uMzhmZGY4YSAxMDA2NDQKK2luZGV4IGYzOTQwZTEuLjcwMjIy YTQgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9nZGIvYnJlYWtwb2ludC5j CiBAQCAtNTksNiArNTksNyBAQApAQCAtMzUxLDggKzYyOCw4IEBAIGluZGV4IDJlNTk4ZTQuLjM4 ZmRmOGEgMTAwNjQ0CiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcyAqLwogICNpbmNsdWRl ICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTU2NCw2ICs1NjUsNTMgQEAgZ2V0X251bWJlcl9v cl9yYW5nZSAoY2hhciAqKnBwKQotIAorQEAgLTU3OCw2ICs1NzksNTMgQEAgZ2V0X2JyZWFrcG9p bnQgKGludCBudW0pCisgfQogIAogIAwKICsvKiBTZXQgYnJlYWsgY29uZGl0aW9uIG9mIGJyZWFr cG9pbnQgQiB0byBFWFAuICAqLwpAQCAtNDA1LDcgKzY4Miw3IEBAIGluZGV4IDJlNTk4ZTQuLjM4 ZmRmOGEgMTAwNjQ0CiAgLyogY29uZGl0aW9uIE4gRVhQIC0tIHNldCBicmVhayBjb25kaXRpb24g b2YgYnJlYWtwb2ludCBOIHRvIEVYUC4gICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC01ODQsNDIg KzYzMiw3IEBAIGNvbmRpdGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK0BA IC01OTgsNDIgKzY0Niw3IEBAIGNvbmRpdGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9t X3R0eSkKICAgIEFMTF9CUkVBS1BPSU5UUyAoYikKICAgICAgaWYgKGItPm51bWJlciA9PSBibnVt KQogICAgICAgIHsKQEAgLTQ0OSw3ICs3MjYsNyBAQCBpbmRleCAyZTU5OGU0Li4zOGZkZjhhIDEw MDY0NAogIAlyZXR1cm47CiAgICAgICAgfQogIAotQEAgLTg4MjEsNiArODgzNCwyMiBAQCBhbGxf dHJhY2Vwb2ludHMgKCkKK0BAIC04ODQzLDYgKzg4NTYsMjIgQEAgYWxsX3RyYWNlcG9pbnRzICgp CiAgICByZXR1cm4gdHBfdmVjOwogIH0KICAKQEAgLTQ3MiwxNyArNzQ5LDE3IEBAIGluZGV4IDJl NTk4ZTQuLjM4ZmRmOGEgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJpbmcgaXMgdXNlZCBm b3IgdGhlIGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhayBjb21tYW5kcy4KICAgICBJ dCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8gcHJldmVudCBkdXBsaWNhdGlvbi4KLUBAIC05MzIz LDQgKzkzNTIsNSBAQCBpbmZlcmlvciBpbiBhbGwtc3RvcCBtb2RlLCBnZGIgYmVoYXZlcyBhcyBp ZiBhbHdheXMtaW5zZXJ0ZWQgbW9kZSBpcyBvZmYuIiksCitAQCAtOTM0NSw0ICs5Mzc0LDUgQEAg aW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2Vy dGVkIG1vZGUgaXMgb2ZmLiIpLAogICAgYXV0b21hdGljX2hhcmR3YXJlX2JyZWFrcG9pbnRzID0g MTsKICAKICAgIG9ic2VydmVyX2F0dGFjaF9hYm91dF90b19wcm9jZWVkIChicmVha3BvaW50X2Fi b3V0X3RvX3Byb2NlZWQpOwogKyAgb2JzZXJ2ZXJfYXR0YWNoX21hcmtfdXNlZCAoYnJlYWtwb2lu dF90eXBlc19tYXJrX3VzZWQpOwogIH0KIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5oIGIv Z2RiL2JyZWFrcG9pbnQuaAotaW5kZXggZDhmZTA0Ny4uM2E5MjliNSAxMDA2NDQKK2luZGV4IGQ5 M2M2YjYuLmE1NTVjMTYgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5oCiArKysgYi9nZGIv YnJlYWtwb2ludC5oCi1AQCAtOTEzLDYgKzkxMyw5IEBAIGV4dGVybiB2b2lkIGJyZWFrcG9pbnRf cmV0aXJlX21vcmlidW5kICh2b2lkKTsKK0BAIC05MTgsNiArOTE4LDkgQEAgZXh0ZXJuIHZvaWQg YnJlYWtwb2ludF9yZXRpcmVfbW9yaWJ1bmQgKHZvaWQpOwogIC8qIFRlbGwgYSBicmVha3BvaW50 IHRvIGJlIHF1aWV0LiAgKi8KICBleHRlcm4gdm9pZCBtYWtlX2JyZWFrcG9pbnRfc2lsZW50IChz dHJ1Y3QgYnJlYWtwb2ludCAqKTsKICAKQEAgLTE3MjAsNyArMTk5Nyw3IEBAIGluZGV4IDYyODAw YjguLjk3ZDU4N2IgMTAwNjQ0CiAgCQkJeyAkJCA9ICQxLmNvbXA7CiAgCQkJICBpZiAoJDIpICQk ID0gZmlsbF9jb21wIChERU1BTkdMRV9DT01QT05FTlRfTE9DQUxfTkFNRSwgJCQsICQyKTsgfQog ZGlmZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1lc3BhY2UuYwotaW5k ZXggZDJkOGYyZS4uMzE2NjgxOCAxMDA2NDQKK2luZGV4IGQyZDhmMmUuLmNjMjU5ZTcgMTAwNjQ0 CiAtLS0gYS9nZGIvY3AtbmFtZXNwYWNlLmMKICsrKyBiL2dkYi9jcC1uYW1lc3BhY2UuYwogQEAg LTM1LDE1ICszNSw3IEBACkBAIC0xODE5LDcgKzIwOTYsNyBAQCBpbmRleCBkMmQ4ZjJlLi4zMTY2 ODE4IDEwMDY0NAogICAgICAgIHhmcmVlICh1c2luZyk7CiAgCiAgICAgICAgcmV0dXJuIHJldHZh bDsKLUBAIC0yNjEsMTIgKzI3MCwzMCBAQCBjcF9jb3B5X3VzaW5ncyAoc3RydWN0IHVzaW5nX2Rp cmVjdCAqdXNpbmcsCitAQCAtMjYxLDEyICsyNzAsNDIgQEAgY3BfY29weV91c2luZ3MgKHN0cnVj dCB1c2luZ19kaXJlY3QgKnVzaW5nLAogIAogIHN0cnVjdCBzeW1ib2wgKgogIGNwX2xvb2t1cF9z eW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCkBAIC0xODI5LDMxICsyMTA2LDQzIEBA IGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiAgewogLSAgcmV0dXJuIGxvb2t1cF9uYW1l c3BhY2Vfc2NvcGUgKG5hbWUsIGxpbmthZ2VfbmFtZSwgYmxvY2ssIGRvbWFpbiwKIC0JCQkJIGJs b2NrX3Njb3BlIChibG9jayksIDApOwotKyAgc3RydWN0IHN5bWJvbCogc3ltID0gTlVMTDsKLSsg IGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxvY2tfZ2xvYmFsX2Jsb2NrIChi bG9jayk7Ci0rICBjb25zdCBjaGFyKiBzY29wZSA9IGJsb2NrX3Njb3BlKGJsb2NrKTsKLSsgICAg LyogQ2hlY2sgaWYgZWl0aGVyIG5vIGJsb2NrIGlzIHNwZWNpZmllZCBvciBpdCdzIGEgZ2xvYmFs IGJsb2NrLiAgKi8KLSsKLSsgIHdoaWxlIChibG9jayAhPSBnbG9iYWxfYmxvY2spCi0rICAgIHdo aWxlIChibG9jayAhPSBnbG9iYWxfYmxvY2spCi0rICAgICAgewotKyAgICAgIHN5bSA9IGxvb2t1 cF9uYW1lc3BhY2Vfc2NvcGUobmFtZSwgYmxvY2ssIGRvbWFpbiwgc2NvcGUsIDAsIDApOworKyAg c3RydWN0IHN5bWJvbCAqc3ltOworKyAgY29uc3QgY2hhciogc2NvcGUgPSBibG9ja19zY29wZSAo YmxvY2spOyAKICsKLSsgICAgICBpZiAoc3ltICE9IE5VTEwpCi0rICAgICAgICByZXR1cm4gc3lt OworKyAgc3ltID0gbG9va3VwX25hbWVzcGFjZV9zY29wZSAobmFtZSwgYmxvY2ssIGRvbWFpbiwg c2NvcGUgLCAwLCAwKTsKKysgIGlmICggc3ltICE9IE5VTEwpCisrICAgIHJldHVybiBzeW07CiAr Ci0rICAgICAgYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLIChibG9jayk7Ci0rICAgIH0KKysgIHJl dHVybiBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNyZW1lbnRhbChzY29wZSwgbmFtZSwg YmxvY2ssIGRvbWFpbik7CisrfQogKworK3N0cnVjdCBzeW1ib2wqCisrY3BfbG9va3VwX3N5bWJv bF9uYW1lc3BhY2VfaW5jcmVtZW50YWwgKGNvbnN0IGNoYXIgKnNjb3BlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2Nr LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb21haW5f ZW51bSBkb21haW4pCisreworKyAgc3RydWN0IHN5bWJvbCAqc3ltOwogKwotKyAgaWYgKHN5bSAh PSBOVUxMKQorKyAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKHNjb3BlLCBuYW1l LCBibG9jaywgZG9tYWluLCAwKTsKKysgIGlmICggc3ltICE9IE5VTEwpCiArICAgIHJldHVybiBz eW07CiArCi0rICByZXR1cm4gbG9va3VwX3N5bWJvbF9maWxlKG5hbWUsIGJsb2NrLCBkb21haW4s IDApOworKyAgd2hpbGUgKGJsb2NrICE9IE5VTEwpCisrICAgIHsKKysgICAgICBzeW0gPSBjcF9s b29rdXBfc3ltYm9sX2ltcG9ydHMoc2NvcGUsIG5hbWUsIGJsb2NrLCBkb21haW4sMCk7CisrCisr ICAgICAgaWYgKHN5bSkKKysgICAgICAgIHJldHVybiBzeW07CisrCisrICAgICAgYmxvY2sgPSBC TE9DS19TVVBFUkJMT0NLKGJsb2NrKTsKKysgICAgfQorKworKyAgcmV0dXJuIE5VTEw7CiAgfQog IAogIC8qIExvb2t1cCBOQU1FIGF0IG5hbWVzcGFjZSBzY29wZSAob3IsIGluIEMgdGVybXMsIGlu IHN0YXRpYyBhbmQKLUBAIC0yODQsMTMgKzMxMSwxMyBAQCBjcF9sb29rdXBfc3ltYm9sX25vbmxv Y2FsIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTI4NCwxMyArMzIzLDEzIEBAIGNwX2xvb2t1cF9z eW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgIkE6OngiLCBhbmQgaWYgdGhh dCBjYWxsIGZhaWxzLCB0aGVuIHRoZSBmaXJzdCBjYWxsIGxvb2tzIGZvcgogICAgICJ4Ii4gICov CiAgCkBAIC0xODcwLDcgKzIxNTksNyBAQCBpbmRleCBkMmQ4ZjJlLi4zMTY2ODE4IDEwMDY0NAog IHsKICAgIGNoYXIgKm5hbWVzcGFjZTsKICAKLUBAIC0zMDgsOCArMzM1LDggQEAgbG9va3VwX25h bWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0zMDgsOCArMzQ3LDggQEAgbG9v a3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKICAJICBuZXdfc2NvcGVfbGVu ICs9IDI7CiAgCX0KICAgICAgICBuZXdfc2NvcGVfbGVuICs9IGNwX2ZpbmRfZmlyc3RfY29tcG9u ZW50IChzY29wZSArIG5ld19zY29wZV9sZW4pOwpAQCAtMTg4MSw1NCArMjE3MCwyMCBAQCBpbmRl eCBkMmQ4ZjJlLi4zMTY2ODE4IDEwMDY0NAogICAgICAgIGlmIChzeW0gIT0gTlVMTCkKICAJcmV0 dXJuIHN5bTsKICAgICAgfQotQEAgLTMyMCwxMCArMzQ3LDQ0IEBAIGxvb2t1cF9uYW1lc3BhY2Vf c2NvcGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMzIwLDI1ICszNTksNTAgQEAgbG9va3VwX25h bWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKICAgIG5hbWVzcGFjZSA9IGFsbG9jYSAo c2NvcGVfbGVuICsgMSk7CiAgICBzdHJuY3B5IChuYW1lc3BhY2UsIHNjb3BlLCBzY29wZV9sZW4p OwogICAgbmFtZXNwYWNlW3Njb3BlX2xlbl0gPSAnXDAnOwogLSAgcmV0dXJuIGNwX2xvb2t1cF9z eW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsIG5hbWUsIGxpbmthZ2VfbmFtZSwKIC0JCQkJICAg ICBibG9jaywgZG9tYWluKTsKLSsgIHJldHVybiBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAo bmFtZXNwYWNlLCBuYW1lLCBibG9jaywgZG9tYWluLAotKwkJCQkgICAgIGRlY2xhcmF0aW9uX29u bHkpOworKyAgcmV0dXJuIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsIG5h bWUsIGJsb2NrLCBkb21haW4sIGRlY2xhcmF0aW9uX29ubHkpOwogIH0KICAKLSsvKiBTZWFyY2hl cyB0aGUgZm9yIHRoZSBnaXZlbiBOQU1FIGluIHRoZSBnaXZlbiBOQU1FU1BBQ0UsIHVzaW5nIGlt cG9ydCAKLSsgICBzdGF0ZW1lbnRzIGltcGxpZWQgYnkgdGhlIGdpdmVuIEJMT0NLLCAqYW5kIGl0 cycgcGFyZW50cyouICovCi0rc3RydWN0IHN5bWJvbCAqCi0rY3BfbG9va3VwX3N5bWJvbF9uYW1l c3BhY2VfaW5jcmVtZW50YWwgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2Vu dW0gZG9tYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg ZGVjbGFyYXRpb25fb25seSkKLSt7Ci0rICBzdHJ1Y3Qgc3ltYm9sICpzeW07Ci0rICBjb25zdCBz dHJ1Y3QgYmxvY2sgKmdsb2JhbF9ibG9jayA9IGJsb2NrX2dsb2JhbF9ibG9jayAoYmxvY2spOwot KwotKyAgLyogQ2hlY2sgaWYgZWl0aGVyIG5vIGJsb2NrIGlzIHNwZWNpZmllZCBvciBpdCdzIGEg Z2xvYmFsIGJsb2NrLiAgKi8KLSsKLSsgIGlmIChnbG9iYWxfYmxvY2sgPT0gTlVMTCkKLSsgICAg cmV0dXJuIE5VTEw7Ci0rCi0rICB3aGlsZSAoYmxvY2sgIT0gZ2xvYmFsX2Jsb2NrKQotKyAgICB7 Ci0rICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKG5hbWVzcGFjZSwgbmFt ZSwgYmxvY2ssIGRvbWFpbiwKLSsJCQkJCWRlY2xhcmF0aW9uX29ubHkpOwotKwotKyAgICAgIGlm IChzeW0gIT0gTlVMTCkKLSsgICAgICAgIHJldHVybiBzeW07Ci0rCi0rICAgICAgYmxvY2sgPSBC TE9DS19TVVBFUkJMT0NLIChibG9jayk7Ci0rICAgIH0KLSsKLSsgIC8qIFdlJ3ZlIHJlYWNoZWQg dGhlIGdsb2JhbCBibG9jayB3aXRob3V0IGZpbmRpbmcgYSByZXN1bHQuICAqLwotKwotKyAgcmV0 dXJuIE5VTEw7Ci0rfQotKwotKwotIC8qIExvb2sgdXAgTkFNRSBpbiB0aGUgQysrIG5hbWVzcGFj ZSBOQU1FU1BBQ0UsIGFwcGx5aW5nIHRoZSB1c2luZwotICAgIGRpcmVjdGl2ZXMgdGhhdCBhcmUg YWN0aXZlIGluIEJMT0NLLiAgT3RoZXIgYXJndW1lbnRzIGFyZSBhcyBpbgorLS8qIExvb2sgdXAg TkFNRSBpbiB0aGUgQysrIG5hbWVzcGFjZSBOQU1FU1BBQ0UsIGFwcGx5aW5nIHRoZSB1c2luZwor LSAgIGRpcmVjdGl2ZXMgdGhhdCBhcmUgYWN0aXZlIGluIEJMT0NLLiAgT3RoZXIgYXJndW1lbnRz IGFyZSBhcyBpbgorKy8qIExvb2sgdXAgTkFNRSBpbiB0aGUgQysrIG5hbWVzcGFjZSBOQU1FU1BB Q0UuIE90aGVyIGFyZ3VtZW50cyBhcmUgYXMgaW4KICAgICBjcF9sb29rdXBfc3ltYm9sX25vbmxv Y2FsLiAgKi8KLUBAIC0zMzEsMTIgKzM5MiwxMiBAQCBsb29rdXBfbmFtZXNwYWNlX3Njb3BlIChj b25zdCBjaGFyICpuYW1lLAorIAogIHN0cnVjdCBzeW1ib2wgKgogIGNwX2xvb2t1cF9zeW1ib2xf bmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCiAgCQkJICAgIGNvbnN0IGNoYXIgKm5h bWUsCkBAIC0xOTM3LDIxICsyMTkyLDUzIEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0 CiAtCQkJICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICsJCQkgICAgY29uc3QgZG9tYWlu X2VudW0gZG9tYWluLAogKwkJCSAgICBpbnQgZGVjbGFyYXRpb25fb25seSkKKyt7CisrCisrICBp ZiAobmFtZXNwYWNlWzBdID09ICdcMCcpCisrICAgIHsKKysgICAgICByZXR1cm4gbG9va3VwX3N5 bWJvbF9maWxlIChuYW1lLCBibG9jayxkb21haW4sIDApOworKyAgICB9CisrICBlbHNlCisrICAg IHsKKysgICAgICBjaGFyICpjb25jYXRlbmF0ZWRfbmFtZQorKwk9IGFsbG9jYSAoc3RybGVuIChu YW1lc3BhY2UpICsgMiArIHN0cmxlbiAobmFtZSkgKyAxKTsKKysgICAgICBzdHJjcHkgKGNvbmNh dGVuYXRlZF9uYW1lLCBuYW1lc3BhY2UpOworKyAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25h bWUsICI6OiIpOworKyAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUsIG5hbWUpOworKyAg ICAgIHJldHVybiBsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbmNhdGVuYXRlZF9uYW1lLCBibG9jaywg ZG9tYWluLAorKwkJCQljcF9pc19hbm9ueW1vdXMgKG5hbWVzcGFjZSkpOworKyAgICB9CisrfQor KworKy8qIFNlYXJjaCBmb3IgTkFNRSBieSBhcHBseWluZyBhbGwgaW1wb3J0IHN0YXRlbWVudHMg YmVsb25naW5nCisrICAgdG8gQkxPQ0sgd2hpY2ggYXJlIGFwcGxpY2FibGUgaW4gU0NPUEUuICAq LworKworK3N0cnVjdCBzeW1ib2wgKgorK2NwX2xvb2t1cF9zeW1ib2xfaW1wb3J0cyAoY29uc3Qg Y2hhciAqc2NvcGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAqYmxv Y2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFp biwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY2xhcmF0aW9uX29ubHkpCiAg ewogICAgY29uc3Qgc3RydWN0IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKIC0gIHN0cnVjdCBzeW1i b2wgKnN5bTsKICsgIHN0cnVjdCBzeW1ib2wgKnN5bSA9IE5VTEw7CiAgCi0gICAvKiBGaXJzdCwg Z28gdGhyb3VnaCB0aGUgdXNpbmcgZGlyZWN0aXZlcy4gIElmIGFueSBvZiB0aGVtIGFkZCBuZXcK Ky0gIC8qIEZpcnN0LCBnbyB0aHJvdWdoIHRoZSB1c2luZyBkaXJlY3RpdmVzLiAgSWYgYW55IG9m IHRoZW0gYWRkIG5ldworKyAgLyogR28gdGhyb3VnaCB0aGUgdXNpbmcgZGlyZWN0aXZlcy4gIElm IGFueSBvZiB0aGVtIGFkZCBuZXcKICAgICAgIG5hbWVzIHRvIHRoZSBuYW1lc3BhY2Ugd2UncmUg c2VhcmNoaW5nIGluLCBzZWUgaWYgd2UgY2FuIGZpbmQgYQotQEAgLTM0NiwxNSArNDA3LDYwIEBA IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCisgICAg ICBtYXRjaCBieSBhcHBseWluZyB0aGVtLiAgKi8KKyAKK0BAIC0zNDYsMzkgKzQxMCw2NSBAQCBj cF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAogICAgICAg ICBjdXJyZW50ICE9IE5VTEw7CiAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KQogICAg ICB7CiAtICAgICAgaWYgKHN0cmNtcCAobmFtZXNwYWNlLCBjdXJyZW50LT5pbXBvcnRfZGVzdCkg PT0gMCkKICsgICAgICBpbnQgY3VycmVudF9saW5lID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVf cGMgKGdldF9jdXJyZW50X2ZyYW1lICgpKSwgMCkubGluZTsKICsgICAgICAKLSsgICAgICBpZiAo c3RyY21wIChuYW1lc3BhY2UsIGN1cnJlbnQtPmltcG9ydF9kZXN0KSA9PSAwICYmIGN1cnJlbnQt PmxpbmVfbnVtYmVyIDwgY3VycmVudF9saW5lKQorKyAgICAgIC8qIElmIHRoZSBpbXBvcnQgZGVz dGluYXRpb24gaXMgdGhlIGN1cnJlbnQgc2NvcGUgb3Igb25lIG9mIGl0cyBhbmNlc3RvcnMgdGhl bgorKyAgICAgICAgIGl0IGlzIGFwcGxpY2FibGUuICAqLworKyAgICAgIGlmIChzdHJuY21wIChz Y29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QsIHN0cmxlbihjdXJyZW50LT5pbXBvcnRfZGVzdCkp ID09IDAgJiYgY3VycmVudC0+bGluZV9udW1iZXIgPCBjdXJyZW50X2xpbmUgKQogIAl7CiAtCSAg c3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGN1cnJlbnQtPmltcG9ydF9zcmMsCiAt CQkJCQkgICAgbmFtZSwKQEAgLTE5NTksNyArMjI0Niw2IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4 MTggMTAwNjQ0CiAtCQkJCQkgICAgYmxvY2ssCiAtCQkJCQkgICAgZG9tYWluKTsKIC0JICBpZiAo c3ltICE9IE5VTEwpCi0rCSAgCiArCSAgLyogSWYgdGhlcmUgaXMgYW4gaW1wb3J0IG9mIGEgc2lu Z2xlIGRlY2xhcmF0aW9uLCBjb21wYXJlIHRoZSBpbXBvcnRlZAogKwkgICAgIGRlY2xhcmF0aW9u IHdpdGggdGhlIHNvdWdodCBvdXQgbmFtZS4gSWYgdGhlcmUgaXMgYSBtYXRjaCBwYXNzCiArCSAg ICAgY3VycmVudC0+aW1wb3J0X3NyYyBhcyBOQU1FU1BBQ0UgdG8gZGlyZWN0IHRoZSBzZWFyY2gg dG93YXJkcyB0aGUKQEAgLTE5OTEsNyArMjI3Nyw3IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTgg MTAwNjQ0CiArCSAgICAgICBzb3VnaHQgbmFtZS4gUGFzcyBjdXJyZW50LT5pbm5lciBhcyB0aGUg TkFNRSB0byBkaXJlY3QgdGhlCiArCSAgICAgICBzZWFyY2ggdG93YXJkcyB0aGUgYWxpYXNlZCBu YW1lc3BhY2UgKi8KICsJICAgIHsKLSsJICAgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNw YWNlIChuYW1lc3BhY2UsCisrCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAo c2NvcGUsCiArCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+ aW1wb3J0X3NyYywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9j aywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sCkBAIC0y MDEyLDMyICsyMjk4LDMyIEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiAgCX0KICAg ICAgfQogIAotQEAgLTM2MiwxMCArNDY4LDExIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNl IChjb25zdCBjaGFyICpuYW1lc3BhY2UsCi0gICAgICB0aGF0IGFyZSBzdGlsbCBhcHBsaWNhYmxl OyBzbyBsZXQncyBzZWUgaWYgd2UndmUgZ290IGEgbWF0Y2gKLSAgICAgIHVzaW5nIHRoZSBjdXJy ZW50IG5hbWVzcGFjZS4gICovCi0gICAKKy0gIC8qIFdlIGRpZG4ndCBmaW5kIGFueXRoaW5nIGJ5 IGFwcGx5aW5nIGFueSBvZiB0aGUgdXNpbmcgZGlyZWN0aXZlcworLSAgICAgdGhhdCBhcmUgc3Rp bGwgYXBwbGljYWJsZTsgc28gbGV0J3Mgc2VlIGlmIHdlJ3ZlIGdvdCBhIG1hdGNoCistICAgICB1 c2luZyB0aGUgY3VycmVudCBuYW1lc3BhY2UuICAqLworLSAgCiAtICBpZiAobmFtZXNwYWNlWzBd ID09ICdcMCcpCi0rICBpZiAobmFtZXNwYWNlWzBdID09ICdcMCcgJiYgIWRlY2xhcmF0aW9uX29u bHkpCi0gICAgIHsKKy0gICAgewogLSAgICAgIHJldHVybiBsb29rdXBfc3ltYm9sX2ZpbGUgKG5h bWUsIGxpbmthZ2VfbmFtZSwgYmxvY2ssCiAtCQkJCSBkb21haW4sIDApOwotKyAgICAgIHN5bSA9 IGxvb2t1cF9zeW1ib2xfZmlsZSAobmFtZSwgYmxvY2ssIGRvbWFpbiwKLSsJCQkJY3BfaXNfYW5v bnltb3VzIChuYW1lc3BhY2UpKTsKLSsgICAgICByZXR1cm4gc3ltOwotICAgICB9Ci0gICBlbHNl Ci0gICAgIHsKLUBAIC0zNzQsOCArNDgxLDcgQEAgY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2Ug KGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKLSAgICAgICBzdHJjcHkgKGNvbmNhdGVuYXRlZF9uYW1l LCBuYW1lc3BhY2UpOwotICAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUsICI6OiIpOwot ICAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUsIG5hbWUpOworLSAgICB9CistICBlbHNl CistICAgIHsKKy0gICAgICBjaGFyICpjb25jYXRlbmF0ZWRfbmFtZQorLQk9IGFsbG9jYSAoc3Ry bGVuIChuYW1lc3BhY2UpICsgMiArIHN0cmxlbiAobmFtZSkgKyAxKTsKKy0gICAgICBzdHJjcHkg KGNvbmNhdGVuYXRlZF9uYW1lLCBuYW1lc3BhY2UpOworLSAgICAgIHN0cmNhdCAoY29uY2F0ZW5h dGVkX25hbWUsICI6OiIpOworLSAgICAgIHN0cmNhdCAoY29uY2F0ZW5hdGVkX25hbWUsIG5hbWUp OwogLSAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uY2F0ZW5hdGVkX25hbWUsIGxp bmthZ2VfbmFtZSwKIC0JCQkJYmxvY2ssIGRvbWFpbiwgCi0rICAgICAgc3ltID0gbG9va3VwX3N5 bWJvbF9maWxlIChjb25jYXRlbmF0ZWRfbmFtZSwgYmxvY2ssIGRvbWFpbiwgCi0gCQkJCWNwX2lz X2Fub255bW91cyAobmFtZXNwYWNlKSk7Ci0gICAgICAgcmV0dXJuIHN5bTsKLSAgICAgfQotQEAg LTM4OCwxNCArNDk0LDEzIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFy ICpuYW1lc3BhY2UsCistCQkJCWNwX2lzX2Fub255bW91cyAobmFtZXNwYWNlKSk7CistICAgICAg cmV0dXJuIHN5bTsKKy0gICAgfQorKyAgcmV0dXJuIE5VTEw7CisgfQorIAorIC8qIExvb2sgdXAg TkFNRSBpbiBCTE9DSydzIHN0YXRpYyBibG9jayBhbmQgaW4gZ2xvYmFsIGJsb2Nrcy4gIElmCitA QCAtMzg4LDE3ICs0NzgsMTUgQEAgY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGNvbnN0IGNo YXIgKm5hbWVzcGFjZSwKICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCiAgbG9va3VwX3N5bWJv bF9maWxlIChjb25zdCBjaGFyICpuYW1lLApAQCAtMjA1Miw4ICsyMzM4LDExIEBAIGluZGV4IGQy ZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiArICBzeW0gPSBsb29rdXBfc3ltYm9sX3N0YXRpYyAobmFt ZSwgYmxvY2ssIGRvbWFpbik7CiAgICBpZiAoc3ltICE9IE5VTEwpCiAgICAgIHJldHVybiBzeW07 Ci0gCi1AQCAtNDA4LDEyICs1MTMsMTEgQEAgbG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBjaGFy ICpuYW1lLAorLQorICAgaWYgKGFub255bW91c19uYW1lc3BhY2UpCisgICAgIHsKKyAgICAgICAv KiBTeW1ib2xzIGRlZmluZWQgaW4gYW5vbnltb3VzIG5hbWVzcGFjZXMgaGF2ZSBleHRlcm5hbCBs aW5rYWdlCitAQCAtNDA4LDEyICs0OTYsMTEgQEAgbG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBj aGFyICpuYW1lLAogICAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxv Y2tfZ2xvYmFsX2Jsb2NrIChibG9jayk7CiAgICAgICAgCiAgICAgICAgaWYgKGdsb2JhbF9ibG9j ayAhPSBOVUxMKQpAQCAtMjA2OCw3ICsyMzU3LDE1IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTgg MTAwNjQ0CiAgICAgIH0KICAKICAgIGlmIChzeW0gIT0gTlVMTCkKLUBAIC00NjMsOSArNTY3LDgg QEAgY3BfbG9va3VwX25lc3RlZF90eXBlIChzdHJ1Y3QgdHlwZSAqcGFyZW50X3R5cGUsCitAQCAt NDM0LDYgKzUyMSw3IEBAIGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKKyAg ICAgICBzeW0gPSBsb29rdXBfcG9zc2libGVfbmFtZXNwYWNlX3N5bWJvbCAobmFtZSk7CisgICAg ICAgaWYgKHN5bSAhPSBOVUxMKQorIAlyZXR1cm4gc3ltOworKworICAgICB9CisgCisgICByZXR1 cm4gTlVMTDsKK0BAIC00NjMsOSArNTUxLDggQEAgY3BfbG9va3VwX25lc3RlZF90eXBlIChzdHJ1 Y3QgdHlwZSAqcGFyZW50X3R5cGUsCiAgCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gVFlQRV9U QUdfTkFNRSAocGFyZW50X3R5cGUpOwogIAlzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBjcF9sb29rdXBf c3ltYm9sX25hbWVzcGFjZSAocGFyZW50X25hbWUsCiAgCQkJCQkJCSBuZXN0ZWRfbmFtZSwKQEAg LTIwNzksNyArMjM3Niw3IEBAIGluZGV4IGQyZDhmMmUuLjMxNjY4MTggMTAwNjQ0CiAgCWlmIChz eW0gPT0gTlVMTCB8fCBTWU1CT0xfQ0xBU1MgKHN5bSkgIT0gTE9DX1RZUEVERUYpCiAgCSAgcmV0 dXJuIE5VTEw7CiAgCWVsc2UKLUBAIC03MDksNyArODEyLDcgQEAgY2hlY2tfb25lX3Bvc3NpYmxl X25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4sCitAQCAtNzA5LDcg Kzc5Niw3IEBAIGNoZWNrX29uZV9wb3NzaWJsZV9uYW1lc3BhY2Vfc3ltYm9sIChjb25zdCBjaGFy ICpuYW1lLCBpbnQgbGVuLAogIAogICAgbWVtY3B5IChuYW1lX2NvcHksIG5hbWUsIGxlbik7CiAg ICBuYW1lX2NvcHlbbGVuXSA9ICdcMCc7CkBAIC0yMDg4LDcgKzIzODUsNyBAQCBpbmRleCBkMmQ4 ZjJlLi4zMTY2ODE4IDEwMDY0NAogIAogICAgaWYgKHN5bSA9PSBOVUxMKQogICAgICB7Ci1AQCAt NzQ5LDcgKzg1Miw3IEBAIGxvb2t1cF9wb3NzaWJsZV9uYW1lc3BhY2Vfc3ltYm9sIChjb25zdCBj aGFyICpuYW1lKQorQEAgLTc0OSw3ICs4MzYsNyBAQCBsb29rdXBfcG9zc2libGVfbmFtZXNwYWNl X3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSkKICAgICAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAg CiAgICAgICAgc3ltID0gbG9va3VwX2Jsb2NrX3N5bWJvbCAoZ2V0X3Bvc3NpYmxlX25hbWVzcGFj ZV9ibG9jayAob2JqZmlsZSksCkBAIC0yMjE5LDcgKzI1MTYsNyBAQCBpbmRleCBmMTJkNzg1Li5j YTEwMDA3IDEwMDY0NAogIF9pbml0aWFsaXplX2NwX3N1cHBvcnQgKHZvaWQpCiAgewogZGlmZiAt LWdpdCBhL2dkYi9jcC1zdXBwb3J0LmggYi9nZGIvY3Atc3VwcG9ydC5oCi1pbmRleCBiNWE1YzVm Li4wMzgxNjg2IDEwMDY0NAoraW5kZXggYjVhNWM1Zi4uZjEyNmJlZCAxMDA2NDQKIC0tLSBhL2dk Yi9jcC1zdXBwb3J0LmgKICsrKyBiL2dkYi9jcC1zdXBwb3J0LmgKIEBAIC0zOCwxNCArMzgsMjkg QEAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudDsKQEAgLTIyODgsNyArMjU4NSw3IEBAIGluZGV4 IGI1YTVjNWYuLjAzODE2ODYgMTAwNjQ0CiAgCQkJCQkgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5l eHQpOwogIAogIGV4dGVybiB2b2lkIGNwX2luaXRpYWxpemVfbmFtZXNwYWNlICh2b2lkKTsKLUBA IC05NywxNSArMTIxLDI3IEBAIGV4dGVybiB2b2lkIGNwX3NldF9ibG9ja19zY29wZSAoY29uc3Qg c3RydWN0IHN5bWJvbCAqc3ltYm9sLAorQEAgLTk3LDE1ICsxMjEsMzIgQEAgZXh0ZXJuIHZvaWQg Y3Bfc2V0X2Jsb2NrX3Njb3BlIChjb25zdCBzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsCiAgZXh0ZXJu IHZvaWQgY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0IHN0cnVjdCBzeW1i b2wgKnN5bWJvbCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmNwX2xvb2t1cF9zeW1ib2xf bm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCkBAIC0yMzAzLDExICsyNjAwLDE2IEBAIGluZGV4 IGI1YTVjNWYuLjAzODE2ODYgMTAwNjQ0CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBzY29wZV9sZW4sCiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBkZWNsYXJhdGlvbl9vbmx5KTsKICsKLStleHRlcm4g c3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2VfaW5jcmVtZW50YWwgKGNv bnN0IGNoYXIgKm5hbWVzcGFjZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGRlY2xhcmF0aW9uX29ubHkpOworK2V4dGVybiBzdHJ1Y3Qgc3ltYm9sKiBjcF9s b29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNyZW1lbnRhbCAoY29uc3QgY2hhciAqc2NvcGUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBi bG9jayAqYmxvY2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGRvbWFpbl9lbnVtIGRvbWFpbik7CisrCisrc3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5 bWJvbF9pbXBvcnRzIChjb25zdCBjaGFyICpzY29wZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9t YWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY2xh cmF0aW9uX29ubHkpOwogKwogIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpjcF9sb29rdXBfc3ltYm9s X25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAogLQkJCQkJCSAgY29uc3QgY2hhciAq bmFtZSwKQEAgLTIzMzQsNyArMjYzNiw3IEBAIGluZGV4IDdjYjAxNmQuLmJiOWUzNWEgMTAwNjQ0 CiAgICBkZWZhdWx0X3N5bWZpbGVfb2Zmc2V0cywgLyogc3ltX29mZnNldHM6IHBhcnNlIHVzZXIn cyBvZmZzZXRzIHRvCiAgCQkJICAgICAgaW50ZXJuYWwgZm9ybSAqLwogZGlmZiAtLWdpdCBhL2dk Yi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1pbmRleCBmYWIwNWZjLi40 NGNjMWYyIDEwMDY0NAoraW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKIC0tLSBhL2dkYi9k b2MvZ2RiLnRleGluZm8KICsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KIEBAIC05NTgsOCArOTU4 LDEwIEBAIENvbm5lY3QgdG8gcHJvY2VzcyBJRCBAdmFye251bWJlcn0sIGFzIHdpdGggdGhlIEBj b2Rle2F0dGFjaH0gY29tbWFuZC4KQEAgLTIzNjcsNyArMjY2OSw3IEBAIGluZGV4IGZhYjA1ZmMu LjQ0Y2MxZjIgMTAwNjQ0CiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9mIHRoZXNlIGV2ZW50 dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1aX0KLUBAIC0xODQyNyw3ICsx ODQzOSw3IEBAIGNvbW1hbmQ6CitAQCAtMTg0NjUsNyArMTg0NzcsNyBAQCBjb21tYW5kOgogIEB0 YWJsZSBAY29kZQogIEBraW5kZXggc291cmNlCiAgQGNpbmRleCBleGVjdXRlIGNvbW1hbmRzIGZy b20gYSBmaWxlCkBAIC0yMzc2LDcgKzI2NzgsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEw MDY0NAogIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2ZpbGVuYW1lfS4KICBAZW5kIHRh YmxlCiAgCi1AQCAtMTg0NDQsNiArMTg0NTYsMTEgQEAgSWYgQGNvZGV7LXZ9LCBmb3IgdmVyYm9z ZSBtb2RlLCBpcyBnaXZlbiB0aGVuIEB2YWx1ZXtHREJOfSBkaXNwbGF5cworQEAgLTE4NDgyLDYg KzE4NDk0LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2UgbW9kZSwgaXMgZ2l2ZW4gdGhl biBAdmFsdWV7R0RCTn0gZGlzcGxheXMKICBlYWNoIGNvbW1hbmQgYXMgaXQgaXMgZXhlY3V0ZWQu ICBUaGUgb3B0aW9uIG11c3QgYmUgZ2l2ZW4gYmVmb3JlCiAgQHZhcntmaWxlbmFtZX0sIGFuZCBp cyBpbnRlcnByZXRlZCBhcyBwYXJ0IG9mIHRoZSBmaWxlbmFtZSBhbnl3aGVyZSBlbHNlLgogIApA QCAtMjM4OCw3ICsyNjkwLDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBDb21t YW5kcyB0aGF0IHdvdWxkIGFzayBmb3IgY29uZmlybWF0aW9uIGlmIHVzZWQgaW50ZXJhY3RpdmVs eSBwcm9jZWVkCiAgd2l0aG91dCBhc2tpbmcgd2hlbiB1c2VkIGluIGEgY29tbWFuZCBmaWxlLiAg TWFueSBAdmFsdWV7R0RCTn0gY29tbWFuZHMgdGhhdAogIG5vcm1hbGx5IHByaW50IG1lc3NhZ2Vz IHRvIHNheSB3aGF0IHRoZXkgYXJlIGRvaW5nIG9taXQgdGhlIG1lc3NhZ2VzCi1AQCAtMTg3MDUs OCArMTg3MjIsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKK0BAIC0x ODc0Myw4ICsxODc2MCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgog IAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAgLTIzOTcsNyArMjY5 OSw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgPnByaW50IDIzCiAgPmVuZAog IDIzCi1AQCAtMTg3MTksNiArMTg3MzQsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAgVGhpcyBj YW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKK0BAIC0xODc1Nyw2ICsxODc3 MiwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250cm9sbGVkIHVzaW5n IEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBjb2Rle29ufSwgdGhl IGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcgaXMgZW5hYmxlZDsgaWYgQGNv ZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKICBkaXNhYmxlZC4KQEAgLTI0 MTIsNyArMjcxNCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQGVuZCB0YWJs ZQogIAogIEBub2RlIFB5dGhvbiBBUEkKLUBAIC0xODcyNiw2ICsxODc0OSwxNCBAQCBkaXNhYmxl ZC4KK0BAIC0xODc2NCw2ICsxODc4NywxNCBAQCBkaXNhYmxlZC4KICBAY2luZGV4IHB5dGhvbiBh cGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApAQCAtMjQyNyw3ICsyNzI5LDcg QEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAY2luZGV4IHB5dGhvbiBzdGRvdXQK ICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1cCwgQHZhbHVle0dEQk59IG92 ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQKLUBAIC0xODczOCwxMyArMTg3 NjksMTcgQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVwdH0gZXhj ZXB0aW9uIGlzIHRocm93bi4KK0BAIC0xODc3NiwxMyArMTg4MDcsMTcgQEAgc2l0dWF0aW9uLCBh IFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVwdH0gZXhjZXB0aW9uIGlzIHRocm93bi4KICAq IEJhc2ljIFB5dGhvbjo6ICAgICAgICAgICAgICAgIEJhc2ljIFB5dGhvbiBGdW5jdGlvbnMuCiAg KiBFeGNlcHRpb24gSGFuZGxpbmc6OgogICogQXV0by1sb2FkaW5nOjogICAgICAgICAgICAgICAg QXV0b21hdGljYWxseSBsb2FkaW5nIFB5dGhvbiBjb2RlLgpAQCAtMjQ0Niw3ICsyNzQ4LDcgQEAg aW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICAqIEZyYW1lcyBJbiBQeXRob246OiAgICAg ICAgICAgIEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4KICBAZW5k IG1lbnUKICAKLUBAIC0xODc3MSw2ICsxODgwNiwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmln aW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KK0BAIC0xODgw OSw2ICsxODg0NCwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVz ZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0IGJlIGEgYm9vbGVhbiB2YWx1 ZS4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0ZhbHNlfS4KICBAZW5kIGRlZnVu CiAgCkBAIC0yNDU5LDcgKzI3NjEsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAog IEBmaW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0ZXIgcGFyYW1ldGVyCiAgUmV0 dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0ZXIuICBAdmFye3BhcmFtZXRl cn0gaXMgYQotQEAgLTE4Nzg3LDYgKzE4ODI4LDcgQEAgYSBQeXRob24gdmFsdWUgb2YgdGhlIGFw cHJvcHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xODgyNSw2ICsxODg2Niw3IEBAIGEg UHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBhbmQgcmV0dXJuZWQuCiAgQGRl ZnVuIGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2 YWx1ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5k aWNhdGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCkBAIC0yNDY3LDcgKzI3Njks NyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIElmIEB2YXJ7bnVtYmVyfSBpcyBu ZWdhdGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0cyBhYnNvbHV0ZSB2YWx1ZQog IGFuZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1lbnQgKGkuZS4sIHRoZSBtb3N0 IHJlY2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRvIHJldHVybi4gIElmIEB2YXJ7 bnVtYmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsCi1AQCAtMTg3OTgsNiArMTg4 NDAsMjggQEAgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwgdGhlIHJldHVybiB2YWx1ZSBpcyBh bHdheXMgYW4gaW5zdGFuY2Ugb2YKK0BAIC0xODgzNiw2ICsxODg3OCwyOCBAQCBJZiBubyBleGNl cHRpb24gaXMgcmFpc2VkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyBhbiBpbnN0YW5jZSBv ZgogIEBjb2Rle2dkYi5WYWx1ZX0gKEBweHJlZntWYWx1ZXMgRnJvbSBJbmZlcmlvcn0pLgogIEBl bmQgZGVmdW4KICAKQEAgLTI0OTYsNyArMjc5OCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIg MTAwNjQ0CiAgQGZpbmRleCBnZGIud3JpdGUKICBAZGVmdW4gd3JpdGUgc3RyaW5nCiAgUHJpbnQg YSBzdHJpbmcgdG8gQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJl YW0uCi1AQCAtMTg4MTIsNiArMTg4NzYsMTEgQEAgRmx1c2ggQHZhbHVle0dEQk59J3MgcGFnaW5h dGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVzaGluZworQEAgLTE4ODUwLDYgKzE4OTE0 LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRwdXQgc3Ry ZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlvbi4KICBAZW5kIGRlZnVuCiAgCkBAIC0yNTA4LDcgKzI4 MTAsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBub2RlIEV4Y2VwdGlvbiBI YW5kbGluZwogIEBzdWJzdWJzZWN0aW9uIEV4Y2VwdGlvbiBIYW5kbGluZwogIEBjaW5kZXggcHl0 aG9uIGV4Y2VwdGlvbnMKLUBAIC0xODk0OCw2ICsxOTAxNywxMyBAQCBUaGUgdHlwZSBvZiB0aGlz IEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgaXMgYQorQEAg LTE4OTg2LDYgKzE5MDU1LDEzIEBAIFRoZSB0eXBlIG9mIHRoaXMgQGNvZGV7Z2RiLlZhbHVlfS4g IFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBpcyBhCiAgVGhlIGZvbGxvd2luZyBtZXRob2Rz IGFyZSBwcm92aWRlZDoKICAKICBAdGFibGUgQGNvZGUKQEAgLTI1MjIsNyArMjgyNCw3IEBAIGlu ZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQGRlZm1ldGhvZCBWYWx1ZSBkZXJlZmVyZW5j ZQogIEZvciBwb2ludGVyIGRhdGEgdHlwZXMsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgQGNv ZGV7Z2RiLlZhbHVlfSBvYmplY3QKICB3aG9zZSBjb250ZW50cyBpcyB0aGUgb2JqZWN0IHBvaW50 ZWQgdG8gYnkgdGhlIHBvaW50ZXIuICBGb3IgZXhhbXBsZSwgaWYKLUBAIC0xOTAxOSw2ICsxOTA5 NSw5IEBAIG1vZHVsZToKK0BAIC0xOTA1Nyw2ICsxOTEzMyw5IEBAIG1vZHVsZToKICBUaGlzIGZ1 bmN0aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntuYW1lfSBpcyB0aGUgbmFtZSBv ZiB0aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEgc3RyaW5nLgogIApAQCAtMjUz Miw3ICsyODM0LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBPcmRpbmFyaWx5 LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEBjb2Rle2dkYi5UeXBl fS4KICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQsIGl0IHdpbGwgdGhyb3cgYW4g ZXhjZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTA3MSw2ICsxOTE1MCwxMiBAQCBUaGlzIGlz IEBjb2Rle1RydWV9IGlmIHRoZSBmaWVsZCBpcyBhcnRpZmljaWFsLCB1c3VhbGx5IG1lYW5pbmcg dGhhdAorQEAgLTE5MTA5LDYgKzE5MTg4LDEyIEBAIFRoaXMgaXMgQGNvZGV7VHJ1ZX0gaWYgdGhl IGZpZWxkIGlzIGFydGlmaWNpYWwsIHVzdWFsbHkgbWVhbmluZyB0aGF0CiAgaXQgd2FzIHByb3Zp ZGVkIGJ5IHRoZSBjb21waWxlciBhbmQgbm90IHRoZSB1c2VyLiAgVGhpcyBhdHRyaWJ1dGUgaXMK ICBhbHdheXMgcHJvdmlkZWQsIGFuZCBpcyBAY29kZXtGYWxzZX0gaWYgdGhlIGZpZWxkIGlzIG5v dCBhcnRpZmljaWFsLgogIApAQCAtMjU0NSw3ICsyODQ3LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRj YzFmMiAxMDA2NDQKICBAaXRlbSBiaXRzaXplCiAgSWYgdGhlIGZpZWxkIGlzIHBhY2tlZCwgb3Ig aXMgYSBiaXRmaWVsZCwgdGhlbiB0aGlzIHdpbGwgaGF2ZSBhCiAgbm9uLXplcm8gdmFsdWUsIHdo aWNoIGlzIHRoZSBzaXplIG9mIHRoZSBmaWVsZCBpbiBiaXRzLiAgT3RoZXJ3aXNlLAotQEAgLTE5 MTIzLDcgKzE5MjA4LDcgQEAgSWYgdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCwgdGhp cyBtZXRob2Qgd2lsbCB0aHJvdyBhbgorQEAgLTE5MTYxLDcgKzE5MjQ2LDcgQEAgSWYgdGhlIHR5 cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCwgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBhbgogIGV4 Y2VwdGlvbi4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjU1NCw3ICsyODU2LDcgQEAgaW5kZXgg ZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBJZiB0aGlzIEBjb2Rle2dkYi5UeXBlfSBpcyBhbiBp bnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUsIHRoaXMgd2lsbAogIHJldHVybiBhIG5ldyBAY29k ZXtnZGIuVHlwZX0gd2hpY2ggcmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUKICBAdmFye259dGgg dGVtcGxhdGUgYXJndW1lbnQuCi1AQCAtMTkxMzEsNyArMTkyMTYsOCBAQCByZXR1cm4gYSBuZXcg QGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCitAQCAtMTkx NjksNyArMTkyNTQsOCBAQCByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJl c2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgbm90IGEg dGVtcGxhdGUgdHlwZSwgdGhpcyB3aWxsIHRocm93IGFuCiAgZXhjZXB0aW9uLiAgT3JkaW5hcmls eSwgb25seSBDQHR7Kyt9IGNvZGUgd2lsbCBoYXZlIHRlbXBsYXRlIHR5cGVzLgogIApAQCAtMjU2 NCw3ICsyODY2LDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAZW5kIGRlZm1l dGhvZAogIEBlbmQgdGFibGUKICAKLUBAIC0xOTQ4NSw2ICsxOTU3MSwxMjEgQEAgaW1wb3J0IGdk Yi5saWJzdGRjeHgudjYKK0BAIC0xOTUyMyw2ICsxOTYwOSwxMjEgQEAgaW1wb3J0IGdkYi5saWJz dGRjeHgudjYKICBnZGIubGlic3RkY3h4LnY2LnJlZ2lzdGVyX3ByaW50ZXJzIChnZGIuY3VycmVu dF9vYmpmaWxlICgpKQogIEBlbmQgc21hbGxleGFtcGxlCiAgCkBAIC0yNjg2LDcgKzI5ODgsNyBA QCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBub2RlIENvbW1hbmRzIEluIFB5dGhv bgogIEBzdWJzdWJzZWN0aW9uIENvbW1hbmRzIEluIFB5dGhvbgogIAotQEAgLTE5NzM3LDYgKzE5 OTM4LDEzNSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0u ICBEZXBlbmRpbmcgb24gaG93IHRoZQorQEAgLTE5Nzc1LDYgKzE5OTc2LDEzNSBAQCByZWdpc3Ry YXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0uICBEZXBlbmRpbmcgb24gaG93 IHRoZQogIFB5dGhvbiBjb2RlIGlzIHJlYWQgaW50byBAdmFsdWV7R0RCTn0sIHlvdSBtYXkgbmVl ZCB0byBpbXBvcnQgdGhlCiAgQGNvZGV7Z2RifSBtb2R1bGUgZXhwbGljaXRseS4KICAKQEAgLTI4 MjIsNyArMzEyNCw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiAgQG5vZGUgRnVu Y3Rpb25zIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIFdyaXRpbmcgbmV3IGNvbnZlbmllbmNl IGZ1bmN0aW9ucwogIAotQEAgLTE5ODQxLDYgKzIwMTcxLDgyIEBAIHdoaWNoIGlzIHVzZWQgdG8g Zm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGluZ30sIGZvciBtb3JlCitAQCAt MTk4NzksNiArMjAyMDksODIgQEAgd2hpY2ggaXMgdXNlZCB0byBmb3JtYXQgdGhlIHZhbHVlLiAg QHhyZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKICBpbmZvcm1hdGlvbi4KICBAZW5kIGRl Zml2YXIKICAKQEAgLTI5MDUsNyArMzIwNyw3IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAw NjQ0CiAgQG5vZGUgRnJhbWVzIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIEFjZXNzaW5nIGlu ZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4KICAKLUBAIC0xOTkwNSw2ICsyMDMxMSwx NCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KK0BAIC0xOTk0Myw2ICsyMDM0OSwxNCBAQCBmdW5j dGlvbiB0byBhIHN0cmluZy4KICBSZXR1cm5zIHRoZSBmcmFtZSdzIHJlc3VtZSBhZGRyZXNzLgog IEBlbmQgZGVmbWV0aG9kCiAgCkBAIC0yOTIwLDcgKzMyMjIsNyBAQCBpbmRleCBmYWIwNWZjLi40 NGNjMWYyIDEwMDY0NAogIEBkZWZtZXRob2QgRnJhbWUgb2xkZXIKICBSZXR1cm4gdGhlIGZyYW1l IHRoYXQgY2FsbGVkIHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKLUBAIC0xOTkxMywxMCAr MjAzMjcsMTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1lLgorQEAg LTE5OTUxLDEwICsyMDM2NSwxOCBAQCBSZXR1cm4gdGhlIGZyYW1lIHRoYXQgY2FsbGVkIHRoaXMg ZnJhbWUuCiAgUmV0dXJuIHRoZSBmcmFtZSBjYWxsZWQgYnkgdGhpcyBmcmFtZS4KICBAZW5kIGRl Zm1ldGhvZAogIApAQCAtMjkzOSw3ICszMjQxLDcgQEAgaW5kZXggZmFiMDVmYy4uNDRjYzFmMiAx MDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgSW50ZXJwcmV0ZXJzCi1AQCAtMjMyMzgsNiAr MjM2NjAsOCBAQCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5OgorQEAgLTIzMzA2LDYgKzIzNzI4 LDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKICBAaXRlbSBAc3Ryb25ne09wZXJhdGlv bn0KICBAdGFiIEBzdHJvbmd7RGVzY3JpcHRpb259CiAgCkBAIC0yOTQ4LDcgKzMyNTAsMTYgQEAg aW5kZXggZmFiMDVmYy4uNDRjYzFmMiAxMDA2NDQKICBAaXRlbSBAY29kZXstdmFyLWNyZWF0ZX0K ICBAdGFiIGNyZWF0ZSBhIHZhcmlhYmxlIG9iamVjdAogIEBpdGVtIEBjb2Rley12YXItZGVsZXRl fQotQEAgLTIzMjczLDYgKzIzNjk3LDIzIEBAIGhvdyBpdCBjYW4gYmUgdXNlZC4KK0BAIC0yMzMz NCw2ICsyMzc1OCw4IEBAIGFjY2VzcyB0aGlzIGZ1bmN0aW9uYWxpdHk6CisgQHRhYiB1cGRhdGUg dGhlIHZhcmlhYmxlIGFuZCBpdHMgY2hpbGRyZW4KKyBAaXRlbSBAY29kZXstdmFyLXNldC1mcm96 ZW59CisgQHRhYiBzZXQgZnJvemVuZXNzIGF0dHJpYnV0ZQorK0BpdGVtIEBjb2Rley12YXItc2V0 LXVwZGF0ZS1yYW5nZX0KKytAdGFiIHNldCByYW5nZSBvZiBjaGlsZHJlbiB0byBkaXNwbGF5IG9u IHVwZGF0ZQorIEBlbmQgbXVsdGl0YWJsZQorIAorIEluIHRoZSBuZXh0IHN1YnNlY3Rpb24gd2Ug ZGVzY3JpYmUgZWFjaCBvcGVyYXRpb24gaW4gZGV0YWlsIGFuZCBzdWdnZXN0CitAQCAtMjMzNDEs NiArMjM3NjcsMjMgQEAgaG93IGl0IGNhbiBiZSB1c2VkLgogIAogIEBzdWJoZWFkaW5nIERlc2Ny aXB0aW9uIEFuZCBVc2Ugb2YgT3BlcmF0aW9ucyBvbiBWYXJpYWJsZSBPYmplY3RzCiAgCkBAIC0y OTcyLDcgKzMyODMsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBzdWJoZWFk aW5nIFRoZSBAY29kZXstdmFyLWNyZWF0ZX0gQ29tbWFuZAogIEBmaW5kZXggLXZhci1jcmVhdGUK ICAKLUBAIC0yMzQwNSw3ICsyMzg0Niw3IEBAIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGlsZHJl biBvZiBhIHZhcmlhYmxlIG9iamVjdCBAdmFye25hbWV9OgorQEAgLTIzNDczLDcgKzIzOTE2LDcg QEAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIG9mIGEgdmFyaWFibGUgb2JqZWN0IEB2 YXJ7bmFtZX06CiAgQHN1YnN1YmhlYWRpbmcgU3lub3BzaXMKICAKICBAc21hbGxleGFtcGxlCkBA IC0yOTgxLDcgKzMyOTIsNyBAQCBpbmRleCBmYWIwNWZjLi40NGNjMWYyIDEwMDY0NAogIEBlbmQg c21hbGxleGFtcGxlCiAgQGFuY2hvcnstdmFyLWxpc3QtY2hpbGRyZW59CiAgCi1AQCAtMjM0MTgs NiArMjM4NTksMTQgQEAgdmFsdWVzOyBhbmQgaWYgaXQgaXMgMiBvciBAY29kZXstLXNpbXBsZS12 YWx1ZXN9IHByaW50IHRoZSBuYW1lIGFuZAorQEAgLTIzNDg2LDYgKzIzOTI5LDEyIEBAIHZhbHVl czsgYW5kIGlmIGl0IGlzIDIgb3IgQGNvZGV7LS1zaW1wbGUtdmFsdWVzfSBwcmludCB0aGUgbmFt ZSBhbmQKICB2YWx1ZSBmb3Igc2ltcGxlIGRhdGEgdHlwZXMgYW5kIGp1c3QgdGhlIG5hbWUgZm9y IGFycmF5cywgc3RydWN0dXJlcwogIGFuZCB1bmlvbnMuCiAgCkBAIC0yOTg5LDI0ICszMzAwLDY5 IEBAIGluZGV4IGZhYjA1ZmMuLjQ0Y2MxZjIgMTAwNjQ0CiArdG8gcmVwb3J0LiAgSWYgQHZhcntm cm9tfSBvciBAdmFye3RvfSBpcyBsZXNzIHRoYW4gemVybywgdGhlIHJhbmdlIGlzCiArcmVzZXQg YW5kIGFsbCBjaGlsZHJlbiB3aWxsIGJlIHJlcG9ydGVkLiAgT3RoZXJ3aXNlLCBjaGlsZHJlbiBz dGFydGluZwogK2F0IEB2YXJ7ZnJvbX0gKHplcm8tYmFzZWQpIGFuZCBlbmRpbmcganVzdCBiZWZv cmUgQHZhcnt0b30gd2lsbCBiZQotK3JlcG9ydGVkLiAgVGhlIHNlbGVjdGVkIHJhbmdlIGlzIHN0 aWNreTsgZnV0dXJlIGNhbGxzIHRvCi0rQGNvZGV7LXZhci11cGRhdGV9IG9yIEBjb2Rley12YXIt bGlzdC1jaGlsZHJlbn0gd2lsbCB1c2UgYW55Ci0rcHJldmlvdXNseSBzZXQgcmFuZ2UuCisrcmVw b3J0ZWQuCiArCiAgRm9yIGVhY2ggY2hpbGQgdGhlIGZvbGxvd2luZyByZXN1bHRzIGFyZSByZXR1 cm5lZDoKICAKICBAdGFibGUgQHZhcgotQEAgLTIzNDQ5LDYgKzIzODk4LDEwIEBAIE90aGVyd2lz ZSB0aGlzIHJlc3VsdCBpcyBub3QgcHJlc2VudC4KLSAKLSBAaXRlbSBmcm96ZW4KK0BAIC0yMzUx OSw2ICsyMzk2OCwxNCBAQCBPdGhlcndpc2UgdGhpcyByZXN1bHQgaXMgbm90IHByZXNlbnQuCiAg SWYgdGhlIHZhcmlhYmxlIG9iamVjdCBpcyBmcm96ZW4sIHRoaXMgdmFyaWFibGUgd2lsbCBiZSBw cmVzZW50IHdpdGggYSB2YWx1ZSBvZiAxLgorIEBlbmQgdGFibGUKKyAKKytUaGUgcmVzdWx0IG1h eSBoYXZlIGl0cyBvd24gYXR0cmlidXRlczoKICsKKytAdGFibGUgQHZhcgogK0BpdGVtIGhhc19t b3JlCiArVGhpcyBpcyBhbiBpbnRlZ2VyIGF0dHJpYnV0ZSB3aGljaCBpcyBub256ZXJvIGlmIHRo ZXJlIGFyZSBjaGlsZHJlbgogK3JlbWFpbmluZyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rl ZCByYW5nZS4KLSBAZW5kIHRhYmxlCisrQGVuZCB0YWJsZQorKworIEBzdWJzdWJoZWFkaW5nIEV4 YW1wbGUKICAKKyBAc21hbGxleGFtcGxlCitAQCAtMjM3MDAsNiArMjQxNTcsOSBAQCBXaXRoIHRo ZSBAc2FtcHsqfSBwYXJhbWV0ZXIsIGlmIGEgdmFyaWFibGUgb2JqZWN0IGlzIGJvdW5kIHRvIGEK KyBjdXJyZW50bHkgcnVubmluZyB0aHJlYWQsIGl0IHdpbGwgbm90IGJlIHVwZGF0ZWQsIHdpdGhv dXQgYW55CisgZGlhZ25vc3RpYy4KKyAKKytJZiBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9 IHdhcyBwcmV2aW91c2x5IHVzZWQgb24gYSB2YXJvYmosIHRoZW4KKytvbmx5IHRoZSBzZWxlY3Rl ZCByYW5nZSBvZiBjaGlsZHJlbiB3aWxsIGJlIHJlcG9ydGVkLgorKwogIEBzdWJzdWJoZWFkaW5n IEV4YW1wbGUKKyAKKyBAc21hbGxleGFtcGxlCitAQCAtMjM3NjcsNiArMjQyMjcsMzIgQEAgVW5m cmVlemluZyBhIHZhcmlhYmxlIGRvZXMgbm90IHVwZGF0ZSBpdCwgb25seSBzdWJzZXF1ZW50Cisg KGdkYikKKyBAZW5kIHNtYWxsZXhhbXBsZQorIAorK0BzdWJoZWFkaW5nIFRoZSBAY29kZXstdmFy LXNldC11cGRhdGUtcmFuZ2V9IGNvbW1hbmQKKytAZmluZGV4IC12YXItc2V0LXVwZGF0ZS1yYW5n ZQorK0BhbmNob3J7LXZhci1zZXQtdXBkYXRlLXJhbmdlfQorKworK0BzdWJzdWJoZWFkaW5nIFN5 bm9wc2lzCisrCisrQHNtYWxsZXhhbXBsZQorKyAtdmFyLXNldC11cGRhdGUtcmFuZ2UgQHZhcntu YW1lfSBAdmFye2Zyb219IEB2YXJ7dG99CisrQGVuZCBzbWFsbGV4YW1wbGUKKysKKytTZXQgdGhl IHJhbmdlIG9mIGNoaWxkcmVuIHRvIGJlIHJldHVybmVkIGJ5IGZ1dHVyZSBpbnZvY2F0aW9ucyBv ZgorK0Bjb2Rley12YXItdXBkYXRlfS4KKysKKytAdmFye2Zyb219IGFuZCBAdmFye3RvfSBpbmRp Y2F0ZSB0aGUgcmFuZ2Ugb2YgY2hpbGRyZW4gdG8gcmVwb3J0LiAgSWYKKytAdmFye2Zyb219IG9y IEB2YXJ7dG99IGlzIGxlc3MgdGhhbiB6ZXJvLCB0aGUgcmFuZ2UgaXMgcmVzZXQgYW5kIGFsbAor K2NoaWxkcmVuIHdpbGwgYmUgcmVwb3J0ZWQuICBPdGhlcndpc2UsIGNoaWxkcmVuIHN0YXJ0aW5n IGF0IEB2YXJ7ZnJvbX0KKysoemVyby1iYXNlZCkgYW5kIGVuZGluZyBqdXN0IGJlZm9yZSBAdmFy e3RvfSB3aWxsIGJlIHJlcG9ydGVkLgorKworK0BzdWJzdWJoZWFkaW5nIEV4YW1wbGUKKysKKytA c21hbGxleGFtcGxlCisrKGdkYikKKystdmFyLXNldC11cGRhdGUtcmFuZ2UgViAxIDIKKyteZG9u ZQorK0BlbmQgc21hbGxleGFtcGxlCisrCisgQHN1YmhlYWRpbmcgVGhlIEBjb2Rley12YXItc2V0 LXZpc3VhbGl6ZXJ9IGNvbW1hbmQKKyBAZmluZGV4IC12YXItc2V0LXZpc3VhbGl6ZXIKKyBAYW5j aG9yey12YXItc2V0LXZpc3VhbGl6ZXJ9CiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGJpbnQudGV4 aW5mbyBiL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIGluZGV4IGIxYzA0NTIuLmRhMjRiOTggMTAw NjQ0CiAtLS0gYS9nZGIvZG9jL2dkYmludC50ZXhpbmZvCkBAIC0zMTY5LDcgKzM1MjUsNyBAQCBp bmRleCA0OTg0ZjMxLi40YmJiZTRlIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3Ig aW50ZXJuYWwgdGVzdGluZy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIv b2JzZXJ2ZXIuZXhwLgogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjItZnJhbWUuYyBiL2dkYi9kd2Fy ZjItZnJhbWUuYwotaW5kZXggYzYyMDA2Ny4uNmM0ZmFmMSAxMDA2NDQKK2luZGV4IDBmNmRhNDAu LmMxYzE2MmUgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmMKICsrKyBiL2dkYi9kd2Fy ZjItZnJhbWUuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTMxODAsNyArMzUzNiw3IEBAIGluZGV4 IGM2MjAwNjcuLjZjNGZhZjEgMTAwNjQ0CiAgCiAgc3RydWN0IGNvbXBfdW5pdDsKICAKLUBAIC0z MDUsNiArMzA2LDEzIEBAIG5vX2dldF9mcmFtZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUg KipzdGFydCwgc2l6ZV90ICpsZW5ndGgpCitAQCAtMzEwLDYgKzMxMSwxMyBAQCBub19nZXRfZnJh bWVfYmFzZSAodm9pZCAqYmF0b24sIGdkYl9ieXRlICoqc3RhcnQsIHNpemVfdCAqbGVuZ3RoKQog IH0KICAKICBzdGF0aWMgQ09SRV9BRERSCkBAIC0zMTk0LDcgKzM1NTAsNyBAQCBpbmRleCBjNjIw MDY3Li42YzRmYWYxIDEwMDY0NAogIG5vX2dldF90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24sIENP UkVfQUREUiBvZmZzZXQpCiAgewogICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVf XywKLUBAIC0zNTUsMTQgKzM2MywxNiBAQCBleGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAqZXhw LCBVTE9OR0VTVCBsZW4sIGludCBhZGRyX3NpemUsCitAQCAtMzYwLDE0ICszNjgsMTYgQEAgZXhl Y3V0ZV9zdGFja19vcCAoZ2RiX2J5dGUgKmV4cCwgVUxPTkdFU1QgbGVuLCBpbnQgYWRkcl9zaXpl LAogICAgY3R4LT5yZWFkX3JlZyA9IHJlYWRfcmVnOwogICAgY3R4LT5yZWFkX21lbSA9IHJlYWRf bWVtOwogICAgY3R4LT5nZXRfZnJhbWVfYmFzZSA9IG5vX2dldF9mcmFtZV9iYXNlOwpAQCAtMzIx Miw3ICszNTY4LDcgQEAgaW5kZXggYzYyMDA2Ny4uNmM0ZmFmMSAxMDA2NDQKICAKICAgIGZyZWVf ZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwogIAotQEAgLTEyNDIsNiArMTI1MiwxNCBAQCBkd2Fy ZjJfZnJhbWVfYmFzZV9zbmlmZmVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSkKK0BA IC0xMjQ3LDYgKzEyNTcsMTQgQEAgZHdhcmYyX2ZyYW1lX2Jhc2Vfc25pZmZlciAoc3RydWN0IGZy YW1lX2luZm8gKnRoaXNfZnJhbWUpCiAgCiAgICByZXR1cm4gTlVMTDsKICB9CkBAIC0zMjI3LDkg KzM1ODMsOSBAQCBpbmRleCBjNjIwMDY3Li42YzRmYWYxIDEwMDY0NAogIAwKICBjb25zdCBzdHJ1 Y3Qgb2JqZmlsZV9kYXRhICpkd2FyZjJfZnJhbWVfb2JqZmlsZV9kYXRhOwogIAotQEAgLTE1MDQs NiArMTUyMiwxNCBAQCBkd2FyZjJfZnJhbWVfZmluZF9mZGUgKENPUkVfQUREUiAqcGMpCi0gICAg ICAgc3RydWN0IGR3YXJmMl9mZGUgKmZkZTsKK0BAIC0xNTM2LDYgKzE1NTQsMTQgQEAgZHdhcmYy X2ZyYW1lX2ZpbmRfZmRlIChDT1JFX0FERFIgKnBjKQogICAgICAgIENPUkVfQUREUiBvZmZzZXQ7 CisgICAgICAgQ09SRV9BRERSIHNlZWtfcGM7CiAgCiArICAgICAgaWYgKG9iamZpbGUtPnF1aWNr X2FkZHJtYXApCiArCXsKQEAgLTMyMzksOCArMzU5NSw4IEBAIGluZGV4IGM2MjAwNjcuLjZjNGZh ZjEgMTAwNjQ0CiArICAgICAgLyogRklYTUU6IFJlYWQtaW4gb25seSAuZGVidWdfZnJhbWUvLmVo X2ZyYW1lIHdpdGhvdXQgLmRlYnVnX2luZm8/ICAqLwogKyAgICAgIHJlcXVpcmVfcGFydGlhbF9z eW1ib2xzIChvYmpmaWxlKTsKICsKLSAgICAgICBmZGUgPSBvYmpmaWxlX2RhdGEgKG9iamZpbGUs IGR3YXJmMl9mcmFtZV9vYmpmaWxlX2RhdGEpOwotICAgICAgIGlmIChmZGUgPT0gTlVMTCkKKyAg ICAgICBmZGVfdGFibGUgPSBvYmpmaWxlX2RhdGEgKG9iamZpbGUsIGR3YXJmMl9mcmFtZV9vYmpm aWxlX2RhdGEpOworICAgICAgIGlmIChmZGVfdGFibGUgPT0gTlVMTCkKICAJY29udGludWU7CiBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi1mcmFtZS5oIGIvZ2RiL2R3YXJmMi1mcmFtZS5oCiBpbmRl eCBiMjAzNjYxLi5kZDAzZDU5IDEwMDY0NApAQCAtNDAzNiw3ICs0MzkyLDcgQEAgaW5kZXggMGJm Y2ZjYS4uMDEwMThkNiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYg LS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKK2luZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAtLS0gYS9n ZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtMSw4ICsxLDcgQEAK QEAgLTQ1MDUsOCArNDg2MSw4IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAg c3RhdGljIHZvaWQKICBkd2FyZjJfYnVpbGRfaW5jbHVkZV9wc3ltdGFicyAoc3RydWN0IGR3YXJm Ml9jdSAqY3UsCi1AQCAtMTY5MCw2ICsxODY5LDM3IEBAIGR3YXJmMl9idWlsZF9pbmNsdWRlX3Bz eW10YWJzIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLSAgIGZyZWVfbGluZV9oZWFkZXIgKGxoKTsK K0BAIC0xODEyLDYgKzE5OTEsMzcgQEAgbG9va3VwX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIFVMT05HRVNUIHNpZykKKyAgIHJldHVybiBlbnRyeTsKICB9CiAgCiAr LyogRmluZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBjb21waWxhdGlvbiB1bml0IGZvciByYW5n ZSBsaXN0cyBhbmQKQEAgLTQ1NDAsMjAgKzQ4OTYsMTAgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMy YSAxMDA2NDQKICsgICAgfQogK30KICsKLSBzdGF0aWMgaGFzaHZhbF90Ci0gaGFzaF90eXBlX3Np Z25hdHVyZSAoY29uc3Qgdm9pZCAqaXRlbSkKLSB7Ci1AQCAtMTgxMiw4ICsyMDIyLDcgQEAgbG9v a3VwX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIFVMT05HRVNUIHNp ZykKLSAgIHJldHVybiBlbnRyeTsKLSB9Ci0gCi0tLyogU3Vicm91dGluZSBvZiBwcm9jZXNzX3R5 cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFyZAotLSAgIHRvIGNvbWJp bmUgdGhlIGNvbW1vbiBwYXJ0cy4KLSsvKiBTdWJyb3V0aW5lIG9mIGR3YXJmMl9idWlsZF9wc3lt dGFic19oYXJkIHRvIHNpbXBsaWZ5IGl0LgorIC8qIFN1YnJvdXRpbmUgb2YgcHJvY2Vzc190eXBl X2NvbXBfdW5pdCBhbmQgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQKKyAgICB0byBjb21iaW5l IHRoZSBjb21tb24gcGFydHMuCiAgICAgUHJvY2VzcyBhIGNvbXBpbGF0aW9uIHVuaXQgZm9yIGEg cHN5bXRhYi4KLSAgICBCVUZGRVIgaXMgYSBwb2ludGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl IGR3YXJmIHNlY3Rpb24gYnVmZmVyLAotICAgIGVpdGhlciAuZGVidWdfaW5mbyBvciBkZWJ1Z190 eXBlcy4KLUBAIC0xODc4LDcgKzIwODcsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0IChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0xODc4LDcgKzIwODgsNyBAQCBwcm9jZXNzX3Bz eW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgICAgfQogIAogICAg LyogU2V0IHRoZSBsYW5ndWFnZSB3ZSdyZSBkZWJ1Z2dpbmcuICAqLwpAQCAtNDU2Miw3ICs0OTA4 LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAKICAgIC8qIEFsbG9jYXRlIGEg bmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVjdHVyZS4gICovCiAgICBwc3QgPSBzdGFydF9w c3ltdGFiX2NvbW1vbiAob2JqZmlsZSwgb2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLAotQEAgLTE5 MjksOCArMjEzOCw4IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLAorQEAgLTE5MjksOCArMjEzOSw4IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3Vu aXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgICB9CiAgICBlbHNlIGlmIChjb21wX3Vu aXRfZGllLmhhc19wY19pbmZvCiAgCSAgICYmIGNvbXBfdW5pdF9kaWUubG93cGMgPCBjb21wX3Vu aXRfZGllLmhpZ2hwYykKQEAgLTQ1NzMsNyArNDkxOSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRj MmEgMTAwNjQ0CiAgICAgIGFkZHJtYXBfc2V0X2VtcHR5IChvYmpmaWxlLT5wc3ltdGFic19hZGRy bWFwLAogIAkJICAgICAgIGNvbXBfdW5pdF9kaWUubG93cGMgKyBiYXNlYWRkciwKICAJCSAgICAg ICBjb21wX3VuaXRfZGllLmhpZ2hwYyArIGJhc2VhZGRyIC0gMSwgcHN0KTsKLUBAIC0yMzYxLDcg KzI1NzAsNyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwZGksCitAQCAtMjM2MSw3ICsyNTcxLDcgQEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3Bl IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkgaWdub3JpbmcgdGhlbS4gICovCiAg ICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAogIAkJIF8oInVuaGFuZGxlZCBj b250YWluaW5nIERJRSB0YWcgJWQgZm9yIERJRSBhdCAlZCIpLApAQCAtNDU4Miw3ICs0OTI4LDcg QEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgICBwYXJlbnQtPnNjb3BlID0g Z3JhbmRwYXJlbnRfc2NvcGU7CiAgICAgIH0KICAKLUBAIC0yMzc2LDEyICsyNTg1LDIyIEBAIHBh cnRpYWxfZGllX2Z1bGxfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0y Mzc2LDEyICsyNTg2LDIyIEBAIHBhcnRpYWxfZGllX2Z1bGxfbmFtZSAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwKICAJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBj aGFyICpwYXJlbnRfc2NvcGU7CkBAIC00NjA5LDcgKzQ5NTUsNyBAQCBpbmRleCA0NDViYWI4Li5i ZTJkYzJhIDEwMDY0NAogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTIzOTcsMTIgKzI2MTYsOSBA QCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTIzOTcsMTIgKzI2MTcsOSBAQCBhZGRfcGFydGlhbF9zeW1i b2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog IAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNU X09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC00NjI1LDcgKzQ5NzEsNyBAQCBpbmRleCA0NDVi YWI4Li5iZTJkYzJhIDEwMDY0NAogIAogICAgaWYgKGFjdHVhbF9uYW1lID09IE5VTEwpCiAgICAg IGFjdHVhbF9uYW1lID0gcGRpLT5uYW1lOwotQEAgLTI1MzQsMjIgKzI3NTAsNiBAQCBhZGRfcGFy dGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTI1MzQsMjIgKzI3NTEsNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJy ZWFrOwogICAgICB9CiAgCkBAIC00NjQ4LDcgKzQ5OTQsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJk YzJhIDEwMDY0NAogICAgaWYgKGJ1aWx0X2FjdHVhbF9uYW1lKQogICAgICB4ZnJlZSAoYWN0dWFs X25hbWUpOwogIH0KLUBAIC0yNTU5LDkgKzI3NTksOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1 NTksOSArMjc2MCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2lu Zm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgbmFtZSBsaXN0ZWQgaW4gdGhlIGRp ZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNDY2MCw3ICs1MDA2LDcgQEAgaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKICAgICAgewogICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CiAg ICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Ci1AQCAtMjU3MSw3ICsyNzcxLDIzIEBAIHBkaV9uZWVk c19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKK0BAIC0yNTcxLDcgKzI3NzIsMjMgQEAg cGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQogICAgICBjYXNlIERXX1RB R191bmlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdGlvbl90eXBlOgogICAgICBj YXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNDY4NCw3ICs1MDMwLDcgQEAgaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gMDsKICAgICAg fQotQEAgLTI3MDAsMjcgKzI5MTYsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKnN0cnVjdF9wZGksCitAQCAtMjcwMCwyNyArMjkxNyw2IEBAIGd1ZXNz X3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKICAK ICAgICAgICBpZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAJcmV0dXJuOwpAQCAt NDcxMiw3ICs1MDU4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgfQog IH0KICAKLUBAIC0zMTcwLDcgKzMzNjUsNiBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1 Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCitAQCAtMzE3MCw3ICszMzY2LDYgQEAgcHJv Y2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQog ICAgQ09SRV9BRERSIGxvd3BjLCBoaWdocGM7CiAgICBzdHJ1Y3Qgc3ltdGFiICpzeW10YWI7CiAg ICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKQEAgLTQ3MjAsNyArNTA2Niw3IEBAIGluZGV4IDQ0 NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgCiAgICBiYXNl YWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQg KG9iamZpbGUpKTsKLUBAIC0zMTgwLDMwICszMzc0LDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5p dCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorQEAgLTMxODAsMzAgKzMzNzUs NyBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpw ZXJfY3UpCiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZmaWxlX3N5bWJvbHM7CiAgCkBAIC00 NzUyLDcgKzUwOTgsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAogICAgLyog RG8gbGluZSBudW1iZXIgZGVjb2RpbmcgaW4gcmVhZF9maWxlX3Njb3BlICgpICovCiAgICBwcm9j ZXNzX2RpZSAoY3UtPmRpZXMsIGN1KTsKLUBAIC0zMjM0LDYgKzM0MDUsNyBAQCBwcm9jZXNzX2Z1 bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCitAQCAtMzIz NCw2ICszNDA2LDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJf Y3VfZGF0YSAqcGVyX2N1KQogIHN0YXRpYyB2b2lkCiAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CkBAIC00NzYwLDcgKzUxMDYsNyBA QCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgc3dpdGNoIChkaWUtPnRhZykKICAg ICAgewogICAgICBjYXNlIERXX1RBR19wYWRkaW5nOgotQEAgLTMzMTIsNDIgKzM0ODQsNjkgQEAg cHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0zMzEyLDQyICszNDg1LDY5IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgLyogUmV0dXJuIHRoZSBmdWxseSBxdWFsaWZpZWQg bmFtZSBvZiBESUUsIGJhc2VkIG9uIGl0cyBEV19BVF9uYW1lLgogICAgIElmIHNjb3BlIHF1YWxp ZmllcnMgYXJlIGFwcHJvcHJpYXRlIHRoZXkgd2lsbCBiZSBhZGRlZC4gIFRoZSByZXN1bHQKICAg ICB3aWxsIGJlIGFsbG9jYXRlZCBvbiB0aGUgb2JqZmlsZV9vYnN0YWNrLCBvciBOVUxMIGlmIHRo ZSBESUUgZG9lcwpAQCAtNDg1Miw3ICs1MTk4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAx MDA2NDQKICAKICBzdGF0aWMgdm9pZAogIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotQEAgLTMzNTYsOSArMzU1NSwxNSBA QCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC0zMzU2LDkgKzM1NTYsMTUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50 IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3Qg ZGllX2luZm8gKmltcG9ydGVkX2RpZTsKICAgIGNvbnN0IGNoYXIgKmltcG9ydGVkX25hbWU7CiAg ICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lX3ByZWZpeDsKQEAgLTQ4NzAsNyArNTIxNiw3IEBA IGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBpbXBvcnRfYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2ltcG9ydCwgY3UpOwogICAgaWYgKGltcG9ydF9hdHRyID09IE5VTEwp CiAgICAgIHsKLUBAIC0zNDA2LDI5ICszNjExLDQ1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM0MDYsMjkg KzM2MTIsNDUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC00OTI5 LDEwMSArNTI3NSwzMSBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICBz dGF0aWMgdm9pZAotQEAgLTM2NzcsNiArMzg5OCw5MyBAQCB1bnNpZ25lZF9pbnRfY29tcGFyIChj b25zdCB2b2lkICphcCwgY29uc3Qgdm9pZCAqYnApCitAQCAtMzY3Niw3ICszODk4LDcgQEAgdW5z aWduZWRfaW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQorIAogICAg cmV0dXJuIChhID4gYikgLSAoYiA+IGEpOwogIH0KLSAKLStzdGF0aWMgdm9pZCBleHBsb3JlX2Fi c3RyYWN0X29yaWdpbihzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Us IHVuc2lnbmVkKiBkaWVfY2hpbGRyZW5fcCl7Ci0rICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwot KyAgdW5zaWduZWQgZGllX2NoaWxkcmVuID0gKmRpZV9jaGlsZHJlbl9wOwotKyAgc3RydWN0IGRp ZV9pbmZvICpjaGlsZF9kaWU7CistCiArICAKLSsgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKKyAvKiBEV19BVF9hYnN0cmFjdF9vcmlnaW4gaW5o ZXJpdHMgd2hvbGUgRElFcyAobm90IGp1c3QgdGhlaXIgYXR0cmlidXRlcykuCisgICAgSW5oZXJp dCBvbmx5IHRoZSBjaGlsZHJlbiBvZiB0aGUgRFdfQVRfYWJzdHJhY3Rfb3JpZ2luIERJRSBub3Qg YmVpbmcgYWxyZWFkeQorICAgIHJlZmVyZW5jZWQgYnkgRFdfQVRfYWJzdHJhY3Rfb3JpZ2luIGZy b20gdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50IERJRS4gICovCitAQCAtMzY5Nyw2ICszOTE5 LDE0IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKyAKKyAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKICsgIAotKyAg LyogR0NDIGN1cnJlbnRseSB1c2VzIERXX0FUX3NwZWNpZmljYXRpb24gdG8gaW5kaWNhdGUgZGll IGluaGVyaXRlbmNlCi0rICAgICBpbiB0aGUgY2FzZSBvZiBpbXBvcnQgc3RhdGVtZW50cy4gVGhl IGZvbGxvd2luZyBpcyB0byBhY2NvbW1vZGF0ZSB0aGF0ICovCisrICAvKiBHQ0MgNC4zIGluY29y cmVjdGx5IHVzZXMgRFdfQVRfc3BlY2lmaWNhdGlvbiB0byBpbmRpY2F0ZSBkaWUgaW5oZXJpdGVu Y2UKKysgICAgIGluIHRoZSBjYXNlIG9mIGltcG9ydCBzdGF0ZW1lbnRzLiBUaGUgZm9sbG93aW5n IGlzIHRvIGFjY29tbW9kYXRlIAorKyAgICAgdGhhdC4gICovCiArICBpZighYXR0cil7CiArICAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zcGVjaWZpY2F0aW9uLCBjdSk7CiArICB9 CiArICAKLSsgIGlmIChhdHRyKQotKyAgICB7Ci0rICAgICAgLyogRm9yIHRoZSBsaXN0IG9mIENI SUxEX0RJRXMuICAqLwotKyAgICAgIHVuc2lnbmVkICpvZmZzZXRzOwotKyAgICAgIHVuc2lnbmVk ICpvZmZzZXRzX2VuZCwgKm9mZnNldHA7Ci0rICAgICAgc3RydWN0IGRpZV9pbmZvICpvcmlnaW5f ZGllLCAqb3JpZ2luX2NoaWxkX2RpZTsKLSsgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHM7 Ci0rCi0rICAgICAgb3JpZ2luX2RpZSA9IGZvbGxvd19kaWVfcmVmIChkaWUsIGF0dHIsICZjdSk7 Ci0rICAgICAgaWYgKGRpZS0+dGFnICE9IG9yaWdpbl9kaWUtPnRhZykKLSsgICAgICAgIGNvbXBs YWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgXygiRElFIDB4 JXggYW5kIGl0cyBhYnN0cmFjdCBvcmlnaW4gMHgleCBoYXZlIGRpZmZlcmVudCAiCi0rICAgICAg ICAgICAgICAgICAgICAgInRhZ3MiKSwKLSsgICAgICAgICAgICAgICAgICAgZGllLT5vZmZzZXQs IG9yaWdpbl9kaWUtPm9mZnNldCk7Ci0rCi0rICAgICAgb2Zmc2V0cyA9IHhtYWxsb2MgKHNpemVv ZiAoKm9mZnNldHMpICogZGllX2NoaWxkcmVuKTsKLSsgICAgICBjbGVhbnVwcyA9IG1ha2VfY2xl YW51cCAoeGZyZWUsIG9mZnNldHMpOwotKwotKyAgICAgIG9mZnNldHNfZW5kID0gb2Zmc2V0czsK LSsgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOwotKyAgICAgIHdoaWxlIChjaGlsZF9kaWUg JiYgY2hpbGRfZGllLT50YWcpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGF0dHIgPSBkd2FyZjJf YXR0ciAoY2hpbGRfZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKLSsgICAgICAgICAg aWYgKCFhdHRyKQotKyAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywK LSsgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IG9mIERJRSAweCV4IGhh cyBtaXNzaW5nICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIkRXX0FUX2Fic3RyYWN0X29y aWdpbiIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGllLT5vZmZzZXQsIGRpZS0+ b2Zmc2V0KTsKLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAg IHN0cnVjdCBkaWVfaW5mbyAqY2hpbGRfb3JpZ2luX2RpZTsKLSsKLSsgICAgICAgICAgICAgIGNo aWxkX29yaWdpbl9kaWUgPSBmb2xsb3dfZGllX3JlZiAoY2hpbGRfZGllLCBhdHRyLCAmY3UpOwot KyAgICAgICAgICAgICAgaWYgKGNoaWxkX2RpZS0+dGFnICE9IGNoaWxkX29yaWdpbl9kaWUtPnRh ZykKLSsgICAgICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IGFuZCBpdHMgYWJzdHJh Y3Qgb3JpZ2luIDB4JXggaGF2ZSAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlm ZmVyZW50IHRhZ3MiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9kaWUtPm9m ZnNldCwgY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0KTsKLSsgICAgICAgICAgICAgICpvZmZzZXRz X2VuZCsrID0gY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0OwotKyAgICAgICAgICAgIH0KLSsgICAg ICAgICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7Ci0rICAgICAgICB9Ci0r ICAgICAgcXNvcnQgKG9mZnNldHMsIG9mZnNldHNfZW5kIC0gb2Zmc2V0cywgc2l6ZW9mICgqb2Zm c2V0cyksCi0rICAgICAgICAgICAgIHVuc2lnbmVkX2ludF9jb21wYXIpOwotKyAgICAgIC8qIERp c2FibGVkIGFzIGV4Y2Vzc2l2ZWx5IGV4cGVuc2l2ZSAtIGNoZWNrIGlmIHdlIG1heSBldmVyIGNv bXBsYWluLiAgKi8KLSsgICAgICBpZiAoMCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZm9yIChv ZmZzZXRwID0gb2Zmc2V0cyArIDE7IG9mZnNldHAgPCBvZmZzZXRzX2VuZDsgb2Zmc2V0cCsrKQot KyAgICAgICAgICAgIGlmIChvZmZzZXRwWy0xXSA9PSAqb2Zmc2V0cCkKLSsgICAgICAgICAgICAg IGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgXygiQ2hpbGQgRElFcyBvZiBESUUgMHgleCBkdXBsaWNpdGx5IGFic3RyYWN0LW9yaWdpbiAi Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZWQgRElFIDB4JXgiKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgZGllLT5vZmZzZXQsICpvZmZzZXRwKTsKLSsgICAgICAg IH0KLSsKLSsgICAgICBvZmZzZXRwID0gb2Zmc2V0czsKLSsgICAgICBvcmlnaW5fY2hpbGRfZGll ID0gb3JpZ2luX2RpZS0+Y2hpbGQ7Ci0rICAgICAgd2hpbGUgKG9yaWdpbl9jaGlsZF9kaWUgJiYg b3JpZ2luX2NoaWxkX2RpZS0+dGFnKQotKyAgICAgICAgewotKyAgICAgICAgICAvKiBJcyBvcmln aW5fY2hpbGRfZGllIHJlZmVyZW5jZWQgYnkgYW55IG9mIHRoZSBESUUgY2hpbGRyZW4/ICAqLwot KyAgICAgICAgICB3aGlsZSAob2Zmc2V0cCA8IG9mZnNldHNfZW5kICYmICpvZmZzZXRwIDwgb3Jp Z2luX2NoaWxkX2RpZS0+b2Zmc2V0KQotKyAgICAgICAgICAgIG9mZnNldHArKzsKLSsgICAgICAg ICAgaWYgKG9mZnNldHAgPj0gb2Zmc2V0c19lbmQgfHwgKm9mZnNldHAgPiBvcmlnaW5fY2hpbGRf ZGllLT5vZmZzZXQpCi0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgLyogRm91bmQgdGhh dCBvcmlnaW5fY2hpbGRfZGllIGlzIHJlYWxseSBub3QgcmVmZXJlbmNlZC4gICovCi0rICAgICAg ICAgICAgICBwcm9jZXNzX2RpZSAob3JpZ2luX2NoaWxkX2RpZSwgY3UpOwotKyAgICAgICAgICAg IH0KLSsgICAgICAgICAgb3JpZ2luX2NoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChvcmlnaW5fY2hp bGRfZGllKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwot KyAgICB9Ci0rfQotKyAgCi0gLyogRFdfQVRfYWJzdHJhY3Rfb3JpZ2luIGluaGVyaXRzIHdob2xl IERJRXMgKG5vdCBqdXN0IHRoZWlyIGF0dHJpYnV0ZXMpLgotICAgIEluaGVyaXQgb25seSB0aGUg Y2hpbGRyZW4gb2YgdGhlIERXX0FUX2Fic3RyYWN0X29yaWdpbiBESUUgbm90IGJlaW5nIGFscmVh ZHkKLSAgICByZWZlcmVuY2VkIGJ5IERXX0FUX2Fic3RyYWN0X29yaWdpbiBmcm9tIHRoZSBjaGls ZHJlbiBvZiB0aGUgY3VycmVudCBESUUuICAqLwotQEAgLTM3OTUsNiArNDEwMyw3IEBAIHJlYWRf ZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor ICAgaWYgKCFhdHRyKQorICAgICByZXR1cm47CisgCitAQCAtMzc5NSw2ICs0MDI1LDcgQEAgcmVh ZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICBjaGFyICpuYW1lOwogICAgQ09SRV9BRERSIGJhc2VhZGRyOwogICAgc3RydWN0IGJsb2Nr ICpibG9jazsKQEAgLTUwMzEsNyArNTMwNyw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAw NjQ0CiAgICBpbnQgaW5saW5lZF9mdW5jID0gKGRpZS0+dGFnID09IERXX1RBR19pbmxpbmVkX3N1 YnJvdXRpbmUpOwogIAogICAgaWYgKGlubGluZWRfZnVuYykKLUBAIC0zODEzLDEzICs0MTIyLDIz IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTM4MTMsMTMgKzQwNDQsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFO T0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUp KTsKICAKQEAgLTUwNTAsNyArNTMyNiw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0 CiArCWNoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwlkaWVfY2hpbGRyZW4r KzsKICsgICAgICB9Ci0rICAgIGV4cGxvcmVfYWJzdHJhY3Rfb3JpZ2luKGRpZSwgY3UsICZkaWVf Y2hpbGRyZW4pOworKyAgICBpbmhlcml0X2Fic3RyYWN0X2RpZXMoZGllLCBjdSk7CiAgICAgIHJl dHVybjsKIC0KICsgIH0KQEAgLTUwNTgsNyArNTMzNCw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRj MmEgMTAwNjQ0CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsK ICAKLUBAIC0zODQ2LDE2ICs0MTY1LDE1IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM4NDYsMTQgKzQwODcsMTIgQEAg cmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1ib2xzOwogIApAQCAtNTA3 NywxMSArNTM1Myw4IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiArICAgICAgZGll X2NoaWxkcmVuKys7CiAgICAgIH0KICAKLSsgIGV4cGxvcmVfYWJzdHJhY3Rfb3JpZ2luKGRpZSwg Y3UsICZkaWVfY2hpbGRyZW4pOwogICAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChkaWUsIGN1KTsK LSAKLSAgIG5ldyA9IHBvcF9jb250ZXh0ICgpOwotQEAgLTM5MDUsNyArNDIyMyw3IEBAIHJlYWRf bGV4aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTM5MDUsNyArNDE0NCw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgYXMgbXVs dGlwbGUgbGV4aWNhbCBibG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBhIHNhbmUgd2F5IHdv dWxkCiAgICAgICBiZSBuYXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9wZXJseSBleHRlbmQg Z2VuZXJpYyBibG9ja3MgdG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAqLwpAQCAtNTA5MCwx NiArNTM2MywxNiBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICByZXR1cm47 CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKLUBAIC0zOTIy LDcgKzQyNDAsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIyLDcgKzQxNjEsNyBAQCByZWFkX2xl eGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQgKCk7CiAgCiAtICBpZiAobG9jYWxf c3ltYm9scyAhPSBOVUxMKQotKyAgaWYgKGxvY2FsX3N5bWJvbHMgIT0gTlVMTCB8fCB1c2luZ19k aXJlY3RpdmVzIT0gTlVMTCApCisrICBpZiAobG9jYWxfc3ltYm9scyAhPSBOVUxMIHx8IHVzaW5n X2RpcmVjdGl2ZXMgIT0gTlVMTCkKICAgICAgewogICAgICAgIHN0cnVjdCBibG9jayAqYmxvY2sK ICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAmbG9jYWxfc3ltYm9scywgbmV3LT5vbGRfYmxv Y2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3Nyw3ICs0Mzk1LDggQEAgZHdhcmYyX3Jhbmdl c19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVybiwKK0BAIC00MDc3 LDcgKzQzMTYsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9B RERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRpbnVvdXMsIGkuZS4gZGVyaXZlZCBmcm9tIERX X0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAgc3RhdGljIGludAogIGR3YXJmMl9nZXRfcGNf Ym91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKQEAgLTUxMDks NyArNTM4Miw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgewogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQUREUiBsb3cgPSAwOwotQEAgLTQxMDUsNyArNDQy NCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9B RERSICpsb3dwYywKK0BAIC00MTA1LDcgKzQzNDUsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAo c3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCiAgCXsKICAJICAvKiBWYWx1 ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQogIAkg ICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCkBAIC01MTE4LDcgKzUzOTEsNyBAQCBpbmRl eCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAkgICAgcmV0dXJuIDA7CiAgCSAgLyogRm91bmQg ZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwogIAkgIHJldCA9IC0xOwotQEAg LTQxNDQsNyArNDQ2Myw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVj dCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDQsNyArNDM4NCw3IEBAIGR3YXJmMl9nZXRfc3VicHJv Z3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERSIGxvdywg aGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxkOwogIApAQCAtNTEy Nyw3ICs1NDAwLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgewogICAg ICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwogICAgICAgICpoaWdocGMgPSBtYXggKCpo aWdocGMsIGhpZ2gpOwotQEAgLTQxODEsNyArNDUwMCw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMg KHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxODEsNyArNDQyMSw3IEBAIGdldF9zY29wZV9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERSIGJlc3RfaGlnaCA9 IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsK ICAKQEAgLTUxMzYsNyArNTQwOSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAg ICAgIHsKICAgICAgICBiZXN0X2xvdyA9IGN1cnJlbnRfbG93OwogICAgICAgIGJlc3RfaGlnaCA9 IGN1cnJlbnRfaGlnaDsKLUBAIC00MzkzLDcgKzQ3MTIsMTIgQEAgZHdhcmYyX2FkZF9maWVsZCAo c3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDM5Myw3 ICs0NjMzLDEyIEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0 cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSAwOwogICAg ICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2NvbnN0YW50IChh dHRyKSkKQEAgLTUxNTAsNyArNTQyMyw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0 CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBieXRlX29mZnNldCA9IGRlY29kZV9sb2Nk ZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKICAKLUBAIC00NDc2LDcgKzQ4MDAsMTEgQEAgZHdh cmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpk aWUsCitAQCAtNDQ3Niw3ICs0NzIxLDExIEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVs ZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgIGlmIChmaWVsZG5hbWUg PT0gTlVMTCkKICAJcmV0dXJuOwogIApAQCAtNTE2Myw3ICs1NDM2LDcgQEAgaW5kZXggNDQ1YmFi OC4uYmUyZGMyYSAxMDA2NDQKICAgICAgICBwaHlzbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUg KGRpZSwgY3UpOwogIAogICAgICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFs b25nIHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAotQEAgLTQ2MDcsNyArNDkzNSwxMSBA QCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRp ZV9pbmZvICpkaWUsCitAQCAtNDYwNyw3ICs0ODU2LDExIEBAIGR3YXJmMl9hZGRfbWVtYmVyX2Zu IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgIGlmIChm aWVsZG5hbWUgPT0gTlVMTCkKICAgICAgcmV0dXJuOwogIApAQCAtNTE3Niw3ICs1NDQ5LDcgQEAg aW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmth Z2VfbmFtZSAoZGllLCBjdSk7CiAgCiAgICAvKiBMb29rIHVwIG1lbWJlciBmdW5jdGlvbiBuYW1l IGluIGZpZWxkbGlzdC4gICovCi1AQCAtNDY1Miw3ICs0OTg0LDcgQEAgZHdhcmYyX2FkZF9tZW1i ZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAg LTQ2NTIsNyArNDkwNSw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5m byAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkg YWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAogICAgICAgbmVl ZCB0byBkdXBsaWNhdGUgaXQgZm9yIHRoZSB0eXBlLiAgKi8KICAgIGZucC0+cGh5c25hbWUgPSBw aHlzbmFtZSA/IHBoeXNuYW1lIDogIiI7CkBAIC01MTg1LDcgKzU0NTgsNyBAQCBpbmRleCA0NDVi YWI4Li5iZTJkYzJhIDEwMDY0NAogICAgdGhpc190eXBlID0gcmVhZF90eXBlX2RpZSAoZGllLCBj dSk7CiAgICBpZiAodGhpc190eXBlICYmIFRZUEVfQ09ERSAodGhpc190eXBlKSA9PSBUWVBFX0NP REVfRlVOQykKICAgICAgewotQEAgLTQ4MzYsNyArNTE2OCw3IEBAIHF1aXJrX2djY19tZW1iZXJf ZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTQ4MzYsNyArNTA4OSw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9p bnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICBy ZXR1cm4gTlVMTDsKICAKICAgIGRvbWFpbl90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoVFlQRV9G SUVMRF9UWVBFIChwZm5fdHlwZSwgMCkpOwpAQCAtNTE5NCw3ICs1NDY3LDcgQEAgaW5kZXggNDQ1 YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHNtYXNoX3RvX21ldGhvZF90eXBlICh0eXBlLCBkb21h aW5fdHlwZSwgVFlQRV9UQVJHRVRfVFlQRSAocGZuX3R5cGUpLAogIAkJCVRZUEVfRklFTERTIChw Zm5fdHlwZSksIFRZUEVfTkZJRUxEUyAocGZuX3R5cGUpLAogIAkJCVRZUEVfVkFSQVJHUyAocGZu X3R5cGUpKTsKLUBAIC00ODg5LDcgKzUyMjEsNyBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg4OSw3ICs1MTQy LDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3Up OwogICAgICB9CiAgCkBAIC01MjAzLDcgKzU0NzYsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJh IDEwMDY0NAogICAgSU5JVF9DUExVU19TUEVDSUZJQyAodHlwZSk7CiAgCiAgICBuYW1lID0gZHdh cmYyX25hbWUgKGRpZSwgY3UpOwotQEAgLTQ4OTgsMTQgKzUyMzAsMTggQEAgcmVhZF9zdHJ1Y3R1 cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTQ4OTgsMTQgKzUxNTEsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChjdS0+bGFuZ3VhZ2UgPT0g bGFuZ3VhZ2VfY3BsdXMKICAJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKICAJ ewpAQCAtNTIyNSw3ICs1NDk4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJ fQogICAgICB9CiAgCi1AQCAtNTExNSw3ICs1NDUxLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTExNSw3 ICs1MzcyLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0 eXBlLCBjdSk7CiAgICAgIH0KICAKQEAgLTUyMzQsNyArNTUwNyw3IEBAIGluZGV4IDQ0NWJhYjgu LmJlMmRjMmEgMTAwNjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQRV9DT0RFX0VOVU07 CiAgICBuYW1lID0gZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNTE0Myw1MSArNTQ3 OSw2IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxNDMsNTEgKzU0MDAsNiBAQCByZWFkX2VudW1lcmF0aW9u X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJl dHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTUyODYsNyArNTU1 OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgLyogR2l2ZW4gYSBwb2ludGVy IHRvIGEgZGllIHdoaWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlvbiwgcHJvY2VzcyBhbGwKICAgICB0 aGUgZGllcyB0aGF0IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0aGUgZW51bWVyYXRpb24sIGFuZCBj cmVhdGUgdGhlCiAgICAgc3ltYm9sIGZvciB0aGUgZW51bWVyYXRpb24gdHlwZS4KLUBAIC01MjY1 LDYgKzU1NTYsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNjUsNiArNTQ3NywyOSBAQCBwcm9j ZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICBuZXdfc3ltYm9sIChkaWUsIHRoaXNfdHlwZSwgY3UpOwogIH0KICAKQEAg LTUzMTYsNyArNTU4OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgLyogRXh0 cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0 IGl0IGluCiAgICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFu ZGxlcyBvbmUgZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTUyNzgsNyArNTU5Miw3 IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTUyNzgsNyArNTUxMyw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmVsZW1l bnRfdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0IHR5cGUgKipyYW5n ZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNTMyNSw3ICs1 NTk4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgIHN0cnVjdCBjbGVhbnVw ICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC01MzI1LDE2ICs1NjM5LDExIEBAIHJl YWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTUzMjUsMTYgKzU1NjAsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwog IAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3Ip CkBAIC01MzQ3LDcgKzU2MjAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAog ICAgLyogVW5kZXJzdGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRo ZXkgb2NjdXIgb24KICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRk cyBhbm90aGVyIGF0dHJpYnV0ZSB0byB0aGUKLUBAIC01NDAxLDEyICs1NzEwLDE0IEBAIHJlYWRf c2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC01NDAxLDEyICs1NjMxLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgc2V0 X3R5cGUsIGN1KTsKICB9CiAgCkBAIC01MzY0LDcgKzU2MzcsNyBAQCBpbmRleCA0NDViYWI4Li5i ZTJkYzJhIDEwMDY0NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1i b2wgKnN5bTsKICAgIENPUkVfQUREUiBiYXNlID0gKENPUkVfQUREUikgMDsKLUBAIC01NDMxLDEw ICs1NzQyLDQwIEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQzMSwxMCArNTY2Myw0MCBAQCByZWFkX2NvbW1vbl9i bG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICB9 CiAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxMKQogICAgICB7CkBAIC01MzgwLDkgKzU2NTMsOSBA QCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogKyAgICAgIC8qIEFydGlmaWNpYWwgdHlw ZSB0byBiZSB1c2VkIG9ubHkgYnkgYGluZm8gY29tbW9uJy4gICovCiArICAgICAgVFlQRV9OQU1F ICh0eXBlKSA9ICI8Y29tbW9uPiI7CiArCi0gICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsK LSAgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQotIAl7CisrICAgICAg Y2hpbGRfZGllID0gZGllLT5jaGlsZDsKKysgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxk X2RpZS0+dGFnKQorKwl7CiArCSAgVFlQRV9ORklFTERTICh0eXBlKSsrOwogKwkgIGNoaWxkX2Rp ZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwl9CkBAIC01Mzk0LDkgKzU2NjcsOSBAQCBp bmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogKwkJCQkgICAgICogVFlQRV9ORklFTERTICh0 eXBlKSk7CiArICAgICAgCiArICAgICAgZmllbGQgPSBUWVBFX0ZJRUxEUyAodHlwZSk7Ci0rICAg ICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKLSsgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNo aWxkX2RpZS0+dGFnKQotKwl7CisgICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKKyAgICAg ICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQorIAl7CiArCSAgLyogQ3JlYXRl IHRoZSBzeW1ib2wgaW4gdGhlIERXX1RBR19jb21tb25fYmxvY2sgYmxvY2sgaW4gdGhlIGN1cnJl bnQKICsJICAgICBzeW1ib2wgc2NvcGUuICAqLwogIAkgIHN5bSA9IG5ld19zeW1ib2wgKGNoaWxk X2RpZSwgTlVMTCwgY3UpOwpAQCAtNTQwNSw3ICs1Njc4LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUy ZGMyYSAxMDA2NDQKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2RpZSwgRFdfQVRfZGF0 YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoYXR0cikKICAJICAgIHsKLUBAIC01NDQy LDggKzU3ODMsMjUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01NDQyLDggKzU3MDQsMjUgQEAgcmVhZF9jb21tb25f YmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJCWJh c2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7CiAgCSAgICAgIGFkZF9z eW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgfQpAQCAtNTQzMSw3 ICs1NzA0LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAgICAgfQogIH0KICAK LUBAIC01NTExLDcgKzU4NjksNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1MTEsNyArNTc5MCw3IEBAIHJlYWRfbmFt ZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg ICAgaWYgKGlzX2Fub255bW91cykKICAJewogIAkgIGNvbnN0IGNoYXIgKnByZXZpb3VzX3ByZWZp eCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwpAQCAtNTQ0MCw3ICs1NzEzLDcgQEAgaW5k ZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTcwNSwyOSAr NjA2Myw5NSBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU3MDUsMjkgKzU5ODQsOTUgQEAgcmVhZF90YWdfc3Ry aW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAg ICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBl OwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU1NTQsNyArNTgyNyw3IEBAIGluZGV4 IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdf Y2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRl X3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTU4MjIs NyArNjI0Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitAQCAtNTgyMiw3ICs2MTY3LDYgQEAg c3RhdGljIHN0cnVjdCB0eXBlICoKICByZWFkX3R5cGVkZWYgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9 IGN1LT5vYmpmaWxlOwpAQCAtNTU2Miw3ICs1ODM1LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMy YSAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnRo aXNfdHlwZTsKICAKLUBAIC01OTMwLDggKzYzNTMsOCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01OTMwLDggKzYy NzQsOCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlw ZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC01NTczLDcgKzU4 NDYsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgY2hhciAqbmFtZTsKICAg IAogICAgYmFzZV90eXBlID0gZGllX3R5cGUgKGRpZSwgY3UpOwotQEAgLTU5NDQsNDIgKzYzNjcs OTAgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtNTk0NCw0MiArNjI4OCw5MCBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJCSAgICAgMCwg TlVMTCwgY3UtPm9iamZpbGUpOwogICAgICB9CiAgCkBAIC01Njk0LDcgKzU5NjcsNyBAQCBpbmRl eCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUs IGN1KTsKICAgIGlmIChuYW1lKQotQEAgLTY2NzAsOSArNzE0MSw2IEBAIHJlYWRfcGFydGlhbF9k aWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02NjcwLDkgKzcwNjIs NiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUs CiAgCSAgaWYgKHBhcnRfZGllLT5kaXJuYW1lID09IE5VTEwpCiAgCSAgICBwYXJ0X2RpZS0+ZGly bmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwogIAkgIGJyZWFrOwpAQCAtNTcwNCw3ICs1OTc3LDcg QEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAJY2FzZSBEV19BVF9sb3dfcGM6CiAg CSAgaGFzX2xvd19wY19hdHRyID0gMTsKICAJICBwYXJ0X2RpZS0+bG93cGMgPSBEV19BRERSICgm YXR0cik7Ci1AQCAtNjc0NCwxMCArNzIxMiwxMCBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc0NCwxMCArNzEzMywxMCBAQCByZWFk X3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgCSAgZWxz ZQogIAkgICAgcGFydF9kaWUtPnNpYmxpbmcgPSBidWZmZXIgKyBkd2FyZjJfZ2V0X3JlZl9kaWVf b2Zmc2V0ICgmYXR0cik7CiAgCSAgYnJlYWs7CkBAIC01NzE5LDcgKzU5OTIsNyBAQCBpbmRleCA0 NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICAgICAgY2FzZSBEV19BVF9ieXRlX3NpemU6CiAg ICAgICAgICAgIHBhcnRfZGllLT5oYXNfYnl0ZV9zaXplID0gMTsKICAgICAgICAgICAgYnJlYWs7 Ci1AQCAtNjc4OSwxMyArNzI1Nyw2IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFs X2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02Nzg5LDEzICs3MTc4LDYgQEAgcmVhZF9wYXJ0aWFs X2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIHx8IGR3YXJmMl9w ZXJfb2JqZmlsZS0+aGFzX3NlY3Rpb25fYXRfemVybykpCiAgICAgIHBhcnRfZGllLT5oYXNfcGNf aW5mbyA9IDE7CiAgCkBAIC01NzMzLDcgKzYwMDYsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJh IDEwMDY0NAogICAgcmV0dXJuIGluZm9fcHRyOwogIH0KICAKLUBAIC02OTA0LDcgKzczNjUsOCBA QCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAor QEAgLTY5MDQsNyArNzI4Niw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGFydF9kaWUsCiAgICAvKiBJZiB3ZSBmb3VuZCBhIHJlZmVyZW5jZSBhdHRyaWJ1 dGUgYW5kIHRoZSBESUUgaGFzIG5vIG5hbWUsIHRyeQogICAgICAgdG8gZmluZCBhIG5hbWUgaW4g dGhlIHJlZmVycmVkIHRvIERJRS4gICovCiAgCkBAIC01NzQzLDcgKzYwMTYsNyBAQCBpbmRleCA0 NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnNwZWNfZGllOwogIAotQEAgLTgyNDQsMTAgKzg3MDYsMTIgQEAgdmFyX2RlY29kZV9s b2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAg LTgyNDQsMTAgKzg2MjcsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUg b2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24gaXMKICAgICAgIHJlZmVyZW5jZWQsIG9y IGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRoZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAg ICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWluZyB0aGF0IGl0IGlzbid0IHVubGVzcyBw ZXJmb3JtYW5jZQpAQCAtNTc1OCw3ICs2MDMxLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAx MDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgRFdBUkYgaW5mb3JtYXRpb24g ZW50cnksIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZAotQEAgLTgyNjksMjEgKzg3MzMsMjQgQEAgbmV3 X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC04MjY5LDIxICs4NjU0LDI0IEBAIG5ld19zeW1ib2wgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNF Q1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTU3OTAsNyArNjA2Myw3IEBAIGluZGV4IDQ0 NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICAgICAgLyogRGVmYXVsdCBhc3N1bXB0aW9ucy4K ICAgICAgICAgICBVc2UgdGhlIHBhc3NlZCB0eXBlIG9yIGRlY29kZSBpdCBmcm9tIHRoZSBkaWUu ICAqLwotQEAgLTgzODEsNyArODg0OCwxNSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgzODEs NyArODc2OSwxNSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgIGlmIChhdHRyKQogIAkgICAgewog IAkgICAgICB2YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsKQEAgLTU4MDYsNyAr NjA3OSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCSAgICAgIGlmIChhdHRy MiAmJiAoRFdfVU5TTkQgKGF0dHIyKSAhPSAwKSkKICAJCWFkZF9zeW1ib2xfdG9fbGlzdCAoc3lt LCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgICBlbHNlCi1AQCAtODUxMyw3ICs4OTg4LDcgQEAg bmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTEzLDcgKzg5MDksNyBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCBjdS0+bGlzdF9pbl9zY29wZSk7CiAgCSAg YnJlYWs7CiAgCWNhc2UgRFdfVEFHX2VudW1lcmF0b3I6CkBAIC01ODE1LDcgKzYwODgsNyBAQCBp bmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAkgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9jb25zdF92YWx1ZSwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkgICAgewotQEAgLTg1 MzcsNiArOTAxMiwxMSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTg1MzcsNiArODkzMywxMSBA QCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgIFNZTUJPTF9DTEFTUyAoc3ltKSA9IExPQ19UWVBFREVG OwogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgIGJy ZWFrOwpAQCAtNTgyNyw3ICs2MTAwLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQK ICAJZGVmYXVsdDoKICAJICAvKiBOb3QgYSB0YWcgd2UgcmVjb2duaXplLiAgSG9wZWZ1bGx5IHdl IGFyZW4ndCBwcm9jZXNzaW5nCiAgCSAgICAgdHJhc2ggZGF0YSwgYnV0IHNpbmNlIHdlIG11c3Qg c3BlY2lmaWNhbGx5IGlnbm9yZSB0aGluZ3MKLUBAIC04NTUwLDggKzkwMzAsNyBAQCBuZXdfc3lt Ym9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTg1NTAsOCArODk1MSw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg ICAgLyogRm9yIHRoZSBiZW5lZml0IG9mIG9sZCB2ZXJzaW9ucyBvZiBHQ0MsIGNoZWNrIGZvciBh bm9ueW1vdXMKICAJIG5hbWVzcGFjZXMgYmFzZWQgb24gdGhlIGRlbWFuZ2xlZCBuYW1lLiAgKi8K ICAgICAgICBpZiAoIXByb2Nlc3NpbmdfaGFzX25hbWVzcGFjZV9pbmZvCkBAIC01ODM3LDcgKzYx MTAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAljcF9zY2FuX2Zvcl9hbm9u eW1vdXNfbmFtZXNwYWNlcyAoc3ltKTsKICAgICAgfQogICAgcmV0dXJuIChzeW0pOwotQEAgLTg4 MDgsNiArOTI4Nyw5IEBAIHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04ODA4LDYgKzkyMDgsOSBAQCByZWFkX3R5cGVfZGllIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgYnJlYWs7 CiAgICAgIH0KICAKQEAgLTU4NDcsNyArNjEyMCw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEg MTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04ODg5LDEwICs5MzcxLDk3 IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC04ODg5LDEwICs5MjkyLDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICAgICBTbyBpdCBkb2Vz IG5vdCBuZWVkIGEgcHJlZml4LiAgKi8KICAJICByZXR1cm4gIiI7CiAgICAgICAgZGVmYXVsdDoK QEAgLTU5NDYsNyArNjIxOSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgLyog UmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZyBmb3JtZWQgYnkgY29uY2F0ZW5hdGluZyBQ UkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBwcm9wcmlhdGUgc2VwYXJhdG9yLiAgSWYgUFJF RklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5LCB0aGVuCiAgICAgc2ltcGx5IGNvcHkgdGhl IFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVseS4gIElmIE9CUyBpcyBub24tbnVsbCwKLUBA IC04OTQ4LDE0ICs5NTE3LDc1IEBAIHN0YXRpYyBjaGFyICoKK0BAIC04OTQ4LDE0ICs5NDM4LDc1 IEBAIHN0YXRpYyBjaGFyICoKICBkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKQEAgLTU5ODIsNyArNjI1NSwxMSBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAog KwkgICYmIGRpZS0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtKQogKwl7CiArCSAgc3RydWN0IHR5 cGUgKnR5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKLSsKKyAKKy0gIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZSwgY3UpOworLSAgaWYgKGF0dHIg JiYgRFdfU1RSSU5HIChhdHRyKSkKKy0gICAgcmV0dXJuIERXX1NUUklORyAoYXR0cik7CistICBy ZXR1cm4gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKwkgIGNfdHlwZV9wcmludF9hcmdzICh0eXBl LCBidWYsIDAsIGN1LT5sYW5ndWFnZSk7CiArCiArCSAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9qYXZhKQpAQCAtNjAxNCwxMSArNjI5MSw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEg MTAwNjQ0CiArCSAgICBuYW1lID0gY25hbWU7CiArCX0KICsgICAgfQotIAotLSAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7Ci0tICBpZiAoYXR0 ciAmJiBEV19TVFJJTkcgKGF0dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKLS0g IHJldHVybiBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCiArICByZXR1cm4gbmFtZTsKICB9CiAg CkBAIC02MDI3LDcgKzYzMDAsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIAog IHN0YXRpYyBjaGFyICoKICBkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKm5hbWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTEwMTgxLDI2ICsxMDgxMSwzNSBAQCBkd2FyZjJfZ2V0 X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTEwMTgxLDI2ICsx MDczMiwzNSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICph dHRyKQogICAgcmV0dXJuIDA7CiAgfQogIApAQCAtNjA3OCw3ICs2MzUxLDcgQEAgaW5kZXggNDQ1 YmFiOC4uYmUyZGMyYSAxMDA2NDQKICB9CiAgCiAgLyogVEhJU19DVSBoYXMgYSByZWZlcmVuY2Ug dG8gUEVSX0NVLiAgSWYgbmVjZXNzYXJ5LCBsb2FkIHRoZSBuZXcgY29tcGlsYXRpb24KLUBAIC0x MDk5MCw4ICsxMTYyOSw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRl ciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTA5OTAsOCArMTE1NTAsNiBAQCBkd2Fy Zl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAogIHsKICAgIGdkYl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNy b19zb3VyY2VfZmlsZSAqY3VycmVudF9maWxlID0gMDsKQEAgLTYwODcsNyArNjM2MCw3IEBAIGlu ZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxl LT5tYWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTA5OTksMjkgKzExNjM2LDE5 IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVk IGludCBvZmZzZXQsCitAQCAtMTA5OTksMjkgKzExNTU3LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNy b3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAg cmV0dXJuOwogICAgICB9CiAgCkBAIC02MTIyLDcgKzYzOTUsNyBAQCBpbmRleCA0NDViYWI4Li5i ZTJkYzJhIDEwMDY0NAogICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRf MV9ieXRlIChhYmZkLCBtYWNfcHRyKTsKLUBAIC0xMTAzMiw5MiArMTE2NTksNyBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAorQEAgLTExMDMyLDkyICsxMTU4MCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBs aW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVy byBtYWNpbmZvIHR5cGUgaW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAg ICAgIGluZm9ybWF0aW9uLiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTYyMTYsNyArNjQ4OSw3 IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICAgICAgICBjYXNlIERXX01B Q0lORk9fZGVmaW5lOgogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVmOgotQEAgLTExMTMy LDMxICsxMTY3NCwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIg KmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTMyLDMxICsxMTU5NSwxOSBAQCBkd2Fy Zl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAogICAgICAgICAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKICAgICAgICAgICAg ICBpZiAoISBjdXJyZW50X2ZpbGUpCkBAIC02MjU5LDcgKzY1MzIsNyBAQCBpbmRleCA0NDViYWI4 Li5iZTJkYzJhIDEwMDY0NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAg LTExMTcwLDIyICsxMTcwMCw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hl YWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTExNzAsMjIgKzExNjIxLDkgQEAg ZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50 IG9mZnNldCwKICAgICAgICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQs IG1hY19wdHIsICZieXRlc19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3Jl YWQ7CiAgCkBAIC02Mjg1LDcgKzY1NTgsNyBAQCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0 NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMjM5LDcgKzExNzU2 LDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWdu ZWQgaW50IG9mZnNldCwKK0BAIC0xMTIzOSw3ICsxMTY3Nyw3IEBAIGR3YXJmX2RlY29kZV9tYWNy b3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAg ICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC02Mjk0LDcgKzY1NjcsNyBA QCBpbmRleCA0NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICAvKiBDaGVjayBpZiB0aGUg YXR0cmlidXRlJ3MgZm9ybSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEyNzIsNyArMTE3ODks NyBAQCBhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIp CitAQCAtMTEyNzIsNyArMTE3MTAsNyBAQCBhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgCiAgLyogUmV0dXJuIG5vbi16ZXJvIGlmIEFUVFIncyB2 YWx1ZSBmYWxscyBpbiB0aGUgJ2NvbnN0YW50JyBjbGFzcywgb3IKICAgICB6ZXJvIG90aGVyd2lz ZS4gIFdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHlvdSBjYW4gYXBwbHkKQEAgLTYz MDMsNyArNjU3Niw3IEBAIGluZGV4IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgCiAgICAgSG93 ZXZlciwgbm90ZSB0aGF0IGZvciBzb21lIGF0dHJpYnV0ZXMgeW91IG11c3QgY2hlY2sKICAgICBh dHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgYmVmb3JlIHVzaW5nIHRoaXMgdGVzdC4gIERXX0ZP Uk1fZGF0YTQKLUBAIC0xMTI5OSw2ICsxMTgxNiwzNCBAQCBhdHRyX2Zvcm1faXNfY29uc3RhbnQg KHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAtMTEyOTksNiArMTE3MzcsMzQgQEAgYXR0cl9m b3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAgICB9CiAgfQogIApA QCAtNjMzOCw3ICs2NjExLDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICBzdGF0 aWMgdm9pZAogIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAq YXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogIAkJCSAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3Up Ci1AQCAtMTEzMjgsMzUgKzExODczLDI1IEBAIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTExMzI4LDM1 ICsxMTc5NCwyNSBAQCBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgICBTWU1CT0xfQ09NUFVURURfT1BT IChzeW0pID0gJmR3YXJmMl9sb2NsaXN0X2Z1bmNzOwogICAgICAgIFNZTUJPTF9MT0NBVElPTl9C QVRPTiAoc3ltKSA9IGJhdG9uOwogICAgICB9CkBAIC02Mzg5LDcgKzY2NjIsNyBAQCBpbmRleCA0 NDViYWI4Li5iZTJkYzJhIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTExNjQ0LDYgKzEyMTc5 LDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZv aWQgKml0ZW1fcmhzKQorQEAgLTExNjQ0LDYgKzEyMTAwLDMxIEBAIG9mZnNldF9hbmRfdHlwZV9l cSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogICAgcmV0dXJu IG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApAQCAtNjQyMSw3ICs2 Njk0LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICAvKiBTZXQgdGhlIHR5cGUg YXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0 YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLiAgKi8KICAK LUBAIC0xMTY1Miw2ICsxMjIxMiw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTY1Miw2 ICsxMjEzMyw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX29m ZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTY0MzAsNyArNjcwMyw3IEBAIGluZGV4 IDQ0NWJhYjguLmJlMmRjMmEgMTAwNjQ0CiAgICBpZiAoY3UtPnR5cGVfaGFzaCA9PSBOVUxMKQog ICAgICB7CiAgICAgICAgZ2RiX2Fzc2VydCAoY3UtPnBlcl9jdSAhPSBOVUxMKTsKLUBAIC0xMTc5 NCwyMyArMTIzNTYsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCitAQCAtMTE3OTQsMjMgKzEyMjc3LDEzIEBAIHNob3dfZHdhcmYyX2NtZCAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQogICAgY21kX3Nob3dfbGlzdCAoc2hvd19kd2FyZjJfY21kbGlzdCwg ZnJvbV90dHksICIiKTsKICB9CiAgCkBAIC02NDU4LDcgKzY3MzEsNyBAQCBpbmRleCA0NDViYWI4 Li5iZTJkYzJhIDEwMDY0NAogIH0KICAKICAvKiBtdW5tYXAgZGVidWcgc2VjdGlvbnMgZm9yIE9C SkZJTEUsIGlmIG5lY2Vzc2FyeS4gICovCi1AQCAtMTE4MTksMTUgKzEyMzcxLDE1IEBAIHN0YXRp YyB2b2lkCitAQCAtMTE4MTksMTUgKzEyMjkyLDE1IEBAIHN0YXRpYyB2b2lkCiAgZHdhcmYyX3Bl cl9vYmpmaWxlX2NsZWFudXAgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkKQogIHsK ICAgIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmRhdGEgPSBkOwpAQCAtNjQ4Myw3ICs2NzU2 LDcgQEAgaW5kZXggNDQ1YmFiOC4uYmUyZGMyYSAxMDA2NDQKICB9CiAgCiAgdm9pZCBfaW5pdGlh bGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE4MzUsNiArMTIzODcsNyBAQCB2b2lkIF9p bml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKK0BAIC0xMTgzNSw2ICsxMjMwOCw3IEBAIHZv aWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwogIHZvaWQKICBfaW5pdGlhbGl6ZV9k d2FyZjJfcmVhZCAodm9pZCkKICB7CkBAIC04NzMzLDcgKzkwMDYsNyBAQCBpbmRleCA3OWQzM2Zl Li5hZWNkODIwIDEwMDY0NAogICAgIG9uY2UgZm9yIGVhY2gga25vd24gdGhyZWFkLiAgKi8KICB0 eXBlZGVmIGludCAoKnRocmVhZF9jYWxsYmFja19mdW5jKSAoc3RydWN0IHRocmVhZF9pbmZvICos IHZvaWQgKik7CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwot aW5kZXggMmY3N2RjYS4uMDlmMTVkYyAxMDA2NDQKK2luZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAw NjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysrIGIvZ2RiL2dkYnR5cGVzLmMKIEBAIC0zOCw2 ICszOCw5IEBACkBAIC05MzI0LDcgKzk1OTcsNyBAQCBpbmRleCAyZjc3ZGNhLi4wOWYxNWRjIDEw MDY0NAogIC8qIE1ha2UgYSBjb3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNlcHQgdGhhdCB0aGUg cG9pbnRlciAmIHJlZmVyZW5jZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2VydmVkLgogICAgIAot QEAgLTI5NzMsNiArMzIyNywyMTkgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKK0BAIC0yOTczLDYgKzMyMjcsMjE3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUg KnR5cGUpCiAgICByZXR1cm4gbmV3X3R5cGU7CiAgfQogIApAQCAtOTQ4NSwxMSArOTc1OCwyNiBA QCBpbmRleCAyZjc3ZGNhLi4wOWYxNWRjIDEwMDY0NAogKyAgbWFpbl90eXBlX2NyYXdsICh0eXBl LCB0eXBlX21hcmtfdXNlZF9jcmF3bCwgTlVMTCk7CiArfQogKwotKy8qIEEgdHJhdmVyc2UgY2Fs bGJhY2sgZm9yIHR5cGVfZGlzY2FyZGFibGVfdGFibGUgd2hpY2ggcmVtb3ZlcyBhbnkKLSsgICB0 eXBlX2Rpc2NhcmRhYmxlIHdob3NlIHJlZmVyZW5jZSBjb3VudCBpcyBub3cgemVybyAodW51c2Vk IGxpbmspLiAgKi8KKysvKiBJbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgVFlQRS4g ICovCiArCi0rc3RhdGljIGludAotK3R5cGVfZGlzY2FyZGFibGVfcmVtb3ZlICh2b2lkICoqc2xv dCwgdm9pZCAqdW51c2VkKQorK3ZvaWQKKyt0eXBlX2luY3JlZiAoc3RydWN0IHR5cGUgKnR5cGUp CisreworK30KKysKKysvKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgVFlQRS4g IElmIFRZUEUgaGFzIG5vIG1vcmUKKysgICByZWZlcmVuY2VzLCBkZWxldGUgaXQuICAqLworKwor K3ZvaWQKKyt0eXBlX2RlY3JlZiAoc3RydWN0IHR5cGUgKnR5cGUpCisreworK30KKysKKysvKiBB IHRyYXZlcnNlIGNhbGxiYWNrIGZvciB0eXBlX2Rpc2NhcmRhYmxlX3RhYmxlIHdoaWNoIHJlbW92 ZXMgYW55CisrICAgdHlwZV9kaXNjYXJkYWJsZSB3aG9zZSByZWZlcmVuY2UgY291bnQgaXMgbm93 IHplcm8gKHVudXNlZCBsaW5rKS4gICovCisrCisrc3RhdGljIGludAorK3R5cGVfZGlzY2FyZGFi bGVfcmVtb3ZlICh2b2lkICoqc2xvdCwgdm9pZCAqdW51c2VkKQogK3sKICsgIHN0cnVjdCB0eXBl ICp0eXBlID0gKnNsb3Q7CiArCkBAIC05NTI0LDI3ICs5ODEyLDEwIEBAIGluZGV4IDJmNzdkY2Eu LjA5ZjE1ZGMgMTAwNjQ0CiArCiArICBodGFiX3RyYXZlcnNlICh0eXBlX2Rpc2NhcmRhYmxlX3Rh YmxlLCB0eXBlX2Rpc2NhcmRhYmxlX3JlbW92ZSwgTlVMTCk7CiArfQotKwotKy8qIEluY3JlbWVu dCB0aGUgcmVmZXJlbmNlIGNvdW50IGZvciBUWVBFLiAgKi8KLSsvKiBXZSdsbCBiZSByZXBsYWNp bmcgdGhpcyB3aXRoIHR5cGUgR0Mgc29vbi4gICovCi0rCi0rdm9pZAotK3R5cGVfaW5jcmVmIChz dHJ1Y3QgdHlwZSAqdHlwZSkKLSt7Ci0rfQotKwotKy8qIERlY3JlbWVudCB0aGUgcmVmZXJlbmNl IGNvdW50IGZvciBUWVBFLiAgSWYgVFlQRSBoYXMgbm8gbW9yZQotKyAgIHJlZmVyZW5jZXMsIGRl bGV0ZSBpdC4gICovCi0rLyogV2UnbGwgYmUgcmVwbGFjaW5nIHRoaXMgd2l0aCB0eXBlIEdDIHNv b24uICAqLwotKwotK3ZvaWQKLSt0eXBlX2RlY3JlZiAoc3RydWN0IHR5cGUgKnR5cGUpCi0rewot K30KICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGluaXRpYWxpemUgYXJjaGl0ZWN0dXJlLXNw ZWNpZmljIHR5cGVzLiAgKi8KICAKLUBAIC0zNDYzLDYgKzM5MzAsMTEgQEAgdm9pZAorQEAgLTM0 NjMsNiArMzkyOCwxMSBAQCB2b2lkCiAgX2luaXRpYWxpemVfZ2RidHlwZXMgKHZvaWQpCiAgewog ICAgZ2RidHlwZXNfZGF0YSA9IGdkYmFyY2hfZGF0YV9yZWdpc3Rlcl9wb3N0X2luaXQgKGdkYnR5 cGVzX3Bvc3RfaW5pdCk7CkBAIC0xMDE5NiwxMCArMTA0NjcsMTAgQEAgaW5kZXggYWFjODJlOS4u NjI2MjkyYyAxMDA2NDQKICAgIFRZUEVfQ1BMVVNfU1BFQ0lGSUMgKHQpID0gKHN0cnVjdCBjcGx1 c19zdHJ1Y3RfdHlwZSAqKSAmY3BsdXNfc3RydWN0X2RlZmF1bHQ7CiAgICByZXR1cm4gdDsKIGRp ZmYgLS1naXQgYS9nZGIvbWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5k ZXggMGNmMDNkOS4uODk5MzZkMiAxMDA2NDQKK2luZGV4IDBjZjAzZDkuLjE5MTNjNDkgMTAwNjQ0 CiAtLS0gYS9nZGIvbWkvbWktY21kLXZhci5jCiArKysgYi9nZGIvbWkvbWktY21kLXZhci5jCi1A QCAtMzY5LDI4ICszNjksMzkgQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMzY5LDI0ICszNjksMzUgQEAgbWlfY21k X3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2Mp CiAgICBzdHJ1Y3QgdmFyb2JqICp2YXI7ICAKICAgIFZFQyh2YXJvYmpfcCkgKmNoaWxkcmVuOwog ICAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CkBAIC0xMDIyMiwyOSArMTA0OTMsMjYgQEAgaW5kZXgg MGNmMDNkOS4uODk5MzZkMiAxMDA2NDQKICAgIGVsc2UKICAgICAgdmFyID0gdmFyb2JqX2dldF9o YW5kbGUgKGFyZ3ZbMV0pOwogIAorLSAgY2hpbGRyZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJlbiAo dmFyKTsKICsgIGlmIChhcmdjID4gMikKICsgICAgewogKyAgICAgIGZyb20gPSBhdG9pIChhcmd2 W2FyZ2MgLSAyXSk7CiArICAgICAgdG8gPSBhdG9pIChhcmd2W2FyZ2MgLSAxXSk7Ci0rICAgICAg dmFyb2JqX3NldF9jaGlsZF9yYW5nZSAodmFyLCBmcm9tLCB0byk7CisrICAgIH0KKysgIGVsc2UK KysgICAgeworKyAgICAgIGZyb20gPSAtMTsKKysgICAgICB0byA9IC0xOwogKyAgICB9CiArCi0g ICBjaGlsZHJlbiA9IHZhcm9ial9saXN0X2NoaWxkcmVuICh2YXIpOworKyAgY2hpbGRyZW4gPSB2 YXJvYmpfbGlzdF9jaGlsZHJlbiAodmFyLCAmZnJvbSwgJnRvKTsKICAgIHVpX291dF9maWVsZF9p bnQgKHVpb3V0LCAibnVtY2hpbGQiLCBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pKTsK IC0gIGlmIChhcmdjID09IDIpCiArICBpZiAoYXJnYyA9PSAyIHx8IGFyZ2MgPT0gNCkKICAgICAg cHJpbnRfdmFsdWVzID0gbWlfcGFyc2VfdmFsdWVzX29wdGlvbiAoYXJndlswXSk7CiAgICBlbHNl CiAgICAgIHByaW50X3ZhbHVlcyA9IFBSSU5UX05PX1ZBTFVFUzsKLSAKLSsgIC8qIFJlLWZldGNo IHRoZSBjaGlsZCByYW5nZSwgYmVjYXVzZSB2YXJvYmpfZ2V0X2NoaWxkX3JhbmdlIGNvbXB1dGVz Ci0rICAgICB0aGUgcmVhbCBzdGFydCBhbmQgZW5kIGluZGljZXMgZm9yIHVzLiAgKi8KLSsgIHZh cm9ial9nZXRfY2hpbGRfcmFuZ2UgKHZhciwgY2hpbGRyZW4sICZmcm9tLCAmdG8pOwotKwotICAg ZGlzcGxheV9oaW50ID0gdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHZhcik7Ci0gICBpZiAoZGlz cGxheV9oaW50KQotICAgICB7Ci1AQCAtMzk4LDIxICs0MDksMjkgQEAgbWlfY21kX3Zhcl9saXN0 X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMzk4 LDIxICs0MDksMjggQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBj aGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgICAgeGZyZWUgKGRpc3BsYXlfaGludCk7CiAgICAg IH0KICAKQEAgLTEwMjgyLDEyICsxMDU1MCwxMSBAQCBpbmRleCAwY2YwM2Q5Li44OTkzNmQyIDEw MDY0NAogICAgICB9CiAtICBkb19jbGVhbnVwcyAoY2xlYW51cF9jaGlsZHJlbik7CiArCi0rICB1 aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwKLSsJCSAgICBWRUNfbGVuZ3RoICh2 YXJvYmpfcCwgY2hpbGRyZW4pID4gdG8pOworKyAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJo YXNfbW9yZSIsIHZhcm9ial9oYXNfbW9yZSAodmFyLCB0bykpOwogIH0KICAKICB2b2lkCi1AQCAt NjQ0LDcgKzY2Myw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoq YXJndiwgaW50IGFyZ2MpCitAQCAtNjQ0LDcgKzY2Miw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChj aGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgIH0KICAgIGVsc2UKICAg ICAgewpAQCAtMTAyOTUsMzcgKzEwNTYyLDYzIEBAIGluZGV4IDBjZjAzZDkuLjg5OTM2ZDIgMTAw NjQ0CiAgICAgICAgc3RydWN0IHZhcm9iaiAqdmFyID0gdmFyb2JqX2dldF9oYW5kbGUgKG5hbWUp OwogIAogICAgICAgIHZhcm9ial91cGRhdGVfb25lICh2YXIsIHByaW50X3ZhbHVlcywgMSAvKiBl eHBsaWNpdCAqLyk7Ci1AQCAtNzE0LDE0ICs3MzIsMTcgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0 cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorQEAgLTY5 OSwxMSArNzE2LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVu dW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKKyAJfQorIAorICAgICAgIGlmIChyLT50eXBl X2NoYW5nZWQpCistCXsKKy0gICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJu ZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7CistICAgICAgICAgIHVpX291 dF9maWVsZF9pbnQgKHVpb3V0LCAibmV3X251bV9jaGlsZHJlbiIsIAorLQkJCSAgICB2YXJvYmpf Z2V0X251bV9jaGlsZHJlbiAoci0+dmFyb2JqKSk7CistCX0KKysJdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7CisrCisr ICAgICAgaWYgKHItPnR5cGVfY2hhbmdlZCB8fCByLT5jaGlsZHJlbl9jaGFuZ2VkKQorKwl1aV9v dXRfZmllbGRfaW50ICh1aW91dCwgIm5ld19udW1fY2hpbGRyZW4iLCAKKysJCQkgIHZhcm9ial9n ZXRfbnVtX2NoaWxkcmVuIChyLT52YXJvYmopKTsKKyAKKyAgICAgICBkaXNwbGF5X2hpbnQgPSB2 YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAodmFyKTsKKyAgICAgICBpZiAoZGlzcGxheV9oaW50KQor QEAgLTcxNCwyNiArNzMxLDU4IEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2 YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKICAKICAgICAgICBpZiAoci0+Y2hp bGRyZW5fY2hhbmdlZCkKICAJewogLQkgIGludCBpeDsKLSsJICBpbnQgaXgsIGZyb20sIHRvOwot IAkgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotIAkgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0K LSAJICAgIG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGRy ZW4iKTsKKy0JICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKKy0JICBzdHJ1Y3QgY2xlYW51cCAqY2xl YW51cCA9CistCSAgICBtYWtlX2NsZWFudXBfdWlfb3V0X2xpc3RfYmVnaW5fZW5kICh1aW91dCwg ImNoaWxkcmVuIik7CisrCSAgaW50IGZyb20sIHRvOworKwkgIHZhcm9ial9nZXRfY2hpbGRfcmFu Z2UgKHItPnZhcm9iaiwgJmZyb20sICZ0byk7CisrCSAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQs ICJoYXNfbW9yZSIsCisrCQkJICAgIHZhcm9ial9oYXNfbW9yZSAoci0+dmFyb2JqLCB0bykpOwor Kwl9CiAgCi0gCSAgVkVDICh2YXJvYmpfcCkqIGNoaWxkcmVuID0gdmFyb2JqX2xpc3RfY2hpbGRy ZW4gKHItPnZhcm9iaik7Ci0rCSAgdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoci0+dmFyb2JqLCBj aGlsZHJlbiwgJmZyb20sICZ0byk7CistCSAgVkVDICh2YXJvYmpfcCkqIGNoaWxkcmVuID0gdmFy b2JqX2xpc3RfY2hpbGRyZW4gKHItPnZhcm9iaik7CisrICAgICAgaWYgKHItPm5ldykKKysJewor KwkgIGludCBqOworKwkgIHZhcm9ial9wIGNoaWxkOworKwkgIHN0cnVjdCBjbGVhbnVwICpjbGVh bnVwOwogIAogLQkgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAodmFyb2JqX3AsIGNoaWxkcmVu LCBpeCwgY2hpbGQpOyArK2l4KQotKwkgIGZvciAoaXggPSBmcm9tOwotKwkgICAgICAgaXggPCB0 byAmJiBWRUNfaXRlcmF0ZSAodmFyb2JqX3AsIGNoaWxkcmVuLCBpeCwgY2hpbGQpOwotKwkgICAg ICAgKytpeCkKKysJICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX3VpX291dF9saXN0X2JlZ2luX2Vu ZCAodWlvdXQsICJuZXdfY2hpbGRyZW4iKTsKKysJICBmb3IgKGogPSAwOyBWRUNfaXRlcmF0ZSAo dmFyb2JqX3AsIHItPm5ldywgaiwgY2hpbGQpOyArK2opCiAgCSAgICB7CiAgCSAgICAgIHN0cnVj dCBjbGVhbnVwICpjbGVhbnVwX2NoaWxkOwogIAkgICAgICBjbGVhbnVwX2NoaWxkID0gbWFrZV9j bGVhbnVwX3VpX291dF90dXBsZV9iZWdpbl9lbmQgKHVpb3V0LCBOVUxMKTsKLUBAIC03MzAsNiAr NzUxLDkgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmlu dF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorLQkgICAgICBwcmludF92YXJvYmogKGNoaWxkLCBwcmlu dF92YWx1ZXMsIDEgLyogcHJpbnQgZXhwcmVzc2lvbiAqLyk7CisrCSAgICAgIHByaW50X3Zhcm9i aiAoY2hpbGQsIHByaW50X3ZhbHVlcywgMSAvKiBwcmludF9leHByZXNzaW9uICovKTsKKyAJICAg ICAgZG9fY2xlYW51cHMgKGNsZWFudXBfY2hpbGQpOwogIAkgICAgfQogIAogIAkgIGRvX2NsZWFu dXBzIChjbGVhbnVwKTsKLSsKLSsJICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3Jl IiwKLSsJCQkgICAgVkVDX2xlbmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKSA+IHRvKTsKKysJICBW RUNfZnJlZSAodmFyb2JqX3AsIHItPm5ldyk7CisrCSAgci0+bmV3ID0gTlVMTDsJLyogUGFyYW5v aWEuICAqLwogIAl9Ci0gICAKKy0gIAorKwogICAgICAgIGlmIChtaV92ZXJzaW9uICh1aW91dCkg PiAxKQotQEAgLTczNywzICs3NjEsMTEgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJv YmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorIAlkb19jbGVhbnVwcyAo Y2xlYW51cCk7CiAgICAgIH0KICAgIFZFQ19mcmVlICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgY2hh bmdlcyk7CiAgfQpAQCAtMTAzMzcsMTEgKzEwNjMwLDI3IEBAIGluZGV4IDBjZjAzZDkuLjg5OTM2 ZDIgMTAwNjQ0CiArICAgIGVycm9yIChfKCJtaV9jbWRfZW5hYmxlX3ByZXR0eV9wcmludGluZzog bm8gYXJndW1lbnRzIGFsbG93ZWQiKSk7CiArICB2YXJvYmpfZW5hYmxlX3ByZXR0eV9wcmludGlu ZyAoKTsKICt9CisrCisrdm9pZAorK21pX2NtZF92YXJfc2V0X3VwZGF0ZV9yYW5nZSAoY2hhciAq Y29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorK3sKKysgIHN0cnVjdCB2YXJvYmogKnZh cjsKKysgIGludCBmcm9tLCB0bzsKKysKKysgIGlmIChhcmdjICE9IDMpCisrICAgIGVycm9yIChf KCJtaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2U6IFVzYWdlOiBWQVJPQkogRlJPTSBUTyIpKTsK KysgIAorKyAgdmFyID0gdmFyb2JqX2dldF9oYW5kbGUgKGFyZ3ZbMF0pOworKyAgZnJvbSA9IGF0 b2kgKGFyZ3ZbMV0pOworKyAgdG8gPSBhdG9pIChhcmd2WzJdKTsKKysKKysgIHZhcm9ial9zZXRf Y2hpbGRfcmFuZ2UgKHZhciwgZnJvbSwgdG8pOworK30KIGRpZmYgLS1naXQgYS9nZGIvbWkvbWkt Y21kcy5jIGIvZ2RiL21pL21pLWNtZHMuYwotaW5kZXggNDkxMTE0Ni4uNzcyNTY2ZSAxMDA2NDQK K2luZGV4IGRkM2Q4MDMuLjhiYTA4NmMgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWktY21kcy5jCiAr KysgYi9nZGIvbWkvbWktY21kcy5jCi1AQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgbWlfY21kIG1p X2NtZHNbXSA9CitAQCAtNTIsNiArNTIsNyBAQCBzdHJ1Y3QgbWlfY21kIG1pX2NtZHNbXSA9CiAg ICB7ICJkYXRhLXdyaXRlLW1lbW9yeSIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfZGF0YV93cml0ZV9t ZW1vcnl9LAogICAgeyAiZGF0YS13cml0ZS1yZWdpc3Rlci12YWx1ZXMiLCB7IE5VTEwsIDAgfSwg bWlfY21kX2RhdGFfd3JpdGVfcmVnaXN0ZXJfdmFsdWVzfSwKICAgIHsgImVuYWJsZS10aW1pbmdz IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbmFibGVfdGltaW5nc30sCkBAIC0xMDM0OSwxNSArMTA2 NTgsMjQgQEAgaW5kZXggNDkxMTE0Ni4uNzcyNTY2ZSAxMDA2NDQKICAgIHsgImVudmlyb25tZW50 LWNkIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfY2R9LAogICAgeyAiZW52aXJvbm1lbnQtZGly ZWN0b3J5IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfZGlyfSwKICAgIHsgImVudmlyb25tZW50 LXBhdGgiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2Vudl9wYXRofSwKK0BAIC0xMTIsNiArMTEzLDcg QEAgc3RydWN0IG1pX2NtZCBtaV9jbWRzW10gPQorICAgeyAidmFyLWxpc3QtY2hpbGRyZW4iLCB7 IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVufSwKKyAgIHsgInZhci1zZXQtZm9y bWF0IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zvcm1hdH0sCisgICB7ICJ2YXItc2V0 LWZyb3plbiIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3NldF9mcm96ZW59LAorKyAgeyAidmFy LXNldC11cGRhdGUtcmFuZ2UiLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9zZXRfdXBkYXRlX3Jh bmdlIH0sCisgICB7ICJ2YXItc2V0LXZpc3VhbGl6ZXIiLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zh cl9zZXRfdmlzdWFsaXplcn0sCisgICB7ICJ2YXItc2hvdy1hdHRyaWJ1dGVzIiwgeyBOVUxMLCAw IH0sIG1pX2NtZF92YXJfc2hvd19hdHRyaWJ1dGVzfSwKKyAgIHsgInZhci1zaG93LWZvcm1hdCIs IHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nob3dfZm9ybWF0fSwKIGRpZmYgLS1naXQgYS9nZGIv bWkvbWktY21kcy5oIGIvZ2RiL21pL21pLWNtZHMuaAotaW5kZXggYWZjYmExZS4uNzk3OThlZiAx MDA2NDQKK2luZGV4IDg1YWQwYzQuLmRmYWI0MTEgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWktY21k cy5oCiArKysgYi9nZGIvbWkvbWktY21kcy5oCi1AQCAtOTgsNiArOTgsNyBAQCBleHRlcm4gbWlf Y21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXplcjsKK0BAIC05OSw2ICs5OSw4 IEBAIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF92aXN1YWxpemVyOwog IGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3Nob3dfYXR0cmlidXRlczsKICBl eHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zaG93X2Zvcm1hdDsKICBleHRlcm4g bWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl91cGRhdGU7CiArZXh0ZXJuIG1pX2NtZF9hcmd2 X2Z0eXBlIG1pX2NtZF9lbmFibGVfcHJldHR5X3ByaW50aW5nOworK2V4dGVybiBtaV9jbWRfYXJn dl9mdHlwZSBtaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2U7CiAgCiAgLyogRGVzY3JpcHRpb24g b2YgYSBzaW5nbGUgY29tbWFuZC4gKi8KICAKQEAgLTEwMzk3LDIyICsxMDcxNSwzMSBAQCBpbmRl eCBhODQwMDNmLi45MjRjMWM1IDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMsCS8q IHN5bV9vZmZzZXRzOiBkdW1teSBGSVhNRSB0aWwgaW1wbGVtIHN5bSByZWxvYyAqLwogICAgZGVm YXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBzZWdtZW50IGluZm9y bWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuYyBiL2dkYi9vYmpmaWxlcy5j Ci1pbmRleCBjOTgzYjExLi4yYWMxYmQxIDEwMDY0NAoraW5kZXggNDNjNTE3NC4uNWFkNGY4ZCAx MDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9nZGIvb2JqZmlsZXMuYwotQEAgLTQz Myw5ICs0MzMsOCBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAg LTQzMiwxMCArNDMyLDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkK KyAJIGRvZXNuJ3QgcmVmZXJlbmNlIGl0LiAgKi8KICAgICAgICBvYmpmaWxlLT5zZXBhcmF0ZV9k ZWJ1Z19vYmpmaWxlX2JhY2tsaW5rLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID0gTlVMTDsKICAg ICAgfQotICAgCistICAKIC0gIC8qIFJlbW92ZSBhbnkgcmVmZXJlbmNlcyB0byB0aGlzIG9iamZp bGUgaW4gdGhlIGdsb2JhbCB2YWx1ZQogLSAgICAgbGlzdHMuICAqLwogLSAgcHJlc2VydmVfdmFs dWVzIChvYmpmaWxlKTsKKysKICsgIC8qIFJlbW92ZSBhbnkgcmVmZXJlbmNlcyB0byB0aGlzIG9i amZpbGUgaW4gdGhlIGdsb2JhbCB2YWx1ZSBsaXN0cy4gICovCiArICBvYnNlcnZlcl9ub3RpZnlf b2JqZmlsZV91bmxvYWRpbmcgKG9iamZpbGUpOwogIAogICAgLyogRmlyc3QgZG8gYW55IHN5bWJv bCBmaWxlIHNwZWNpZmljIGFjdGlvbnMgcmVxdWlyZWQgd2hlbiB3ZSBhcmUKICAgICAgIGZpbmlz aGVkIHdpdGggYSBwYXJ0aWN1bGFyIHN5bWJvbCBmaWxlLiAgTm90ZSB0aGF0IGlmIHRoZSBvYmpm aWxlCi1AQCAtNDczLDYgKzQ3Miw5IEBAIGZyZWVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCitAQCAtNDU4LDEyICs0NTcsMTQgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSkKKyAKKyAgIHVubGlua19vYmpmaWxlIChvYmpmaWxlKTsKKyAKKy0gIC8qIElm IHdlIGFyZSBnb2luZyB0byBmcmVlIHRoZSBydW50aW1lIGNvbW1vbiBvYmpmaWxlLCBtYXJrIGl0 CistICAgICBhcyB1bmFsbG9jYXRlZC4gICovCisrICAvKiBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJl ZSBhbnkgZXhpc3RpbmcgT0JKRklMRSByZWZlcmVuY2UsIGNsZWFyIGl0LiAgKi8KKyAKICAgIGlm IChvYmpmaWxlID09IHJ0X2NvbW1vbl9vYmpmaWxlKQogICAgICBydF9jb21tb25fb2JqZmlsZSA9 IE5VTEw7CiAgCkBAIC0xMDQyMiw3ICsxMDc0OSw3IEBAIGluZGV4IGM5ODNiMTEuLjJhYzFiZDEg MTAwNjQ0CiAgICAvKiBCZWZvcmUgdGhlIHN5bWJvbCB0YWJsZSBjb2RlIHdhcyByZWRvbmUgdG8g bWFrZSBpdCBlYXNpZXIgdG8KICAgICAgIHNlbGVjdGl2ZWx5IGxvYWQgYW5kIHJlbW92ZSBpbmZv cm1hdGlvbiBwYXJ0aWN1bGFyIHRvIGEgc3BlY2lmaWMKICAgICAgIGxpbmthZ2UgdW5pdCwgZ2Ri IHVzZWQgdG8gZG8gdGhlc2UgdGhpbmdzIHdoZW5ldmVyIHRoZSBtb25vbGl0aGljCi1AQCAtNzIz LDYgKzcyNSwyMCBAQCBoYXZlX3BhcnRpYWxfc3ltYm9scyAodm9pZCkKK0BAIC03MTQsNiArNzE1 LDIwIEBAIGhhdmVfcGFydGlhbF9zeW1ib2xzICh2b2lkKQogIAlyZXR1cm4gMTsKICAgICAgICB9 CiAgICB9CkBAIC0xMDQ0MywzMCArMTA3NzAsOCBAQCBpbmRleCBjOTgzYjExLi4yYWMxYmQxIDEw MDY0NAogICAgcmV0dXJuIDA7CiAgfQogIAotQEAgLTEwMjAsMyArMTAzNiwyMSBAQCBvYmpmaWxl c19jaGFuZ2VkICh2b2lkKQotIHsKLSAgIG9iamZpbGVzX2NoYW5nZWRfcCA9IDE7ICAvKiBSZWJ1 aWxkIHNlY3Rpb24gbWFwIG5leHQgdGltZSB3ZSBuZWVkIGl0LiAgKi8KLSB9Ci0rCi0rLyogUmV0 dXJuIG5vbi16ZXJvIGlmIEEgYW5kIEIgcG9pbnQgdG8gdGhlIHNhbWUgT0JKRklMRSwgaWdub3Jp bmcgYW55IGJpbmFyeQotKyAgIHZzLiBkZWJ1Z2luZm8gdmFyaWFudHMgb2YgdGhlIHBvaW50ZXJz LiAgSWYgZWl0aGVyIEEgb3IgQiBpcyBOVUxMIHJldHVybgotKyAgIHplcm8gYXMgbm90IGEgbWF0 Y2guICAqLwotKwotK2ludAotK21hdGNoaW5nX29iamZpbGVzIChzdHJ1Y3Qgb2JqZmlsZSAqYSwg c3RydWN0IG9iamZpbGUgKmIpCi0rewotKyAgaWYgKGEgPT0gTlVMTCB8fCBiID09IE5VTEwpCi0r ICAgIHJldHVybiAwOwotKwotKyAgaWYgKGEtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xp bmspCi0rICAgIGEgPSBhLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rOwotKyAgaWYg KGItPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmspCi0rICAgIGIgPSBiLT5zZXBhcmF0 ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rOwotKwotKyAgcmV0dXJuIGEgPT0gYjsKLSt9CiBkaWZm IC0tZ2l0IGEvZ2RiL29iamZpbGVzLmggYi9nZGIvb2JqZmlsZXMuaAotaW5kZXggMTg1NzI2MC4u ZTQyMTIzMiAxMDA2NDQKK2luZGV4IGFlY2Y4ZDguLjlhN2Q2MzUgMTAwNjQ0CiAtLS0gYS9nZGIv b2JqZmlsZXMuaAogKysrIGIvZ2RiL29iamZpbGVzLmgKIEBAIC0yMTIsNiArMjEyLDExIEBAIHN0 cnVjdCBvYmpmaWxlCkBAIC0xMDQ4MSw5ICsxMDc4Niw5IEBAIGluZGV4IDE4NTcyNjAuLmU0MjEy MzIgMTAwNjQ0CiAgICAgIC8qIE1hcCBhZGRyZXNzZXMgdG8gdGhlIGVudHJpZXMgb2YgUFNZTVRB QlMuICBJdCB3b3VsZCBiZSBtb3JlIGVmZmljaWVudCB0bwogICAgICAgICBoYXZlIGEgbWFwIHBl ciB0aGUgd2hvbGUgcHJvY2VzcyBidXQgQUREUk1BUCBjYW5ub3Qgc2VsZWN0aXZlbHkgcmVtb3Zl CiAgICAgICAgIGl0cyBpdGVtcyBkdXJpbmcgRlJFRV9PQkpGSUxFLiAgVGhpcyBtYXBwaW5nIGlz IGFscmVhZHkgcHJlc2VudCBldmVuIGZvcgotQEAgLTQyMCw2ICs0MjUsMTUgQEAgc3RydWN0IG9i amZpbGUKLSAjZGVmaW5lIE9CSkZfS0VFUEJGRAkoMSA8PCA0KQkvKiBEbyBub3QgZGVsZXRlIGJm ZCAqLworQEAgLTQxNCw2ICs0MTksMTUgQEAgc3RydWN0IG9iamZpbGUKICAKKyAjZGVmaW5lIE9C SkZfVVNFUkxPQURFRAkoMSA8PCAzKQkvKiBVc2VyIGxvYWRlZCAqLwogIAogKy8qIFNldCBpZiB3 ZSBoYXZlIHRyaWVkIHRvIHJlYWQgcGFydGlhbCBzeW10YWJzIGZvciB0aGlzIG9iamZpbGUuCiAr ICAgVGhpcyBpcyB1c2VkIHRvIGFsbG93IGxhenkgcmVhZGluZyBvZiBwYXJ0aWFsIHN5bXRhYnMu ICAqLwpAQCAtMTA0OTcsMTYgKzEwODAyLDcgQEAgaW5kZXggMTg1NzI2MC4uZTQyMTIzMiAxMDA2 NDQKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCB0aGUgbWFpbiBzeW1ib2wgdGFibGUgd2FzIGxv YWRlZCBmcm9tIChlLmcuIHRoZQogICAgIGFyZ3VtZW50IHRvIHRoZSAic3ltYm9sLWZpbGUiIG9y ICJmaWxlIiBjb21tYW5kKS4gICovCiAgCi1AQCAtNDk5LDYgKzUxMyw4IEBAIGV4dGVybiBzdHJ1 Y3Qgb2JqX3NlY3Rpb24gKmZpbmRfcGNfc2VjdGlvbiAoQ09SRV9BRERSIHBjKTsKLSAKLSBleHRl cm4gaW50IGluX3BsdF9zZWN0aW9uIChDT1JFX0FERFIsIGNoYXIgKik7Ci0gCi0rZXh0ZXJuIGlu dCBtYXRjaGluZ19vYmpmaWxlcyAoc3RydWN0IG9iamZpbGUgKmEsIHN0cnVjdCBvYmpmaWxlICpi KTsKLSsKLSAvKiBLZWVwIGEgcmVnaXN0cnkgb2YgcGVyLW9iamZpbGUgZGF0YS1wb2ludGVycyBy ZXF1aXJlZCBieSBvdGhlciBHREIKLSAgICBtb2R1bGVzLiAgKi8KLSAKLUBAIC01NTgsNiArNTc0 LDEzIEBAIGV4dGVybiB2b2lkICpvYmpmaWxlX2RhdGEgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTU1NCw2ICs1NjgsMTMgQEAgZXh0ZXJuIHZvaWQgZ2RiX2JmZF91bnJlZiAoc3RydWN0 IGJmZCAqYWJmZCk7CiAgICBBTExfT0JKRklMRVMgKG9iamZpbGUpCSBcCiAgICAgIEFMTF9PQkpG SUxFX1BTWU1UQUJTIChvYmpmaWxlLCBwKQogIApAQCAtMTY0MDgsMjcgKzE2NzA0LDI3IEBAIGlu ZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0CiArICByZXR1cm4gMTsKICt9CiBkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9weXRob24tdmFsdWUuYyBiL2dkYi9weXRob24vcHl0aG9uLXZhbHVlLmMK LWluZGV4IGRkM2M5MTkuLmZiOWRhYjIgMTAwNjQ0CitpbmRleCBkZDNjOTE5Li5kYzc2NjkyIDEw MDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tdmFsdWUuYwogKysrIGIvZ2RiL3B5dGhvbi9w eXRob24tdmFsdWUuYwotQEAgLTI1LDYgKzI1LDcgQEAKK0BAIC0yNSwxNSArMjUsNyBAQAogICNp bmNsdWRlICJsYW5ndWFnZS5oIgogICNpbmNsdWRlICJkZnAuaCIKICAjaW5jbHVkZSAidmFscHJp bnQuaCIKLSsjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKLSAKLSAvKiBMaXN0IG9mIGFsbCB2YWx1ZXMg d2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5dGhvbi4gSXQgaXMKLSAgICBtYWludGFp bmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRpc2NhcmRlZCwgcHJlc2VydmVfdmFsdWVz Ci1AQCAtMzMsNyArMzQsNyBAQAotICAgIGdlbmVyaWMgY29kZS4gICovCi0gLyogVGhpcyB2YXJp YWJsZSBpcyB1bm5lY2Vzc2FyaWx5IGluaXRpYWxpemVkIHRvIE5VTEwgaW4gb3JkZXIgdG8gCi0g ICAgd29yayBhcm91bmQgYSBsaW5rZXIgYnVnIG9uIE1hY09TLiAgKi8KKy0KKy0vKiBMaXN0IG9m IGFsbCB2YWx1ZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5dGhvbi4gSXQgaXMK Ky0gICBtYWludGFpbmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRpc2NhcmRlZCwgcHJl c2VydmVfdmFsdWVzCistICAgY2FuIGNvcHkgdGhlIHZhbHVlcycgdHlwZXMgaWYgbmVlZGVkLiAg VGhpcyBpcyBkZWNsYXJlZAorLSAgIHVuY29uZGl0aW9uYWxseSB0byByZWR1Y2UgdGhlIG51bWJl ciBvZiB1c2VzIG9mIEhBVkVfUFlUSE9OIGluIHRoZQorLSAgIGdlbmVyaWMgY29kZS4gICovCist LyogVGhpcyB2YXJpYWJsZSBpcyB1bm5lY2Vzc2FyaWx5IGluaXRpYWxpemVkIHRvIE5VTEwgaW4g b3JkZXIgdG8gCistICAgd29yayBhcm91bmQgYSBsaW5rZXIgYnVnIG9uIE1hY09TLiAgKi8KIC1z dHJ1Y3QgdmFsdWUgKnZhbHVlc19pbl9weXRob24gPSBOVUxMOwotK3N0YXRpYyBzdHJ1Y3QgdmFs dWVfb2JqZWN0ICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKKysjaW5jbHVkZSAib2JzZXJ2ZXIu aCIKICAKICAjaWZkZWYgSEFWRV9QWVRIT04KICAKLUBAIC01MiwxNyArNTMsMjMgQEAgc3RydWN0 IHZhbHVlICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKK0BAIC01MiwyNiArNDQsNDMgQEAgc3Ry dWN0IHZhbHVlICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKICAvKiBQeXRob24ncyBsb25nIHR5 cGUgY29ycmVzcG9uZHMgdG8gQydzIGxvbmcgbG9uZyB0eXBlLiAgKi8KICAjZGVmaW5lIGJ1aWx0 aW5fdHlwZV9weWxvbmcgYnVpbHRpbl90eXBlIChweXRob25fZ2RiYXJjaCktPmJ1aWx0aW5fbG9u Z19sb25nCiAgCkBAIC0xNjQ0NSw2NyArMTY3NDEsMTAwIEBAIGluZGV4IGRkM2M5MTkuLmZiOWRh YjIgMTAwNjQ0CiAtdHlwZWRlZiBzdHJ1Y3QgewogK3R5cGVkZWYgc3RydWN0IHZhbHVlX29iamVj dCB7CiAgICBQeU9iamVjdF9IRUFECisrICBzdHJ1Y3QgdmFsdWVfb2JqZWN0ICpuZXh0OwogICAg c3RydWN0IHZhbHVlICp2YWx1ZTsKICAgIFB5T2JqZWN0ICphZGRyZXNzOwogICAgUHlPYmplY3Qg KnR5cGU7Ci0rICBzdHJ1Y3QgdmFsdWVfb2JqZWN0ICpuZXh0OwotKyAgc3RydWN0IHZhbHVlX29i amVjdCAqcHJldjsKICB9IHZhbHVlX29iamVjdDsKICAKKysvKiBMaXN0IG9mIGFsbCB2YWx1ZXMg d2hpY2ggYXJlIGN1cnJlbnRseSBleHBvc2VkIHRvIFB5dGhvbi4gSXQgaXMKKysgICBtYWludGFp bmVkIHNvIHRoYXQgd2hlbiBhbiBvYmpmaWxlIGlzIGRpc2NhcmRlZCwgcHJlc2VydmVfdmFsdWVz CisrICAgY2FuIGNvcHkgdGhlIHZhbHVlcycgdHlwZXMgaWYgbmVlZGVkLiAgKi8KKysvKiBUaGlz IHZhcmlhYmxlIGlzIHVubmVjZXNzYXJpbHkgaW5pdGlhbGl6ZWQgdG8gTlVMTCBpbiBvcmRlciB0 bworKyAgIHdvcmsgYXJvdW5kIGEgbGlua2VyIGJ1ZyBvbiBNYWNPUy4gICovCisrc3RhdGljIHZh bHVlX29iamVjdCAqdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CisrCiAgLyogQ2FsbGVkIGJ5IHRo ZSBQeXRob24gaW50ZXJwcmV0ZXIgd2hlbiBkZWFsbG9jYXRpbmcgYSB2YWx1ZSBvYmplY3QuICAq LwotQEAgLTcxLDcgKzc4LDEyIEBAIHZhbHB5X2RlYWxsb2MgKFB5T2JqZWN0ICpvYmopCisgc3Rh dGljIHZvaWQKKyB2YWxweV9kZWFsbG9jIChQeU9iamVjdCAqb2JqKQogIHsKICAgIHZhbHVlX29i amVjdCAqc2VsZiA9ICh2YWx1ZV9vYmplY3QgKikgb2JqOworKyAgdmFsdWVfb2JqZWN0ICoqaXRl cjsKICAKIC0gIHZhbHVlX3JlbW92ZV9mcm9tX2xpc3QgKCZ2YWx1ZXNfaW5fcHl0aG9uLCBzZWxm LT52YWx1ZSk7Ci0rICBpZiAoc2VsZiA9PSB2YWx1ZXNfaW5fcHl0aG9uKQotKyAgICB2YWx1ZXNf aW5fcHl0aG9uID0gc2VsZi0+bmV4dDsKLSsgIGlmIChzZWxmLT5wcmV2KQotKyAgICBzZWxmLT5w cmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLSsgIGlmIChzZWxmLT5uZXh0KQotKyAgICBzZWxmLT5u ZXh0LT5wcmV2ID0gc2VsZi0+cHJldjsKKysgIC8qIFJlbW92ZSBPQkogZnJvbSB0aGUgZ2xvYmFs IGxpc3QuICAqLworKyAgaXRlciA9ICZ2YWx1ZXNfaW5fcHl0aG9uOworKyAgd2hpbGUgKCppdGVy ICE9IHNlbGYpCisrICAgIGl0ZXIgPSAmKCppdGVyKS0+bmV4dDsKKysgICppdGVyID0gKCppdGVy KS0+bmV4dDsKICAKICAgIHZhbHVlX2ZyZWUgKHNlbGYtPnZhbHVlKTsKICAKLUBAIC0xMjIsNyAr MTM0LDE3IEBAIHZhbHB5X25ldyAoUHlUeXBlT2JqZWN0ICpzdWJ0eXBlLCBQeU9iamVjdCAqYXJn cywgUHlPYmplY3QgKmtleXdvcmRzKQorQEAgLTEyMiwxMSArMTMxLDIzIEBAIHZhbHB5X25ldyAo UHlUeXBlT2JqZWN0ICpzdWJ0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmtleXdvcmRz KQogICAgdmFsdWVfb2JqLT5hZGRyZXNzID0gTlVMTDsKICAgIHZhbHVlX29iai0+dHlwZSA9IE5V TEw7CiAgICByZWxlYXNlX3ZhbHVlICh2YWx1ZSk7CiAtICB2YWx1ZV9wcmVwZW5kX3RvX2xpc3Qg KCZ2YWx1ZXNfaW5fcHl0aG9uLCB2YWx1ZSk7Ci0rCi0rICAvKiBOZXcgRlNGIEdEQiByZWZlcmVu Y2UgY291bnRpbmcgbm8gbG9uZ2VyIGNvbnNpZGVycyByZWxlYXNlX3ZhbHVlIGFzIG9uZQotKyAg ICAgaW5jcmVmLiAgRklYTUU6IFdlIGFyZSBub3cgbGVha2luZyBoZXJlIGlmIFZBTFVFIHdhcyBh bHJlYWR5Ci0rICAgICByZWxlYXNlX3ZhbHVlLWQgYmVmb3JlLiAgKi8KLSsgIHZhbHVlX2luY3Jl ZiAodmFsdWUpOwotKwogKyAgdmFsdWVfb2JqLT5uZXh0ID0gdmFsdWVzX2luX3B5dGhvbjsKICsg IHZhbHVlc19pbl9weXRob24gPSB2YWx1ZV9vYmo7Ci0rICBpZiAodmFsdWVfb2JqLT5uZXh0KQot KyAgICB2YWx1ZV9vYmotPm5leHQtPnByZXYgPSB2YWx1ZV9vYmo7Ci0rICB2YWx1ZV9vYmotPnBy ZXYgPSBOVUxMOwogIAogICAgcmV0dXJuIChQeU9iamVjdCAqKSB2YWx1ZV9vYmo7CiAgfQotQEAg LTgwMyw3ICs4MjUsMTcgQEAgdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKnZh bCkKKyAKKysvKiBJdGVyYXRlIG92ZXIgYWxsIHRoZSBWYWx1ZSBvYmplY3RzLCBjYWxsaW5nIHBy ZXNlcnZlX29uZV92YWx1ZSBvbgorKyAgIGVhY2guICAqLworK3ZvaWQKKytwcmVzZXJ2ZV9weXRo b25fdmFsdWVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaHRhYl90IGNvcGllZF90eXBlcykK Kyt7CisrICB2YWx1ZV9vYmplY3QgKml0ZXI7CisrCisrICBmb3IgKGl0ZXIgPSB2YWx1ZXNfaW5f cHl0aG9uOyBpdGVyOyBpdGVyID0gaXRlci0+bmV4dCkKKysgICAgcHJlc2VydmVfb25lX3ZhbHVl IChpdGVyLT52YWx1ZSwgb2JqZmlsZSwgY29waWVkX3R5cGVzKTsKKyt9CisrCisgLyogR2l2ZW4g YSB2YWx1ZSBvZiBhIHBvaW50ZXIgdHlwZSwgYXBwbHkgdGhlIEMgdW5hcnkgKiBvcGVyYXRvciB0 byBpdC4gICovCisgc3RhdGljIFB5T2JqZWN0ICoKKyB2YWxweV9kZXJlZmVyZW5jZSAoUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTU0Myw5ICs1NjQsNyBAQCB2YWxweV9uZWdh dGl2ZSAoUHlPYmplY3QgKnNlbGYpCisgc3RhdGljIFB5T2JqZWN0ICoKKyB2YWxweV9wb3NpdGl2 ZSAoUHlPYmplY3QgKnNlbGYpCisgeworLSAgc3RydWN0IHZhbHVlICpjb3B5ID0gdmFsdWVfY29w eSAoKCh2YWx1ZV9vYmplY3QgKikgc2VsZiktPnZhbHVlKTsKKy0KKy0gIHJldHVybiB2YWx1ZV90 b192YWx1ZV9vYmplY3QgKGNvcHkpOworKyAgcmV0dXJuIHZhbHVlX3RvX3ZhbHVlX29iamVjdCAo KCh2YWx1ZV9vYmplY3QgKikgc2VsZiktPnZhbHVlKTsKKyB9CisgCisgc3RhdGljIFB5T2JqZWN0 ICoKK0BAIC04MDMsMTMgKzgyMiwxNSBAQCB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHN0cnVjdCB2 YWx1ZSAqdmFsKQogICAgICAgIHZhbF9vYmotPmFkZHJlc3MgPSBOVUxMOwogICAgICAgIHZhbF9v YmotPnR5cGUgPSBOVUxMOwogICAgICAgIHJlbGVhc2VfdmFsdWUgKHZhbCk7CiAtICAgICAgdmFs dWVfcHJlcGVuZF90b19saXN0ICgmdmFsdWVzX2luX3B5dGhvbiwgdmFsKTsKLSsKLSsgICAgICAv KiBOZXcgRlNGIEdEQiByZWZlcmVuY2UgY291bnRpbmcgbm8gbG9uZ2VyIGNvbnNpZGVycyByZWxl YXNlX3ZhbHVlIGFzIG9uZQotKwkgaW5jcmVmLiAgRklYTUU6IFdlIGFyZSBub3cgbGVha2luZyBo ZXJlIGlmIFZBTFVFIHdhcyBhbHJlYWR5Ci0rCSByZWxlYXNlX3ZhbHVlLWQgYmVmb3JlLiAgKi8K LSsgICAgICB2YWx1ZV9pbmNyZWYgKHZhbCk7Ci0rCiArICAgICAgdmFsX29iai0+bmV4dCA9IHZh bHVlc19pbl9weXRob247CiArICAgICAgdmFsdWVzX2luX3B5dGhvbiA9IHZhbF9vYmo7Ci0rICAg ICAgaWYgKHZhbF9vYmotPm5leHQpCi0rCXZhbF9vYmotPm5leHQtPnByZXYgPSB2YWxfb2JqOwot KyAgICAgIHZhbF9vYmotPnByZXYgPSBOVUxMOwogICAgICB9CiAgCiAgICByZXR1cm4gKFB5T2Jq ZWN0ICopIHZhbF9vYmo7Ci1AQCAtODUzLDcgKzg4NSwzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21f cHl0aG9uIChQeU9iamVjdCAqb2JqKQorIH0KKyAKKy0vKiBSZXR1cm5zIHZhbHVlIHN0cnVjdHVy ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiB2YWx1ZSBvYmplY3QuICAqLworKy8qIFJldHVy bnMgYSBib3Jyb3dlZCByZWZlcmVuY2UgdG8gdGhlIHN0cnVjdCB2YWx1ZSBjb3JyZXNwb25kaW5n IHRvCisrICAgdGhlIGdpdmVuIHZhbHVlIG9iamVjdC4gICovCisgc3RydWN0IHZhbHVlICoKKyB2 YWx1ZV9vYmplY3RfdG9fdmFsdWUgKFB5T2JqZWN0ICpzZWxmKQorIHsKK0BAIC04MjEsNyArODQy LDggQEAgdmFsdWVfb2JqZWN0X3RvX3ZhbHVlIChQeU9iamVjdCAqc2VsZikKKyB9CisgCisgLyog VHJ5IHRvIGNvbnZlcnQgYSBQeXRob24gdmFsdWUgdG8gYSBnZGIgdmFsdWUuICBJZiB0aGUgdmFs dWUgY2Fubm90CistICAgYmUgY29udmVydGVkLCBzZXQgYSBQeXRob24gZXhjZXB0aW9uIGFuZCBy ZXR1cm4gTlVMTC4gICovCisrICAgYmUgY29udmVydGVkLCBzZXQgYSBQeXRob24gZXhjZXB0aW9u IGFuZCByZXR1cm4gTlVMTC4gIFJldHVybnMgYQorKyAgIGJvcnJvd2VkIHJlZmVyZW5jZSB0byB0 aGUgcmVzdWx0aW5nIHN0cnVjdCB2YWx1ZS4gICovCisgCisgc3RydWN0IHZhbHVlICoKKyBjb252 ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQorQEAgLTg1Myw3ICs4NzUsMzQg QEAgY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAoUHlPYmplY3QgKm9iaikKICAJewogIAkgIExP TkdFU1QgbCA9IFB5TG9uZ19Bc0xvbmdMb25nIChvYmopOwogIApAQCAtMTY1NDEsNyArMTY4NzAs MjEgQEAgaW5kZXggZGQzYzkxOS4uZmI5ZGFiMiAxMDA2NDQKICAJICAgIHZhbHVlID0gdmFsdWVf ZnJvbV9sb25nZXN0IChidWlsdGluX3R5cGVfcHlsb25nLCBsKTsKICAJfQogICAgICAgIGVsc2Ug aWYgKFB5RmxvYXRfQ2hlY2sgKG9iaikpCi1AQCAtOTEyLDYgKzk3MSwzNCBAQCBnZGJweV9oaXN0 b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAtODc2LDcgKzkyNSwxMiBA QCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQorIAkgICAgfQorIAl9 CisgICAgICAgZWxzZSBpZiAoUHlPYmplY3RfVHlwZUNoZWNrIChvYmosICZ2YWx1ZV9vYmplY3Rf dHlwZSkpCistCXZhbHVlID0gdmFsdWVfY29weSAoKCh2YWx1ZV9vYmplY3QgKikgb2JqKS0+dmFs dWUpOworKwl7CisrCSAgLyogVGhpcyBsZXRzIGNhbGxlcnMgZnJlZWx5IGRlY3JlZiB0aGUgVmFs dWUgd3JhcHBlciBvYmplY3QKKysJICAgICBhbmQgbm90IHdvcnJ5IGFib3V0IHdoZXRoZXIgb3Ig bm90IHRoZSB2YWx1ZSB3aWxsCisrCSAgICAgZGlzYXBwZWFyLiAgKi8KKysJICB2YWx1ZSA9IHZh bHVlX2NvcHkgKCgodmFsdWVfb2JqZWN0ICopIG9iaiktPnZhbHVlKTsKKysJfQorICAgICAgIGVs c2UKKyAJUHlFcnJfRm9ybWF0IChQeUV4Y19UeXBlRXJyb3IsIF8oIkNvdWxkIG5vdCBjb252ZXJ0 IFB5dGhvbiBvYmplY3Q6ICVzIiksCisgCQkgICAgICBQeVN0cmluZ19Bc1N0cmluZyAoUHlPYmpl Y3RfU3RyIChvYmopKSk7CitAQCAtOTEyLDYgKzk2NiwyNSBAQCBnZGJweV9oaXN0b3J5IChQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAgICByZXR1cm4gdmFsdWVfdG9fdmFsdWVfb2Jq ZWN0IChyZXNfdmFsKTsKICB9CiAgCkBAIC0xNjU1MCwxOSArMTY4OTMsMTAgQEAgaW5kZXggZGQz YzkxOS4uZmI5ZGFiMiAxMDA2NDQKICtzdGF0aWMgdm9pZAogK3B5dGhvbl90eXBlc19tYXJrX3Vz ZWQgKHZvaWQpCiArewotKyAgdmFsdWVfb2JqZWN0ICp2YWxfb2JqOwotKwotKyAgZm9yICh2YWxf b2JqID0gdmFsdWVzX2luX3B5dGhvbjsgdmFsX29iaiAhPSBOVUxMOyB2YWxfb2JqID0gdmFsX29i ai0+bmV4dCkKLSsgICAgdHlwZV9tYXJrX3VzZWQgKHZhbHVlX3R5cGUgKHZhbF9vYmotPnZhbHVl KSk7Ci0rfQotKwotK3ZvaWQKLStwcmVzZXJ2ZV9weXRob25fdmFsdWVzIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgaHRhYl90IGNvcGllZF90eXBlcykKLSt7Ci0rICB2YWx1ZV9vYmplY3QgKnZh bF9vYmo7CisrICB2YWx1ZV9vYmplY3QgKml0ZXI7CiArCi0rICBmb3IgKHZhbF9vYmogPSB2YWx1 ZXNfaW5fcHl0aG9uOyB2YWxfb2JqICE9IE5VTEw7IHZhbF9vYmogPSB2YWxfb2JqLT5uZXh0KQot KyAgICBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHZhbF9vYmotPnZhbHVlLCBvYmpmaWxlLCBjb3BpZWRf dHlwZXMpOworKyAgZm9yIChpdGVyID0gdmFsdWVzX2luX3B5dGhvbjsgaXRlcjsgaXRlciA9IGl0 ZXItPm5leHQpCisrICAgIHR5cGVfbWFya191c2VkICh2YWx1ZV90eXBlIChpdGVyLT52YWx1ZSkp OwogK30KICsKICsvKiBSZXR1cm5zIDEgaW4gT0JKIGlzIGEgZ2RiLlZhbHVlIG9iamVjdCwgMCBv dGhlcndpc2UuICAqLwpAQCAtMTY1NzYsNyArMTY5MTAsNyBAQCBpbmRleCBkZDNjOTE5Li5mYjlk YWIyIDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCkKICB7Ci1A QCAtOTIyLDYgKzEwMDksOCBAQCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCkKK0BAIC05 MjIsNiArOTk1LDggQEAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpCiAgICBQeU1vZHVs ZV9BZGRPYmplY3QgKGdkYl9tb2R1bGUsICJWYWx1ZSIsIChQeU9iamVjdCAqKSAmdmFsdWVfb2Jq ZWN0X3R5cGUpOwogIAogICAgdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CkBAIC0xNjU4NSwyMCAr MTY5MTksMzIgQEAgaW5kZXggZGQzYzkxOS4uZmI5ZGFiMiAxMDA2NDQKICB9CiAgCiAgDAorQEAg LTEwMTksNCArMTA5NCwxMiBAQCBQeVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0X3R5cGUgPSB7Cisg ICB2YWxweV9uZXcJCQkgIC8qIHRwX25ldyAqLworIH07CisgCisrI2Vsc2UKKysKKyt2b2lkCisr cHJlc2VydmVfcHl0aG9uX3ZhbHVlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGh0YWJfdCBj b3BpZWRfdHlwZXMpCisreworKyAgLyogTm90aGluZy4gICovCisrfQorKworICNlbmRpZiAvKiBI QVZFX1BZVEhPTiAqLwogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0 aG9uL3B5dGhvbi5jCi1pbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAoraW5kZXggMjU0YmQy OC4uNWEyYTlhZSAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBiL2dkYi9w eXRob24vcHl0aG9uLmMKLUBAIC0yNyw2ICsyNyw4IEBACitAQCAtMjcsNiArMjcsNyBAQAogICNp bmNsdWRlICJvYnNlcnZlci5oIgogICNpbmNsdWRlICJ2YWx1ZS5oIgogICNpbmNsdWRlICJsYW5n dWFnZS5oIgogKyNpbmNsdWRlICJldmVudC1sb29wLmgiCi0rI2luY2x1ZGUgInZhbHByaW50Lmgi CiAgCiAgI2luY2x1ZGUgPGN0eXBlLmg+CiAgCi1AQCAtNDUsMTEgKzQ3LDE4IEBAIHN0YXRpYyBp bnQgZ2RicHlfYXV0b19sb2FkID0gMTsKK0BAIC00NSwxMSArNDYsMTggQEAgc3RhdGljIGludCBn ZGJweV9hdXRvX2xvYWQgPSAxOwogICNpbmNsdWRlICJjbGkvY2xpLWRlY29kZS5oIgogICNpbmNs dWRlICJjaGFyc2V0LmgiCiAgI2luY2x1ZGUgInRvcC5oIgpAQCAtMTY2MTcsNyArMTY5NjMsNyBA QCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAogIHN0YXRpYyBQeU1ldGhvZERlZiBH ZGJNZXRob2RzW107CiAgCi1AQCAtMTk3LDEwICsyMDYsMTAgQEAgcHl0aG9uX2NvbW1hbmQgKGNo YXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTE5NywxMCArMjA1LDEwIEBAIHB5dGhvbl9jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgICBOVUxMIChhbmQgc2V0IGEgUHl0aG9u IGV4Y2VwdGlvbikgb24gZXJyb3IuICBIZWxwZXIgZnVuY3Rpb24gZm9yCiAgICAgZ2V0X3BhcmFt ZXRlci4gICovCiAgCkBAIC0xNjYzMSw3ICsxNjk3Nyw3IEBAIGluZGV4IDI1NGJkMjguLjdjZDJi M2EgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSB2YXJfc3RyaW5nOgogICAgICBjYXNlIHZhcl9z dHJpbmdfbm9lc2NhcGU6Ci1AQCAtMjA4LDcgKzIxNyw3IEBAIHBhcmFtZXRlcl90b19weXRob24g KHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitAQCAtMjA4LDcgKzIxNiw3IEBAIHBhcmFt ZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCiAgICAgIGNhc2Ug dmFyX2ZpbGVuYW1lOgogICAgICBjYXNlIHZhcl9lbnVtOgogICAgICAgIHsKQEAgLTE2NjQwLDcg KzE2OTg2LDcgQEAgaW5kZXggMjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICAJaWYgKCEgc3RyKQog IAkgIHN0ciA9ICIiOwogIAlyZXR1cm4gUHlTdHJpbmdfRGVjb2RlIChzdHIsIHN0cmxlbiAoc3Ry KSwgaG9zdF9jaGFyc2V0ICgpLCBOVUxMKTsKLUBAIC0yMTYsNyArMjI1LDcgQEAgcGFyYW1ldGVy X3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCkKK0BAIC0yMTYsNyArMjI0 LDcgQEAgcGFyYW1ldGVyX3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCkK ICAKICAgICAgY2FzZSB2YXJfYm9vbGVhbjoKICAgICAgICB7CkBAIC0xNjY0OSw3ICsxNjk5NSw3 IEBAIGluZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCSAgUHlfUkVUVVJOX1RSVUU7CiAg CWVsc2UKICAJICBQeV9SRVRVUk5fRkFMU0U7Ci1AQCAtMjI0LDcgKzIzMyw3IEBAIHBhcmFtZXRl cl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitAQCAtMjI0LDcgKzIz Miw3IEBAIHBhcmFtZXRlcl90b19weXRob24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQp CiAgCiAgICAgIGNhc2UgdmFyX2F1dG9fYm9vbGVhbjoKICAgICAgICB7CkBAIC0xNjY1OCw3ICsx NzAwNCw3IEBAIGluZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCWlmIChhYiA9PSBBVVRP X0JPT0xFQU5fVFJVRSkKICAJICBQeV9SRVRVUk5fVFJVRTsKICAJZWxzZSBpZiAoYWIgPT0gQVVU T19CT09MRUFOX0ZBTFNFKQotQEAgLTIzNCwxNSArMjQzLDE1IEBAIHBhcmFtZXRlcl90b19weXRo b24gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQpCitAQCAtMjM0LDE1ICsyNDIsMTUgQEAg cGFyYW1ldGVyX3RvX3B5dGhvbiAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCkKICAgICAg ICB9CiAgCiAgICAgIGNhc2UgdmFyX2ludGVnZXI6CkBAIC0xNjY3Nyw3ICsxNzAyMyw3IEBAIGlu ZGV4IDI1NGJkMjguLjdjZDJiM2EgMTAwNjQ0CiAgCWlmICh2YWwgPT0gVUlOVF9NQVgpCiAgCSAg UHlfUkVUVVJOX05PTkU7CiAgCXJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZyAodmFsKTsK LUBAIC0yODAsNyArMjg5LDcgQEAgZ2RicHlfcGFyYW1ldGVyIChQeU9iamVjdCAqc2VsZiwgUHlP YmplY3QgKmFyZ3MpCitAQCAtMjgwLDcgKzI4OCw3IEBAIGdkYnB5X3BhcmFtZXRlciAoUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogIAogICAgaWYgKCEgY21kLT52YXIpCiAgICAgIHJl dHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJvciwgImAlcycgaXMgbm90IGEgcGFy YW1ldGVyIiwgYXJnKTsKQEAgLTE2Njg2LDcgKzE3MDMyLDcgQEAgaW5kZXggMjU0YmQyOC4uN2Nk MmIzYSAxMDA2NDQKICB9CiAgCiAgLyogQSBQeXRob24gZnVuY3Rpb24gd2hpY2ggZXZhbHVhdGVz IGEgc3RyaW5nIHVzaW5nIHRoZSBnZGIgQ0xJLiAgKi8KLUBAIC0zMTksNiArMzI4LDIzMyBAQCBl eGVjdXRlX2dkYl9jb21tYW5kIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAt MzE5LDYgKzMyNywyMzMgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5 T2JqZWN0ICphcmdzKQogICAgUHlfUkVUVVJOX05PTkU7CiAgfQogIApAQCAtMTY5MjAsNyArMTcy NjYsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAwKICAKICAvKiBQcmludGlu Zy4gICovCi1AQCAtMzU3LDYgKzU5Myw2OSBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKK0BA IC0zNTcsNiArNTkyLDY5IEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQogIAogIAwKICAKQEAg LTE2OTkwLDE1MiArMTczMzYsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIC8q IFRoZSAiY3VycmVudCIgb2JqZmlsZS4gIFRoaXMgaXMgc2V0IHdoZW4gZ2RiIGRldGVjdHMgdGhh dCBhIG5ldwogICAgIG9iamZpbGUgaGFzIGJlZW4gbG9hZGVkLiAgSXQgaXMgb25seSBzZXQgZm9y IHRoZSBkdXJhdGlvbiBvZiBhIGNhbGwKICAgICB0byBnZGJweV9uZXdfb2JqZmlsZTsgaXQgaXMg TlVMTCBhdCBvdGhlciB0aW1lcy4gICovCi1AQCAtNDc1LDYgKzc3NCwxNDQgQEAgZ2RicHlfb2Jq ZmlsZXMgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9iamVjdCAqdW51c2VkMikKLSAgIHJldHVybiBs aXN0OwotIH0KLSAKLSsMCi0rCi0rLyogSGVscGVyIGZ1bmN0aW9uIGZvciBmaW5kX3ByZXR0eV9w cmludGVyIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYQotKyAgIGxpc3QsIGNhbGxzIGVhY2ggZnVuY3Rp b24gYW5kIGluc3BlY3RzIG91dHB1dC4gICovCi0rc3RhdGljIFB5T2JqZWN0ICoKLStzZWFyY2hf cHBfbGlzdCAoUHlPYmplY3QgKmxpc3QsIFB5T2JqZWN0ICp2YWx1ZSkKLSt7Ci0rICBQeV9zc2l6 ZV90IHBwX2xpc3Rfc2l6ZSwgbGlzdF9pbmRleDsKLSsgIFB5T2JqZWN0ICpmdW5jdGlvbiwgKnBy aW50ZXIgPSBOVUxMOwotKyAgCi0rICBwcF9saXN0X3NpemUgPSBQeUxpc3RfU2l6ZSAobGlzdCk7 Ci0rICBmb3IgKGxpc3RfaW5kZXggPSAwOyBsaXN0X2luZGV4IDwgcHBfbGlzdF9zaXplOyBsaXN0 X2luZGV4KyspCi0rICAgIHsKLSsgICAgICBmdW5jdGlvbiA9IFB5TGlzdF9HZXRJdGVtIChsaXN0 LCBsaXN0X2luZGV4KTsKLSsgICAgICBpZiAoISBmdW5jdGlvbikKLSsJcmV0dXJuIE5VTEw7Ci0r Ci0rICAgICAgLyogZ2RicHlfaW5zdGFudGlhdGVfcHJpbnRlciBjYW4gcmV0dXJuIHRocmVlIHBv c3NpYmxlIHJldHVybgotKwkgdmFsdWVzOiAgTlVMTCBvbiBlcnJvcjsgIFB5X05vbmUgaWYgdGhl IHByZXR0eS1wcmludGVyCi0rCSBpbiB0aGUgbGlzdCBjYW5ub3QgcHJpbnQgdGhlIHZhbHVlOyBv ciBhIHByaW50ZXIgaW5zdGFuY2UgaWYKLSsJIHRoZSBwcmludGVyIGNhbiBwcmludCB0aGUgdmFs dWUuICAqLwotKyAgICAgIHByaW50ZXIgPSBnZGJweV9pbnN0YW50aWF0ZV9wcmludGVyIChmdW5j dGlvbiwgdmFsdWUpOwotKyAgICAgIGlmICghIHByaW50ZXIpCi0rCXJldHVybiBOVUxMOwotKyAg ICAgIGVsc2UgaWYgKHByaW50ZXIgIT0gUHlfTm9uZSkKLSsJcmV0dXJuIHByaW50ZXI7Ci0rCi0r ICAgICAgUHlfREVDUkVGIChwcmludGVyKTsKLSsgICAgfQotKwotKyAgUHlfUkVUVVJOX05PTkU7 Ci0rfQotKwotKy8qIEZpbmQgdGhlIHByZXR0eS1wcmludGluZyBjb25zdHJ1Y3RvciBmdW5jdGlv biBmb3IgVFlQRS4gIElmIG5vCi0rICAgcHJldHR5LXByaW50ZXIgZXhpc3RzLCByZXR1cm4gTlVM TC4gIElmIG9uZSBleGlzdHMsIHJldHVybiBhIG5ldwotKyAgIHJlZmVyZW5jZS4gICovCi0rc3Rh dGljIFB5T2JqZWN0ICoKLStmaW5kX3ByZXR0eV9wcmludGVyIChQeU9iamVjdCAqdmFsdWUpCi0r ewotKyAgUHlPYmplY3QgKnBwX2xpc3QgPSBOVUxMOwotKyAgUHlPYmplY3QgKmZ1bmN0aW9uID0g TlVMTDsKLSsgIHN0cnVjdCBvYmpmaWxlICpvYmo7Ci0rICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4 Y2VwdGlvbiBleGNlcHQ7Ci0rCi0rICAvKiBMb29rIGF0IHRoZSBwcmV0dHktcHJpbnRlciBkaWN0 aW9uYXJ5IGZvciBlYWNoIG9iamZpbGUuICAqLwotKyAgQUxMX09CSkZJTEVTIChvYmopCi0rICB7 Ci0rICAgIFB5T2JqZWN0ICpvYmpmID0gb2JqZmlsZV90b19vYmpmaWxlX29iamVjdCAob2JqKTsK LSsgICAgaWYgKCFvYmpmKQotKyAgICAgIGNvbnRpbnVlOwotKwotKyAgICBwcF9saXN0ID0gb2Jq ZnB5X2dldF9wcmludGVycyAob2JqZiwgTlVMTCk7Ci0rICAgIGZ1bmN0aW9uID0gc2VhcmNoX3Bw X2xpc3QgKHBwX2xpc3QsIHZhbHVlKTsKLSsKLSsgICAgLyogSWYgdGhlcmUgaXMgYW4gZXJyb3Ig aW4gYW55IG9iamZpbGUgbGlzdCwgYWJvcnQgdGhlIHNlYXJjaCBhbmQKLSsgICAgICAgZXhpdC4g ICovCi0rICAgIGlmICghIGZ1bmN0aW9uKQotKyAgICAgIHsKLSsJUHlfWERFQ1JFRiAocHBfbGlz dCk7Ci0rCXJldHVybiBOVUxMOwotKyAgICAgIH0KLSsKLSsgICAgaWYgKGZ1bmN0aW9uICE9IFB5 X05vbmUpCi0rICAgICAgZ290byBkb25lOwotKyAgICAKLSsgICAgLyogSW4gdGhpcyBsb29wLCBp ZiBmdW5jdGlvbiBpcyBub3QgYW4gaW5zdGFudGlhdGlvbiBvZiBhCi0rICAgIHByZXR0eS1wcmlu dGVyLCBhbmQgaXQgaXMgbm90IG51bGwsIHRoZW4gaXQgaXMgYSByZXR1cm4gb2YKLSsgICAgUHlf UkVUVVJOX05PTkUsIHdoaWNoIG11c3QgYmUgZGVjcmVtZW50ZWQuICAqLwotKyAgICBQeV9ERUNS RUYgKGZ1bmN0aW9uKTsKLSsgICAgUHlfWERFQ1JFRiAocHBfbGlzdCk7Ci0rICB9Ci0rCi0rICBw cF9saXN0ID0gTlVMTDsKLSsgIC8qIEZldGNoIHRoZSBnbG9iYWwgcHJldHR5IHByaW50ZXIgZGlj dGlvbmFyeS4gICovCi0rICBpZiAoISBQeU9iamVjdF9IYXNBdHRyU3RyaW5nIChnZGJfbW9kdWxl LCAicHJldHR5X3ByaW50ZXJzIikpCi0rICAgIGdvdG8gZG9uZTsKLSsgIHBwX2xpc3QgPSBQeU9i amVjdF9HZXRBdHRyU3RyaW5nIChnZGJfbW9kdWxlLCAicHJldHR5X3ByaW50ZXJzIik7Ci0rICBp ZiAoISBwcF9saXN0KQotKyAgICBnb3RvIGRvbmU7Ci0rICBpZiAoISBQeUxpc3RfQ2hlY2sgKHBw X2xpc3QpKQotKyAgICBnb3RvIGRvbmU7Ci0rCi0rICBmdW5jdGlvbiA9IHNlYXJjaF9wcF9saXN0 IChwcF9saXN0LCB2YWx1ZSk7Ci0rCi0rIGRvbmU6Ci0rICBQeV9YREVDUkVGIChwcF9saXN0KTsK LSsgIAotKyAgcmV0dXJuIGZ1bmN0aW9uOwotK30KLSsKLSsvKiBQcmV0dHktcHJpbnQgYSBzaW5n bGUgdmFsdWUsIHZpYSB0aGUgcHJpbnRlciBvYmplY3QgUFJJTlRFUi4gIElmCi0rICAgdGhlIGZ1 bmN0aW9uIHJldHVybnMgYSBzdHJpbmcsIGFuIHhtYWxsb2MoKWQgY29weSBpcyByZXR1cm5lZC4K LSsgICBPdGhlcndpc2UsIGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFsdWUsIGEgKk9VVF9W QUxVRSBpcyBzZXQgdG8KLSsgICB0aGUgdmFsdWUsIGFuZCBOVUxMIGlzIHJldHVybmVkLiAgT24g ZXJyb3IsICpPVVRfVkFMVUUgaXMgc2V0IHRvCi0rICAgTlVMTCBhbmQgTlVMTCBpcyByZXR1cm5l ZC4gICovCi0rc3RhdGljIGNoYXIgKgotK3ByZXR0eV9wcmludF9vbmVfdmFsdWUgKFB5T2JqZWN0 ICpwcmludGVyLCBzdHJ1Y3QgdmFsdWUgKipvdXRfdmFsdWUpCi0rewotKyAgY2hhciAqb3V0cHV0 ID0gTlVMTDsKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLSsKLSsg IFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCi0rICAgIHsKLSsgICAgICBQeU9i amVjdCAqcmVzdWx0OwotKwotKyAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpB cmdzIChwcmludGVyLCBnZGJweV90b19zdHJpbmdfY3N0LCBOVUxMKTsKLSsgICAgICBpZiAocmVz dWx0KQotKwl7Ci0rCSAgaWYgKGdkYnB5X2lzX3N0cmluZyAocmVzdWx0KSkKLSsJICAgIG91dHB1 dCA9IHB5dGhvbl9zdHJpbmdfdG9faG9zdF9zdHJpbmcgKHJlc3VsdCk7Ci0rCSAgZWxzZSBpZiAo UHlPYmplY3RfVHlwZUNoZWNrIChyZXN1bHQsICZ2YWx1ZV9vYmplY3RfdHlwZSkpCi0rCSAgICB7 Ci0rCSAgICAgIC8qIElmIHdlIGp1c3QgY2FsbCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIGZv ciB0aGlzCi0rCQkgdHlwZSwgd2Ugd29uJ3Qga25vdyB3aG8gb3ducyB0aGUgcmVzdWx0LiAgRm9y IHRoaXMKLSsJCSBvbmUgY2FzZSB3ZSBuZWVkIHRvIGNvcHkgdGhlIHJlc3VsdGluZyB2YWx1ZS4g ICovCi0rCSAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IHZhbHVlX29iamVjdF90b192YWx1ZSAocmVz dWx0KTsKLSsJICAgICAgKm91dF92YWx1ZSA9IHZhbHVlX2NvcHkgKHYpOwotKwkgICAgfQotKwkg IGVsc2UKLSsJICAgICpvdXRfdmFsdWUgPSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChyZXN1 bHQpOwotKwkgIFB5X0RFQ1JFRiAocmVzdWx0KTsKLSsJfQotKyAgICB9Ci0rCi0rICByZXR1cm4g b3V0cHV0OwotK30KLSsKLSsvKiBJbnN0YW50aWF0ZSBhIHByZXR0eS1wcmludGVyIGdpdmVuIGEg Y29uc3RydWN0b3IsIENPTlMsIGFuZCBhCi0rICAgdmFsdWUsIFZBTC4gIFJldHVybiBOVUxMIG9u IGVycm9yLiAgT3duZXJzaGlwIG9mIHRoZSBvYmplY3QKLSsgICBpbnN0YW5jZSBpcyB0cmFuc2Zl cnJlZCB0byB0aGUgcmVjaWV2ZXIgKi8KLStQeU9iamVjdCAqCi0rZ2RicHlfaW5zdGFudGlhdGVf cHJpbnRlciAoUHlPYmplY3QgKmNvbnMsIFB5T2JqZWN0ICp2YWx1ZSkKLSt7Ci0rICBQeU9iamVj dCAqcmVzdWx0OwotKyAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyAoY29u cywgdmFsdWUsIE5VTEwpOwotKyAgcmV0dXJuIHJlc3VsdDsKLSt9Ci0rCi0gI2Vsc2UgLyogSEFW RV9QWVRIT04gKi8KLSAKLSAvKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZ2RiICJweXRo b24iIGNvbW1hbmQuICAqLwotQEAgLTUwMSw2ICs5MzgsMTMgQEAgZXZhbF9weXRob25fZnJvbV9j b250cm9sX2NvbW1hbmQgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmNtZCkKK0BAIC01MDEsNiArNzk5 LDEzIEBAIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9s aW5lICpjbWQpCiAgICBlcnJvciAoXygiUHl0aG9uIHNjcmlwdGluZyBpcyBub3Qgc3VwcG9ydGVk IGluIHRoaXMgY29weSBvZiBHREIuIikpOwogIH0KICAKQEAgLTE3MTQ5LDcgKzE3MzUwLDcgQEAg aW5kZXggMjU0YmQyOC4uN2NkMmIzYSAxMDA2NDQKICAjZW5kaWYgLyogSEFWRV9QWVRIT04gKi8K ICAKICAMCi1AQCAtNTkyLDEzICsxMDM2LDI3IEBAIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0by1s b2FkaW5nIG9mIFB5dGhvbiBjb2RlIHdoZW4gYW4gb2JqZWN0IGlzIG9wZW5lZC4iKSwKK0BAIC01 OTIsMTMgKzg5NywyNyBAQCBFbmFibGVzIG9yIGRpc2FibGVzIGF1dG8tbG9hZGluZyBvZiBQeXRo b24gY29kZSB3aGVuIGFuIG9iamVjdCBpcyBvcGVuZWQuIiksCiAgICBQeU1vZHVsZV9BZGRTdHJp bmdDb25zdGFudCAoZ2RiX21vZHVsZSwgIlZFUlNJT04iLCAoY2hhciopIHZlcnNpb24pOwogICAg UHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQgKGdkYl9tb2R1bGUsICJIT1NUX0NPTkZJRyIsIChj aGFyKikgaG9zdF9uYW1lKTsKICAgIFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50IChnZGJfbW9k dWxlLCAiVEFSR0VUX0NPTkZJRyIsIChjaGFyKikgdGFyZ2V0X25hbWUpOwpAQCAtMTcxNzcsNyAr MTczNzgsNyBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogIAogICAgUHlSdW5fU2lt cGxlU3RyaW5nICgiaW1wb3J0IGdkYiIpOwogICAgUHlSdW5fU2ltcGxlU3RyaW5nICgiZ2RiLnBy ZXR0eV9wcmludGVycyA9IFtdIik7Ci1AQCAtNjM0LDYgKzEwOTIsMTUgQEAgY2xhc3MgR2RiT3V0 cHV0RmlsZTpcblwKK0BAIC02MzQsNiArOTUzLDE1IEBAIGNsYXNzIEdkYk91dHB1dEZpbGU6XG5c CiAgXG5cCiAgc3lzLnN0ZGVyciA9IEdkYk91dHB1dEZpbGUoKVxuXAogIHN5cy5zdGRvdXQgPSBH ZGJPdXRwdXRGaWxlKClcblwKQEAgLTE3MTkzLDcgKzE3Mzk0LDcgQEAgaW5kZXggMjU0YmQyOC4u N2NkMmIzYSAxMDA2NDQKICAiKTsKICAKICAgIC8qIFJlbGVhc2UgdGhlIEdJTCB3aGlsZSBnZGIg cnVucy4gICovCi1AQCAtNjUzLDkgKzExMjAsMTQgQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1l dGhvZHNbXSA9CitAQCAtNjUzLDkgKzk4MSwxNCBAQCBzdGF0aWMgUHlNZXRob2REZWYgR2RiTWV0 aG9kc1tdID0KICAgICAgIkdldCBhIHZhbHVlIGZyb20gaGlzdG9yeSIgfSwKICAgIHsgImV4ZWN1 dGUiLCBleGVjdXRlX2dkYl9jb21tYW5kLCBNRVRIX1ZBUkFSR1MsCiAgICAgICJFeGVjdXRlIGEg Z2RiIGNvbW1hbmQiIH0sCkBAIC0xNzIwOCw3ICsxNzQwOSw3IEBAIGluZGV4IDI1NGJkMjguLjdj ZDJiM2EgMTAwNjQ0CiAgICB7ICJkZWZhdWx0X3Zpc3VhbGl6ZXIiLCBnZGJweV9kZWZhdWx0X3Zp c3VhbGl6ZXIsIE1FVEhfVkFSQVJHUywKICAgICAgIkZpbmQgdGhlIGRlZmF1bHQgdmlzdWFsaXpl ciBmb3IgYSBWYWx1ZS4iIH0sCiAgCi1AQCAtNjc2LDYgKzExNDgsMzcgQEAgUmV0dXJuIGEgc3Ry aW5nIGV4cGxhaW5pbmcgdW53aW5kIHN0b3AgcmVhc29uLiIgfSwKK0BAIC02NzYsNiArMTAwOSwz NyBAQCBSZXR1cm4gYSBzdHJpbmcgZXhwbGFpbmluZyB1bndpbmQgc3RvcCByZWFzb24uIiB9LAog ICAgICAibG9va3VwX3R5cGUgKG5hbWUgWywgYmxvY2tdKSAtPiB0eXBlXG5cCiAgUmV0dXJuIGEg VHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lLiIgfSwKICAKQEAgLTE3MjQ3LDE2 ICsxNzQ0OCwxNSBAQCBpbmRleCAyNTRiZDI4Li43Y2QyYjNhIDEwMDY0NAogICAgICAiV3JpdGUg YSBzdHJpbmcgdXNpbmcgZ2RiJ3MgZmlsdGVyZWQgc3RyZWFtLiIgfSwKICAgIHsgImZsdXNoIiwg Z2RicHlfZmx1c2gsIE1FVEhfTk9BUkdTLAogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LmggYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1pbmRleCAzM2IwNDM3Li5iNzYxYTY1IDEwMDY0NAor aW5kZXggMzNiMDQzNy4uYmJiNjE4NCAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmgK ICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmgKLUBAIC0yMiwxMCArMjIsMTQgQEAKK0BAIC0yMiwx NCArMjIsMTggQEAKICAKICAjaW5jbHVkZSAidmFsdWUuaCIKICAKIC1leHRlcm4gc3RydWN0IHZh bHVlICp2YWx1ZXNfaW5fcHl0aG9uOwotK3ZvaWQgcHJlc2VydmVfcHl0aG9uX3ZhbHVlcyAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIGh0YWJfdCBjb3BpZWRfdHlwZXMpOwotIAorLQogIHZvaWQg ZXZhbF9weXRob25fZnJvbV9jb250cm9sX2NvbW1hbmQgKHN0cnVjdCBjb21tYW5kX2xpbmUgKik7 CiAgCiArdm9pZCBzb3VyY2VfcHl0aG9uX3NjcmlwdCAoRklMRSAqc3RyZWFtLCBjaGFyICpmaWxl KTsKQEAgLTE3MjY2LDYgKzE3NDY2LDEyIEBAIGluZGV4IDMzYjA0MzcuLmI3NjFhNjUgMTAwNjQ0 CiAgaW50IGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAogIAkJCSAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAogIAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSk7CisgCisr dm9pZCBwcmVzZXJ2ZV9weXRob25fdmFsdWVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaHRh Yl90IGNvcGllZF90eXBlcyk7CisrCisgI2VuZGlmIC8qIEdEQl9QWVRIT05fSCAqLwogZGlmZiAt LWdpdCBhL2dkYi9zY20tbGFuZy5jIGIvZ2RiL3NjbS1sYW5nLmMKIGluZGV4IGRlMzQ4OTQuLjA3 NTE4YjAgMTAwNjQ0CiAtLS0gYS9nZGIvc2NtLWxhbmcuYwpAQCAtMTczNTEsMTAgKzE3NTU3LDEw IEBAIGluZGV4IDZjZmFhODUuLjY4YWFkYzAgMTAwNjQ0CiAgCiAgZXh0ZXJuIGluaXRpYWxpemVf ZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliOyAvKiAtV21pc3NpbmctcHJvdG90eXBl cyAqLwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3NvbGliLmMKLWluZGV4IDE1N2Fh YmEuLjRjMWIwZmIgMTAwNjQ0CitpbmRleCA1NjRhNTVjLi44Yzc1YjgxIDEwMDY0NAogLS0tIGEv Z2RiL3NvbGliLmMKICsrKyBiL2dkYi9zb2xpYi5jCi1AQCAtMTA3MiwxMyArMTA3MiwxMiBAQCBz aG93X2F1dG9fc29saWJfYWRkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAor QEAgLTEwNjYsMTMgKzEwNjYsMTIgQEAgc2hvd19hdXRvX3NvbGliX2FkZCAoc3RydWN0IHVpX2Zp bGUgKmZpbGUsIGludCBmcm9tX3R0eSwKICBzdHJ1Y3Qgc3ltYm9sICoKICBzb2xpYl9nbG9iYWxf bG9va3VwIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICAgY29uc3QgY2hh ciAqbmFtZSwKQEAgLTE3NDkzLDcgKzE3Njk5LDcgQEAgaW5kZXggMWMzNzgwMS4uNTk0ZWIxNiAx MDA2NDQKICAJICBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKE5VTEwsIHN5bSwgZnJhbWUsIHN0 cmVhbSwgNCAqIG51bV90YWJzKTsKICAJICBicmVhazsKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmls ZS5jIGIvZ2RiL3N5bWZpbGUuYwotaW5kZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKK2luZGV4 IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltZmlsZS5jCiArKysgYi9nZGIv c3ltZmlsZS5jCiBAQCAtNTIsNyArNTIsNiBAQApAQCAtMTc1NzYsNyArMTc3ODIsMTggQEAgaW5k ZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKICAgICAgewogICAgICAgIHdyYXBfaGVyZSAoIiIp OwogICAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCIobm8gZGVidWdnaW5nIHN5bWJvbHMgZm91 bmQpIikpOwotQEAgLTIzMzcsNyArMjM1OCw3IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQorQEAg LTExNjYsNyArMTE4Nyw5IEBAIHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCisgICAg ICBkZXNjcmlwdG9ycyBhcyB3ZWxsLiAgKi8KKyAgIG5vX3NoYXJlZF9saWJyYXJpZXMgKE5VTEws IGZyb21fdHR5KTsKKyAKKy0gIHN5bWZpbGVfb2JqZmlsZSA9IE5VTEw7CisrICAvKiBmcmVlX29i amZpbGUgc2hvdWxkIGhhdmUgY2xlYXJlZCBpdC4gICovCisrICBnZGJfYXNzZXJ0IChzeW1maWxl X29iamZpbGUgPT0gTlVMTCk7CisrCisgICBpZiAoZnJvbV90dHkpCisgICAgIHByaW50Zl91bmZp bHRlcmVkIChfKCJObyBzeW1ib2wgZmlsZSBub3cuXG4iKSk7CisgfQorQEAgLTIzNDYsNyArMjM2 OSw3IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAogIAkgICAgICAvKiBSZW1vdmUgYW55IHJl ZmVyZW5jZXMgdG8gdGhpcyBvYmpmaWxlIGluIHRoZSBnbG9iYWwKICAJCSB2YWx1ZSBsaXN0cy4g ICovCkBAIC0xNzU4NSw3ICsxNzgwMiw3IEBAIGluZGV4IDM2NDgwYzEuLjRkZWE4ZDcgMTAwNjQ0 CiAgCiAgCSAgICAgIC8qIE51a2UgYWxsIHRoZSBzdGF0ZSB0aGF0IHdlIHdpbGwgcmUtcmVhZC4g IE11Y2ggb2YgdGhlIGZvbGxvd2luZwogIAkgICAgICAgICBjb2RlIHdoaWNoIHNldHMgdGhpbmdz IHRvIE5VTEwgcmVhbGx5IGlzIG5lY2Vzc2FyeSB0byB0ZWxsCi1AQCAtMjQyNSwxMyArMjQ0Niwx NSBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yNDM0LDEzICsyNDU3LDE1IEBAIHJlcmVh ZF9zeW1ib2xzICh2b2lkKQogIAkgICAgICAgICB6ZXJvIGlzIE9LIHNpbmNlIGRieHJlYWQuYyBh bHNvIGRvZXMgd2hhdCBpdCBuZWVkcyB0byBkbyBpZgogIAkgICAgICAgICBvYmpmaWxlLT5nbG9i YWxfcHN5bWJvbHMuc2l6ZSBpcyAwLiAgKi8KICAJICAgICAgKCpvYmpmaWxlLT5zZi0+c3ltX3Jl YWQpIChvYmpmaWxlLCAwKTsKQEAgLTE3NjAyLDcgKzE3ODE5LDcgQEAgaW5kZXggMzY0ODBjMS4u NGRlYThkNyAxMDA2NDQKICAJICAgICAgLyogV2UncmUgZG9uZSByZWFkaW5nIHRoZSBzeW1ib2wg ZmlsZTsgZmluaXNoIG9mZiBjb21wbGFpbnRzLiAgKi8KICAJICAgICAgY2xlYXJfY29tcGxhaW50 cyAoJnN5bWZpbGVfY29tcGxhaW50cywgMCwgMSk7CiAgCi1AQCAtMjQ0MCw2ICsyNDYzLDkgQEAg cmVyZWFkX3N5bWJvbHMgKHZvaWQpCitAQCAtMjQ0OSw2ICsyNDc0LDkgQEAgcmVyZWFkX3N5bWJv bHMgKHZvaWQpCiAgCiAgCSAgICAgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKICAKQEAgLTE3NjEy LDcgKzE3ODI5LDcgQEAgaW5kZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKICAJICAgICAgLyog RGlzY2FyZCBjbGVhbnVwcyBhcyBzeW1ib2wgcmVhZGluZyB3YXMgc3VjY2Vzc2Z1bC4gICovCiAg CSAgICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7CiAgCi1AQCAtMjcyOSw3ICsy NzU1LDcgQEAgYWxsb2NhdGVfc3ltdGFiIChjaGFyICpmaWxlbmFtZSwgc3RydWN0IG9iamZpbGUg Km9iamZpbGUpCitAQCAtMjczOCw3ICsyNzY2LDcgQEAgYWxsb2NhdGVfc3ltdGFiIChjaGFyICpm aWxlbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgfQogIAogIHN0cnVjdCBwYXJ0aWFs X3N5bXRhYiAqCkBAIC0xNzYyMSw3ICsxNzgzOCw3IEBAIGluZGV4IDM2NDgwYzEuLjRkZWE4ZDcg MTAwNjQ0CiAgewogICAgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3ltdGFiOwogIAotQEAgLTI4 MjAsMTAgKzI4NDYsNiBAQCBjbGVhcl9zeW10YWJfdXNlcnMgKHZvaWQpCitAQCAtMjgyOSwxMCAr Mjg1Nyw2IEBAIGNsZWFyX3N5bXRhYl91c2VycyAodm9pZCkKICAgICAgIGJldHdlZW4gZXhwcmVz c2lvbnMgYW5kIHdoaWNoIG91Z2h0IHRvIGJlIHJlc2V0IGVhY2ggdGltZS4gICovCiAgICBleHBy ZXNzaW9uX2NvbnRleHRfYmxvY2sgPSBOVUxMOwogICAgaW5uZXJtb3N0X2Jsb2NrID0gTlVMTDsK QEAgLTE3NjMyLDcgKzE3ODQ5LDcgQEAgaW5kZXggMzY0ODBjMS4uNGRlYThkNyAxMDA2NDQKICB9 CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0zMDQzLDcgKzMwNjUsOCBAQCBhZ2FpbjI6CitAQCAtMzA1 Miw3ICszMDc2LDggQEAgYWdhaW4yOgogIAogIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqCiAgc3Rh cnRfcHN5bXRhYl9jb21tb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAtMTc3MDksNyAr MTc5MjYsNyBAQCBpbmRleCBlYjM1MzY5Li5kZmQ4YzhjIDEwMDY0NAogIAkgIHsKICAJICAgIHBy aW50Zl9maWx0ZXJlZCAoIkdsb2JhbCBzeW1ib2wgYCIpOwogZGlmZiAtLWdpdCBhL2dkYi9zeW10 YWIuYyBiL2dkYi9zeW10YWIuYwotaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKK2luZGV4 IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltdGFiLmMKICsrKyBiL2dkYi9z eW10YWIuYwogQEAgLTQyLDYgKzQyLDcgQEAKQEAgLTE3OTQ5LDcgKzE4MTY2LDcgQEAgaW5kZXgg Yzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgIGlmIChzeW0gIT0gTlVMTCkKICAgICAgcmV0dXJu IHN5bTsKICAKLUBAIC0xMzY0LDMwICsxMzUyLDc5IEBAIGxvb2t1cF9zeW1ib2xfYXV4IChjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdlX25hbWUsCitAQCAtMTM2NCwzMCArMTM1 Miw4MSBAQCBsb29rdXBfc3ltYm9sX2F1eCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq bGlua2FnZV9uYW1lLAogICAgIERvbid0IHNlYXJjaCBTVEFUSUNfQkxPQ0sgb3IgR0xPQkFMX0JM T0NLLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCkBAIC0xNzk2Nyw3ICsxODE4NCw2 IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiArICBjb25zdCBzdHJ1Y3QgbGFuZ3Vh Z2VfZGVmbiAqbGFuZ2RlZjsKICsKICsgIGxhbmdkZWYgPSBsYW5ndWFnZV9kZWYgKGxhbmd1YWdl KTsKLSsKICAKICAgIC8qIENoZWNrIGlmIGVpdGhlciBubyBibG9jayBpcyBzcGVjaWZpZWQgb3Ig aXQncyBhIGdsb2JhbCBibG9jay4gICovCiAgCkBAIC0xNzk5MSw4ICsxODIwNyw4IEBAIGluZGV4 IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiArICAgIAogKyAgICAgIGlmIChsYW5ndWFnZSA9PSBs YW5ndWFnZV9jcGx1cyApCiArICAgICAgICB7Ci0rICAgICAgICAgIHN5bSA9IGxvb2t1cF9uYW1l c3BhY2Vfc2NvcGUobmFtZSwgYmxvY2ssZG9tYWluLAotKwkJCQkgICAgICAgYmxvY2tfc2NvcGUg KGJsb2NrX2l0ZXJhdG9yKSwgMCwgMSk7CisrICAgICAgICAgIHN5bSA9IGNwX2xvb2t1cF9zeW1i b2xfaW1wb3J0cyAoYmxvY2tfc2NvcGUgKGJsb2NrX2l0ZXJhdG9yKSwgbmFtZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19pdGVyYXRvciwgZG9tYWlu LCAxKTsKICsKICsgICAgICAgICAgaWYgKHN5bSAhPSBOVUxMKQogKyAgICAgICAgICAgIHJldHVy biBzeW07CkBAIC0xODAzMyw2ICsxODI0OSw5IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAw NjQ0CiArICAgICAgICAgICAgfQogKyAgICAgICAgfQogKworKyAgICAgIGlmIChCTE9DS19GVU5D VElPTiAoYmxvY2tfaXRlcmF0b3IpICE9IE5VTEwgJiYgYmxvY2tfaW5saW5lZF9wIChibG9ja19p dGVyYXRvcikpCisrICAgICAgICBicmVhazsKKysKICsgICAgICBibG9ja19pdGVyYXRvciA9IEJM T0NLX1NVUEVSQkxPQ0sgKGJsb2NrX2l0ZXJhdG9yKTsKICAgICAgfQogIApAQCAtMTgwNDEsNyAr MTgyNjAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAogICAgcmV0dXJuIE5V TEw7CiAgfQotQEAgLTE0MTYsMTMgKzE0NTMsMTIgQEAgbG9va3VwX29iamZpbGVfZnJvbV9ibG9j ayAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaykKK0BAIC0xNDE2LDEzICsxNDU1LDEyIEBAIGxv b2t1cF9vYmpmaWxlX2Zyb21fYmxvY2sgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2spCiAgICAg YmxvY2tfZm91bmQgYXBwcm9wcmlhdGVseS4gICovCiAgCiAgc3RydWN0IHN5bWJvbCAqCkBAIC0x ODA1Nyw3ICsxODI3Niw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgICBpZiAo c3ltKQogICAgICB7CiAgICAgICAgYmxvY2tfZm91bmQgPSBibG9jazsKLUBAIC0xNDM4LDcgKzE0 NzQsNiBAQCBsb29rdXBfc3ltYm9sX2F1eF9ibG9jayAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqbGlua2FnZV9uYW1lLAorQEAgLTE0MzgsNyArMTQ3Niw2IEBAIGxvb2t1cF9zeW1ib2xf YXV4X2Jsb2NrIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdlX25hbWUsCiAg c3RydWN0IHN5bWJvbCAqCiAgbG9va3VwX2dsb2JhbF9zeW1ib2xfZnJvbV9vYmpmaWxlIChjb25z dCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCQkJICAgY29uc3QgY2hhciAqbmFtZSwKQEAg LTE4MDY1LDcgKzE4Mjg0LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAJCQkJ ICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKQogIHsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsK LUBAIC0xNDUyLDcgKzE0ODcsNyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUg KGNvbnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0NTIsNyArMTQ4OSw3IEBAIGxv b2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCiAgICB7CiAgICAgIGJ2ID0gQkxPQ0tWRUNUT1IgKHMpOwogICAgICBibG9jayA9IEJM T0NLVkVDVE9SX0JMT0NLIChidiwgR0xPQkFMX0JMT0NLKTsKQEAgLTE4MDc0LDcgKzE4MjkzLDcg QEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgICAgaWYgKHN5bSkKICAgICAgICB7 CiAgCWJsb2NrX2ZvdW5kID0gYmxvY2s7Ci1AQCAtMTQ2MSwyMyArMTQ5NiwyMyBAQCBsb29rdXBf Z2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUgKGNvbnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTE0NjEsMjMgKzE0OTgsMjMgQEAgbG9va3VwX2dsb2JhbF9zeW1ib2xfZnJvbV9vYmpm aWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIH0KICAKICAgIC8qIE5vdyBn byB0aHJvdWdoIHBzeW10YWJzLiAgKi8KQEAgLTE4MTAyLDcgKzE4MzIxLDcgQEAgaW5kZXggYzg4 MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAKICAgIHJldHVybiBOVUxMOwogIH0KLUBAIC0xNDg4LDgg KzE1MjMsNyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUgKGNvbnN0IHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0ODgsOCArMTUyNSw3IEBAIGxvb2t1cF9nbG9iYWxf c3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICAg c3RhdGljIHN5bWJvbHMuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICoKQEAgLTE4MTEy LDcgKzE4MzMxLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAJCQkgICBjb25z dCBkb21haW5fZW51bSBkb21haW4pCiAgewogICAgc3RydWN0IHN5bWJvbCAqc3ltOwotQEAgLTE1 MDIsNyArMTUzNiw3IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3N5bXRhYnMgKGludCBibG9ja19pbmRl eCwKK0BAIC0xNTAyLDcgKzE1MzgsNyBAQCBsb29rdXBfc3ltYm9sX2F1eF9zeW10YWJzIChpbnQg YmxvY2tfaW5kZXgsCiAgICB7CiAgICAgIGJ2ID0gQkxPQ0tWRUNUT1IgKHMpOwogICAgICBibG9j ayA9IEJMT0NLVkVDVE9SX0JMT0NLIChidiwgYmxvY2tfaW5kZXgpOwpAQCAtMTgxMjEsNyArMTgz NDAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogICAgICBpZiAoc3ltKQogICAg ICAgIHsKICAJYmxvY2tfZm91bmQgPSBibG9jazsKLUBAIC0xNTIwLDcgKzE1NTQsNiBAQCBsb29r dXBfc3ltYm9sX2F1eF9zeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsCitAQCAtMTUyMCw3ICsxNTU2 LDYgQEAgbG9va3VwX3N5bWJvbF9hdXhfc3ltdGFicyAoaW50IGJsb2NrX2luZGV4LAogIAogIHN0 YXRpYyBzdHJ1Y3Qgc3ltYm9sICoKICBsb29rdXBfc3ltYm9sX2F1eF9wc3ltdGFicyAoaW50IGJs b2NrX2luZGV4LCBjb25zdCBjaGFyICpuYW1lLApAQCAtMTgxMjksNyArMTgzNDgsNyBAQCBpbmRl eCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAkJCSAgICBjb25zdCBkb21haW5fZW51bSBkb21h aW4pCiAgewogICAgc3RydWN0IHN5bWJvbCAqc3ltOwotQEAgLTE1MzEsMTYgKzE1NjQsMTUgQEAg bG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAq bmFtZSwKK0BAIC0xNTMxLDE2ICsxNTY2LDE1IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJz IChpbnQgYmxvY2tfaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICBzdHJ1Y3Qgc3ltdGFiICpz OwogICAgY29uc3QgaW50IHBzeW10YWJfaW5kZXggPSAoYmxvY2tfaW5kZXggPT0gR0xPQkFMX0JM T0NLID8gMSA6IDApOwogIApAQCAtMTgxNDksNyArMTgzNjgsNyBAQCBpbmRleCBjODgxNTZhLi41 NjdmYTA3IDEwMDY0NAogIAlpZiAoIXN5bSkKICAJICB7CiAgCSAgICAvKiBUaGlzIHNob3VsZG4n dCBiZSBuZWNlc3NhcnksIGJ1dCBhcyBhIGxhc3QgcmVzb3J0IHRyeQotQEAgLTE1NTcsNyArMTU4 OSw3IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsIGNvbnN0 IGNoYXIgKm5hbWUsCitAQCAtMTU1Nyw3ICsxNTkxLDcgQEAgbG9va3VwX3N5bWJvbF9hdXhfcHN5 bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAqbmFtZSwKICAJICAgIGJsb2NrID0g QkxPQ0tWRUNUT1JfQkxPQ0sgKGJ2LAogIAkJCQkgICAgICAgYmxvY2tfaW5kZXggPT0gR0xPQkFM X0JMT0NLID8KICAJCQkJICAgICAgIFNUQVRJQ19CTE9DSyA6IEdMT0JBTF9CTE9DSyk7CkBAIC0x ODE1OCw3ICsxODM3Nyw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCSAgICBp ZiAoIXN5bSkKICAJICAgICAgZXJyb3IgKF8oIkludGVybmFsOiAlcyBzeW1ib2wgYCVzJyBmb3Vu ZCBpbiAlcyBwc3ltdGFiIGJ1dCBub3QgaW4gc3ltdGFiLlxuJXMgbWF5IGJlIGFuIGlubGluZWQg ZnVuY3Rpb24sIG9yIG1heSBiZSBhIHRlbXBsYXRlIGZ1bmN0aW9uXG4oaWYgYSB0ZW1wbGF0ZSwg dHJ5IHNwZWNpZnlpbmcgYW4gaW5zdGFudGlhdGlvbjogJXM8dHlwZT4pLiIpLAogIAkJICAgICBi bG9ja19pbmRleCA9PSBHTE9CQUxfQkxPQ0sgPyAiZ2xvYmFsIiA6ICJzdGF0aWMiLAotQEAgLTE1 NzYsNyArMTYwOCw2IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJzIChpbnQgYmxvY2tfaW5k ZXgsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTU3Niw3ICsxNjEwLDYgQEAgbG9va3VwX3N5bWJv bF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAqbmFtZSwKICAKICBz dHJ1Y3Qgc3ltYm9sICoKICBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFy ICpuYW1lLApAQCAtMTgxNjYsNyArMTgzODUsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEw MDY0NAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAgCQkJICAgICAgY29u c3QgZG9tYWluX2VudW0gZG9tYWluKQogIHsKLUBAIC0xNjEwLDExICsxNjQxLDExIEBAIGJhc2lj X2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTYxMCwxMSAr MTY0MywxMSBAQCBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICpuYW1l LAogICAgICAgdGhhbiB0aGF0IG9uZSwgc28gSSBkb24ndCB0aGluayB3ZSBzaG91bGQgd29ycnkg YWJvdXQgdGhhdCBmb3IKICAgICAgIG5vdy4gICovCiAgCkBAIC0xODE4MCw3ICsxODM5OSw3IEBA IGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgfQogIAogIC8qIExvb2t1cCBhIHN5bWJv bCBpbiB0aGUgc3RhdGljIGJsb2NrIGFzc29jaWF0ZWQgdG8gQkxPQ0ssIGlmIHRoZXJlCi1AQCAt MTYyMiwxNCArMTY1MywxMyBAQCBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBj aGFyICpuYW1lLAorQEAgLTE2MjIsMTQgKzE2NTUsMTMgQEAgYmFzaWNfbG9va3VwX3N5bWJvbF9u b25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKICAKICBzdHJ1Y3Qgc3ltYm9sICoKICBsb29rdXBf c3ltYm9sX3N0YXRpYyAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTE4MTk2LDcgKzE4NDE1LDcgQEAg aW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAgIGVsc2UKICAgICAgcmV0dXJuIE5VTEw7 CiAgfQotQEAgLTE2MzksNyArMTY2OSw2IEBAIGxvb2t1cF9zeW1ib2xfc3RhdGljIChjb25zdCBj aGFyICpuYW1lLAorQEAgLTE2MzksNyArMTY3MSw2IEBAIGxvb2t1cF9zeW1ib2xfc3RhdGljIChj b25zdCBjaGFyICpuYW1lLAogIAogIHN0cnVjdCBzeW1ib2wgKgogIGxvb2t1cF9zeW1ib2xfZ2xv YmFsIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTgyMDQsNyArMTg0MjMsNyBAQCBpbmRleCBjODgx NTZhLi41NjdmYTA3IDEwMDY0NAogIAkJICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK ICAJCSAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICB7Ci1AQCAtMTY0OSwxNSArMTY3 OCwxNSBAQCBsb29rdXBfc3ltYm9sX2dsb2JhbCAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0xNjQ5 LDE1ICsxNjgwLDE1IEBAIGxvb2t1cF9zeW1ib2xfZ2xvYmFsIChjb25zdCBjaGFyICpuYW1lLAog ICAgLyogQ2FsbCBsaWJyYXJ5LXNwZWNpZmljIGxvb2t1cCBwcm9jZWR1cmUuICAqLwogICAgb2Jq ZmlsZSA9IGxvb2t1cF9vYmpmaWxlX2Zyb21fYmxvY2sgKGJsb2NrKTsKICAgIGlmIChvYmpmaWxl ICE9IE5VTEwpCkBAIC0xODIyMyw3ICsxODQ0Miw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2ZhMDcg MTAwNjQ0CiAgfQogIAogIGludAotQEAgLTE2ODEsMTQgKzE3MTAsMTEgQEAgc3ltYm9sX21hdGNo ZXNfZG9tYWluIChlbnVtIGxhbmd1YWdlIHN5bWJvbF9sYW5ndWFnZSwKK0BAIC0xNjgxLDE0ICsx NzEyLDExIEBAIHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoZW51bSBsYW5ndWFnZSBzeW1ib2xfbGFu Z3VhZ2UsCiAgfQogIAogIC8qIExvb2ssIGluIHBhcnRpYWxfc3ltdGFiIFBTVCwgZm9yIHN5bWJv bCB3aG9zZSBuYXR1cmFsIG5hbWUgaXMgTkFNRS4KQEAgLTE4MjQwLDcgKzE4NDU5LDcgQEAgaW5k ZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wg KnRlbXA7CiAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKipzdGFydCwgKipwc3ltOwotQEAgLTE3 NDAsOSArMTc2Niw3IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfc3lt dGFiICpwc3QsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTc0MCw5ICsxNzY4LDcgQEAgbG9va3Vw X3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwgY29uc3QgY2hhciAq bmFtZSwKICAJaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywgXygiZmFpbGVkIGlu dGVybmFsIGNvbnNpc3RlbmN5IGNoZWNrIikpOwogIAogICAgICAgIHdoaWxlICh0b3AgPD0gcmVh bF90b3AKQEAgLTE4MjUxLDcgKzE4NDcwLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2 NDQKICAJewogIAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4gKFNZTUJPTF9MQU5HVUFHRSAo KnRvcCksCiAgCQkJCSAgICAgU1lNQk9MX0RPTUFJTiAoKnRvcCksIGRvbWFpbikpCi1AQCAtMTc1 OSwxNSArMTc4Myw5IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfc3lt dGFiICpwc3QsIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTc1OSwxNSArMTc4NSw5IEBAIGxvb2t1 cF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QsIGNvbnN0IGNoYXIg Km5hbWUsCiAgICAgICAgZm9yIChwc3ltID0gc3RhcnQ7IHBzeW0gPCBzdGFydCArIGxlbmd0aDsg cHN5bSsrKQogIAl7CiAgCSAgaWYgKHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lNQk9MX0xBTkdV QUdFICgqcHN5bSksCkBAIC0xODI3MCw3ICsxODQ4OSw3IEBAIGluZGV4IGM4ODE1NmEuLjU2N2Zh MDcgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTE4MDksMjIgKzE4MjcsMjUgQEAgYmFzaWNf bG9va3VwX3RyYW5zcGFyZW50X3R5cGUgKGNvbnN0IGNoYXIgKm5hbWUpCitAQCAtMTgwOSwyMiAr MTgyOSwyNSBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFt ZSkKICAgIHsKICAgICAgYnYgPSBCTE9DS1ZFQ1RPUiAocyk7CiAgICAgIGJsb2NrID0gQkxPQ0tW RUNUT1JfQkxPQ0sgKGJ2LCBHTE9CQUxfQkxPQ0spOwpAQCAtMTgzMDEsNyArMTg1MjAsNyBAQCBp bmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAlpZiAoIXN5bSkKICAJICB7CiAgCSAgICAv KiBUaGlzIHNob3VsZG4ndCBiZSBuZWNlc3NhcnksIGJ1dCBhcyBhIGxhc3QgcmVzb3J0Ci1AQCAt MTgzMyw3ICsxODU0LDcgQEAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUgKGNvbnN0IGNo YXIgKm5hbWUpCitAQCAtMTgzMyw3ICsxODU2LDcgQEAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50 X3R5cGUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgCSAgICAgKiB0aGUgcHN5bXRhYiBnZXRzIGl0IHdy b25nIGluIHNvbWUgY2FzZXMuCiAgCSAgICAgKi8KICAJICAgIGJsb2NrID0gQkxPQ0tWRUNUT1Jf QkxPQ0sgKGJ2LCBTVEFUSUNfQkxPQ0spOwpAQCAtMTgzMTAsNyArMTg1MjksNyBAQCBpbmRleCBj ODgxNTZhLi41NjdmYTA3IDEwMDY0NAogIAkgICAgaWYgKCFzeW0pCiAgCSAgICAgIGVycm9yIChf KCJJbnRlcm5hbDogZ2xvYmFsIHN5bWJvbCBgJXMnIGZvdW5kIGluICVzIHBzeW10YWIgYnV0IG5v dCBpbiBzeW10YWIuXG5cCiAgJXMgbWF5IGJlIGFuIGlubGluZWQgZnVuY3Rpb24sIG9yIG1heSBi ZSBhIHRlbXBsYXRlIGZ1bmN0aW9uXG5cCi1AQCAtMTg1NywyMSArMTg3OCwyNiBAQCBiYXNpY19s b29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFtZSkKK0BAIC0xODU3LDIxICsx ODgwLDI2IEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChjb25zdCBjaGFyICpuYW1l KQogICAgewogICAgICBidiA9IEJMT0NLVkVDVE9SIChzKTsKICAgICAgYmxvY2sgPSBCTE9DS1ZF Q1RPUl9CTE9DSyAoYnYsIFNUQVRJQ19CTE9DSyk7CkBAIC0xODM0MSw3ICsxODU2MCw3IEBAIGlu ZGV4IGM4ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCWlmICghc3ltKQogIAkgIHsKICAJICAgIC8q IFRoaXMgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSwgYnV0IGFzIGEgbGFzdCByZXNvcnQKLUBAIC0x ODgwLDcgKzE5MDYsNyBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hh ciAqbmFtZSkKK0BAIC0xODgwLDcgKzE5MDgsNyBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRf dHlwZSAoY29uc3QgY2hhciAqbmFtZSkKICAJICAgICAqIHRoZSBwc3ltdGFiIGdldHMgaXQgd3Jv bmcgaW4gc29tZSBjYXNlcy4KICAJICAgICAqLwogIAkgICAgYmxvY2sgPSBCTE9DS1ZFQ1RPUl9C TE9DSyAoYnYsIEdMT0JBTF9CTE9DSyk7CkBAIC0xODM1MCw3ICsxODU2OSw3IEBAIGluZGV4IGM4 ODE1NmEuLjU2N2ZhMDcgMTAwNjQ0CiAgCSAgICBpZiAoIXN5bSkKICAJICAgICAgZXJyb3IgKF8o IkludGVybmFsOiBzdGF0aWMgc3ltYm9sIGAlcycgZm91bmQgaW4gJXMgcHN5bXRhYiBidXQgbm90 IGluIHN5bXRhYi5cblwKICAlcyBtYXkgYmUgYW4gaW5saW5lZCBmdW5jdGlvbiwgb3IgbWF5IGJl IGEgdGVtcGxhdGUgZnVuY3Rpb25cblwKLUBAIC0xOTA1LDkgKzE5MzEsMjMgQEAgZmluZF9tYWlu X3BzeW10YWIgKHZvaWQpCitAQCAtMTkwNSw5ICsxOTMzLDIzIEBAIGZpbmRfbWFpbl9wc3ltdGFi ICh2b2lkKQogICAgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3Q7CiAgICBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZTsKICAKQEAgLTE4Mzc2LDcgKzE4NTk1LDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3 ZmEwNyAxMDA2NDQKICAgICAgICB7CiAgCXJldHVybiAocHN0KTsKICAgICAgICB9Ci1AQCAtMTky NSwxNCArMTk2NSwxMCBAQCBmaW5kX21haW5fcHN5bXRhYiAodm9pZCkKK0BAIC0xOTI1LDE0ICsx OTY3LDEwIEBAIGZpbmRfbWFpbl9wc3ltdGFiICh2b2lkKQogICAgIHNlYXJjaCBvbiB0aGUgc3lt Ym9scy4gIEVhY2ggc3ltYm9sIHdoaWNoIGlzIG1hcmtlZCBhcyBiZWluZyBhIE9iakMvQysrCiAg ICAgc3ltYm9sIChsYW5ndWFnZV9jcGx1cyBvciBsYW5ndWFnZV9vYmpjIHNldCkgaGFzIGJvdGgg dGhlIGVuY29kZWQgYW5kCiAgICAgbm9uLWVuY29kZWQgbmFtZXMgdGVzdGVkIGZvciBhIG1hdGNo LgpAQCAtMTgzOTEsNyArMTg2MTAsNyBAQCBpbmRleCBjODgxNTZhLi41NjdmYTA3IDEwMDY0NAog IAkJICAgICBjb25zdCBkb21haW5fZW51bSBkb21haW4pCiAgewogICAgc3RydWN0IGRpY3RfaXRl cmF0b3IgaXRlcjsKLUBAIC0xOTQ1LDkgKzE5ODEsNyBAQCBsb29rdXBfYmxvY2tfc3ltYm9sIChj b25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLCBjb25zdCBjaGFyICpuYW1lLAorQEAgLTE5NDUsOSAr MTk4Myw3IEBAIGxvb2t1cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ss IGNvbnN0IGNoYXIgKm5hbWUsCiAgCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1lX25leHQgKG5hbWUs ICZpdGVyKSkKICAJewogIAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4gKFNZTUJPTF9MQU5H VUFHRSAoc3ltKSwKQEAgLTE4NDAyLDcgKzE4NjIxLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEw NyAxMDA2NDQKICAJICAgIHJldHVybiBzeW07CiAgCX0KICAgICAgICByZXR1cm4gTlVMTDsKLUBA IC0xOTY3LDkgKzIwMDEsNyBAQCBsb29rdXBfYmxvY2tfc3ltYm9sIChjb25zdCBzdHJ1Y3QgYmxv Y2sgKmJsb2NrLCBjb25zdCBjaGFyICpuYW1lLAorQEAgLTE5NjcsOSArMjAwMyw3IEBAIGxvb2t1 cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssIGNvbnN0IGNoYXIgKm5h bWUsCiAgCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1lX25leHQgKG5hbWUsICZpdGVyKSkKICAJewog IAkgIGlmIChzeW1ib2xfbWF0Y2hlc19kb21haW4gKFNZTUJPTF9MQU5HVUFHRSAoc3ltKSwKQEAg LTE4NDEzLDcgKzE4NjMyLDcgQEAgaW5kZXggYzg4MTU2YS4uNTY3ZmEwNyAxMDA2NDQKICAJICAg IHsKICAJICAgICAgc3ltX2ZvdW5kID0gc3ltOwogIAkgICAgICBpZiAoIVNZTUJPTF9JU19BUkdV TUVOVCAoc3ltKSkKLUBAIC0zMTcyLDcgKzMyMDQsNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAq cmVnZXhwLCBkb21haW5fZW51bSBraW5kLCBpbnQgbmZpbGVzLCBjaGFyICpmaWxlc1tdLAorQEAg LTMxNzIsNyArMzIwNiw3IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdleHAsIGRvbWFpbl9l bnVtIGtpbmQsIGludCBuZmlsZXMsIGNoYXIgKmZpbGVzW10sCiAgICAgICBtYXRjaGluZyB0aGUg cmVnZXhwLiAgVGhhdCB3YXkgd2UgZG9uJ3QgaGF2ZSB0byByZXByb2R1Y2UgYWxsIG9mCiAgICAg ICB0aGUgbWFjaGluZXJ5IGJlbG93LiAqLwogIApAQCAtMTg1NTIsMTAgKzE4NzcxLDEwIEBAIGlu ZGV4IDJjNzQzZTkuLmVmMjk2MTAgMTAwNjQ0CiAgLyogU3R1ZmYgdGhhdCBzaG91bGQgYmUgc2hh cmVkIGFtb25nIHRoZSB2YXJpb3VzIHJlbW90ZSB0YXJnZXRzLiAgKi8KICAKIGRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1pbmRl eCBkMWUzOGYzLi5jNzUxMWNjIDEwMDY0NAoraW5kZXggNzk5M2FjNS4uMTgxYjc1MiAxMDA2NDQK IC0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCiArKysgYi9nZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZwotQEAgLTEyNTIsNiArMTI1MiwxMDMgQEAKK0BAIC0xMjYzLDYgKzEyNjMsMTAzIEBACiAg CWdkYl9zdGFydF9jbWQuCiAgCVVzZSBydW50b19tYWluIGJlZm9yZSBhbnkgdGVzdCB0aGF0IHJl cXVpcmVzIGV4ZWN1dGlvbi4KICAKQEAgLTE5NDY1LDcgKzE5Njg0LDcgQEAgaW5kZXggMDAwMDAw MC4uYjgwOWM0ZQogKyNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv eDg2XzY0LXZsYS10eXBlZGVmLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS10eXBlZGVmLmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjUzNDEy MGEKK2luZGV4IDAwMDAwMDAuLmIwNTQxMWUKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogQEAgLTAsMCArMSw2NCBAQApA QCAtMTk1MjMsMTAgKzE5NzQyLDEwIEBAIGluZGV4IDAwMDAwMDAuLjUzNDEyMGEKICsKICtnZGJf dGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbMjZcXFxdIiAiZmlyc3Q6IHB0eXBl IGFycmF5IgogKwotK2dkYl90ZXN0ICJwIGFycmF5XFsxXF0iICJcXCRcWzAtOVxdID0gMSAnXFxc XDEnIgotK2dkYl90ZXN0ICJwIGFycmF5XFsyXF0iICJcXCRcWzAtOVxdID0gMiAnXFxcXDInIgot K2dkYl90ZXN0ICJwIGFycmF5XFszXF0iICJcXCRcWzAtOVxdID0gMyAnXFxcXDMnIgotK2dkYl90 ZXN0ICJwIGFycmF5XFs0XF0iICJcXCRcWzAtOVxdID0gNCAnXFxcXDQnIgorK2dkYl90ZXN0ICJw IGFycmF5XFsxXF0iICJcXCRcWzAtOVxdID0gMSAnXFxcXDAwMSciCisrZ2RiX3Rlc3QgInAgYXJy YXlcWzJcXSIgIlxcJFxbMC05XF0gPSAyICdcXFxcMDAyJyIKKytnZGJfdGVzdCAicCBhcnJheVxb M1xdIiAiXFwkXFswLTlcXSA9IDMgJ1xcXFwwMDMnIgorK2dkYl90ZXN0ICJwIGFycmF5XFs0XF0i ICJcXCRcWzAtOVxdID0gNCAnXFxcXDAwNCciCiArCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgImJyZWFrX2hlcmUiCiArCkBAIC0yMDk4OCw0OSArMjEyMDcsMTMxIEBAIGluZGV4IDAwMDAw MDAuLmU1MDgxMDMKICtnZGJfdGVzdCAicHJpbnQgX2EiICI9IDExIgogK2dkYl90ZXN0ICJwcmlu dCBhYiIgIj0gMjIiCiArZ2RiX3Rlc3QgInByaW50IGFiYyIgIj0gMzMiCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjCi1pbmRleCA0Nzg2ZmQ1Li44ZmY1NjIyIDEwMDY0NAot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNjCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtdXNpbmcuY2MKLUBAIC0xLDI2ICsxLDEyOSBAQAot K25hbWVzcGFjZSBNCi0rewotKyAgaW50IHggPSA5MTE7CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L25hbWVzcGFjZS1yZWN1cnNpdmUuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi5jYjcxMmZhCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9u YW1lc3BhY2UtcmVjdXJzaXZlLmNjCitAQCAtMCwwICsxLDE2IEBACisrbmFtZXNwYWNlIEF7Cisr ICBpbnQgYXggPSA5OwogK30KICsKLStuYW1lc3BhY2UgTgotK3sKLSsgIGludCB4ID0gOTEyOwor K25hbWVzcGFjZSBCeworKyAgdXNpbmcgbmFtZXNwYWNlIEE7CiArfQogKwotK2ludCBtYXJrZXIx MCAoKQotK3sKLSsgIHVzaW5nIG5hbWVzcGFjZSBNOwotKyAgaW50IHkgPSB4ICsgMTsgICAgICAg Ly8gbWFya2VyMTAgc3RvcAotKyAgdXNpbmcgbmFtZXNwYWNlIE47Ci0rICByZXR1cm4geTsKKytu YW1lc3BhY2UgQ3sKKysgIHVzaW5nIG5hbWVzcGFjZSBCOwogK30KICsKLStuYW1lc3BhY2UgSgot K3sKLSsgIGludCBqeCA9IDQ0OworK2ludCBtYWluKCl7CisrICB1c2luZyBuYW1lc3BhY2UgQzsK KysgIHJldHVybiBheDsKICt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZlLmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuZXhwCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uNGU2YWQyMAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5leHAKK0BAIC0wLDAgKzEsNTMgQEAK KysjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwotK25h bWVzcGFjZSBLCi0rewotKyAgaW50Ci0rICBtYXJrZXI5ICgpCi0rICB7Ci0rICAgIC8veDsKLSsg ICAgcmV0dXJuIG1hcmtlcjEwICgpOwotKyAgfQorKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKysKKytpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKysgICAgc3RyYWNlICR0cmFjZWxldmVsCiAr fQogKwotK25hbWVzcGFjZSBMCi0rewotKyAgdXNpbmcgbmFtZXNwYWNlIEo7Ci0rICBpbnQKLSsg IG1hcmtlcjggKCkKKytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAwCisrCisrc2V0IHRlc3Rm aWxlIG5hbWVzcGFjZS1yZWN1cnNpdmUKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jYworK3Nl dCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytpZiAgeyBbZ2RiX2Nv bXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1 dGFibGUge2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29t cGlsZSB0ZXN0IHByb2dyYW0iCisrICAgIHJldHVybiAtMQorK30KKysKKytpZiBbZ2V0X2NvbXBp bGVyX2luZm8gJHtiaW5maWxlfV0geworKyAgICByZXR1cm4gLTE7CisrfQorKworKworKyMgR2V0 IHRoaW5ncyBzdGFydGVkLgorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlh bGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyB0ZXN0IHByaW50aW5n IG9mIG5hbWVzcGFjZSBpbXBvcnRlZCB3aXRoaW4KKysjIHRoZSBmdW5jdGlvbi4KKysKKytpZiAh W3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3Bv aW50IG1haW4iCisrICAgIGNvbnRpbnVlCisrfQorKworK3NldHVwX3hmYWlsICotKi0qCisrZ2Ri X3Rlc3QgInByaW50IGF4IiAiPSA5IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L25hbWVzcGFjZS11c2luZy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2lu Zy5jYworaW5kZXggNDc4NmZkNS4uOGZmNTYyMiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL25hbWVzcGFjZS11c2luZy5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFt ZXNwYWNlLXVzaW5nLmNjCitAQCAtMSwyNiArMSwxMjkgQEAKKytuYW1lc3BhY2UgTQorK3sKKysg IGludCB4ID0gOTExOworK30KKysKKytuYW1lc3BhY2UgTgorK3sKKysgIGludCB4ID0gOTEyOwor K30KKysKKytpbnQgbWFya2VyMTAgKCkKKyt7CisrICB1c2luZyBuYW1lc3BhY2UgTTsKKysgIGlu dCB5ID0geCArIDE7ICAgICAgIC8vIG1hcmtlcjEwIHN0b3AKKysgIHVzaW5nIG5hbWVzcGFjZSBO OworKyAgcmV0dXJuIHk7CisrfQorKworK25hbWVzcGFjZSBKCisreworKyAgaW50IGp4ID0gNDQ7 CisrfQorKworK25hbWVzcGFjZSBLCisreworKyAgaW50CisrICBtYXJrZXI5ICgpCisrICB7Cisr ICAgIC8veDsKKysgICAgcmV0dXJuIG1hcmtlcjEwICgpOworKyAgfQorK30KKysKKytuYW1lc3Bh Y2UgTAorK3sKKysgIHVzaW5nIG5hbWVzcGFjZSBKOworKyAgaW50CisrICBtYXJrZXI4ICgpCiAr ICB7CiArICAgIGp4OwogKyAgICByZXR1cm4gSzo6bWFya2VyOSAoKTsKQEAgLTIxMTU0LDEwICsy MTQ1NSwyMiBAQCBpbmRleCA0Nzg2ZmQ1Li44ZmY1NjIyIDEwMDY0NAogKyAgcmV0dXJuIG1hcmtl cjEgKCk7CiAgfQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11 c2luZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtdXNpbmcuZXhwCi1pbmRl eCBmMjQ5NzNmLi5mYTZiNjY5IDEwMDY0NAoraW5kZXggZjI0OTczZi4uYzAxNWVmNyAxMDA2NDQK IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5leHAKICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS11c2luZy5leHAKLUBAIC00NiwxNSArNDYsNjEg QEAgaWYgIVtydW50b19tYWluXSB0aGVuIHsKK0BAIC0yOCw2ICsyOCwxMSBAQCBpZiAgeyBbZ2Ri X2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4 ZWN1dGFibGUge2RlYgorICAgICByZXR1cm4gLTEKKyB9CisgCisraWYgW2dldF9jb21waWxlcl9p bmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xOworK30KKysKKysKKyAjIEdldCB0aGlu Z3Mgc3RhcnRlZC4KKyAKKyBnZGJfZXhpdAorQEAgLTQ2LDE1ICs1MSw2MSBAQCBpZiAhW3J1bnRv X21haW5dIHRoZW4gewogIAogIGdkYl90ZXN0ICJwcmludCBfYSIgIj0gMSIKICAKQEAgLTIxMjE5 LDcgKzIxNTMyLDcgQEAgaW5kZXggZjI0OTczZi4uZmE2YjY2OSAxMDA2NDQKICAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICMgVGVzdCBwcmludGluZyBvZiBu YW1lc3BhY2UgYWxpYXNlcwogIAotQEAgLTY0LDE0ICsxMTAsMjQgQEAgaWYgIVtydW50byBtYXJr ZXIyXSB0aGVuIHsKK0BAIC02NCwxNiArMTE1LDMyIEBAIGlmICFbcnVudG8gbWFya2VyMl0gdGhl biB7CiAgICAgIGNvbnRpbnVlCiAgfQogIApAQCAtMjEyNDUsOSArMjE1NTgsMTggQEAgaW5kZXgg ZjI0OTczZi4uZmE2YjY2OSAxMDA2NDQKICsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJl YWtwb2ludCBtYXJrZXIzIgogK30KICAKLSBnZGJfdGVzdCAicHJpbnQgX2EiICJObyBzeW1ib2wg XCJfYVwiIGluIGN1cnJlbnQgY29udGV4dC4iICJQcmludCBhIHdpdGhvdXQgaW1wb3J0IgorLWdk Yl90ZXN0ICJwcmludCBfYSIgIk5vIHN5bWJvbCBcIl9hXCIgaW4gY3VycmVudCBjb250ZXh0LiIg IlByaW50IGEgd2l0aG91dCBpbXBvcnQiCisrIyBnY2MtNC0zIHB1dHMgaW1wb3J0IHN0YXRlbWVu dHMgZm9yIGFsaWFzZXMgaW4KKysjIHRoZSBnbG9iYWwgc2NvcGUgaW5zdGVhZCBvZiB0aGUgY29y cmVzcG9uZGluZworKyMgZnVuY3Rpb24gc2NvcGUuIFRoZXNlIHdyb25nIGltcG9ydCBzdGF0ZW1l bnRzIHRocm93CisrIyB0aGlzIHRlc3Qgb2ZmLiBUaGlzIGlzIGZpeGVkIGluIGdjYy00LTQuCisr aWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MtNC0zLSpdIHRoZW4geyBzZXR1cF94ZmFpbCAqLSot KiB9CisrCisrZ2RiX3Rlc3QgInByaW50IF9hIiAiTm8gc3ltYm9sIFwiX2FcIiBpbiBjdXJyZW50 IGNvbnRleHQuIiAiUHJpbnQgX2Egd2l0aG91dCBpbXBvcnQiCiAgCi1AQCAtODQsNCArMTQwLDU3 IEBAIGlmICFbcnVudG8gbWFya2VyNF0gdGhlbiB7CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIFRlc3QgcHJpbnRpbmcgb2YgaW5kaXZpZHVhbGx5IGlt cG9ydGVkIGVsZW1lbnRzCitAQCAtODQsNCArMTUxLDU3IEBAIGlmICFbcnVudG8gbWFya2VyNF0g dGhlbiB7CiAgICAgIGNvbnRpbnVlCiAgfQogIApAQCAtMjEyNTcsOCArMjE1NzksOCBAQCBpbmRl eCBmMjQ5NzNmLi5mYTZiNjY5IDEwMDY0NAogKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiArIyBUZXN0IHByaW50aW5nIG9mIG5hbWVzcGFjZSBhbGlhc2VzCiAr Ci0raWYgIVtydW50byBtYXJrZXI2XSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4g dG8gYnJlYWtwb2ludCBtYXJrZXI2IgorK2lmICFbcnVudG8gbWFya2VyNV0gdGhlbiB7CisrICAg IHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIG1hcmtlcjUiCiArICAgIGNvbnRpbnVlCiArfQogKwpA QCAtMjE0NzEsMTAgKzIxNzkzLDEwIEBAIGluZGV4IDhhNmI3OTUuLjk5OTdhNDUgMTAwNjQ0CiAg XFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0r aW4gZm9vOjpvdmVybG9hZDFhcmdcXChjaGFyXFwpIGF0Liokc3JjZmlsZToxMTFccgogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5jYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL3NoYWRvd2luZy5jYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAu LjE2NTE1MTAKK2luZGV4IDAwMDAwMDAuLjZkOWMyZjEKIC0tLSAvZGV2L251bGwKICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5jYwotQEAgLTAsMCArMSw0NSBAQAorQEAgLTAs MCArMSw0OCBAQAogK25hbWVzcGFjZSBBCiArewogKyAgaW50IHggPSAxMTsKQEAgLTIxNDkyLDIy ICsyMTgxNCwyNSBAQCBpbmRleCAwMDAwMDAwLi4xNjUxNTEwCiArICBmdW5jKCkKICsgIHsKICsg ICAgeCA9IDMzOwotKyAgICB5Kys7IC8vIG1hcmtlcjEKKysgICAgeSs9eDsgLy8gbWFya2VyMQog KwogKyAgICAgIHsKICsgICAgICAgIGludCB4ID0gNDQ7Ci0rICAgICAgICB5Kys7IC8vIG1hcmtl cjIKKysgICAgICAgIHkrPXg7IC8vIG1hcmtlcjIKICsKICsgICAgICAgICAgewogKyAgICAgICAg ICAgIGludCB4ID0gNTU7Ci0rICAgICAgICAgICAgeSsrOyAvLyBtYXJrZXIzCisrICAgICAgICAg ICAgeSs9eDsgLy8gbWFya2VyMwogKwogKyAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAg ICBpbnQgeiA9IHg7IC8vcHJldmVudCBnY2MgZnJvbSBvcHRpbWl6aW5nIGF3YXkgdGhpcyBzY29w ZQogKyAgICAgICAgICAgICAgICB1c2luZyBuYW1lc3BhY2UgQTsKLSsgICAgICAgICAgICAgICAg eSsrOyAvLyBtYXJrZXI0CisrICAgICAgICAgICAgICAgIHkrPXg7IC8vIG1hcmtlcjQKICsKICsg ICAgICAgICAgICAgICAgdXNpbmcgQTo6eDsKLSsgICAgICAgICAgICAgICAgeSsrOyAvLyBtYXJr ZXI1CisrICAgICAgICAgICAgICAgIHkrPXg7IC8vIG1hcmtlcjUKKysgICAgICAgICAgICAgICAg CisrICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLT54OwogKyAgICAgICAgICAgICAgfQogKyAg ICAgICAgICB9CiArICAgICAgfQpAQCAtMjE1MjIsMTAgKzIxODQ3LDEwIEBAIGluZGV4IDAwMDAw MDAuLjE2NTE1MTAKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avc2hhZG93 aW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3NoYWRvd2luZy5leHAKIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mY2JmNjgwCitpbmRleCAwMDAwMDAwLi42OTIyZWVk CiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9zaGFkb3dpbmcuZXhw Ci1AQCAtMCwwICsxLDg1IEBACitAQCAtMCwwICsxLDkxIEBACiArIyBDb3B5cmlnaHQgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0yMTU1 Niw2ICsyMTg4MSwxMCBAQCBpbmRleCAwMDAwMDAwLi5mY2JmNjgwCiArICAgIHJldHVybiAtMQog K30KICsKKytpZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHtiaW5maWxlfV0geworKyAgICByZXR1cm4g LTE7CisrfQorKwogKyMgR2V0IHRoaW5ncyBzdGFydGVkLgogKwogK2dkYl9leGl0CkBAIC0yMTYx MCw2ICsyMTkzOSw4IEBAIGluZGV4IDAwMDAwMDAuLmZjYmY2ODAKICtnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAibWFya2VyNSJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIm1hcmtlcjUiCiArCisraWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MtNC0zLSpdIHRoZW4g eyBzZXR1cF94ZmFpbCAqLSotKiB9CisrCiArZ2RiX3Rlc3QgInByaW50IHgiICI9IDExIiAiUHJp bnQgaW1wb3J0ZWQgbmFtZXNwYWNlIHgiCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJp cHBlZC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NApAQCAtMjMzMzksMTAgKzIzNjcwLDEwIEBAIGlu ZGV4IDAwMDAwMDAuLmQ0NDQ1NTQKICtnZGJfdGVzdCAicHl0aG9uIHByaW50IHQwIiAiXFw8Z2Ri LkluZmVyaW9yVGhyZWFkIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInZlcmlmeSBJ bmZlcmlvclRocmVhZCBvYmplY3QiCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0n LCB0MC5udW0iICIgPSBcWzAtOVxdKyIgInRlc3QgSW5mZXJpb3IubnVtIgogZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tbWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5dGhvbi1taS5leHAKLWluZGV4IDMyNTg4MTAuLmU3YmZlNTQgMTAwNjQ0Citp bmRleCAzMjU4ODEwLi4wOTVlZTc4IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5dGhvbi1taS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24t bWkuZXhwCi1AQCAtNDgsNyArNDgsMjEgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBleGVjZmlsZSAo JyR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKK0BAIC00OCwyMyArNDgs NDIgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBleGVjZmlsZSAoJyR7c3JjZGlyfS8ke3N1YmRpcn0v JHt0ZXN0ZmlsZX0ucHknKSIgIiIKICBtaV9jb250aW51ZV90b19saW5lIFtnZGJfZ2V0X2xpbmVf bnVtYmVyIHtNSSBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNdIFwKICAgICJzdGVwIHRv IGJyZWFrcG9pbnQiCiAgCkBAIC0yMzM2NSwyNCArMjM2OTYsMTExIEBAIGluZGV4IDMyNTg4MTAu LmU3YmZlNTQgMTAwNjQ0CiAgCiAgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsK ICB9ICJleGFtaW5lIGNvbnRhaW5lciBjaGlsZHJlbj0wIgotQEAgLTkyLDYgKzEwNiwxNSBAQCBt aV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKLSAgICAgeyB7Y29udGFpbmVyLlxb MVxdfSB7XFsxXF19IDAgaW50IH0KLSB9ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIHZp YSBleHByZXNzaW9uIgogIAorIG1pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgMSIKKyAKKy1taV92 YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKKy0gICAgeyB7Y29udGFpbmVyLlxbMFxd fSB7XFswXF19IDAgaW50IH0KKy19ICJ2YXJvYmogdXBkYXRlIDEiCisrbWlfdmFyb2JqX3VwZGF0 ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAxIiB7CisrICAgIHR5cGVfY2hhbmdl ZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMAorK30geworK30geworKyAgICB7 IG5hbWUge2NvbnRhaW5lci5cWzBcXX0gZXhwIHtcWzBcXX0gbnVtY2hpbGQgMCB0eXBlIGludCB0 aHJlYWQtaWQgMSB9CisrfQorIAorIG1pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgMiIKKyAKKy1t aV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKKy0gICAgeyB7Y29udGFpbmVyLlxb MFxdfSB7XFswXF19IDAgaW50IH0KKy0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAg aW50IH0KKy19ICJ2YXJvYmogdXBkYXRlIDIiCisrbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNv bnRhaW5lciAidmFyb2JqIHVwZGF0ZSAyIiB7CisrICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdf bnVtX2NoaWxkcmVuIDIgaGFzX21vcmUgMAorK30geworK30geworKyAgICB7IG5hbWUge2NvbnRh aW5lci5cWzFcXX0gZXhwIHtcWzFcXX0gbnVtY2hpbGQgMCB0eXBlIGludCB0aHJlYWQtaWQgMSB9 CisrfQorIAorIG1pX2dkYl90ZXN0ICItdmFyLXNldC12aXN1YWxpemVyIGNvbnRhaW5lciBOb25l IiBcCisgICAiXFxeZG9uZSIgXAorQEAgLTc4LDE5ICs5Nyw2OCBAQCBtaV9nZGJfdGVzdCAiLXZh ci1zZXQtdmlzdWFsaXplciBjb250YWluZXIgZ2RiLmRlZmF1bHRfdmlzdWFsaXplciIgXAorICAg IlxcXmRvbmUiIFwKKyAgICJjaG9vc2UgZGVmYXVsdCB2aXN1YWxpemVyIgorIAorLW1pX3Zhcm9i al91cGRhdGVfZHluYW1pYyBjb250YWluZXIgeworLSAgICB7IHtjb250YWluZXIuXFswXF19IHtc WzBcXX0gMCBpbnQgfQorLSAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQgfQor LX0gInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgZGVmYXVsdCIKKyttaV92YXJvYmpfdXBk YXRlX2R5bmFtaWMgY29udGFpbmVyICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIGRlZmF1 bHQiIHsKKysgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMiBoYXNfbW9y ZSAwCisrfSB7CisrfSB7CisrICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBleHAge1xbMFxd fSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KKysgICAgeyBuYW1lIHtjb250YWlu ZXIuXFsxXF19IGV4cCB7XFsxXF19IG51bWNoaWxkIDAgdHlwZSBpbnQgdGhyZWFkLWlkIDEgfQor K30KKyAKKyBtaV9nZGJfdGVzdCAiLXZhci1zZXQtdmlzdWFsaXplciBjb250YWluZXIgQ29udGFp bmVyUHJpbnRlciIgXAorICAgIlxcXmRvbmUiIFwKKyAgICJjaG9vc2UgdmlzdWFsaXplciB1c2lu ZyBleHByZXNzaW9uIgorIAorLW1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgewor K21pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAorKyAgInZhcm9iaiB1cGRhdGUg YWZ0ZXIgY2hvb3NpbmcgdmlhIGV4cHJlc3Npb24iIHsKKysgICAgICB0eXBlX2NoYW5nZWQgZmFs c2UgbmV3X251bV9jaGlsZHJlbiAyIGhhc19tb3JlIDAKKysgIH0geworKyAgfSB7CisrICAgICAg eyBuYW1lIHtjb250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBpbnQg dGhyZWFkLWlkIDEgfQorKyAgICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBleHAge1xbMVxd fSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KKysgIH0KKysKICttaV9saXN0X3Zh cm9ial9jaGlsZHJlbl9yYW5nZSBjb250YWluZXIgMSAyIDIgewogKyAgICB7IHtjb250YWluZXIu XFsxXF19IHtcWzFcXX0gMCBpbnQgfQogK30gImxpc3QgdmFyb2JqIGNoaWxkcmVuIGFmdGVyIHNl bGVjdGluZyBjaGlsZCByYW5nZSIKICsKICttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBj b250YWluZXIgLTEgLTEgMiB7CisgICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGlu dCB9CisgICAgIHsge2NvbnRhaW5lci5cWzFcXX0ge1xbMVxdfSAwIGludCB9CistfSAidmFyb2Jq IHVwZGF0ZSBhZnRlciBjaG9vc2luZyB2aWEgZXhwcmVzc2lvbiIKKyt9ICJsaXN0IHZhcm9iaiBj aGlsZHJlbiBhZnRlciByZXNldHRpbmcgY2hpbGQgcmFuZ2UiCisrCisrbWlfbmV4dCAibmV4dCBv dmVyIHVwZGF0ZSAzIgorKworK21pX2dkYl90ZXN0ICItdmFyLXNldC11cGRhdGUtcmFuZ2UgY29u dGFpbmVyIDAgMSIgXAorKyAgIlxcXmRvbmUiIFwKKysgICJzZXQgdXBkYXRlIHJhbmdlIgorKwor KyMgVGhpcyBzaG91bGQgdHJ1bmNhdGUgdGhlIGxpc3QuCisrbWlfbGlzdF92YXJvYmpfY2hpbGRy ZW4gY29udGFpbmVyIHsKICsgICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0K Kyt9ICJsaXN0IGNoaWxkcmVuIGFmdGVyIHNldHRpbmcgdXBkYXRlIHJhbmdlIgorKworKyMgVGhp cyBzaG91bGQgcmV0dXJuIGp1c3QgdGhlIGl0ZW1zIGluIFsxLDIpLgorK21pX2xpc3RfdmFyb2Jq X2NoaWxkcmVuX3JhbmdlIGNvbnRhaW5lciAxIDIgMiB7CiArICAgIHsge2NvbnRhaW5lci5cWzFc XX0ge1xbMVxdfSAwIGludCB9Ci0rfSAibGlzdCB2YXJvYmogY2hpbGRyZW4gYWZ0ZXIgcmVzZXR0 aW5nIGNoaWxkIHJhbmdlIgorK30gImxpc3Qgc2VsZWN0ZWQgY2hpbGRyZW4gYWZ0ZXIgc2V0dGlu ZyByYW5nZSIKICsKKysjIFRoaXMgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSB0aGUgcHJldmlv dXMgbGlzdC1jaGlsZHJlbiByZXF1ZXN0LgorK21pX2xpc3RfdmFyb2JqX2NoaWxkcmVuIGNvbnRh aW5lciB7CisrICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9CisrfSAibGlz dCBjaGlsZHJlbiBhZnRlciBsaXN0aW5nIHNlbGVjdGVkIHJhbmdlIgorKworK21pX25leHQgIm5l eHQgb3ZlciB1cGRhdGUgNCIKKysKKysjIFRoaXMgc2hvdWxkIG9ubHkgc2hvdyB0aGUgZmlyc3Qg Y2hpbGQsIGJlY2F1c2UgdGhlIHVwZGF0ZSByYW5nZSBoYXMKKysjIGJlZW4gc2V0LgorK21pX3Zh cm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAorKyAgInVwZGF0ZSBhZnRlciBuZXh0IHdp dGggcmVzdHJpY3RlZCByYW5nZSIgeworKyAgICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVt X2NoaWxkcmVuIDEgaGFzX21vcmUgMQorKyAgfSB7CisrICAgICAgeyBuYW1lIHtjb250YWluZXIu XFswXF19IGluX3Njb3BlIHRydWUgdHlwZV9jaGFuZ2VkIGZhbHNlIH0KKysgIH0geworKyAgfQor IAogIG1pX2NvbnRpbnVlX3RvX2xpbmUgXAogICAgICBbZ2RiX2dldF9saW5lX251bWJlciB7QW5v dGhlciBNSSBicmVha3BvaW50fSAke3Rlc3RmaWxlfS5jXSBcCi0gICAgICJzdGVwIHRvIHNlY29u ZCBicmVha3BvaW50IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRo b24tcHJldHR5cHJpbnQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5 cHJpbnQuYwotaW5kZXggM2NhZmM0OC4uNWNjMzViZSAxMDA2NDQKK2luZGV4IDNjYWZjNDguLjZi YmJmMWQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXByZXR0 eXByaW50LmMKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJp bnQuYwogQEAgLTE1LDYgKzE1LDggQEAKQEAgLTIzNDIwLDYgKzIzODM4LDE2IEBAIGluZGV4IDNj YWZjNDguLjVjYzM1YmUgMTAwNjQ0CiAgCiAgICBzdHJ1Y3QgbnMgIG5zOwogICAgbnMubnVsbF9z dHIgPSAiZW1iZWRkZWRcMG51bGxcMHN0cmluZyI7CitAQCAtMTkzLDYgKzIwMyw5IEBAIG1haW4g KCkKKyAgIGFkZF9pdGVtICgmYywgNzIpOworIAorICNpZmRlZiBNSQorKyAgYWRkX2l0ZW0gKCZj LCAxMDExKTsKKysgIGMuZWxlbWVudHNbMF0gPSAxMDIzOworKworICAgZG9fbm90aGluZyAoKTsK KyAjZW5kaWYKKyAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9u LXByZXR0eXByaW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5 cHJpbnQuZXhwCiBpbmRleCAwMWQ0YTA2Li5iMmRjODVkIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5leHAKQEAgLTIzNjk5LDE5ICsyNDEy Nyw5MiBAQCBpbmRleCAwYzkzYTczLi5kMGMzNDkzIDEwMDY0NAogIGdsb2JhbCBHREIKICAKIGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCi1pbmRleCA5YjRjNDY0Li4zM2YyNzdhIDEwMDY0NAoraW5k ZXggZTY5MTIzMi4uNjRiYzI4ZSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotQEAgLTEy NTgsNyArMTI1OCw3IEBAIHByb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1lIGNoaWxk cmVuIHRlc3RuYW1lfSB7Ci0gICAgIHNldCBlciAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFsiCitA QCAtMTIwMSw3ICsxMjAxLDcgQEAgcHJvYyBtaV9jcmVhdGVfdmFyb2JqIHsgbmFtZSBleHByZXNz aW9uIHRlc3RuYW1lIH0geworIAorIHByb2MgbWlfY3JlYXRlX2Zsb2F0aW5nX3Zhcm9iaiB7IG5h bWUgZXhwcmVzc2lvbiB0ZXN0bmFtZSB9IHsKKyAgICAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRl ICRuYW1lIEAgJGV4cHJlc3Npb24iIFwKKy0gICAgICAgICJcXF5kb25lLG5hbWU9XCIkbmFtZVwi LG51bWNoaWxkPVwiXFswLTlcXStcIix2YWx1ZT1cIi4qXCIsdHlwZT0uKiIgXAorKyAgICAgICAg IlxcXmRvbmUsbmFtZT1cIiRuYW1lXCIsbnVtY2hpbGQ9XCJcKC0xXHxcWzAtOVxdK1wpXCIsdmFs dWU9XCIuKlwiLHR5cGU9LioiIFwKKyAgICAgICAgICR0ZXN0bmFtZQorIH0KKyAKK0BAIC0xMjUw LDE2ICsxMjUwLDY0IEBAIHByb2MgbWlfdmFyb2JqX3VwZGF0ZV93aXRoX3R5cGVfY2hhbmdlIHsg bmFtZSBuZXdfdHlwZSBuZXdfY2hpbGRyZW4gdGVzdG5hbWUgfSB7CisgICAgIG1pX2dkYl90ZXN0 ICItdmFyLXVwZGF0ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQorIH0KICAKLSAgICAgYXBwZW5kIGVy ICJ7bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IiIKKy0jIFVwZGF0ZSBhIGR5bmFtaWMgdmFyb2JqIG5hbWVkIE5BTUUuICBDSElMRFJFTiBpcyBh IGxpc3Qgb2YgY2hpbGRyZW4sCistIyBpbiB0aGUgc2FtZSBmb3JtIGFzIG1pX2xpc3RfdmFyb2Jq X2NoaWxkcmVuLiAgVEVTVE5BTUUgaXMgdGhlIG5hbWUKKy0jIG9mIHRoZSB0ZXN0LgorLXByb2Mg bWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1lIGNoaWxkcmVuIHRlc3RuYW1lfSB7CistICAg IHNldCBjaGlsZHJlbl9leHBfaiBbbWlfY2hpbGRfcmVnZXhwICRjaGlsZHJlbiAwXQorKyMgQSBo ZWxwZXIgdGhhdCB0dXJucyBhIGtleS92YWx1ZSBsaXN0IGludG8gYSByZWd1bGFyIGV4cHJlc3Np b24KKysjIG1hdGNoaW5nIHNvbWUgTUkgb3V0cHV0LgorK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9r dl9oZWxwZXIge2xpc3R9IHsKKysgICAgc2V0IGZpcnN0IDEKKysgICAgc2V0IHJ4ICIiCisrICAg IGZvcmVhY2gge2tleSB2YWx1ZX0gJGxpc3QgeworKwlpZiB7ISRmaXJzdH0geworKwkgICAgYXBw ZW5kIHJ4ICwKKysJfQorKwlzZXQgZmlyc3QgMAorKwlpZiB7JGtleSA9PSAibmV3X2NoaWxkcmVu In0geworKwkgICAgYXBwZW5kIHJ4ICIka2V5PVxcXFskdmFsdWVcXFxdIgorKwl9IGVsc2Ugewor KwkgICAgYXBwZW5kIHJ4ICIka2V5PVwiJHZhbHVlXCIiCisrCX0KKysgICAgfQorKyAgICByZXR1 cm4gJHJ4CisrfQorKworKyMgQSBoZWxwZXIgZm9yIG1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyB0 aGF0IGNvbXB1dGVzIGEgbWF0Y2gKKysjIGV4cHJlc3Npb24gZ2l2ZW4gYSBjaGlsZCBsaXN0Lgor K3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBlciB7Y2hpbGRyZW59IHsKKysgICAg c2V0IGNyeCAiIgorIAorLSAgICBzZXQgZXIgIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbIgorKyAg ICBzZXQgZmlyc3QgMQorKyAgICBmb3JlYWNoIGNoaWxkICRjaGlsZHJlbiB7CisrCWlmIHshJGZp cnN0fSB7CisrCSAgICBhcHBlbmQgY3J4ICwKKysJfQorKwlzZXQgZmlyc3QgMAorKwlhcHBlbmQg Y3J4ICJ7IgorKwlhcHBlbmQgY3J4IFttaV92YXJvYmpfdXBkYXRlX2t2X2hlbHBlciAkY2hpbGRd CisrCWFwcGVuZCBjcnggIn0iCisrICAgIH0KKysKKysgICAgcmV0dXJuICRjcngKKyt9CisrCisr IyBVcGRhdGUgYSBkeW5hbWljIHZhcm9iaiBuYW1lZCBOQU1FLiAgQ0hJTERSRU4gaXMgYSBsaXN0 IG9mIGNoaWxkcmVuCisrIyB0aGF0IGhhdmUgYmVlbiB1cGRhdGVkOyBORVdfQ0hJTERSRU4gaXMg YSBsaXN0IG9mIGNoaWxkcmVuIHRoYXQgd2VyZQorKyMgYWRkZWQgdG8gdGhlIHByaW1hcnkgdmFy b2JqLiAgRWFjaCBjaGlsZCBpcyBhIGxpc3Qgb2Yga2V5L3ZhbHVlCisrIyBwYWlycyB0aGF0IGFy ZSBleHBlY3RlZC4gIFNFTEYgaXMgYSBrZXkvdmFsdWUgbGlzdCBob2xkaW5nCisrIyBpbmZvcm1h dGlvbiBhYm91dCB0aGUgdmFyb2JqIGl0c2VsZi4gIFRFU1ROQU1FIGlzIHRoZSBuYW1lIG9mIHRo ZQorKyMgdGVzdC4KKytwcm9jIG1pX3Zhcm9ial91cGRhdGVfZHluYW1pYyB7bmFtZSB0ZXN0bmFt ZSBzZWxmIGNoaWxkcmVuIG5ld19jaGlsZHJlbn0geworKyAgICBpZiB7W2xsZW5ndGggJG5ld19j aGlsZHJlbl19IHsKKysJc2V0IG5ld3J4IFttaV92YXJvYmpfdXBkYXRlX2R5bmFtaWNfaGVscGVy ICRuZXdfY2hpbGRyZW5dCisrCWxhcHBlbmQgc2VsZiBuZXdfY2hpbGRyZW4gJG5ld3J4CisrICAg IH0KKysgICAgc2V0IHNlbGZyeCBbbWlfdmFyb2JqX3VwZGF0ZV9rdl9oZWxwZXIgJHNlbGZdCisr ICAgIHNldCBjcnggW21pX3Zhcm9ial91cGRhdGVfZHluYW1pY19oZWxwZXIgJGNoaWxkcmVuXQor IAorLSAgICBhcHBlbmQgZXIgIntuYW1lPVwiJG5hbWVcIixpbl9zY29wZT1cInRydWVcIix0eXBl X2NoYW5nZWQ9XCJmYWxzZVwiIgogLSAgICBhcHBlbmQgZXIgIixjaGlsZHJlbj1cXFxbJGNoaWxk cmVuX2V4cF9qLipcXFxdfVxcXF0iCi0rICAgIGFwcGVuZCBlciAiLGNoaWxkcmVuPVxcXFskY2hp bGRyZW5fZXhwX2ouKlxcXF0saGFzX21vcmU9XCIuXCJ9XFxcXSIKKysgICAgc2V0IGVyICJcXF5k b25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9XCJ0cnVlXCIiCisr ICAgIGFwcGVuZCBlciAiLCRzZWxmcnhcfSIKKysgICAgaWYgeyIkY3J4IiAhPSAiIn0geworKwlh cHBlbmQgZXIgIiwkY3J4IgorKyAgICB9CisrICAgIGFwcGVuZCBlciAiXFxcXSIKICAKICAgICAg dmVyYm9zZSAtbG9nICJFeHBlY3Rpbmc6ICRlciIKICAgICAgbWlfZ2RiX3Rlc3QgIi12YXItdXBk YXRlICRuYW1lIiAkZXIgJHRlc3RuYW1lCi1AQCAtMTMyOCwxNCArMTMyOCwxMyBAQCBwcm9jIG1p X2NoaWxkX3JlZ2V4cCB7Y2hpbGRyZW4gYWRkX2NoaWxkfSB7CitAQCAtMTMyOSwxNCArMTM3Nywx MyBAQCBwcm9jIG1pX2NoaWxkX3JlZ2V4cCB7Y2hpbGRyZW4gYWRkX2NoaWxkfSB7CiAgIyBoYXZl IG5vIHZhbHVlLgogICMKICBwcm9jIG1pX2xpc3RfdmFyb2JqX2NoaWxkcmVuIHsgdmFybmFtZSBj aGlsZHJlbiB0ZXN0bmFtZSB9IHsKQEAgLTIzNzMwLDcgKzI0MjMxLDcgQEAgaW5kZXggOWI0YzQ2 NC4uMzNmMjc3YSAxMDA2NDQKICAgICAgc2V0IG9wdGlvbnMgIiIKICAgICAgaWYge1tsbGVuZ3Ro ICR2YXJuYW1lXSA9PSAyfSB7CiAgICAgICAgICBzZXQgb3B0aW9ucyBbbGluZGV4ICR2YXJuYW1l IDFdCi1AQCAtMTM1MSw5ICsxMzUwLDE4IEBAIHByb2MgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW5f cmFuZ2Uge3Zhcm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9IHsKK0BAIC0xMzUy LDkgKzEzOTksMTggQEAgcHJvYyBtaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSB7dmFybmFt ZSBudW1jaGlsZHJlbiBjaGlsZHJlbiB0ZXN0bmFtZX0gewogICAgICAgICAgc2V0IGV4cGVjdGVk ICJcXF5kb25lLG51bWNoaWxkPVwiMFwiIgogICAgICB9CiAgCkBAIC0yNDAwOCw3ICsyNDUwOSw3 IEBAIGluZGV4IDE1NjJkNWEuLmQ4NmE3ZWIgMTAwNjQ0CiAgZXh0ZXJuIGxvbmcgdWlfZmlsZV9y ZWFkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBsb25nIGxlbmd0aF9idWYpOwog IAogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKLWluZGV4IGViNzVmMmUu LjFlMjQ2YjggMTAwNjQ0CitpbmRleCBhMjY2YjAyLi4zZDk1M2UzIDEwMDY0NAogLS0tIGEvZ2Ri L3V0aWxzLmMKICsrKyBiL2dkYi91dGlscy5jCiBAQCAtMjYwNSw3ICsyNjA1LDEwIEBAIGZwcmlu dGZfc3ltYm9sX2ZpbHRlcmVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjaGFyICpuYW1lLApA QCAtMjQxMjMsNyArMjQ2MjQsNyBAQCBpbmRleCBhOWM4NzVkLi4xMmY2ZjA3IDEwMDY0NAogIH0K ICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDVlNWM0 ZWQuLjU5YzkwMTggMTAwNjQ0CitpbmRleCA1ZTVjNGVkLi40NDZhNGQxIDEwMDY0NAogLS0tIGEv Z2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICszOCw3IEBACkBAIC0y NDQ3NywxOCArMjQ5NzgsMTUgQEAgaW5kZXggNWU1YzRlZC4uNTljOTAxOCAxMDA2NDQKICAKICAJ ICBpZiAoVFlQRV9GTl9GSUVMRF9TVEFUSUNfUCAoZiwgaikpCiAgCSAgICB7Ci1AQCAtMjc1Miw5 ICsyOTMyLDkgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5cGUg KmN1cnR5cGUsCitAQCAtMjc1Miw3ICsyOTMyLDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2Vs dCAoY29uc3Qgc3RydWN0IHR5cGUgKmN1cnR5cGUsCiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAg ICBzdHJ1Y3QgdmFsdWUgKnJlc3VsdDsKICAKIC0gIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfbmFt ZXNwYWNlIChuYW1lc3BhY2VfbmFtZSwgbmFtZSwgTlVMTCwKLSsgIHN5bSA9IGNwX2xvb2t1cF9z eW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsIChuYW1lc3BhY2VfbmFtZSwgbmFtZSwKKysgIHN5 bSA9IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsKG5hbWVzcGFjZV9uYW1l LCBuYW1lLAogIAkJCQkgICAgZ2V0X3NlbGVjdGVkX2Jsb2NrICgwKSwgCi0tCQkJCSAgICBWQVJf RE9NQUlOKTsKLSsJCQkJICAgIFZBUl9ET01BSU4sIDApOworIAkJCQkgICAgVkFSX0RPTUFJTik7 CiAgCi0gICBpZiAoc3ltID09IE5VTEwpCi0gICAgIHJldHVybiBOVUxMOwogQEAgLTI4OTYsNyAr MzA3Niw3IEBAIHZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4p CiAgCiAgICAvKiBDYWxsaW5nIGxvb2t1cF9ibG9ja19zeW1ib2wgaXMgbmVjZXNzYXJ5IHRvIGdl dCB0aGUgTE9DX1JFR0lTVEVSCkBAIC0yNDUyOSw3ICsyNTAyNyw3IEBAIGluZGV4IGNiYjVkOTQu LmNmMzViZjAgMTAwNjQ0CiAgCSAgKytyZXBzOwogIAkgICsrcmVwMTsKIGRpZmYgLS1naXQgYS9n ZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCA2NWE1YWE5Li4wMDdlNGIwIDEwMDY0NAor aW5kZXggNjVhNWFhOS4uYzk0Mzc4MSAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5jCiArKysgYi9n ZGIvdmFsdWUuYwogQEAgLTM3LDggKzM3LDEwIEBACkBAIC0yNDU0Myw3ICsyNTA0MSwyMiBAQCBp bmRleCA2NWE1YWE5Li4wMDdlNGIwIDEwMDY0NAogIAogICNpbmNsdWRlICJweXRob24vcHl0aG9u LmgiCiAgCi1AQCAtMjU3LDcgKzI1OSw5IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0 eXBlICp0eXBlKQorQEAgLTE3MCw2ICsxNzIsMTQgQEAgc3RydWN0IHZhbHVlCisgICAgICB0YWtl biBvZmYgdGhpcyBsaXN0LiAgKi8KKyAgIHN0cnVjdCB2YWx1ZSAqbmV4dDsKKyAKKysgIC8qIFRo ZSByZWZlcmVuY2UgY291bnQuICBBIHZhbHVlIHRoYXQgaXMgc3RpbGwgb24gdGhlIGBhbGxfdmFs dWVzJworKyAgICAgbGlzdCB3aWxsIGhhdmUgYSByZWZlcmVuY2UgY291bnQgb2YgMC4gIEEgY2Fs bCB0byBgcmVsZWFzZV92YWx1ZScKKysgICAgIHdpbGwgaW5jcmVtZW50IHRoZSByZWZlcmVuY2Ug Y291bnQgKGFuZCByZW1vdmUgdGhlIHZhbHVlIGZyb20gdGhlCisrICAgICBsaXN0LCB0aGUgZmly c3QgdGltZSkuICBBIGNhbGwgdG8gYHZhbHVlX2ZyZWUnIHdpbGwgZGVjcmVtZW50IHRoZQorKyAg ICAgcmVmZXJlbmNlIGNvdW50LCBhbmQgd2lsbCBmcmVlIHRoZSB2YWx1ZSB3aGVuIHRoZXJlIGFy ZSBubyBtb3JlCisrICAgICByZWZlcmVuY2VzLiAgKi8KKysgIGludCByZWZjb3VudDsKKysKKyAg IC8qIFJlZ2lzdGVyIG51bWJlciBpZiB0aGUgdmFsdWUgaXMgZnJvbSBhIHJlZ2lzdGVyLiAgKi8K KyAgIHNob3J0IHJlZ251bTsKKyAKK0BAIC0yNTcsNyArMjY3LDkgQEAgYWxsb2NhdGVfdmFsdWVf bGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOwogICAg YWxsX3ZhbHVlcyA9IHZhbDsKICAgIHZhbC0+dHlwZSA9IHR5cGU7CkBAIC0yNDU1Myw3ICsyNTA2 Niw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiAgICBWQUxVRV9MVkFMICh2YWwp ID0gbm90X2x2YWw7CiAgICB2YWwtPmxvY2F0aW9uLmFkZHJlc3MgPSAwOwogICAgVkFMVUVfRlJB TUVfSUQgKHZhbCkgPSBudWxsX2ZyYW1lX2lkOwotQEAgLTM2Nyw2ICszNzEsOCBAQCB2YWx1ZV90 eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorQEAgLTM2Nyw2ICszNzksOCBAQCB2YWx1ZV90eXBl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogIHZvaWQKICBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC0yNDU2Miwy NyArMjUwNzUsOTEgQEAgaW5kZXggNjVhNWFhOS4uMDA3ZTRiMCAxMDA2NDQKICAgIHZhbHVlLT50 eXBlID0gdHlwZTsKICB9CiAgCi1AQCAtNjIzLDYgKzYyOSw5IEBAIHZhbHVlX2ZyZWUgKHN0cnVj dCB2YWx1ZSAqdmFsKQorQEAgLTYyMywyNyArNjM3LDI4IEBAIHZhbHVlX2ZyZWUgKHN0cnVjdCB2 YWx1ZSAqdmFsKQogIHsKICAgIGlmICh2YWwpCiAgICAgIHsKLSsgICAgICB0eXBlX2RlY3JlZiAo dmFsLT50eXBlKTsKLSsgICAgICB0eXBlX2RlY3JlZiAodmFsLT5lbmNsb3NpbmdfdHlwZSk7Ci0r Ci0gICAgICAgZ2RiX2Fzc2VydCAodmFsLT5yZWZlcmVuY2VfY291bnQgPiAwKTsKLSAgICAgICB2 YWwtPnJlZmVyZW5jZV9jb3VudC0tOwotICAgICAgIGlmICh2YWwtPnJlZmVyZW5jZV9jb3VudCA+ IDApCi1AQCAtNjQyLDggKzY1MSw4IEBAIHZhbHVlX2ZyZWUgKHN0cnVjdCB2YWx1ZSAqdmFsKQot IAl9CistICAgICAgZ2RiX2Fzc2VydCAodmFsLT5yZWZlcmVuY2VfY291bnQgPiAwKTsKKy0gICAg ICB2YWwtPnJlZmVyZW5jZV9jb3VudC0tOworLSAgICAgIGlmICh2YWwtPnJlZmVyZW5jZV9jb3Vu dCA+IDApCistCXJldHVybjsKKysgICAgICAvKiBJZiB0aGUgY291bnQgd2FzIGFscmVhZHkgMCwg dGhlbiB0aGUgdmFsdWUgd2FzIG9uIHRoZQorKwkgYWxsX3ZhbHVlcyBsaXN0LCBhbmQgd2UgbXVz dCBiZSBmcmVlaW5nIGJhY2sgdG8gc29tZQorKwkgcG9pbnQuICAqLworKyAgICAgIGlmICh2YWwt PnJlZmNvdW50IDw9IDEpCisrCXsKKysJICB0eXBlX2RlY3JlZiAodmFsLT50eXBlKTsKKysJICB0 eXBlX2RlY3JlZiAodmFsLT5lbmNsb3NpbmdfdHlwZSk7CisgCistICAgICAgLyogSWYgdGhlcmUn cyBhbiBhc3NvY2lhdGVkIHBhcmVudCB2YWx1ZSwgZHJvcCBvdXIgcmVmZXJlbmNlIHRvCistCSBp dC4gICovCistICAgICAgaWYgKHZhbC0+cGFyZW50ICE9IE5VTEwpCistCXZhbHVlX2ZyZWUgKHZh bC0+cGFyZW50KTsKKysJICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2NvbXB1dGVkKQor KwkgICAgeworKwkgICAgICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB2YWwtPmxvY2F0aW9u LmNvbXB1dGVkLmZ1bmNzOworIAorLSAgICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxf Y29tcHV0ZWQpCistCXsKKy0JICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB2YWwtPmxvY2F0 aW9uLmNvbXB1dGVkLmZ1bmNzOworKwkgICAgICBpZiAoZnVuY3MtPmZyZWVfY2xvc3VyZSkKKysJ CWZ1bmNzLT5mcmVlX2Nsb3N1cmUgKHZhbCk7CisrCSAgICB9CiAgCi0gICAgICAgeGZyZWUgKHZh bC0+Y29udGVudHMpOwotKyAgICAgIHhmcmVlICh2YWwpOworLQkgIGlmIChmdW5jcy0+ZnJlZV9j bG9zdXJlKQorLQkgICAgZnVuY3MtPmZyZWVfY2xvc3VyZSAodmFsKTsKKysJICB4ZnJlZSAodmFs LT5jb250ZW50cyk7CisrCSAgeGZyZWUgKHZhbCk7CisgCX0KKy0KKy0gICAgICB4ZnJlZSAodmFs LT5jb250ZW50cyk7CisrICAgICAgZWxzZQorKwktLXZhbC0+cmVmY291bnQ7CiAgICAgIH0KIC0g IHhmcmVlICh2YWwpOwogIH0KICAKICAvKiBGcmVlIGFsbCB2YWx1ZXMgYWxsb2NhdGVkIHNpbmNl IE1BUksgd2FzIG9idGFpbmVkIGJ5IHZhbHVlX21hcmsKLUBAIC03MzYsNiArNzQ1LDkgQEAgdmFs dWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCitAQCAtNjg2LDIyICs3MDEsMjYgQEAgZnJlZV9h bGxfdmFsdWVzICh2b2lkKQorIHZvaWQKKyByZWxlYXNlX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZh bCkKKyB7CistICBzdHJ1Y3QgdmFsdWUgKnY7CistCistICBpZiAoYWxsX3ZhbHVlcyA9PSB2YWwp CistICAgIHsKKy0gICAgICBhbGxfdmFsdWVzID0gdmFsLT5uZXh0OworLSAgICAgIHJldHVybjsK Ky0gICAgfQorLQorLSAgZm9yICh2ID0gYWxsX3ZhbHVlczsgdjsgdiA9IHYtPm5leHQpCisrICAv KiBJZiB0aGUgcmVmZXJlbmNlIGNvdW50IGlzIG5vbnplcm8sIHRoZW4gd2UgaGF2ZSBhbHJlYWR5 IHJlbW92ZWQKKysgICAgIHRoZSBpdGVtIGZyb20gdGhlIGxpc3QsIHNvIHRoZXJlIGlzIG5vIHJl YXNvbiB0byBkbyBpdCBhZ2Fpbi4gICovCisrICBpZiAodmFsLT5yZWZjb3VudCA9PSAwKQorICAg ICB7CistICAgICAgaWYgKHYtPm5leHQgPT0gdmFsKQorKyAgICAgIGlmIChhbGxfdmFsdWVzID09 IHZhbCkKKysJYWxsX3ZhbHVlcyA9IHZhbC0+bmV4dDsKKysgICAgICBlbHNlCisgCXsKKy0JICB2 LT5uZXh0ID0gdmFsLT5uZXh0OworLQkgIGJyZWFrOworKwkgIHN0cnVjdCB2YWx1ZSAqdjsKKysJ ICBmb3IgKHYgPSBhbGxfdmFsdWVzOyB2OyB2ID0gdi0+bmV4dCkKKysJICAgIHsKKysJICAgICAg aWYgKHYtPm5leHQgPT0gdmFsKQorKwkJeworKwkJICB2LT5uZXh0ID0gdmFsLT5uZXh0OworKwkJ ICBicmVhazsKKysJCX0KKysJICAgIH0KKyAJfQorICAgICB9CisrICArK3ZhbC0+cmVmY291bnQ7 CisgfQorIAorIC8qIFJlbGVhc2UgYWxsIHZhbHVlcyB1cCB0byBtYXJrICAqLworQEAgLTczNiw2 ICs3NTUsOSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKICAgICAgdmFsID0gYWxs b2NhdGVfdmFsdWVfbGF6eSAoZW5jbF90eXBlKTsKICAgIGVsc2UKICAgICAgdmFsID0gYWxsb2Nh dGVfdmFsdWUgKGVuY2xfdHlwZSk7CkBAIC0yNDU5Miw3ICsyNTE2OSw3IEBAIGluZGV4IDY1YTVh YTkuLjAwN2U0YjAgMTAwNjQ0CiAgICB2YWwtPnR5cGUgPSBhcmctPnR5cGU7CiAgICBWQUxVRV9M VkFMICh2YWwpID0gVkFMVUVfTFZBTCAoYXJnKTsKICAgIHZhbC0+bG9jYXRpb24gPSBhcmctPmxv Y2F0aW9uOwotQEAgLTc3MSwxMiArNzgzLDE1IEBAIHZhbHVlX2NvcHkgKHN0cnVjdCB2YWx1ZSAq YXJnKQorQEAgLTc3MSwxMiArNzkzLDE1IEBAIHZhbHVlX2NvcHkgKHN0cnVjdCB2YWx1ZSAqYXJn KQogIHZvaWQKICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNv bXBvbmVudCwgc3RydWN0IHZhbHVlICp3aG9sZSkKICB7CkBAIC0yNDYwOCw3ICsyNTE4NSw3IEBA IGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiAgICBpZiAoVkFMVUVfTFZBTCAod2hvbGUp ID09IGx2YWxfY29tcHV0ZWQpCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVu Y3MgPSB3aG9sZS0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3M7Ci1AQCAtNzg0LDYgKzc5OSwxMCBA QCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwg c3RydWN0IHZhbHVlICp3aG9sZSkKK0BAIC03ODQsNiArODA5LDEwIEBAIHNldF92YWx1ZV9jb21w b25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LCBzdHJ1Y3QgdmFsdWUgKndo b2xlKQogICAgICAgIGlmIChmdW5jcy0+Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50 LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUp OwogICAgICB9CkBAIC0yNDYxOSw3ICsyNTE5Niw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAg MTAwNjQ0CiAgfQogIAogIAwKLUBAIC05MTQsNiArOTMzLDI5IEBAIHNob3dfdmFsdWVzIChjaGFy ICpudW1fZXhwLCBpbnQgZnJvbV90dHkpCitAQCAtOTE0LDYgKzk0MywyOSBAQCBzaG93X3ZhbHVl cyAoY2hhciAqbnVtX2V4cCwgaW50IGZyb21fdHR5KQogICAgICAgIG51bV9leHBbMV0gPSAnXDAn OwogICAgICB9CiAgfQpAQCAtMjQ2NDksNyArMjUyMjYsNyBAQCBpbmRleCA2NWE1YWE5Li4wMDdl NGIwIDEwMDY0NAogIAwKICAvKiBJbnRlcm5hbCB2YXJpYWJsZXMuICBUaGVzZSBhcmUgdmFyaWFi bGVzIHdpdGhpbiB0aGUgZGVidWdnZXIKICAgICB0aGF0IGhvbGQgdmFsdWVzIGFzc2lnbmVkIGJ5 IGRlYnVnZ2VyIGNvbW1hbmRzLgotQEAgLTEzODgsNiArMTQzMCwzNyBAQCBjYWxsX2ludGVybmFs X2Z1bmN0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0xMzg4LDYgKzE0NDAsMzcg QEAgY2FsbF9pbnRlcm5hbF9mdW5jdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICBy ZXR1cm4gKCppZm4tPmhhbmRsZXIpIChnZGJhcmNoLCBsYW5ndWFnZSwgaWZuLT5jb29raWUsIGFy Z2MsIGFyZ3YpOwogIH0KICAKQEAgLTI0Njg3LDcgKzI1MjY0LDcgQEAgaW5kZXggNjVhNWFhOS4u MDA3ZTRiMCAxMDA2NDQKICAvKiBUaGUgJ2Z1bmN0aW9uJyBjb21tYW5kLiAgVGhpcyBkb2VzIG5v dGhpbmcgLS0gaXQgaXMganVzdCBhCiAgICAgcGxhY2Vob2xkZXIgdG8gbGV0ICJoZWxwIGZ1bmN0 aW9uIE5BTUUiIHdvcmsuICBUaGlzIGlzIGFsc28gdXNlZCBhcwogICAgIHRoZSBpbXBsZW1lbnRh dGlvbiBvZiB0aGUgc3ViLWNvbW1hbmQgdGhhdCBpcyBjcmVhdGVkIHdoZW4KLUBAIC0xNDMwLDE3 ICsxNTAzLDI2IEBAIGFkZF9pbnRlcm5hbF9mdW5jdGlvbiAoY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqZG9jLAorQEAgLTE0MzAsMTYgKzE1MTMsMTUgQEAgYWRkX2ludGVybmFsX2Z1bmN0 aW9uIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpkb2MsCiAgLyogVXBkYXRlIFZBTFVF IGJlZm9yZSBkaXNjYXJkaW5nIE9CSkZJTEUuICBDT1BJRURfVFlQRVMgaXMgdXNlZCB0bwogICAg IHByZXZlbnQgY3ljbGVzIC8gZHVwbGljYXRlcy4gICovCiAgCkBAIC0yNDY5OCwyNyArMjUyNzUs MTUgQEAgaW5kZXggNjVhNWFhOS4uMDA3ZTRiMCAxMDA2NDQKICB7CiAgICBpZiAoVFlQRV9PQkpG SUxFICh2YWx1ZS0+dHlwZSkgPT0gb2JqZmlsZSkKIC0gICAgdmFsdWUtPnR5cGUgPSBjb3B5X3R5 cGVfcmVjdXJzaXZlIChvYmpmaWxlLCB2YWx1ZS0+dHlwZSwgY29waWVkX3R5cGVzKTsKLSsgICAg ewotKyAgICAgIC8qIE5vIG5lZWQgdG8gZGVjcmVmIHRoZSBvbGQgdHlwZSBoZXJlLCBzaW5jZSB3 ZSBrbm93IGl0IGhhcyBubwotKwkgcmVmZXJlbmNlIGNvdW50LiAgKi8KLSsgICAgICB2YWx1ZS0+ dHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHZhbHVlLT50eXBlLCBjb3BpZWRfdHlwZXMpOwot KyAgICAgIHR5cGVfaW5jcmVmICh2YWx1ZS0+dHlwZSk7Ci0rICAgIH0KKysgICAgdmFsdWUtPnR5 cGUgPSBjb3B5X3R5cGVfcmVjdXJzaXZlICh2YWx1ZS0+dHlwZSwgY29waWVkX3R5cGVzKTsKICAK ICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVlLT5lbmNsb3NpbmdfdHlwZSkgPT0gb2JqZmlsZSkK IC0gICAgdmFsdWUtPmVuY2xvc2luZ190eXBlID0gY29weV90eXBlX3JlY3Vyc2l2ZSAob2JqZmls ZSwKIC0JCQkJCQkgdmFsdWUtPmVuY2xvc2luZ190eXBlLAotLQkJCQkJCSBjb3BpZWRfdHlwZXMp OwotKyAgICB7Ci0rICAgICAgLyogTm8gbmVlZCB0byBkZWNyZWYgdGhlIG9sZCB0eXBlIGhlcmUs IHNpbmNlIHdlIGtub3cgaXQgaGFzIG5vCi0rCSByZWZlcmVuY2UgY291bnQuICAqLwotKyAgICAg IHZhbHVlLT5lbmNsb3NpbmdfdHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHZhbHVlLT5lbmNs b3NpbmdfdHlwZSwKLSsJCQkJCQkgICBjb3BpZWRfdHlwZXMpOwotKyAgICAgIHR5cGVfaW5jcmVm ICh2YWx1ZS0+ZW5jbG9zaW5nX3R5cGUpOwotKyAgICB9CisrICAgIHZhbHVlLT5lbmNsb3Npbmdf dHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHZhbHVlLT5lbmNsb3NpbmdfdHlwZSwKKyAJCQkJ CQkgY29waWVkX3R5cGVzKTsKICB9CiAgCi0gLyogTGlrZXdpc2UgZm9yIGludGVybmFsIHZhcmlh YmxlIFZBUi4gICovCiBAQCAtMTQ1NCw3ICsxNTM2LDcgQEAgcHJlc2VydmVfb25lX2ludGVybmFs dmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAg ICAgIGNhc2UgSU5URVJOQUxWQVJfU0NBTEFSOgogICAgICAgIGlmICh2YXItPnUuc2NhbGFyLnR5 cGUgJiYgVFlQRV9PQkpGSUxFICh2YXItPnUuc2NhbGFyLnR5cGUpID09IG9iamZpbGUpCkBAIC0y NDgzOSw3ICsyNTQwNCw3IEBAIGluZGV4IDY1YTVhYTkuLjAwN2U0YjAgMTAwNjQ0CiArICBvYnNl cnZlcl9hdHRhY2hfbWFya191c2VkICh2YWx1ZV90eXBlc19tYXJrX3VzZWQpOwogIH0KIGRpZmYg LS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCi1pbmRleCAyOWFkNzgzLi5iYzk2MzA5 IDEwMDY0NAoraW5kZXggMjlhZDc4My4uZWU4NDQwYiAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5o CiArKysgYi9nZGIvdmFsdWUuaAogQEAgLTM0NCwxMSArMzQ0LDE2IEBAIGV4dGVybiBMT05HRVNU IHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI0ODY3LDcgKzI1 NDMyLDcgQEAgaW5kZXggMjlhZDc4My4uYmM5NjMwOSAxMDA2NDQKICAJCQkJCSAgaW50IHdhbnRf YWRkcmVzcywKICAJCQkJCSAgZW51bSBub3NpZGUgbm9zaWRlKTsKICAKLUBAIC02NTgsMTIgKzY2 NCwxMyBAQCBleHRlcm4gdm9pZCB0eXBlZGVmX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHN5bWJvbCAqbmV3cywKK0BAIC02NTgsMTIgKzY2NCwxMiBAQCBleHRlcm4gdm9pZCB0eXBl ZGVmX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3cywKICAKICBl eHRlcm4gY2hhciAqaW50ZXJuYWx2YXJfbmFtZSAoc3RydWN0IGludGVybmFsdmFyICp2YXIpOwog IApAQCAtMjQ4NzcsMTMgKzI1NDQyLDEyIEBAIGluZGV4IDI5YWQ3ODMuLmJjOTYzMDkgMTAwNjQ0 CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICopOwog IAotK2V4dGVybiB2b2lkIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwg c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCi0rCQkJCWh0YWJfdCBjb3BpZWRfdHlwZXMpOworK2V4 dGVybiB2b2lkIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCBvYmpm aWxlICosIGh0YWJfdCk7CiArCiAgLyogRnJvbSB2YWxvcHMuYyAqLwogIAogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKLUBAIC02ODEsNyAr Njg4LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5m ZXJpb3IgKGludCk7CitAQCAtNjgxLDcgKzY4Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChpbnQpOwogIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4pOwogIAog IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZh bHVlICphcnJheSwKQEAgLTI0ODkzLDEwICsyNTQ1NywxNSBAQCBpbmRleCAyOWFkNzgzLi5iYzk2 MzA5IDEwMDY0NAogIC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCiBkaWZmIC0tZ2l0 IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCi1pbmRleCA0YTk0OTg4Li45YmZjMTMwIDEw MDY0NAoraW5kZXggNGE5NDk4OC4uMzQzMzNmYiAxMDA2NDQKIC0tLSBhL2dkYi92YXJvYmouYwog KysrIGIvZ2RiL3Zhcm9iai5jCi1AQCAtMjksMTEgKzI5LDE0IEBACitAQCAtMjYsMTQgKzI2LDE4 IEBACisgI2luY2x1ZGUgImdkYmNtZC5oIgorICNpbmNsdWRlICJibG9jay5oIgorICNpbmNsdWRl ICJ2YWxwcmludC5oIgorKyNpbmNsdWRlICJvYmpmaWxlcy5oIgorKyNpbmNsdWRlICJwYXJzZXIt ZGVmcy5oIgogIAogICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCiAgI2luY2x1ZGUgImdkYl9zdHJp bmcuaCIKQEAgLTI0OTA3LDExICsyNTQ3NiwxMCBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEw MDY0NAogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW5mZXJpb3IuaCIKICsj aW5jbHVkZSAib2JzZXJ2ZXIuaCIKLSsjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKICAKICAjaWYg SEFWRV9QWVRIT04KICAjaW5jbHVkZSAicHl0aG9uL3B5dGhvbi5oIgotQEAgLTU5LDYgKzYyLDE1 IEBAIGNoYXIgKnZhcm9ial9mb3JtYXRfc3RyaW5nW10gPQorQEAgLTU5LDYgKzYzLDE1IEBAIGNo YXIgKnZhcm9ial9mb3JtYXRfc3RyaW5nW10gPQogIC8qIFN0cmluZyByZXByZXNlbnRhdGlvbnMg b2YgZ2RiJ3Mga25vd24gbGFuZ3VhZ2VzICovCiAgY2hhciAqdmFyb2JqX2xhbmd1YWdlX3N0cmlu Z1tdID0geyAidW5rbm93biIsICJDIiwgIkMrKyIsICJKYXZhIiB9OwogIApAQCAtMjQ5MjcsNyAr MjU0OTUsNyBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIC8qIERhdGEgc3RydWN0 dXJlcyAqLwogIAogIC8qIEV2ZXJ5IHJvb3QgdmFyaWFibGUgaGFzIG9uZSBvZiB0aGVzZSBzdHJ1 Y3R1cmVzIHNhdmVkIGluIGl0cwotQEAgLTE3Myw2ICsxODUsMTcgQEAgc3RydWN0IHZhcm9iagor QEAgLTE3Myw5ICsxODYsMzEgQEAgc3RydWN0IHZhcm9iagogICAgICAgZnJvemVuLiAgKi8KICAg IGludCBub3RfZmV0Y2hlZDsKICAKQEAgLTI0OTQ1LDcgKzI1NTEzLDIxIEBAIGluZGV4IDRhOTQ5 ODguLjliZmMxMzAgMTAwNjQ0CiAgICAvKiBUaGUgcHJldHR5LXByaW50ZXIgdGhhdCBoYXMgYmVl biBjb25zdHJ1Y3RlZC4gIElmIE5VTEwsIHRoZW4gYQogICAgICAgbmV3IHByaW50ZXIgb2JqZWN0 IGlzIG5lZWRlZCwgYW5kIG9uZSB3aWxsIGJlIGNvbnN0cnVjdGVkLiAgKi8KICAgIFB5T2JqZWN0 ICpwcmV0dHlfcHJpbnRlcjsKLUBAIC0yMjEsNiArMjQ0LDggQEAgc3RhdGljIHZvaWQgZnJlZV92 YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKKysKKysgIC8qIFRoZSBpdGVyYXRvciByZXR1 cm5lZCBieSB0aGUgcHJpbnRlcidzICdjaGlsZHJlbicgbWV0aG9kLCBvciBOVUxMCisrICAgICBp ZiBub3QgYXZhaWxhYmxlLiAgKi8KKysgIFB5T2JqZWN0ICpjaGlsZF9pdGVyOworKworKyAgLyog V2UgcmVxdWVzdCBvbmUgZXh0cmEgaXRlbSBmcm9tIHRoZSBpdGVyYXRvciwgc28gdGhhdCB3ZSBj YW4KKysgICAgIHJlcG9ydCB0byB0aGUgY2FsbGVyIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgaXRl bXMgdGhhbiB3ZSBoYXZlCisrICAgICBhbHJlYWR5IHJlcG9ydGVkLiAgSG93ZXZlciwgd2UgZG9u J3Qgd2FudCB0byBpbnN0YWxsIHRoaXMgdmFsdWUKKysgICAgIHdoZW4gd2UgcmVhZCBpdCwgYmVj YXVzZSB0aGF0IHdpbGwgbWVzcyB1cCBmdXR1cmUgdXBkYXRlcy4gIFNvLAorKyAgICAgd2Ugc3Rh c2ggaXQgaGVyZSBpbnN0ZWFkLiAgKi8KKysgIFB5T2JqZWN0ICpzYXZlZF9pdGVtOworIH07Cisg Cisgc3RydWN0IGNwc3RhY2sKK0BAIC0yMjEsNiArMjU2LDggQEAgc3RhdGljIHZvaWQgZnJlZV92 YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKICAKICBzdGF0aWMgc3RydWN0IGNsZWFudXAg Km1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwogIApAQCAt MjQ5NTQsNyArMjU1MzYsNyBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqZ2V0X3R5cGUgKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCiAgc3RhdGlj IHN0cnVjdCB0eXBlICpnZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLUBAIC0y MzYsOCArMjYxLDYgQEAgc3RhdGljIGNoYXIgKmNwcG9wIChzdHJ1Y3QgY3BzdGFjayAqKnBzdGFj ayk7CitAQCAtMjM2LDggKzI3Myw2IEBAIHN0YXRpYyBjaGFyICpjcHBvcCAoc3RydWN0IGNwc3Rh Y2sgKipwc3RhY2spOwogIHN0YXRpYyBpbnQgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJv YmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgCiAgCQkJICAgICAgaW50IGluaXRpYWwpOwog IApAQCAtMjQ5NjMsNyArMjU1NDUsMTYgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQK ICAvKiBMYW5ndWFnZS1zcGVjaWZpYyByb3V0aW5lcy4gKi8KICAKICBzdGF0aWMgZW51bSB2YXJv YmpfbGFuZ3VhZ2VzIHZhcmlhYmxlX2xhbmd1YWdlIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwotQEAg LTYxNCw5ICs2MzcsOSBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAorQEAgLTQ1MCw2 ICs0ODUsOCBAQCBpc19yb290X3AgKHN0cnVjdCB2YXJvYmogKnZhcikKKyBzdHJ1Y3QgY2xlYW51 cCAqCisgdmFyb2JqX2Vuc3VyZV9weXRob25fZW52IChzdHJ1Y3QgdmFyb2JqICp2YXIpCisgewor KyAgZ2RiX2Fzc2VydCAodmFyLT5yb290LT5pc192YWxpZCk7CisrCisgICByZXR1cm4gZW5zdXJl X3B5dGhvbl9lbnYgKHZhci0+cm9vdC0+ZXhwLT5nZGJhcmNoLAorIAkJCSAgICB2YXItPnJvb3Qt PmV4cC0+bGFuZ3VhZ2VfZGVmbik7CisgfQorQEAgLTYxNCw5ICs2NTEsOSBAQCB2YXJvYmpfY3Jl YXRlIChjaGFyICpvYmpuYW1lLAogIAkgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOwogIAkgIHJl dHVybiBOVUxMOwogIAl9CkBAIC0yNDk3NCwxOCArMjU1NjUsMzM5IEBAIGluZGV4IDRhOTQ5ODgu LjliZmMxMzAgMTAwNjQ0CiAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOwogICAgcmV0 dXJuIHZhcjsKICB9Ci1AQCAtODg0LDcgKzkwNyw5IEBAIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9j aGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLAorQEAgLTczMSwxNSArNzY4LDggQEAgaW5zdGFu dGlhdGVfcHJldHR5X3ByaW50ZXIgKFB5T2JqZWN0ICpjb25zdHJ1Y3Rvciwgc3RydWN0IHZhbHVl ICp2YWx1ZSkKKyAjaWYgSEFWRV9QWVRIT04KKyAgIFB5T2JqZWN0ICp2YWxfb2JqID0gTlVMTDsg CisgICBQeU9iamVjdCAqcHJpbnRlcjsKKy0gIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9u IGV4Y2VwdDsKKyAKKy0gIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCistICAg IHsKKy0gICAgICB2YWx1ZSA9IHZhbHVlX2NvcHkgKHZhbHVlKTsKKy0gICAgfQorLSAgR0RCX1BZ X0hBTkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7CisgICB2YWxfb2JqID0gdmFsdWVfdG9fdmFsdWVf b2JqZWN0ICh2YWx1ZSk7CistCisgICBpZiAoISB2YWxfb2JqKQorICAgICByZXR1cm4gTlVMTDsK KyAKK0BAIC03OTIsNyArODIyLDEyIEBAIHZhcm9ial9nZXRfZGlzcGxheV9oaW50IChzdHJ1Y3Qg dmFyb2JqICp2YXIpCisgICBjaGFyICpyZXN1bHQgPSBOVUxMOworIAorICNpZiBIQVZFX1BZVEhP TgorLSAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYg KHZhcik7CisrICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgIAorKyAgaWYgKCF2YXItPnJv b3QtPmlzX3ZhbGlkKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIGJhY2tfdG8gPSB2YXJvYmpf ZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7CisgCisgICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikK KyAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAodmFyLT5wcmV0dHlfcHJpbnRl cik7CitAQCAtODAzLDYgKzgzOCwxNyBAQCB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAoc3RydWN0 IHZhcm9iaiAqdmFyKQorICAgcmV0dXJuIHJlc3VsdDsKKyB9CisgCisrLyogUmV0dXJuIHRydWUg aWYgdGhlIHZhcm9iaiBoYXMgaXRlbXMgYWZ0ZXIgVE8sIGZhbHNlIG90aGVyd2lzZS4gICovCisr CisraW50CisrdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCB0bykKKyt7 CisrICBpZiAoVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pID4gdG8pCisrICAg IHJldHVybiAxOworKyAgcmV0dXJuIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJl bikgPT0gdG8KKysJICAmJiB2YXItPnNhdmVkX2l0ZW0gIT0gTlVMTCk7CisrfQorKworIC8qIElm IHRoZSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYSBzcGVjaWZpYyB0aHJlYWQsIHRoYXQK KyAgICBpcyBpdHMgZXZhbHVhdGlvbiBjYW4gYWx3YXlzIGJlIGRvbmUgaW4gY29udGV4dCBvZiBh IGZyYW1lCisgICAgaW5zaWRlIHRoYXQgdGhyZWFkLCByZXR1cm5zIEdEQiBpZCBvZiB0aGUgdGhy ZWFkIC0tIHdoaWNoCitAQCAtODM1LDIyICs4ODEsNzMgQEAgdmFyb2JqX2dldF9mcm96ZW4gKHN0 cnVjdCB2YXJvYmogKnZhcikKKyAgIHJldHVybiB2YXItPmZyb3plbjsKKyB9CisgCisrLyogQSBo ZWxwZXIgZnVuY3Rpb24gdGhhdCByZXN0cmljdHMgYSByYW5nZSB0byB3aGF0IGlzIGFjdHVhbGx5 CisrICAgYXZhaWxhYmxlIGluIGEgVkVDLiAgVGhpcyBmb2xsb3dzIHRoZSB1c3VhbCBydWxlcyBm b3IgdGhlIG1lYW5pbmcKKysgICBvZiBGUk9NIGFuZCBUTyAtLSBpZiBlaXRoZXIgaXMgbmVnYXRp dmUsIHRoZSBlbnRpcmUgcmFuZ2UgaXMKKysgICB1c2VkLiAgKi8KKysKKytzdGF0aWMgdm9pZAor K3Jlc3RyaWN0X3JhbmdlIChWRUMgKHZhcm9ial9wKSAqY2hpbGRyZW4sIGludCAqZnJvbSwgaW50 ICp0bykKKyt7CisrICBpZiAoKmZyb20gPCAwIHx8ICp0byA8IDApCisrICAgIHsKKysgICAgICAq ZnJvbSA9IDA7CisrICAgICAgKnRvID0gVkVDX2xlbmd0aCAodmFyb2JqX3AsIGNoaWxkcmVuKTsK KysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgaWYgKCpmcm9tID4gVkVDX2xlbmd0aCAo dmFyb2JqX3AsIGNoaWxkcmVuKSkKKysJKmZyb20gPSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hp bGRyZW4pOworKyAgICAgIGlmICgqdG8gPiBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4p KQorKwkqdG8gPSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pOworKyAgICAgIGlmICgq ZnJvbSA+ICp0bykKKysJKmZyb20gPSAqdG87CisrICAgIH0KKyt9CisrCisrLyogQSBoZWxwZXIg Zm9yIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiB0aGF0IGluc3RhbGxzIGEgbmV3Cisr ICAgY2hpbGQgd2hlbiBuZWVkZWQuICAqLworKworK3N0YXRpYyB2b2lkCisraW5zdGFsbF9keW5h bWljX2NoaWxkIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisrCQkgICAgICAgVkVDICh2YXJvYmpfcCkg KipjaGFuZ2VkLAorKwkJICAgICAgIFZFQyAodmFyb2JqX3ApICoqbmV3LAorKwkJICAgICAgIGlu dCAqY2NoYW5nZWQsCisrCQkgICAgICAgaW50IGluZGV4LAorKwkJICAgICAgIGNvbnN0IGNoYXIg Km5hbWUsCisrCQkgICAgICAgc3RydWN0IHZhbHVlICp2YWx1ZSkKKyt7CisrICBpZiAoVkVDX2xl bmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pIDwgaW5kZXggKyAxKQorKyAgICB7CisrICAg ICAgLyogVGhlcmUncyBubyBjaGlsZCB5ZXQuICAqLworKyAgICAgIHN0cnVjdCB2YXJvYmogKmNo aWxkID0gdmFyb2JqX2FkZF9jaGlsZCAodmFyLCBuYW1lLCB2YWx1ZSk7CisrICAgICAgaWYgKG5l dykKKysJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpuZXcsIGNoaWxkKTsKKysgICAgICAqY2No YW5nZWQgPSAxOworKyAgICB9CisrICBlbHNlIAorKyAgICB7CisrICAgICAgdmFyb2JqX3AgZXhp c3RpbmcgPSBWRUNfaW5kZXggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBpbmRleCk7CisrICAg ICAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlIChleGlzdGluZywgdmFsdWUsIDApKQorKwl7CisrCSAg aWYgKGNoYW5nZWQpCisrCSAgICBWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKmNoYW5nZWQsIGV4 aXN0aW5nKTsKKysJfQorKyAgICB9CisrfQorKworIHN0YXRpYyBpbnQKKyB1cGRhdGVfZHluYW1p Y192YXJvYmpfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKKyAJCQkJVkVDICh2YXJvYmpf cCkgKipjaGFuZ2VkLAorLQkJCQlWRUMgKHZhcm9ial9wKSAqKm5ld19hbmRfdW5jaGFuZ2VkLAor LQkJCQlpbnQgKmNjaGFuZ2VkKQorLQorKwkJCQlWRUMgKHZhcm9ial9wKSAqKm5ldywKKysJCQkJ aW50ICpjY2hhbmdlZCwKKysJCQkJaW50IHVwZGF0ZV9jaGlsZHJlbiwKKysJCQkJaW50IHRvKQor IHsKKyAjaWYgSEFWRV9QWVRIT04KKy0gIC8qIEZJWE1FOiB3ZSAqbWlnaHQqIHdhbnQgdG8gcHJv dmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYXMKKy0gICAgIGEgc3RhbmRhbG9uZSBmdW5jdGlvbiwg c28gdGhhdCBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMKKy0gICAgIHRoYW4gdmFyb2JqIGNvZGUg Y2FuIGJlbmVmaXQgZm9yIHRoaXMuICAqLworICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87Cisg ICBQeU9iamVjdCAqY2hpbGRyZW47CistICBQeU9iamVjdCAqaXRlcmF0b3I7CisgICBpbnQgaTsK Ky0gIGludCBjaGlsZHJlbl9jaGFuZ2VkID0gMDsKKyAgIFB5T2JqZWN0ICpwcmludGVyID0gdmFy LT5wcmV0dHlfcHJpbnRlcjsKKyAKKyAgIGJhY2tfdG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9l bnYgKHZhcik7CitAQCAtODYyLDk2ICs5NTksMTAzIEBAIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9j aGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLAorICAgICAgIHJldHVybiAwOwogICAgICB9Ci0g ICBtYWtlX2NsZWFudXBfcHlfZGVjcmVmIChpdGVyYXRvcik7CisgCistICBjaGlsZHJlbiA9IFB5 T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzIChwcmludGVyLCBnZGJweV9jaGlsZHJlbl9jc3QsCist CQkJCQkgTlVMTCk7CistCistICBpZiAoIWNoaWxkcmVuKQorKyAgaWYgKHVwZGF0ZV9jaGlsZHJl biB8fCAhdmFyLT5jaGlsZF9pdGVyKQorICAgICB7CistICAgICAgZ2RicHlfcHJpbnRfc3RhY2sg KCk7CistICAgICAgZXJyb3IgKF8oIk51bGwgdmFsdWUgcmV0dXJuZWQgZm9yIGNoaWxkcmVuIikp OworLSAgICB9CisrICAgICAgY2hpbGRyZW4gPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyAo cHJpbnRlciwgZ2RicHlfY2hpbGRyZW5fY3N0LAorKwkJCQkJICAgICBOVUxMKTsKKyAKKy0gIG1h a2VfY2xlYW51cF9weV9kZWNyZWYgKGNoaWxkcmVuKTsKKysgICAgICBpZiAoIWNoaWxkcmVuKQor Kwl7CisrCSAgZ2RicHlfcHJpbnRfc3RhY2sgKCk7CisrCSAgZXJyb3IgKF8oIk51bGwgdmFsdWUg cmV0dXJuZWQgZm9yIGNoaWxkcmVuIikpOworKwl9CisgCistICBpZiAoIVB5SXRlcl9DaGVjayAo Y2hpbGRyZW4pKQorLSAgICBlcnJvciAoXygiUmV0dXJuZWQgdmFsdWUgaXMgbm90IGl0ZXJhYmxl IikpOworKyAgICAgIG1ha2VfY2xlYW51cF9weV9kZWNyZWYgKGNoaWxkcmVuKTsKKyAKKy0gIGl0 ZXJhdG9yID0gUHlPYmplY3RfR2V0SXRlciAoY2hpbGRyZW4pOworLSAgaWYgKCFpdGVyYXRvcikK Ky0gICAgeworLSAgICAgIGdkYnB5X3ByaW50X3N0YWNrICgpOworLSAgICAgIGVycm9yIChfKCJD b3VsZCBub3QgZ2V0IGNoaWxkcmVuIGl0ZXJhdG9yIikpOworKyAgICAgIGlmICghUHlJdGVyX0No ZWNrIChjaGlsZHJlbikpCisrCWVycm9yIChfKCJSZXR1cm5lZCB2YWx1ZSBpcyBub3QgaXRlcmFi bGUiKSk7CisrCisrICAgICAgUHlfWERFQ1JFRiAodmFyLT5jaGlsZF9pdGVyKTsKKysgICAgICB2 YXItPmNoaWxkX2l0ZXIgPSBQeU9iamVjdF9HZXRJdGVyIChjaGlsZHJlbik7CisrICAgICAgaWYg KCF2YXItPmNoaWxkX2l0ZXIpCisrCXsKKysJICBnZGJweV9wcmludF9zdGFjayAoKTsKKysJICBl cnJvciAoXygiQ291bGQgbm90IGdldCBjaGlsZHJlbiBpdGVyYXRvciIpKTsKKysJfQorKworKyAg ICAgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7CisrICAgICAgdmFyLT5zYXZlZF9pdGVt ID0gTlVMTDsKKysKKysgICAgICBpID0gMDsKKyAgICAgfQorLSAgbWFrZV9jbGVhbnVwX3B5X2Rl Y3JlZiAoaXRlcmF0b3IpOworKyAgZWxzZQorKyAgICBpID0gVkVDX2xlbmd0aCAodmFyb2JqX3As IHZhci0+Y2hpbGRyZW4pOwogIAogLSAgZm9yIChpID0gMDsgOyArK2kpCiArICAvKiBXZSBhc2sg Zm9yIG9uZSBleHRyYSBjaGlsZCwgc28gdGhhdCBNSSBjYW4gcmVwb3J0IHdoZXRoZXIgdGhlcmUK ICsgICAgIGFyZSBtb3JlIGNoaWxkcmVuLiAgKi8KLSsgIGZvciAoaSA9IDA7IHZhci0+dG8gPCAw IHx8IGkgPCB2YXItPnRvICsgMTsgKytpKQorKyAgZm9yICg7IHRvIDwgMCB8fCBpIDwgdG8gKyAx OyArK2kpCisgICAgIHsKKy0gICAgICBQeU9iamVjdCAqaXRlbSA9IFB5SXRlcl9OZXh0IChpdGVy YXRvcik7CistICAgICAgUHlPYmplY3QgKnB5X3Y7CistICAgICAgc3RydWN0IHZhbHVlICp2Owor LSAgICAgIGNoYXIgKm5hbWU7CistICAgICAgc3RydWN0IGNsZWFudXAgKmlubmVyOworLSAgICAg IAorLSAgICAgIGlmICghaXRlbSkKKy0JYnJlYWs7CistICAgICAgaW5uZXIgPSBtYWtlX2NsZWFu dXBfcHlfZGVjcmVmIChpdGVtKTsKKysgICAgICBQeU9iamVjdCAqaXRlbTsKKyAKKy0gICAgICBp ZiAoIVB5QXJnX1BhcnNlVHVwbGUgKGl0ZW0sICJzTyIsICZuYW1lLCAmcHlfdikpCistCWVycm9y IChfKCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKKy0gICAgICAKKy0gICAg ICBpZiAoUHlPYmplY3RfVHlwZUNoZWNrIChweV92LCAmdmFsdWVfb2JqZWN0X3R5cGUpKQorKyAg ICAgIC8qIFNlZSBpZiB0aGVyZSB3YXMgYSBsZWZ0b3ZlciBmcm9tIGxhc3QgdGltZS4gICovCisr ICAgICAgaWYgKHZhci0+c2F2ZWRfaXRlbSkKKyAJeworLQkgIC8qIElmIHdlIGp1c3QgY2FsbCBj b252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIGZvciB0aGlzIHR5cGUsCistCSAgICAgd2Ugd29uJ3Qg a25vdyB3aG8gb3ducyB0aGUgcmVzdWx0LiAgRm9yIHRoaXMgb25lIGNhc2Ugd2UKKy0JICAgICBu ZWVkIHRvIGNvcHkgdGhlIHJlc3VsdGluZyB2YWx1ZS4gICovCistCSAgdiA9IHZhbHVlX29iamVj dF90b192YWx1ZSAocHlfdik7CistCSAgdiA9IHZhbHVlX2NvcHkgKHYpOworKwkgIGl0ZW0gPSB2 YXItPnNhdmVkX2l0ZW07CisrCSAgdmFyLT5zYXZlZF9pdGVtID0gTlVMTDsKKyAJfQorICAgICAg IGVsc2UKKy0JdiA9IGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gKHB5X3YpOworKwlpdGVtID0g UHlJdGVyX05leHQgKHZhci0+Y2hpbGRfaXRlcik7CisgCistICAgICAgLyogVE9ETzogVGhpcyBh c3N1bWUgdGhlIG5hbWUgb2YgdGhlIGktdGggY2hpbGQgbmV2ZXIgY2hhbmdlcy4gICovCisrICAg ICAgaWYgKCFpdGVtKQorKwlicmVhazsKKyAKKy0gICAgICAvKiBOb3cgc2VlIHdoYXQgdG8gZG8g aGVyZS4gICovCistICAgICAgaWYgKFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVu KSA8IGkgKyAxKQorKyAgICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gcHVzaCB0aGUgZXh0cmEgY2hp bGQgb24gYW55IHJlcG9ydCBsaXN0LiAgKi8KKysgICAgICBpZiAodG8gPCAwIHx8IGkgPCB0bykK KyAJeworLQkgIC8qIFRoZXJlJ3Mgbm8gY2hpbGQgeWV0LiAgKi8KKy0JICBzdHJ1Y3QgdmFyb2Jq ICpjaGlsZCA9IHZhcm9ial9hZGRfY2hpbGQgKHZhciwgbmFtZSwgdik7CistCSAgaWYgKG5ld19h bmRfdW5jaGFuZ2VkKQorLQkgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpuZXdfYW5kX3Vu Y2hhbmdlZCwgY2hpbGQpOworLQkgIGNoaWxkcmVuX2NoYW5nZWQgPSAxOworKwkgIFB5T2JqZWN0 ICpweV92OworKwkgIGNoYXIgKm5hbWU7CisrCSAgc3RydWN0IHZhbHVlICp2OworKwkgIHN0cnVj dCBjbGVhbnVwICppbm5lcjsKKysKKysJICBpbm5lciA9IG1ha2VfY2xlYW51cF9weV9kZWNyZWYg KGl0ZW0pOworKworKwkgIGlmICghUHlBcmdfUGFyc2VUdXBsZSAoaXRlbSwgInNPIiwgJm5hbWUs ICZweV92KSkKKysJICAgIGVycm9yIChfKCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlz dCIpKTsKKysKKysJICB2ID0gY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAocHlfdik7CisrCSAg aW5zdGFsbF9keW5hbWljX2NoaWxkICh2YXIsIGNoYW5nZWQsIG5ldywKKysJCQkJIGNjaGFuZ2Vk LCBpLCBuYW1lLCB2KTsKKysJICBkb19jbGVhbnVwcyAoaW5uZXIpOworIAl9CistICAgICAgZWxz ZSAKKysgICAgICBlbHNlCisgCXsKKy0JICB2YXJvYmpfcCBleGlzdGluZyA9IFZFQ19pbmRleCAo dmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGkpOworLQkgIGlmIChpbnN0YWxsX25ld192YWx1ZSAo ZXhpc3RpbmcsIHYsIDApICYmIGNoYW5nZWQpCistCSAgICB7CistCSAgICAgIGlmIChjaGFuZ2Vk KQorLQkJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpjaGFuZ2VkLCBleGlzdGluZyk7CistCSAg ICB9CistCSAgZWxzZQorLQkgICAgeworLQkgICAgICBpZiAobmV3X2FuZF91bmNoYW5nZWQpCist CQlWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKm5ld19hbmRfdW5jaGFuZ2VkLCBleGlzdGluZyk7 CistCSAgICB9CistCX0KKysJICBQeV9YREVDUkVGICh2YXItPnNhdmVkX2l0ZW0pOworKwkgIHZh ci0+c2F2ZWRfaXRlbSA9IGl0ZW07CisgCistICAgICAgZG9fY2xlYW51cHMgKGlubmVyKTsKKysJ ICAvKiBXZSB3YW50IHRvIHRydW5jYXRlIHRoZSBjaGlsZCBsaXN0IGp1c3QgYmVmb3JlIHRoaXMK KysJICAgICBlbGVtZW50LiAgKi8KKysJICBicmVhazsKKysJfQorICAgICB9CisgCisgICBpZiAo aSA8IFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKSkKICAgICAgewotICAgICAg IFB5T2JqZWN0ICppdGVtID0gUHlJdGVyX05leHQgKGl0ZXJhdG9yKTsKLSAgICAgICBQeU9iamVj dCAqcHlfdjsKLUBAIC0xMDE1LDcgKzEwNDAsNiBAQCB2YXJvYmpfbGlzdF9jaGlsZHJlbiAoc3Ry dWN0IHZhcm9iaiAqdmFyKQorLSAgICAgIGludCBpOworLSAgICAgIGNoaWxkcmVuX2NoYW5nZWQg PSAxOworLSAgICAgIGZvciAoaSA9IDA7IGkgPCBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5j aGlsZHJlbik7ICsraSkKKy0JdmFyb2JqX2RlbGV0ZSAoVkVDX2luZGV4ICh2YXJvYmpfcCwgdmFy LT5jaGlsZHJlbiwgaSksIE5VTEwsIDApOworKyAgICAgIGludCBqOworKyAgICAgICpjY2hhbmdl ZCA9IDE7CisrICAgICAgZm9yIChqID0gaTsgaiA8IFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXIt PmNoaWxkcmVuKTsgKytqKQorKwl2YXJvYmpfZGVsZXRlIChWRUNfaW5kZXggKHZhcm9ial9wLCB2 YXItPmNoaWxkcmVuLCBqKSwgTlVMTCwgMCk7CisrICAgICAgVkVDX3RydW5jYXRlICh2YXJvYmpf cCwgdmFyLT5jaGlsZHJlbiwgaSk7CisgICAgIH0KKy0gIFZFQ190cnVuY2F0ZSAodmFyb2JqX3As IHZhci0+Y2hpbGRyZW4sIGkpOworKworKyAgLyogSWYgdGhlcmUgYXJlIGZld2VyIGNoaWxkcmVu IHRoYW4gcmVxdWVzdGVkLCBub3RlIHRoYXQgdGhlIGxpc3Qgb2YKKysgICAgIGNoaWxkcmVuIGNo YW5nZWQuICAqLworKyAgaWYgKHRvID49IDAgJiYgVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+ Y2hpbGRyZW4pIDwgdG8pCisrICAgICpjY2hhbmdlZCA9IDE7CisrCisgICB2YXItPm51bV9jaGls ZHJlbiA9IFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKTsKKyAgCisgICBkb19j bGVhbnVwcyAoYmFja190byk7CisgCistICAqY2NoYW5nZWQgPSBjaGlsZHJlbl9jaGFuZ2VkOwor ICAgcmV0dXJuIDE7CisgI2Vsc2UKKyAgIGdkYl9hc3NlcnQgKDAgJiYgInNob3VsZCBuZXZlciBi ZSBjYWxsZWQgaWYgUHl0aG9uIGlzIG5vdCBlbmFibGVkIik7CitAQCAtOTY0LDggKzEwNjgsNyBA QCB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKQorICAgaWYgKHZh ci0+bnVtX2NoaWxkcmVuID09IC0xKQorICAgICB7CisgICAgICAgaW50IGNoYW5nZWQ7CistICAg ICAgaWYgKCF2YXItPnByZXR0eV9wcmludGVyCistCSAgfHwgIXVwZGF0ZV9keW5hbWljX3Zhcm9i al9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmY2hhbmdlZCkpCisrICAgICAgaWYgKCF2YXIt PnByZXR0eV9wcmludGVyKQorIAl2YXItPm51bV9jaGlsZHJlbiA9IG51bWJlcl9vZl9jaGlsZHJl biAodmFyKTsKKyAgICAgfQorIAorQEAgLTk3Niw3ICsxMDc5LDcgQEAgdmFyb2JqX2dldF9udW1f Y2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKKyAgICB0aGUgcmV0dXJuIGNvZGUgaXMgdGhl IG51bWJlciBvZiBzdWNoIGNoaWxkcmVuIG9yIC0xIG9uIGVycm9yICovCisgCisgVkVDICh2YXJv YmpfcCkqCistdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKKyt2YXJv YmpfbGlzdF9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLCBpbnQgKmZyb20sIGludCAqdG8p CisgeworICAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CisgICBjaGFyICpuYW1lOworQEAgLTk4OCw4 ICsxMDkxLDEyIEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIpCisg ICAgICAgLyogVGhpcywgaW4gdGhlb3J5LCBjYW4gcmVzdWx0IGluIHRoZSBudW1iZXIgb2YgY2hp bGRyZW4gY2hhbmdpbmcgd2l0aG91dAorIAkgZnJvbnRlbmQgbm90aWNpbmcuICBCdXQgd2VsbCwg Y2FsbGluZyAtdmFyLWxpc3QtY2hpbGRyZW4gb24gdGhlIHNhbWUKKyAJIHZhcm9iaiB0d2ljZSBp cyBub3Qgc29tZXRoaW5nIGEgc2FuZSBmcm9udGVuZCB3b3VsZCBkby4gICovCistICAgICAgJiYg dXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwsICZjaGlsZHJl bl9jaGFuZ2VkKSkKKy0gICAgcmV0dXJuIHZhci0+Y2hpbGRyZW47CisrICAgICAgJiYgdXBkYXRl X2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwsICZjaGlsZHJlbl9jaGFu Z2VkLAorKwkJCQkJIDAsICp0bykpCisrICAgIHsKKysgICAgICByZXN0cmljdF9yYW5nZSAodmFy LT5jaGlsZHJlbiwgZnJvbSwgdG8pOworKyAgICAgIHJldHVybiB2YXItPmNoaWxkcmVuOworKyAg ICB9CisgCisgICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCisgICAgIHZhci0+bnVtX2No aWxkcmVuID0gbnVtYmVyX29mX2NoaWxkcmVuICh2YXIpOworQEAgLTEwMTUsMTAgKzExMjIsMTAg QEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKICAJICBuYW1lID0g bmFtZV9vZl9jaGlsZCAodmFyLCBpKTsKICAJICBleGlzdGluZyA9IGNyZWF0ZV9jaGlsZCAodmFy LCBpLCBuYW1lKTsKICAJICBWRUNfcmVwbGFjZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGks IGV4aXN0aW5nKTsKQEAgLTI0OTkzLDcgKzI1OTA1LDExIEBAIGluZGV4IDRhOTQ5ODguLjliZmMx MzAgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTEwMjksNyArMTA1Myw2IEBAIHZhcm9ial9h ZGRfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZh bHVlICp2YWx1ZSkKKysgIHJlc3RyaWN0X3JhbmdlICh2YXItPmNoaWxkcmVuLCBmcm9tLCB0byk7 CisgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKKyB9CisgCitAQCAtMTAyOSw3ICsxMTM2LDYgQEAg dmFyb2JqX2FkZF9jaGlsZCAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3QgdmFsdWUgKnZhbHVlKQogIAkJCQkJVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hp bGRyZW4pLCAKICAJCQkJCW5hbWUsIHZhbHVlKTsKICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9w LCB2YXItPmNoaWxkcmVuLCB2KTsKQEAgLTI1MDAxLDcgKzI1OTE3LDcgQEAgaW5kZXggNGE5NDk4 OC4uOWJmYzEzMCAxMDA2NDQKICAgIHJldHVybiB2OwogIH0KICAKLUBAIC0xMTY4LDYgKzExOTEs MTEyIEBAIHZhcm9ial9zZXRfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgY2hhciAqZXhwcmVz c2lvbikKK0BAIC0xMTY4LDYgKzEyNzQsMTE1IEBAIHZhcm9ial9zZXRfdmFsdWUgKHN0cnVjdCB2 YXJvYmogKnZhciwgY2hhciAqZXhwcmVzc2lvbikKICAgIHJldHVybiAxOwogIH0KICAKQEAgLTI1 MDE5LDYgKzI1OTM1LDkgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKICsKICsgIFB5 X1hERUNSRUYgKHZhci0+cHJldHR5X3ByaW50ZXIpOwogKyAgdmFyLT5wcmV0dHlfcHJpbnRlciA9 IHZpc3VhbGl6ZXI7CisrCisrICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0ZXIpOworKyAgdmFy LT5jaGlsZF9pdGVyID0gTlVMTDsKICt9CiArCiArLyogSW5zdGFsbCB0aGUgZGVmYXVsdCB2aXN1 YWxpemVyIGZvciBWQVIuICAqLwpAQCAtMjUxMTQsNyArMjYwMzMsNyBAQCBpbmRleCA0YTk0OTg4 Li45YmZjMTMwIDEwMDY0NAogIC8qIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byBhIHZhcmlhYmxlIG9i amVjdC4gIElmIElOSVRJQUwgaXMgbm9uLXplcm8sCiAgICAgdGhpcyBpcyB0aGUgZmlyc3QgYXNz aWduZW1lbnQgYWZ0ZXIgdGhlIHZhcmlhYmxlIG9iamVjdCB3YXMganVzdAogICAgIGNyZWF0ZWQs IG9yIGNoYW5nZWQgdHlwZS4gIEluIHRoYXQgY2FzZSwganVzdCBhc3NpZ24gdGhlIHZhbHVlIAot QEAgLTEyNzQsNyArMTQwMyw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2 YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQorQEAgLTEyNzQsNyArMTQ4OSw3 IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCBpbml0aWFsKQogIAl7CiAgCSAgY2hhbmdlZCA9IDE7CiAgCX0KQEAgLTI1MTIz LDcgKzI2MDQyLDcgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKICAJewogIAkgIC8q IFRyeSB0byBjb21wYXJlIHRoZSB2YWx1ZXMuICBUaGF0IHJlcXVpcmVzIHRoYXQgYm90aAogIAkg ICAgIHZhbHVlcyBhcmUgbm9uLWxhenkuICAqLwotQEAgLTEzMjgsNjUgKzE0NTcsNDcgQEAgaW5z dGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwg aW50IGluaXRpYWwpCitAQCAtMTMyOCw2NSArMTU0MywzMiBAQCBpbnN0YWxsX25ld192YWx1ZSAo c3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKICAg ICAgdmFyLT5ub3RfZmV0Y2hlZCA9IDA7CiAgICB2YXItPnVwZGF0ZWQgPSAwOwogIApAQCAtMjUx MzYsNyArMjYwNTUsMTMgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKICAKIC1zdGF0 aWMgdm9pZAogLWluc3RhbGxfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBQeU9iamVj dCAqdmlzdWFsaXplcikKLS17CisrLyogUmV0dXJuIHRoZSByZXF1ZXN0ZWQgcmFuZ2UgZm9yIGEg dmFyb2JqLiAgVkFSIGlzIHRoZSB2YXJvYmouICBGUk9NCisrICAgYW5kIFRPIGFyZSBvdXQgcGFy YW1ldGVyczsgKkZST00gYW5kICpUTyB3aWxsIGJlIHNldCB0byB0aGUKKysgICBzZWxlY3RlZCBz dWItcmFuZ2Ugb2YgVkFSLiAgSWYgbm8gcmFuZ2Ugd2FzIHNlbGVjdGVkIHVzaW5nCisrICAgLXZh ci1zZXQtdXBkYXRlLXJhbmdlLCB0aGVuIGJvdGggd2lsbCBiZSAtMS4gICovCisrdm9pZAorK3Zh cm9ial9nZXRfY2hpbGRfcmFuZ2UgKHN0cnVjdCB2YXJvYmogKnZhciwgaW50ICpmcm9tLCBpbnQg KnRvKQorIHsKIC0jaWYgSEFWRV9QWVRIT04KIC0gIC8qIElmIHRoZXJlIGFyZSBhbnkgY2hpbGRy ZW4gbm93LCB3aXBlIHRoZW0uICAqLwogLSAgdmFyb2JqX2RlbGV0ZSAodmFyLCBOVUxMLCAxIC8q IGNoaWxkcmVuIG9ubHkgKi8pOwpAQCAtMjUxNTYsMTkgKzI2MDgxLDE3IEBAIGluZGV4IDRhOTQ5 ODguLjliZmMxMzAgMTAwNjQ0CiAtI2Vsc2UKIC0gIGVycm9yIChfKCJQeXRob24gc3VwcG9ydCBy ZXF1aXJlZCIpKTsKIC0jZW5kaWYKLS19Ci0tCisrICAqZnJvbSA9IHZhci0+ZnJvbTsKKysgICp0 byA9IHZhci0+dG87CisgfQorIAogLXN0YXRpYyB2b2lkCiAtaW5zdGFsbF9kZWZhdWx0X3Zpc3Vh bGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhcikKLSsvKiBSZXR1cm4gdGhlIGVmZmVjdGl2ZSByZXF1 ZXN0ZWQgcmFuZ2UgZm9yIGEgdmFyb2JqLiAgVkFSIGlzIHRoZQotKyAgIHZhcm9iai4gIENISUxE UkVOIGlzIHRoZSBjb21wdXRlZCBsaXN0IG9mIGNoaWxkcmVuLiAgRlJPTSBhbmQgVE8KLSsgICBh cmUgb3V0IHBhcmFtZXRlcnMuICBJZiBWQVIgaGFzIG5vIGJvdW5kcyBzZWxlY3RlZCwgKkZST00g YW5kICpUTwotKyAgIHdpbGwgYmUgc2V0IHRvIHRoZSBmdWxsIHJhbmdlIG9mIENISUxEUkVOLiAg T3RoZXJ3aXNlLCAqRlJPTSBhbmQKLSsgICAqVE8gd2lsbCBiZSBzZXQgdG8gdGhlIHNlbGVjdGVk IHN1Yi1yYW5nZSBvZiBWQVIsIGNsaXBwZWQgdG8gYmUgaW4KLSsgICByYW5nZSBvZiBDSElMRFJF Ti4gICovCisrLyogU2V0IHRoZSBzZWxlY3RlZCBzdWItcmFuZ2Ugb2YgY2hpbGRyZW4gb2YgVkFS IHRvIHN0YXJ0IGF0IGluZGV4CisrICAgRlJPTSBhbmQgZW5kIGF0IGluZGV4IFRPLiAgSWYgZWl0 aGVyIEZST00gb3IgVE8gaXMgbGVzcyB0aGFuIHplcm8sCisrICAgdGhpcyBpcyBpbnRlcnByZXRl ZCBhcyBhIHJlcXVlc3QgZm9yIGFsbCBjaGlsZHJlbi4gICovCiArdm9pZAotK3Zhcm9ial9nZXRf Y2hpbGRfcmFuZ2UgKHN0cnVjdCB2YXJvYmogKnZhciwgVkVDICh2YXJvYmpfcCkgKmNoaWxkcmVu LAotKwkJCWludCAqZnJvbSwgaW50ICp0bykKKyt2YXJvYmpfc2V0X2NoaWxkX3JhbmdlIChzdHJ1 Y3QgdmFyb2JqICp2YXIsIGludCBmcm9tLCBpbnQgdG8pCiAgewogLSNpZiBIQVZFX1BZVEhPTgog LSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7CkBAIC0yNTE3Nyw1MCArMjYxMDAsMzIgQEAgaW5k ZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKIC0gIGNsZWFudXAgPSB2YXJvYmpfZW5zdXJlX3B5 dGhvbl9lbnYgKHZhcik7CiAtCiAtICBpZiAodmFyLT52YWx1ZSkKLSsgIGlmICh2YXItPmZyb20g PCAwIHx8IHZhci0+dG8gPCAwKQotICAgICB7CistICAgIHsKIC0gICAgICBwcmV0dHlfcHJpbnRl ciA9IGdkYnB5X2dldF92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhci0+dmFsdWUpOwogLSAgICAg IGlmICghIHByZXR0eV9wcmludGVyKQogLQl7CiAtCSAgZ2RicHlfcHJpbnRfc3RhY2sgKCk7CiAt CSAgZXJyb3IgKF8oIkNhbm5vdCBpbnN0YW50aWF0ZSBwcmludGVyIGZvciBkZWZhdWx0IHZpc3Vh bGl6ZXIiKSk7CiAtCX0KLSsgICAgICAqZnJvbSA9IDA7Ci0rICAgICAgKnRvID0gVkVDX2xlbmd0 aCAodmFyb2JqX3AsIGNoaWxkcmVuKTsKLSAgICAgfQorLSAgICB9CiAtICAgICAgCiAtICBpZiAo cHJldHR5X3ByaW50ZXIgPT0gUHlfTm9uZSkKLSsgIGVsc2UKLSAgICAgeworLSAgICB7CiAtICAg ICAgUHlfREVDUkVGIChwcmV0dHlfcHJpbnRlcik7CiAtICAgICAgcHJldHR5X3ByaW50ZXIgPSBO VUxMOwotKyAgICAgICpmcm9tID0gdmFyLT5mcm9tOwotKyAgICAgIGlmICgqZnJvbSA+IFZFQ19s ZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbikpCi0rCSpmcm9tID0gVkVDX2xlbmd0aCAodmFyb2Jq X3AsIGNoaWxkcmVuKTsKLSsgICAgICAqdG8gPSB2YXItPnRvOwotKyAgICAgIGlmICgqdG8gPiBW RUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pKQotKwkqdG8gPSBWRUNfbGVuZ3RoICh2YXJv YmpfcCwgY2hpbGRyZW4pOwotICAgICB9CistICAgIH0KIC0gIAogLSAgaW5zdGFsbF92aXN1YWxp emVyICh2YXIsIHByZXR0eV9wcmludGVyKTsKIC0gIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKIC0j ZWxzZQogLSAgLyogTm8gZXJyb3IgaXMgcmlnaHQgYXMgdGhpcyBmdW5jdGlvbiBpcyBpbnNlcnRl ZCBqdXN0IGFzIGEgaG9vay4gICovCiAtI2VuZGlmCi0rfQotKwotKy8qIFNldCB0aGUgc2VsZWN0 ZWQgc3ViLXJhbmdlIG9mIGNoaWxkcmVuIG9mIFZBUiB0byBzdGFydCBhdCBpbmRleAotKyAgIEZS T00gYW5kIGVuZCBhdCBpbmRleCBUTy4gIElmIGVpdGhlciBGUk9NIG9yIFRPIGlzIGxlc3MgdGhh biB6ZXJvLAotKyAgIHRoaXMgaXMgaW50ZXJwcmV0ZWQgYXMgYSByZXF1ZXN0IGZvciBhbGwgY2hp bGRyZW4uICAqLwotK3ZvaWQKLSt2YXJvYmpfc2V0X2NoaWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGludCBmcm9tLCBpbnQgdG8pCi0rewogKyAgdmFyLT5mcm9tID0gZnJvbTsKICsgIHZh ci0+dG8gPSB0bzsKICB9CiAgCiAgdm9pZCAKLUBAIC0xNDA0LDMxICsxNTE1LDE5IEBAIHZhcm9i al9zZXRfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxp emVyKQorQEAgLTE0MDQsMzEgKzE1ODYsMTkgQEAgdmFyb2JqX3NldF92aXN1YWxpemVyIChzdHJ1 Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIgKnZpc3VhbGl6ZXIpCiAgICBtYWtlX2NsZWFudXBf cHlfZGVjcmVmIChnbG9iYWxzKTsKICAKICAgIGNvbnN0cnVjdG9yID0gUHlSdW5fU3RyaW5nICh2 aXN1YWxpemVyLCBQeV9ldmFsX2lucHV0LCBnbG9iYWxzLCBnbG9iYWxzKTsKQEAgLTI1MjMzLDkg KzI2MTM4LDkgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQKIC0gICAgfQogLSAgZWxz ZQogLSAgICBwcmV0dHlfcHJpbnRlciA9IGluc3RhbnRpYXRlX3ByZXR0eV9wcmludGVyIChjb25z dHJ1Y3RvciwgdmFyLT52YWx1ZSk7Ci0gCi0tICBQeV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7CiAt CistICBQeV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7CisgCiAtICBpZiAoISBwcmV0dHlfcHJpbnRl cikKICsgIGlmICghIGNvbnN0cnVjdG9yKQogICAgICB7CkBAIC0yNTI1OCw3ICsyNjE2Myw1NyBA QCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIAogICAgZG9fY2xlYW51cHMgKGJhY2tf dG8pOwogICNlbHNlCi1AQCAtMTg2NCw2ICsxOTYzLDkgQEAgbmV3X3ZhcmlhYmxlICh2b2lkKQor QEAgLTE1NDMsNyArMTcxMyw3IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91 cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCisgCSBVSSwgc28gd2Ug bmVlZCBub3QgYm90aGVyIGdldHRpbmcgaXQuICAqLworICAgICAgIGlmICh2LT5wcmV0dHlfcHJp bnRlcikKKyAJeworLQkgIFZFQyAodmFyb2JqX3ApICpjaGFuZ2VkID0gMCwgKm5ld19hbmRfdW5j aGFuZ2VkID0gMDsKKysJICBWRUMgKHZhcm9ial9wKSAqY2hhbmdlZCA9IDAsICpuZXcgPSAwOwor IAkgIGludCBpLCBjaGlsZHJlbl9jaGFuZ2VkOworIAkgIHZhcm9ial9wIHRtcDsKKyAKK0BAIC0x NTU1LDI4ICsxNzI1LDI4IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRh dGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCisgCisgCSAgLyogSWYgdXBk YXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIHJldHVybnMgMCwgdGhlbiB3ZSBoYXZlCisgCSAg ICAgYSBub24tY29uZm9ybWluZyBwcmV0dHktcHJpbnRlciwgc28gd2Ugc2tpcCBpdC4gICovCist CSAgaWYgKHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgJmNoYW5nZWQsICZuZXdf YW5kX3VuY2hhbmdlZCwKKy0JCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkKSkKKysJICBpZiAo dXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCAmY2hhbmdlZCwgJm5ldywKKysJCQkJ CSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkLCAxLCB2LT50bykpCisgCSAgICB7CistCSAgICAgIGlm IChjaGlsZHJlbl9jaGFuZ2VkKQorLQkJci5jaGlsZHJlbl9jaGFuZ2VkID0gMTsKKy0JICAgICAg Zm9yIChpID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGFuZ2VkLCBpLCB0bXApOyArK2kp CisrCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkIHx8IG5ldykKKyAJCXsKKy0JCSAgdmFyb2Jq X3VwZGF0ZV9yZXN1bHQgciA9IHt0bXB9OworLQkJICByLmNoYW5nZWQgPSAxOworLQkJICByLnZh bHVlX2luc3RhbGxlZCA9IDE7CistCQkgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVz dWx0LCBzdGFjaywgJnIpOworKwkJICByLmNoaWxkcmVuX2NoYW5nZWQgPSAxOworKwkJICByLm5l dyA9IG5ldzsKKyAJCX0KKy0JICAgICAgZm9yIChpID0gMDsKKy0JCSAgIFZFQ19pdGVyYXRlICh2 YXJvYmpfcCwgbmV3X2FuZF91bmNoYW5nZWQsIGksIHRtcCk7CistCQkgICArK2kpCisrCSAgICAg IGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hhbmdlZCwgaSwgdG1wKTsgKytp KQorIAkJeworIAkJICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3RtcH07CisrCQkgIHIuY2hh bmdlZCA9IDE7CisgCQkgIHIudmFsdWVfaW5zdGFsbGVkID0gMTsKKyAJCSAgVkVDX3NhZmVfcHVz aCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7CisgCQl9CisgCSAgICAgIGlmIChy LmNoYW5nZWQgfHwgci5jaGlsZHJlbl9jaGFuZ2VkKQorIAkJVkVDX3NhZmVfcHVzaCAodmFyb2Jq X3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOworKworKwkgICAgICAvKiBGcmVlIENIQU5HRUQs IGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVyBoYXMgYmVlbiBwdXQKKysJCSBpbnRvIHRoZSByZXN1 bHQgdmVjdG9yLiAgKi8KKysJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBjaGFuZ2VkKTsKKysK KyAJICAgICAgY29udGludWU7CisgCSAgICB9CisgCX0KK0BAIC0xODY0LDcgKzIwMzQsMTIgQEAg bmV3X3ZhcmlhYmxlICh2b2lkKQogICAgdmFyLT5mcm96ZW4gPSAwOwogICAgdmFyLT5ub3RfZmV0 Y2hlZCA9IDA7CiAgICB2YXItPmNoaWxkcmVuX3JlcXVlc3RlZCA9IDA7CkBAIC0yNTI2Niw5ICsy NjIyMSwyNCBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogKyAgdmFyLT50byA9IC0x OwogKyAgdmFyLT5jb25zdHJ1Y3RvciA9IDA7CiAgICB2YXItPnByZXR0eV9wcmludGVyID0gMDsK KysgIHZhci0+Y2hpbGRfaXRlciA9IDA7CisrICB2YXItPnNhdmVkX2l0ZW0gPSAwOwogIAogICAg cmV0dXJuIHZhcjsKLUBAIC0xOTI3LDYgKzIwMjksMTggQEAgbWFrZV9jbGVhbnVwX2ZyZWVfdmFy aWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKKyB9CitAQCAtMTg5NCw3ICsyMDY5LDEwIEBAIGZy ZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKKyAgIGlmICh2YXItPnByZXR0eV9wcmlu dGVyKQorICAgICB7CisgICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSB2YXJvYmpfZW5z dXJlX3B5dGhvbl9lbnYgKHZhcik7CistICAgICAgUHlfREVDUkVGICh2YXItPnByZXR0eV9wcmlu dGVyKTsKKysgICAgICBQeV9YREVDUkVGICh2YXItPmNvbnN0cnVjdG9yKTsKKysgICAgICBQeV9Y REVDUkVGICh2YXItPnByZXR0eV9wcmludGVyKTsKKysgICAgICBQeV9YREVDUkVGICh2YXItPmNo aWxkX2l0ZXIpOworKyAgICAgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7CisgICAgICAg ZG9fY2xlYW51cHMgKGNsZWFudXApOworICAgICB9CisgI2VuZGlmCitAQCAtMTkyNyw2ICsyMTA1 LDE4IEBAIG1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAg ICByZXR1cm4gbWFrZV9jbGVhbnVwIChkb19mcmVlX3ZhcmlhYmxlX2NsZWFudXAsIHZhcik7CiAg fQogIApAQCAtMjUyODcsMTYgKzI2MjU3LDE2IEBAIGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAw NjQ0CiAgLyogVGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZS4gSXQgYWxzbyBz a2lwcyBwYXN0IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5cGUgb2YgdGhlIHZh cmlhYmxlLgogIAotQEAgLTIxODcsNyArMjMwMSw3IEBAIHZhbHVlX2dldF9wcmludF92YWx1ZSAo c3RydWN0IHZhbHVlICp2YWx1ZSwgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdCwK LSAgIGxvbmcgZHVtbXk7Ci0gICBzdHJ1Y3QgdWlfZmlsZSAqc3RiOwotICAgc3RydWN0IGNsZWFu dXAgKm9sZF9jaGFpbjsKLS0gIGdkYl9ieXRlICp0aGV2YWx1ZSA9IE5VTEw7Ci0rICBjaGFyICp0 aGV2YWx1ZSA9IE5VTEw7Ci0gICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwotICAg aW50IGxlbiA9IDA7CitAQCAtMjE0MSw2ICsyMzMxLDggQEAgdmFsdWVfb2Zfcm9vdCAoc3RydWN0 IHZhcm9iaiAqKnZhcl9oYW5kbGUsIGludCAqdHlwZV9jaGFuZ2VkKQorICAgICAgIGVsc2UKKyAJ eworIAkgIHRtcF92YXItPm9ial9uYW1lID0geHN0cmR1cCAodmFyLT5vYmpfbmFtZSk7CisrCSAg dG1wX3Zhci0+ZnJvbSA9IHZhci0+ZnJvbTsKKysJICB0bXBfdmFyLT50byA9IHZhci0+dG87Cisg CSAgdmFyb2JqX2RlbGV0ZSAodmFyLCBOVUxMLCAwKTsKICAKLUBAIC0zMTczLDYgKzMyODcsMTkg QEAgamF2YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9i al9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQorIAkgIGluc3RhbGxfdmFyaWFibGUgKHRtcF92YXIp OworQEAgLTMxNzMsNiArMzM2NSwxOSBAQCBqYXZhX3ZhbHVlX29mX3ZhcmlhYmxlIChzdHJ1Y3Qg dmFyb2JqICp2YXIsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQpCiAgICByZXR1 cm4gY3BsdXNfdmFsdWVfb2ZfdmFyaWFibGUgKHZhciwgZm9ybWF0KTsKICB9CiAgCkBAIC0yNTMx Niw3ICsyNjI4Niw3IEBAIGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiAgLyogSXRlcmF0 ZSBhbGwgdGhlIGV4aXN0aW5nIF9yb290XyBWQVJPQkpzIGFuZCBjYWxsIHRoZSBGVU5DIGNhbGxi YWNrIGZvciB0aGVtCiAgICAgd2l0aCBhbiBhcmJpdHJhcnkgY2FsbGVyIHN1cHBsaWVkIERBVEEg cG9pbnRlci4gICovCiAgCi1AQCAtMzE5MCw0OCArMzMxNywxMTAgQEAgYWxsX3Jvb3RfdmFyb2Jq cyAodm9pZCAoKmZ1bmMpIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHZvaWQgKmRhdGEpLCB2b2lkICpk YXRhKQorQEAgLTMxOTAsNDggKzMzOTUsMTEwIEBAIGFsbF9yb290X3Zhcm9ianMgKHZvaWQgKCpm dW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpkYXRhKSwgdm9pZCAqZGF0YSkKICAgICAg ICAoKmZ1bmMpICh2YXJfcm9vdC0+cm9vdHZhciwgZGF0YSk7CiAgICAgIH0KICB9CkBAIC0yNTQ1 NCw4ICsyNjQyNCwxMiBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogIAkgIHRtcF92 YXItPm9ial9uYW1lID0geHN0cmR1cCAodmFyLT5vYmpfbmFtZSk7CiAgCSAgdmFyb2JqX2RlbGV0 ZSAodmFyLCBOVUxMLCAwKTsKICAJICBpbnN0YWxsX3ZhcmlhYmxlICh0bXBfdmFyKTsKLUBAIC0z MjQzLDEyICszNDMyLDYxIEBAIHZhcm9ial9pbnZhbGlkYXRlX2l0ZXIgKHN0cnVjdCB2YXJvYmog KnZhciwgdm9pZCAqdW51c2VkKQotICAgICB2YXItPnJvb3QtPmlzX3ZhbGlkID0gMDsKK0BAIC0z MjM5LDE2ICszNTA2LDY0IEBAIHZhcm9ial9pbnZhbGlkYXRlX2l0ZXIgKHN0cnVjdCB2YXJvYmog KnZhciwgdm9pZCAqdW51c2VkKQorICAgICAgIGVsc2UKKyAJdmFyLT5yb290LT5pc192YWxpZCA9 IDA7CisgICAgIH0KKy0gIGVsc2UgLyogbG9jYWxzIG11c3QgYmUgaW52YWxpZGF0ZWQuICAqLwor LSAgICB2YXItPnJvb3QtPmlzX3ZhbGlkID0gMDsKICB9CiAgCiAtLyogSW52YWxpZGF0ZSB0aGUg dmFyb2JqcyB0aGF0IGFyZSB0aWVkIHRvIGxvY2FscyBhbmQgcmUtY3JlYXRlIHRoZSBvbmVzIHRo YXQKQEAgLTI1NDY3LDggKzI2NDQxLDcgQEAgaW5kZXggNGE5NDk4OC4uOWJmYzEzMCAxMDA2NDQK IC12YXJvYmpfaW52YWxpZGF0ZSAodm9pZCkKICtzdGF0aWMgdm9pZCAKICt2YXJvYmpfaW52YWxp ZGF0ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCi0gewotLSAgYWxsX3Jvb3RfdmFyb2JqcyAo dmFyb2JqX2ludmFsaWRhdGVfaXRlciwgTlVMTCk7CisrewogKyAgLyogQ2hlY2sgYWxsIHRoZSBW QVJPQkpzLCBldmVuIG5vbi1yb290IG9uZXMuICBDaGlsZCBWQVJPQkpzIGNhbiByZWZlcmVuY2UK ICsgICAgIHR5cGVzIGZyb20gb3RoZXIgT0JKRklMRXMgdGhyb3VnaCBUWVBFX0lTX09QQVFVRSBy ZXNvbHV0aW9ucyBieQogKyAgICAgY2hlY2tfdHlwZWRlZi4gICovCkBAIC0yNTQ5NSw3ICsyNjQ2 OCw4IEBAIGluZGV4IDRhOTQ5ODguLjliZmMxMzAgMTAwNjQ0CiArCiArc3RhdGljIHZvaWQKICt2 YXJvYmpfcmV2YWxpZGF0ZV9mb3Jfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCi0r eworIHsKKy0gIGFsbF9yb290X3Zhcm9ianMgKHZhcm9ial9pbnZhbGlkYXRlX2l0ZXIsIE5VTEwp OwogKyAgdmFyb2JqX3JldmFsaWRhdGUgKCk7CiArfQogKwwKQEAgLTI1NTE3LDI5ICsyNjQ5MSw1 OCBAQCBpbmRleCA0YTk0OTg4Li45YmZjMTMwIDEwMDY0NAogKwkJCSAgICBzaG93X3Zhcm9iamRl YnVnLAogKwkJCSAgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICsKKysKICsgIG9ic2VydmVyX2F0 dGFjaF9vYmpmaWxlX3VubG9hZGluZyAodmFyb2JqX2ludmFsaWRhdGUgKTsKICsgIG9ic2VydmVy X2F0dGFjaF9vYmpmaWxlX3VubG9hZGVkICh2YXJvYmpfcmV2YWxpZGF0ZSk7CiArICBvYnNlcnZl cl9hdHRhY2hfbmV3X29iamZpbGUgKHZhcm9ial9yZXZhbGlkYXRlX2Zvcl9vYmpmaWxlKTsKICsg IG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKHZhcm9ial90eXBlc19tYXJrX3VzZWQpOwogIH0K IGRpZmYgLS1naXQgYS9nZGIvdmFyb2JqLmggYi9nZGIvdmFyb2JqLmgKLWluZGV4IDcyOTcyNDMu LmFhYmQ3NDMgMTAwNjQ0CitpbmRleCA3Mjk3MjQzLi5mYmUyZjJmIDEwMDY0NAogLS0tIGEvZ2Ri L3Zhcm9iai5oCiArKysgYi9nZGIvdmFyb2JqLmgKLUBAIC0xMTIsNiArMTEyLDEyIEBAIGV4dGVy biB2b2lkIHZhcm9ial9zZXRfZnJvemVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCBmcm96ZW4p OworQEAgLTc4LDYgKzc4LDEyIEBAIHR5cGVkZWYgc3RydWN0IHZhcm9ial91cGRhdGVfcmVzdWx0 X3QKKyAgICAgIG5ldyB2YWx1ZSBvZiB2YXJvYmogaXMgYWxyZWFkeSBjb21wdXRlZCBhbmQgaW5z dGFsbGVkLCBvciBoYXMgdG8KKyAgICAgIGJlIHlldCBpbnN0YWxsZWQuICBEb24ndCB1c2UgdGhp cyBvdXRzaWRlIHZhcm9iai5jICovCisgICBpbnQgdmFsdWVfaW5zdGFsbGVkOyAgCisrCisrICAv KiBUaGlzIHdpbGwgYmUgbm9uLU5VTEwgd2hlbiBuZXcgY2hpbGRyZW4gd2VyZSBhZGRlZCB0byB0 aGUgdmFyb2JqLgorKyAgICAgSXQgbGlzdHMgdGhlIG5ldyBjaGlsZHJlbiAod2hpY2ggbXVzdCBu ZWNlc3NhcmlseSBjb21lIGF0IHRoZSBlbmQKKysgICAgIG9mIHRoZSBjaGlsZCBsaXN0KSBhZGRl ZCBkdXJpbmcgYW4gdXBkYXRlLiAgVGhlIGNhbGxlciBpcworKyAgICAgcmVzcG9uc2libGUgZm9y IGZyZWVpbmcgdGhpcyB2ZWN0b3IuICAqLworKyAgVkVDICh2YXJvYmpfcCkgKm5ldzsKKyB9IHZh cm9ial91cGRhdGVfcmVzdWx0OworIAorIERFRl9WRUNfTyAodmFyb2JqX3VwZGF0ZV9yZXN1bHQp OworQEAgLTExMiwxMyArMTE4LDI0IEBAIGV4dGVybiB2b2lkIHZhcm9ial9zZXRfZnJvemVuIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGludCBmcm96ZW4pOwogIAogIGV4dGVybiBpbnQgdmFyb2JqX2dl dF9mcm96ZW4gKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCi0rZXh0ZXJuIHZvaWQgdmFyb2JqX2dl dF9jaGlsZF9yYW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLAotKwkJCQkgICAgVkVDICh2YXJvYmpf cCkgKmNoaWxkcmVuLAotKwkJCQkgICAgaW50ICpmcm9tLCBpbnQgKnRvKTsKKytleHRlcm4gdm9p ZCB2YXJvYmpfZ2V0X2NoaWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCAqZnJvbSwg aW50ICp0byk7CiArCiArZXh0ZXJuIHZvaWQgdmFyb2JqX3NldF9jaGlsZF9yYW5nZSAoc3RydWN0 IHZhcm9iaiAqdmFyLCBpbnQgZnJvbSwgaW50IHRvKTsKICsKICBleHRlcm4gY2hhciAqdmFyb2Jq X2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCiAgZXh0ZXJuIGludCB2 YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLUBAIC0xNDMsMTIg KzE0OSwxMyBAQCBleHRlcm4gdm9pZCBhbGxfcm9vdF92YXJvYmpzICh2b2lkICgqZnVuYykgKHN0 cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqZGF0YSksCisgCistLyogUmV0dXJuIHRoZSBsaXN0IG9m IGNoaWxkcmVuIG9mIFZBUi4gIFRoZSByZXR1cm5lZCB2ZWN0b3IKKy0gICBzaG91bGQgbm90IGJl IG1vZGlmaWVkIGluIGFueSB3YXkuICAqLworLWV4dGVybiBWRUMgKHZhcm9ial9wKSogdmFyb2Jq X2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcik7CisrLyogUmV0dXJuIHRoZSBsaXN0 IG9mIGNoaWxkcmVuIG9mIFZBUi4gIFRoZSByZXR1cm5lZCB2ZWN0b3Igc2hvdWxkIG5vdAorKyAg IGJlIG1vZGlmaWVkIGluIGFueSB3YXkuICBGUk9NIGFuZCBUTyBhcmUgaW4vb3V0IHBhcmFtZXRl cnMKKysgICBpbmRpY2F0aW5nIHRoZSByYW5nZSBvZiBjaGlsZHJlbiB0byByZXR1cm4uICBJZiBl aXRoZXIgKkZST00gb3IgKlRPCisrICAgaXMgbGVzcyB0aGFuIHplcm8gb24gZW50cnksIHRoZW4g YWxsIGNoaWxkcmVuIHdpbGwgYmUgcmV0dXJuZWQuICBPbgorKyAgIHJldHVybiwgKkZST00gYW5k ICpUTyB3aWxsIGJlIHVwZGF0ZWQgdG8gaW5kaWNhdGUgdGhlIHJlYWwgcmFuZ2UKKysgICB0aGF0 IHdhcyByZXR1cm5lZC4gIFRoZSByZXN1bHRpbmcgVkVDIHdpbGwgY29udGFpbiBhdCBsZWFzdCB0 aGUKKysgICBjaGlsZHJlbiBmcm9tICpGUk9NIHRvIGp1c3QgYmVmb3JlICpUTzsgaXQgbWlnaHQg Y29udGFpbiBtb3JlCisrICAgY2hpbGRyZW4sIGRlcGVuZGluZyBvbiB3aGV0aGVyIGFueSBtb3Jl IHdlcmUgYXZhaWxhYmxlLiAgKi8KKytleHRlcm4gVkVDICh2YXJvYmpfcCkqIHZhcm9ial9saXN0 X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisrCQkJCQkgICAgIGludCAqZnJvbSwgaW50 ICp0byk7CisgCisgZXh0ZXJuIGNoYXIgKnZhcm9ial9nZXRfdHlwZSAoc3RydWN0IHZhcm9iaiAq dmFyKTsKKyAKK0BAIC0xNDMsMTIgKzE2MCwxNSBAQCBleHRlcm4gdm9pZCBhbGxfcm9vdF92YXJv YmpzICh2b2lkICgqZnVuYykgKHN0cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqZGF0YSksCiAgZXh0 ZXJuIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUgKHN0cnVjdCB2YXJv YmogKip2YXJwLCAKICAJCQkJCQkgaW50IGV4cGxpY2l0KTsKICAKQEAgLTI1NTU0LDYgKzI2NTU3 LDggQEAgaW5kZXggNzI5NzI0My4uYWFiZDc0MyAxMDA2NDQKICt2YXJvYmpfc2V0X3Zpc3VhbGl6 ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqdmlzdWFsaXplcik7CiArCiArZXh0 ZXJuIHZvaWQgdmFyb2JqX2VuYWJsZV9wcmV0dHlfcHJpbnRpbmcgKHZvaWQpOworKworK2V4dGVy biBpbnQgdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCB0byk7CiAgCiAg I2VuZGlmIC8qIFZBUk9CSl9IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3hjb2ZmcmVhZC5jIGIvZ2Ri L3hjb2ZmcmVhZC5jCkBAIC0yNTU2OCwzICsyNjU3Myw2OCBAQCBpbmRleCBjNTZhYjg2Li5kYWNm OTEzIDEwMDY0NAogICAgeGNvZmZfc3ltZmlsZV9maW5pc2gsCQkvKiBzeW1fZmluaXNoOiBmaW5p c2hlZCB3aXRoIGZpbGUsIGNsZWFudXAgKi8KICAgIHhjb2ZmX3N5bWZpbGVfb2Zmc2V0cywJLyog c3ltX29mZnNldHM6IHhsYXRlIG9mZnNldHMgZXh0LT5pbnQgZm9ybSAqLwogICAgZGVmYXVsdF9z eW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9u IGZyb20KK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NvZmYvZ28zMmV4ZS5oIGIvaW5jbHVkZS9jb2Zm L2dvMzJleGUuaAoraW5kZXggYzg1ZGEwYy4uMjI0OGZmMiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUv Y29mZi9nbzMyZXhlLmgKKysrKyBiL2luY2x1ZGUvY29mZi9nbzMyZXhlLmgKK0BAIC0xNiwxMSAr MTYsOSBAQAorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0 IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiAgKi8KKyAKKy0jZGVm aW5lIFNUVUJTSVpFIDIwNDgKKy0KKyBzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkcl9nbzMyX2V4ZQor ICAgeworLSAgICBjaGFyIHN0dWJbU1RVQlNJWkVdOy8qIHRoZSBzdHViIHRvIGxvYWQgdGhlIGlt YWdlCSovCisrICAgIGNoYXIgc3R1YltHTzMyX1NUVUJTSVpFXTsgLyogdGhlIHN0dWIgdG8gbG9h ZCB0aGUgaW1hZ2UgKi8KKyAJCQkvKiB0aGUgc3RhbmRhcmQgQ09GRiBoZWFkZXIgICAgICovCisg ICAgIGNoYXIgZl9tYWdpY1syXTsJLyogbWFnaWMgbnVtYmVyCQkJKi8KKyAgICAgY2hhciBmX25z Y25zWzJdOwkvKiBudW1iZXIgb2Ygc2VjdGlvbnMJCSovCitAQCAtMzQsNCArMzIsNCBAQCBzdHJ1 Y3QgZXh0ZXJuYWxfZmlsZWhkcl9nbzMyX2V4ZQorICN1bmRlZiBGSUxIRFIKKyAjZGVmaW5lCUZJ TEhEUglzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkcl9nbzMyX2V4ZQorICN1bmRlZiBGSUxIU1oKKy0j ZGVmaW5lCUZJTEhTWglTVFVCU0laRSsyMAorKyNkZWZpbmUJRklMSFNaCUdPMzJfU1RVQlNJWkUr MjAKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NvZmYvaW50ZXJuYWwuaCBiL2luY2x1ZGUvY29mZi9p bnRlcm5hbC5oCitpbmRleCBjNWQ2Y2QxLi4zNmQwM2ViIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9j b2ZmL2ludGVybmFsLmgKKysrKyBiL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5oCitAQCAtNTgsMTAg KzU4LDE5IEBAIHN0cnVjdCBpbnRlcm5hbF9leHRyYV9wZV9maWxlaGRyCisgICBiZmRfdm1hICBu dF9zaWduYXR1cmU7ICAgCS8qIHJlcXVpcmVkIE5UIHNpZ25hdHVyZSwgMHg0NTUwICovIAorIH07 CisgCisrI2RlZmluZSBHTzMyX1NUVUJTSVpFIDIwNDgKKysKKyBzdHJ1Y3QgaW50ZXJuYWxfZmls ZWhkcgorIHsKKyAgIHN0cnVjdCBpbnRlcm5hbF9leHRyYV9wZV9maWxlaGRyIHBlOworIAorKyAg LyogY29mZi1zdGdvMzIgRVhFIHN0dWIgaGVhZGVyIGJlZm9yZSBCRkQgdGRhdGEgaGFzIGJlZW4g YWxsb2NhdGVkLgorKyAgICAgSXRzIGRhdGEgaXMga2VwdCBpbiBJTlRFUk5BTF9GSUxFSERSLkdP MzJTVFVCIGFmdGVyd2FyZHMuCisrICAgICAKKysgICAgIEZfR08zMlNUVUIgaXMgc2V0IGlmZiBn bzMyc3R1YiBjb250YWlucyBhIHZhbGlkIGRhdGEuICBBcnRpZmljYWwgaGVhZGVycworKyAgICAg Y3JlYXRlZCBpbiBCRkQgaGF2ZSBubyBwcmUtc2V0IGdvMzJzdHViLiAgKi8KKysgIGNoYXIgZ28z MnN0dWJbR08zMl9TVFVCU0laRV07CisrCisgICAvKiBTdGFuZGFyZCBjb2ZmIGludGVybmFsIGlu Zm8uICAqLworICAgdW5zaWduZWQgc2hvcnQgZl9tYWdpYzsJLyogbWFnaWMgbnVtYmVyCQkJKi8K KyAgIHVuc2lnbmVkIHNob3J0IGZfbnNjbnM7CS8qIG51bWJlciBvZiBzZWN0aW9ucwkJKi8KK0BA IC04NCw3ICs5Myw4IEBAIHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyCisgIAlGX0FSMzJXCQlmaWxl IGlzIDMyLWJpdCBiaWctZW5kaWFuCisgIAlGX0RZTkxPQUQJcnMvNjAwMCBhaXg6IGR5bmFtaWNh bGx5IGxvYWRhYmxlIHcvaW1wb3J0cyAmIGV4cG9ydHMKKyAgCUZfU0hST0JKCXJzLzYwMDAgYWl4 OiBmaWxlIGlzIGEgc2hhcmVkIG9iamVjdAorLSAgICAgICAgRl9ETEwgICAgICAgICAgIFBFIGZv cm1hdCBETEwuICAqLworKwlGX0RMTCAgICAgICAgICAgUEUgZm9ybWF0IERMTAorKwlGX0dPMzJT VFVCICAgICAgRmllbGQgZ28zMnN0dWIgY29udGFpbnMgdmFsaWQgZGF0YS4gICovCisgCisgI2Rl ZmluZQlGX1JFTEZMRwkoMHgwMDAxKQorICNkZWZpbmUJRl9FWEVDCQkoMHgwMDAyKQorQEAgLTk2 LDYgKzEwNiw3IEBAIHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyCisgI2RlZmluZQlGX0RZTkxPQUQJ KDB4MTAwMCkKKyAjZGVmaW5lCUZfU0hST0JKCSgweDIwMDApCisgI2RlZmluZSBGX0RMTCAgICAg ICAgICAgKDB4MjAwMCkKKysjZGVmaW5lIEZfR08zMlNUVUIgICAgICAoMHg0MDAwKQorIAorIC8q IEV4dHJhIHN0cnVjdHVyZSB3aGljaCBpcyB1c2VkIGluIHRoZSBvcHRpb25hbCBoZWFkZXIuICAq LworIHR5cGVkZWYgc3RydWN0IF9JTUFHRV9EQVRBX0RJUkVDVE9SWSAKCmRpZmYgLS1naXQgYS9n ZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDQ1ZDQ2ZDMuLmNiMmY3YTQgMTAwNjQ0Ci0tLSBhL2dk Yi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0xMCw3ICsxMCw3IEBAIE5hbWU6IGdkYiV7P193aXRo X2RlYnVnOi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24u aW4uCiAjIE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9m ZmljaWFsIHJlbGVhc2VzLCBsaWtlIDYuMyAKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFgu WS5aLmRhdGUgZm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFp bHkgc25hcHNob3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhl IHJlbGVhc2UgYnJhbmNoKS4KLVZlcnNpb246IDYuOC41MC4yMDA5MDgwMworVmVyc2lvbjogNi44 LjUwLjIwMDkwODEwCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyBy ZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFy dCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9y IHRoZSB0ZXN0aW5nLgpAQCAtMjE3LDggKzIxNyw4IEBAIFBhdGNoMjI5OiBnZGItNi4zLWJ6MTQw NTMyLXBwYy11bndpbmRpbmctdGVzdC5wYXRjaAogIyBUZXN0Y2FzZSBmb3IgZXhlYygpIGZyb20g dGhyZWFkZWQgcHJvZ3JhbSAoQlogMjAyNjg5KS4KIFBhdGNoMjMxOiBnZGItNi4zLWJ6MjAyNjg5 LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAotIyBCYWNrcG9ydGVkIHBvc3QgZ2RiLTYu OC41MC4yMDA5MDgwMyBzbmFwc2hvdCBmaXh1cHMuCi0jUGF0Y2gyMzI6IGdkYi02LjguNTAuMjAw OTA4MDMtdXBzdHJlYW0ucGF0Y2gKKyMgQmFja3BvcnRlZCBwb3N0IGdkYi02LjguNTAuMjAwOTA4 MTAgc25hcHNob3QgZml4dXBzLgorI1BhdGNoMjMyOiBnZGItNi44LjUwLjIwMDkwODEwLXVwc3Ry ZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGluc3RydWN0aW9ucyBk aXNhc3NlbWJseSAoQlogMjMwMDAwKS4KIFBhdGNoMjM0OiBnZGItNi42LWJ6MjMwMDAwLXBvd2Vy Ni1kaXNhc3NlbWJseS10ZXN0LnBhdGNoCkBAIC04MjUsNiArODI1LDEwIEBAIGZpCiAlZW5kaWYK IAogJWNoYW5nZWxvZworKiBNb24gQXVnIDEwIDIwMDkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwODEwLTEKKy0gVXBncmFkZSB0byB0aGUg RlNGIEdEQiBnZGItNi44LjUwIHNuYXBzaG90OiA2LjguNTAuMjAwOTA4MTAKKy0gYXJjaGVyLWph bmtyYXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OiA5M2VjMTZlNmY1MDAwZGQ2NGQ0MzNkODY2NzRl ODIwZWQwZjM1YjcyCisKICogVHVlIEF1ZyAgNCAyMDA5IEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDYuOC41MC4yMDA5MDgwMy0yCiAtIERyb3AgdGhlIGJ1bmRs ZWQgbGlic3RkYysrIHB5dGhvbiAtIGl0IHNob3VsZCBiZSBwYWNrYWdlZCBvbiBpdHMgb3duIG5v dy4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGY0M2ZkMzkuLjQ2NmFk YTUgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotZjEyMDUy NmI3MmEzZGZkMjllOWYwNmE1NjJlMzRhYTEgIGdkYi02LjguNTAuMjAwOTA4MDMudGFyLmJ6Mgor YjQ1NDk0OTgzNDU4NDk0NTg0NjRjOGZlMjUwM2EzN2MgIGdkYi02LjguNTAuMjAwOTA4MTAudGFy LmJ6Mgo=