From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4 3/4] x86: remove has_hvm_container_{domain/vcpu} Date: Thu, 16 Mar 2017 11:48:21 +0000 Message-ID: <20170316114822.27611-4-roger.pau@citrix.com> References: <20170316114822.27611-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1coTtj-0005PM-05 for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:48:51 +0000 In-Reply-To: <20170316114822.27611-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Elena Ufimtseva , Kevin Tian , Jan Beulich , Jun Nakajima , Andrew Cooper , Christoph Egger , Tim Deegan , George Dunlap , Suravee Suthikulpanit , Boris Ostrovsky , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SXQgaXMgbm93IHVzZWxlc3Mgc2luY2UgUFZIdjEgaXMgcmVtb3ZlZCBhbmQgUFZIdjIgaXMgYSBI Vk0gZG9tYWluIGZyb20gWGVuJ3MKcG9pbnQgb2Ygdmlldy4KClNpZ25lZC1vZmYtYnk6IFJvZ2Vy IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFRpbSBEZWVnYW4gPHRp bUB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29t PgpBY2tlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgpBY2tl ZC1ieTogRWxlbmEgVWZpbXRzZXZhIDxlbGVuYS51ZmltdHNldmFAb3JhY2xlLmNvbT4KLS0tCkNj OiBDaHJpc3RvcGggRWdnZXIgPGNoZWdnZXJAYW1hem9uLmRlPgpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNj OiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpD YzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDYzogS2V2aW4gVGlhbiA8 a2V2aW4udGlhbkBpbnRlbC5jb20+CkNjOiBFbGVuYSBVZmltdHNldmEgPGVsZW5hLnVmaW10c2V2 YUBvcmFjbGUuY29tPgpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXgu Y29tPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdp bGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2sv dm1jZS5jICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jICAgICAgICAg ICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L2NwdS92cG11X2FtZC5jICAgICAgICAgfCAxMiAr KysrKystLS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvdnBtdV9pbnRlbC5jICAgICAgIHwgMzEgKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgICAgICAg ICAgICAgICAgfCAgOCArKysrLS0tLQogeGVuL2FyY2gveDg2L2RlYnVnLmMgICAgICAgICAgICAg ICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgfCAyOCArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMgICAg ICAgICB8ICA1ICsrLS0tCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L2h2 bS9pcnEuYyAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9tdHJyLmMgICAg ICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMgICAgICAgICAgICAgfCAg MyArLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAgICAgIHwgIDQgKystLQogeGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYv bW0uYyAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS9wYWdpbmcu YyAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgICAg IHwgIDkgKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICAgICAgICAgICB8IDExICsrKysrLS0tLS0t CiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNo L3g4Ni94ODZfNjQvdHJhcHMuYyAgICAgICAgIHwgIDQgKystLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2lvbW11LmMgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAg ICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9ldmVudC5oICAgICAgICAgfCAgMiAr LQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9hY2Nlc3MuaCAgfCAxMiArKysrKystLS0tLS0K IHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRl L3hlbi9zY2hlZC5oICAgICAgICAgICAgIHwgIDIgLS0KIHhlbi9pbmNsdWRlL3hlbi90bWVtX3hl bi5oICAgICAgICAgIHwgIDUgKystLS0KIDMwIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMo KyksIDk2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNr L3ZtY2UuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYwppbmRleCAwMWE1ODI2Li43 MWJmMjg0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMKKysrIGIv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCkBAIC04Miw3ICs4Miw3IEBAIGludCB2bWNl X3Jlc3RvcmVfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IGh2bV92bWNlX3ZjcHUg KmN0eHQpCiAgICAgewogICAgICAgICBkcHJpbnRrKFhFTkxPR19HX0VSUiwgIiVzIHJlc3RvcmU6 IHVuc3VwcG9ydGVkIE1DQSBjYXBhYmlsaXRpZXMiCiAgICAgICAgICAgICAgICAgIiAlIyIgUFJJ eDY0ICIgZm9yICVwdiAoc3VwcG9ydGVkOiAlI0x4KVxuIiwKLSAgICAgICAgICAgICAgICBoYXNf aHZtX2NvbnRhaW5lcl92Y3B1KHYpID8gIkhWTSIgOiAiUFYiLCBjdHh0LT5jYXBzLAorICAgICAg ICAgICAgICAgIGlzX2h2bV92Y3B1KHYpID8gIkhWTSIgOiAiUFYiLCBjdHh0LT5jYXBzLAogICAg ICAgICAgICAgICAgIHYsIGd1ZXN0X21jZ19jYXAgJiB+TUNHX0NBUF9DT1VOVCk7CiAgICAgICAg IHJldHVybiAtRVBFUk07CiAgICAgfQpAQCAtMzY0LDcgKzM2NCw3IEBAIGludCBpbmplY3Rfdm1j ZShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgdmNwdSkKICAgICAgICAgaWYgKCAhdi0+aXNfaW5pdGlh bGlzZWQgKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKCAoaGFzX2h2bV9j b250YWluZXJfZG9tYWluKGQpIHx8CisgICAgICAgIGlmICggKGlzX2h2bV9kb21haW4oZCkgfHwK ICAgICAgICAgICAgICAgZ3Vlc3RfaGFzX3RyYXBfY2FsbGJhY2soZCwgdi0+dmNwdV9pZCwgVFJB UF9tYWNoaW5lX2NoZWNrKSkgJiYKICAgICAgICAgICAgICAhdGVzdF9hbmRfc2V0X2Jvb2wodi0+ bWNlX3BlbmRpbmcpICkKICAgICAgICAgewpAQCAtNDcyLDcgKzQ3Miw3IEBAIGludCB1bm1tYXBf YnJva2VuX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCB1bnNpZ25lZCBsb25nIGdm bikKICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwog Ci0gICAgaWYgKCAhaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQpIHx8ICFwYWdpbmdfbW9kZV9o YXAoZCkgKQorICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgfHwgIXBhZ2luZ19tb2RlX2hhcChk KSApCiAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIAogICAgIHJjID0gLTE7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCmlu ZGV4IGExZTlmMDAuLjAzNDAxZmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCB2 cG11X2RvX2ludGVycnVwdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgdnBt dS0+YXJjaF92cG11X29wcy0+YXJjaF92cG11X3NhdmUoc2FtcGxpbmcsIDEpOwogICAgICAgICB2 cG11X3Jlc2V0KHZwbXUsIFZQTVVfQ09OVEVYVF9TQVZFIHwgVlBNVV9DT05URVhUX0xPQURFRCk7 CiAKLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHNhbXBsZWQpICkKKyAgICAg ICAgaWYgKCBpc19odm1fdmNwdShzYW1wbGVkKSApCiAgICAgICAgICAgICAqZmxhZ3MgPSAwOwog ICAgICAgICBlbHNlCiAgICAgICAgICAgICAqZmxhZ3MgPSBQTVVfU0FNUExFX1BWOwpAQCAtMjg4 LDcgKzI4OCw3IEBAIHZvaWQgdnBtdV9kb19pbnRlcnJ1cHQoc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCiAgICAgICAgICAgICByLT5zcCA9IGN1cl9yZWdzLT5yc3A7CiAgICAgICAgICAgICBy LT5mbGFncyA9IGN1cl9yZWdzLT5yZmxhZ3M7CiAKLSAgICAgICAgICAgIGlmICggIWhhc19odm1f Y29udGFpbmVyX3ZjcHUoc2FtcGxlZCkgKQorICAgICAgICAgICAgaWYgKCAhaXNfaHZtX3ZjcHUo c2FtcGxlZCkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHItPnNzID0gY3VyX3Jl Z3MtPnNzOwogICAgICAgICAgICAgICAgIHItPmNzID0gY3VyX3JlZ3MtPmNzOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2NwdS92cG11X2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS92cG11X2Ft ZC5jCmluZGV4IGUwYWNiZjQuLmIzYzM2OTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUv dnBtdV9hbWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L3ZwbXVfYW1kLmMKQEAgLTMwNSw4ICsz MDUsOCBAQCBzdGF0aWMgaW50IGFtZF92cG11X3NhdmUoc3RydWN0IHZjcHUgKnYsICBib29sX3Qg dG9fZ3Vlc3QpCiAKICAgICBjb250ZXh0X3NhdmUodik7CiAKLSAgICBpZiAoICF2cG11X2lzX3Nl dCh2cG11LCBWUE1VX1JVTk5JTkcpICYmCi0gICAgICAgICBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1 KHYpICYmIGlzX21zcl9iaXRtYXBfb24odnBtdSkgKQorICAgIGlmICggIXZwbXVfaXNfc2V0KHZw bXUsIFZQTVVfUlVOTklORykgJiYgaXNfaHZtX3ZjcHUodikgJiYKKyAgICAgICAgIGlzX21zcl9i aXRtYXBfb24odnBtdSkgKQogICAgICAgICBhbWRfdnBtdV91bnNldF9tc3JfYml0bWFwKHYpOwog CiAgICAgaWYgKCB0b19ndWVzdCApCkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBhbWRf dnBtdV9kb193cm1zcih1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwKICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICAvKiBGb3IgYWxsIGNvdW50ZXJzLCBlbmFibGUg Z3Vlc3Qgb25seSBtb2RlIGZvciBIVk0gZ3Vlc3QgKi8KLSAgICBpZiAoIGhhc19odm1fY29udGFp bmVyX3ZjcHUodikgJiYgKHR5cGUgPT0gTVNSX1RZUEVfQ1RSTCkgJiYKKyAgICBpZiAoIGlzX2h2 bV92Y3B1KHYpICYmICh0eXBlID09IE1TUl9UWVBFX0NUUkwpICYmCiAgICAgICAgICAhaXNfZ3Vl c3RfbW9kZShtc3JfY29udGVudCkgKQogICAgIHsKICAgICAgICAgc2V0X2d1ZXN0X21vZGUobXNy X2NvbnRlbnQpOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHN0YXRpYyBpbnQgYW1kX3ZwbXVfZG9fd3Jt c3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQsCiAgICAgICAgICAgICBy ZXR1cm4gMDsKICAgICAgICAgdnBtdV9zZXQodnBtdSwgVlBNVV9SVU5OSU5HKTsKIAotICAgICAg ICBpZiAoIGhhc19odm1fY29udGFpbmVyX3ZjcHUodikgJiYgaXNfbXNyX2JpdG1hcF9vbih2cG11 KSApCisgICAgICAgIGlmICggaXNfaHZtX3ZjcHUodikgJiYgaXNfbXNyX2JpdG1hcF9vbih2cG11 KSApCiAgICAgICAgICAgICAgYW1kX3ZwbXVfc2V0X21zcl9iaXRtYXAodik7CiAgICAgfQogCkBA IC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIGludCBhbWRfdnBtdV9kb193cm1zcih1bnNpZ25lZCBp bnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwKICAgICAgICAgKGlzX3BtdV9lbmFibGVkKG1z cl9jb250ZW50KSA9PSAwKSAmJiB2cG11X2lzX3NldCh2cG11LCBWUE1VX1JVTk5JTkcpICkKICAg ICB7CiAgICAgICAgIHZwbXVfcmVzZXQodnBtdSwgVlBNVV9SVU5OSU5HKTsKLSAgICAgICAgaWYg KCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpICYmIGlzX21zcl9iaXRtYXBfb24odnBtdSkgKQor ICAgICAgICBpZiAoIGlzX2h2bV92Y3B1KHYpICYmIGlzX21zcl9iaXRtYXBfb24odnBtdSkgKQog ICAgICAgICAgICAgIGFtZF92cG11X3Vuc2V0X21zcl9iaXRtYXAodik7CiAgICAgICAgIHJlbGVh c2VfcG11X293bmVyc2hpcChQTVVfT1dORVJfSFZNKTsKICAgICB9CkBAIC00MzMsNyArNDMzLDcg QEAgc3RhdGljIHZvaWQgYW1kX3ZwbXVfZGVzdHJveShzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBz dHJ1Y3QgdnBtdV9zdHJ1Y3QgKnZwbXUgPSB2Y3B1X3ZwbXUodik7CiAKLSAgICBpZiAoIGhhc19o dm1fY29udGFpbmVyX3ZjcHUodikgJiYgaXNfbXNyX2JpdG1hcF9vbih2cG11KSApCisgICAgaWYg KCBpc19odm1fdmNwdSh2KSAmJiBpc19tc3JfYml0bWFwX29uKHZwbXUpICkKICAgICAgICAgYW1k X3ZwbXVfdW5zZXRfbXNyX2JpdG1hcCh2KTsKIAogICAgIHhmcmVlKHZwbXUtPmNvbnRleHQpOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS92cG11X2ludGVsLmMgYi94ZW4vYXJjaC94ODYv Y3B1L3ZwbXVfaW50ZWwuYwppbmRleCA2MjZiZWQ1Li4wZDY2ZWNiIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvY3B1L3ZwbXVfaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L3ZwbXVfaW50 ZWwuYwpAQCAtMzA2LDcgKzMwNiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2NvcmUyX3ZwbXVf c2F2ZShzdHJ1Y3QgdmNwdSAqdikKICAgICBmb3IgKCBpID0gMDsgaSA8IGFyY2hfcG1jX2NudDsg aSsrICkKICAgICAgICAgcmRtc3JsKE1TUl9JQTMyX1BFUkZDVFIwICsgaSwgeGVuX3BtdV9jbnRy X3BhaXJbaV0uY291bnRlcik7CiAKLSAgICBpZiAoICFoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYp ICkKKyAgICBpZiAoICFpc19odm1fdmNwdSh2KSApCiAgICAgICAgIHJkbXNybChNU1JfQ09SRV9Q RVJGX0dMT0JBTF9TVEFUVVMsIGNvcmUyX3ZwbXVfY3h0LT5nbG9iYWxfc3RhdHVzKTsKIH0KIApA QCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBpbnQgY29yZTJfdnBtdV9zYXZlKHN0cnVjdCB2Y3B1 ICp2LCBib29sX3QgdG9fZ3Vlc3QpCiB7CiAgICAgc3RydWN0IHZwbXVfc3RydWN0ICp2cG11ID0g dmNwdV92cG11KHYpOwogCi0gICAgaWYgKCAhaGFzX2h2bV9jb250YWluZXJfdmNwdSh2KSApCisg ICAgaWYgKCAhaXNfaHZtX3ZjcHUodikgKQogICAgICAgICB3cm1zcmwoTVNSX0NPUkVfUEVSRl9H TE9CQUxfQ1RSTCwgMCk7CiAKICAgICBpZiAoICF2cG11X2FyZV9hbGxfc2V0KHZwbXUsIFZQTVVf Q09OVEVYVF9TQVZFIHwgVlBNVV9DT05URVhUX0xPQURFRCkgKQpAQCAtMzIzLDggKzMyMyw4IEBA IHN0YXRpYyBpbnQgY29yZTJfdnBtdV9zYXZlKHN0cnVjdCB2Y3B1ICp2LCBib29sX3QgdG9fZ3Vl c3QpCiAgICAgX19jb3JlMl92cG11X3NhdmUodik7CiAKICAgICAvKiBVbnNldCBQTVUgTVNSIGJp dG1hcCB0byB0cmFwIGxhenkgbG9hZC4gKi8KLSAgICBpZiAoICF2cG11X2lzX3NldCh2cG11LCBW UE1VX1JVTk5JTkcpICYmCi0gICAgICAgICBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpICYmIGNw dV9oYXNfdm14X21zcl9iaXRtYXAgKQorICAgIGlmICggIXZwbXVfaXNfc2V0KHZwbXUsIFZQTVVf UlVOTklORykgJiYgaXNfaHZtX3ZjcHUodikgJiYKKyAgICAgICAgIGNwdV9oYXNfdm14X21zcl9i aXRtYXAgKQogICAgICAgICBjb3JlMl92cG11X3Vuc2V0X21zcl9iaXRtYXAodi0+YXJjaC5odm1f dm14Lm1zcl9iaXRtYXApOwogCiAgICAgaWYgKCB0b19ndWVzdCApCkBAIC0zNjIsNyArMzYyLDcg QEAgc3RhdGljIGlubGluZSB2b2lkIF9fY29yZTJfdnBtdV9sb2FkKHN0cnVjdCB2Y3B1ICp2KQog ICAgIGlmICggdnBtdV9pc19zZXQodmNwdV92cG11KHYpLCBWUE1VX0NQVV9IQVNfRFMpICkKICAg ICAgICAgd3Jtc3JsKE1TUl9JQTMyX0RTX0FSRUEsIGNvcmUyX3ZwbXVfY3h0LT5kc19hcmVhKTsK IAotICAgIGlmICggIWhhc19odm1fY29udGFpbmVyX3ZjcHUodikgKQorICAgIGlmICggIWlzX2h2 bV92Y3B1KHYpICkKICAgICB7CiAgICAgICAgIHdybXNybChNU1JfQ09SRV9QRVJGX0dMT0JBTF9P VkZfQ1RSTCwgY29yZTJfdnBtdV9jeHQtPmdsb2JhbF9vdmZfY3RybCk7CiAgICAgICAgIGNvcmUy X3ZwbXVfY3h0LT5nbG9iYWxfb3ZmX2N0cmwgPSAwOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHN0YXRp YyBpbnQgY29yZTJfdnBtdV92ZXJpZnkoc3RydWN0IHZjcHUgKnYpCiAgICAgfQogCiAgICAgaWYg KCB2cG11X2lzX3NldCh2cG11LCBWUE1VX0NQVV9IQVNfRFMpICYmCi0gICAgICAgICAhKGhhc19o dm1fY29udGFpbmVyX3ZjcHUodikKKyAgICAgICAgICEoaXNfaHZtX3ZjcHUodikKICAgICAgICAg ICAgPyBpc19jYW5vbmljYWxfYWRkcmVzcyhjb3JlMl92cG11X2N4dC0+ZHNfYXJlYSkKICAgICAg ICAgICAgOiBfX2FkZHJfb2soY29yZTJfdnBtdV9jeHQtPmRzX2FyZWEpKSApCiAgICAgICAgIHJl dHVybiAtRUlOVkFMOwpAQCAtNDc0LDcgKzQ3NCw3IEBAIHN0YXRpYyBpbnQgY29yZTJfdnBtdV9h bGxvY19yZXNvdXJjZShzdHJ1Y3QgdmNwdSAqdikKICAgICBpZiAoICFhY3F1aXJlX3BtdV9vd25l cnNoaXAoUE1VX09XTkVSX0hWTSkgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmICggaGFz X2h2bV9jb250YWluZXJfdmNwdSh2KSApCisgICAgaWYgKCBpc19odm1fdmNwdSh2KSApCiAgICAg ewogICAgICAgICB3cm1zcmwoTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwgMCk7CiAgICAgICAg IGlmICggdm14X2FkZF9ob3N0X2xvYWRfbXNyKE1TUl9DT1JFX1BFUkZfR0xPQkFMX0NUUkwpICkK QEAgLTUzOSw3ICs1MzksNyBAQCBzdGF0aWMgaW50IGNvcmUyX3ZwbXVfbXNyX2NvbW1vbl9jaGVj ayh1MzIgbXNyX2luZGV4LCBpbnQgKnR5cGUsIGludCAqaW5kZXgpCiAgICAgewogICAgICAgICBf X2NvcmUyX3ZwbXVfbG9hZChjdXJyZW50KTsKICAgICAgICAgdnBtdV9zZXQodnBtdSwgVlBNVV9D T05URVhUX0xPQURFRCk7Ci0gICAgICAgIGlmICggaGFzX2h2bV9jb250YWluZXJfdmNwdShjdXJy ZW50KSAmJgorICAgICAgICBpZiAoIGlzX2h2bV92Y3B1KGN1cnJlbnQpICYmCiAgICAgICAgICAg ICAgY3B1X2hhc192bXhfbXNyX2JpdG1hcCApCiAgICAgICAgICAgICBjb3JlMl92cG11X3NldF9t c3JfYml0bWFwKGN1cnJlbnQtPmFyY2guaHZtX3ZteC5tc3JfYml0bWFwKTsKICAgICB9CkBAIC02 MTIsOSArNjEyLDggQEAgc3RhdGljIGludCBjb3JlMl92cG11X2RvX3dybXNyKHVuc2lnbmVkIGlu dCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50LAogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CiAgICAgICAgIGlmICggdnBtdV9pc19zZXQodnBtdSwgVlBNVV9DUFVfSEFTX0RTKSApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIGlmICggIShoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpCi0gICAg ICAgICAgICAgICAgICAgPyBpc19jYW5vbmljYWxfYWRkcmVzcyhtc3JfY29udGVudCkKLSAgICAg ICAgICAgICAgICAgICA6IF9fYWRkcl9vayhtc3JfY29udGVudCkpICkKKyAgICAgICAgICAgIGlm ICggIShpc19odm1fdmNwdSh2KSA/IGlzX2Nhbm9uaWNhbF9hZGRyZXNzKG1zcl9jb250ZW50KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX19hZGRyX29rKG1zcl9jb250ZW50 KSkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJO SU5HLAogICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGFkZHJlc3MgZm9yIElBMzJf RFNfQVJFQTogJSMiIFBSSXg2NCAieFxuIiwKQEAgLTYzNSw3ICs2MzQsNyBAQCBzdGF0aWMgaW50 IGNvcmUyX3ZwbXVfZG9fd3Jtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRl bnQsCiAgICAgICAgIGlmICggbXNyX2NvbnRlbnQgJiBmaXhlZF9jdHJsX21hc2sgKQogICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92 Y3B1KHYpICkKKyAgICAgICAgaWYgKCBpc19odm1fdmNwdSh2KSApCiAgICAgICAgICAgICB2bXhf cmVhZF9ndWVzdF9tc3IoTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmY29yZTJfdnBtdV9jeHQtPmdsb2JhbF9jdHJsKTsKICAgICAgICAg ZWxzZQpAQCAtNzA0LDcgKzcwMyw3IEBAIHN0YXRpYyBpbnQgY29yZTJfdnBtdV9kb193cm1zcih1 bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwKICAgICAgICAgICAgIGlmICgg YmxvY2tlZCApCiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICAgICAgICAg IGlmICggaGFzX2h2bV9jb250YWluZXJfdmNwdSh2KSApCisgICAgICAgICAgICBpZiAoIGlzX2h2 bV92Y3B1KHYpICkKICAgICAgICAgICAgICAgICB2bXhfcmVhZF9ndWVzdF9tc3IoTVNSX0NPUkVf UEVSRl9HTE9CQUxfQ1RSTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNv cmUyX3ZwbXVfY3h0LT5nbG9iYWxfY3RybCk7CiAgICAgICAgICAgICBlbHNlCkBAIC03MjMsNyAr NzIyLDcgQEAgc3RhdGljIGludCBjb3JlMl92cG11X2RvX3dybXNyKHVuc2lnbmVkIGludCBtc3Is IHVpbnQ2NF90IG1zcl9jb250ZW50LAogICAgICAgICB3cm1zcmwobXNyLCBtc3JfY29udGVudCk7 CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYp ICkKKyAgICAgICAgaWYgKCBpc19odm1fdmNwdSh2KSApCiAgICAgICAgICAgICB2bXhfd3JpdGVf Z3Vlc3RfbXNyKE1TUl9DT1JFX1BFUkZfR0xPQkFMX0NUUkwsIG1zcl9jb250ZW50KTsKICAgICAg ICAgZWxzZQogICAgICAgICAgICAgd3Jtc3JsKE1TUl9DT1JFX1BFUkZfR0xPQkFMX0NUUkwsIG1z cl9jb250ZW50KTsKQEAgLTc1Nyw3ICs3NTYsNyBAQCBzdGF0aWMgaW50IGNvcmUyX3ZwbXVfZG9f cmRtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KQogICAgICAgICAg ICAgKm1zcl9jb250ZW50ID0gY29yZTJfdnBtdV9jeHQtPmdsb2JhbF9zdGF0dXM7CiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgY2FzZSBNU1JfQ09SRV9QRVJGX0dMT0JBTF9DVFJMOgotICAg ICAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpICkKKyAgICAgICAgICAgIGlm ICggaXNfaHZtX3ZjcHUodikgKQogICAgICAgICAgICAgICAgIHZteF9yZWFkX2d1ZXN0X21zcihN U1JfQ09SRV9QRVJGX0dMT0JBTF9DVFJMLCBtc3JfY29udGVudCk7CiAgICAgICAgICAgICBlbHNl CiAgICAgICAgICAgICAgICAgcmRtc3JsKE1TUl9DT1JFX1BFUkZfR0xPQkFMX0NUUkwsICptc3Jf Y29udGVudCk7CkBAIC04NTgsNyArODU3LDcgQEAgc3RhdGljIHZvaWQgY29yZTJfdnBtdV9kZXN0 cm95KHN0cnVjdCB2Y3B1ICp2KQogICAgIHZwbXUtPmNvbnRleHQgPSBOVUxMOwogICAgIHhmcmVl KHZwbXUtPnByaXZfY29udGV4dCk7CiAgICAgdnBtdS0+cHJpdl9jb250ZXh0ID0gTlVMTDsKLSAg ICBpZiAoIGhhc19odm1fY29udGFpbmVyX3ZjcHUodikgJiYgY3B1X2hhc192bXhfbXNyX2JpdG1h cCApCisgICAgaWYgKCBpc19odm1fdmNwdSh2KSAmJiBjcHVfaGFzX3ZteF9tc3JfYml0bWFwICkK ICAgICAgICAgY29yZTJfdnBtdV91bnNldF9tc3JfYml0bWFwKHYtPmFyY2guaHZtX3ZteC5tc3Jf Yml0bWFwKTsKICAgICByZWxlYXNlX3BtdV9vd25lcnNoaXAoUE1VX09XTkVSX0hWTSk7CiAgICAg dnBtdV9jbGVhcih2cG11KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHVpZC5jIGIveGVu L2FyY2gveDg2L2NwdWlkLmMKaW5kZXggMzkwM2Q2OC4uMWM2YTZjNiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2NwdWlkLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdWlkLmMKQEAgLTY5OSw3ICs2 OTksNyBAQCB2b2lkIGd1ZXN0X2NwdWlkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBs ZWFmLAogICAgIGNhc2UgMHgxOgogICAgICAgICAvKiBUT0RPOiBSZXdvcmsgdG9wb2xvZ3kgbG9n aWMuICovCiAgICAgICAgIHJlcy0+YiAmPSAweDAwZmZmZmZmdTsKLSAgICAgICAgaWYgKCBoYXNf aHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkg KQogICAgICAgICAgICAgcmVzLT5iIHw9ICh2LT52Y3B1X2lkICogMikgPDwgMjQ7CiAKICAgICAg ICAgLyogVE9ETzogUmV3b3JrIHZQTVUgY29udHJvbCBpbiB0ZXJtcyBvZiB0b29sc3RhY2sgY2hv aWNlcy4gKi8KQEAgLTcxMyw3ICs3MTMsNyBAQCB2b2lkIGd1ZXN0X2NwdWlkKGNvbnN0IHN0cnVj dCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogICAgICAgICAgICAgICAgIHJlcy0+YyB8PSBjcHVm ZWF0X21hc2soWDg2X0ZFQVRVUkVfRFNDUEwpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCBo YXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4o ZCkgKQogICAgICAgICB7CiAgICAgICAgICAgICAvKiBPU1hTQVZFIGNsZWFyIGluIHBvbGljeS4g IEZhc3QtZm9yd2FyZCBDUjQgYmFjayBpbi4gKi8KICAgICAgICAgICAgIGlmICggdi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfT1NYU0FWRSApCkBAIC05MTEsMTEgKzkxMSwx MSBAQCB2b2lkIGd1ZXN0X2NwdWlkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFm LAogICAgIGNhc2UgMHg4MDAwMDAwMToKICAgICAgICAgLyogU1lTQ0FMTCBpcyBoaWRkZW4gb3V0 c2lkZSBvZiBsb25nIG1vZGUgb24gSW50ZWwuICovCiAgICAgICAgIGlmICggcC0+eDg2X3ZlbmRv ciA9PSBYODZfVkVORE9SX0lOVEVMICYmCi0gICAgICAgICAgICAgaGFzX2h2bV9jb250YWluZXJf ZG9tYWluKGQpICYmICFodm1fbG9uZ19tb2RlX2VuYWJsZWQodikgKQorICAgICAgICAgICAgIGlz X2h2bV9kb21haW4oZCkgJiYgIWh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSApCiAgICAgICAgICAg ICByZXMtPmQgJj0gfmNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TWVNDQUxMKTsKIAogICAgIGNv bW1vbl9sZWFmMV9hZGp1c3RtZW50czoKLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9k b21haW4oZCkgKQorICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgICAgICB7CiAg ICAgICAgICAgICAvKiBGYXN0LWZvcndhcmQgTVNSX0FQSUNfQkFTRS5FTi4gKi8KICAgICAgICAg ICAgIGlmICggdmxhcGljX2h3X2Rpc2FibGVkKHZjcHVfdmxhcGljKHYpKSApCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvZGVidWcuYyBiL3hlbi9hcmNoL3g4Ni9kZWJ1Zy5jCmluZGV4IDQ5OTU3 NGUuLjIwNzAwNzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kZWJ1Zy5jCisrKyBiL3hlbi9h cmNoL3g4Ni9kZWJ1Zy5jCkBAIC0xNjgsNyArMTY4LDcgQEAgdW5zaWduZWQgaW50IGRiZ19yd19n dWVzdF9tZW0oc3RydWN0IGRvbWFpbiAqZHAsIHZvaWQgKiBfX3VzZXIgZ2FkZHIsCiAKICAgICAg ICAgcGFnZWNudCA9IG1pbl90KGxvbmcsIFBBR0VfU0laRSAtIChhZGRyICYgflBBR0VfTUFTSyks IGxlbik7CiAKLSAgICAgICAgbWZuID0gKGhhc19odm1fY29udGFpbmVyX2RvbWFpbihkcCkKKyAg ICAgICAgbWZuID0gKGlzX2h2bV9kb21haW4oZHApCiAgICAgICAgICAgICAgICA/IGRiZ19odm1f dmEybWZuKGFkZHIsIGRwLCB0b2FkZHIsICZnZm4pCiAgICAgICAgICAgICAgICA6IGRiZ19wdl92 YTJtZm4oYWRkciwgZHAsIHBnZDMpKTsKICAgICAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZBTElE X01GTikgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2 L2RvbWFpbi5jCmluZGV4IDg0YTI4OWQuLjkwZTJiMWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE4OCw3ICsxODgsNyBA QCB2b2lkIGR1bXBfcGFnZWZyYW1lX2luZm8oc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgc3Bp bl91bmxvY2soJmQtPnBhZ2VfYWxsb2NfbG9jayk7CiAgICAgfQogCi0gICAgaWYgKCBoYXNfaHZt X2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAg ICAgIHAybV9wb2RfZHVtcF9kYXRhKGQpOwogCiAgICAgc3Bpbl9sb2NrKCZkLT5wYWdlX2FsbG9j X2xvY2spOwpAQCAtNDEyLDcgKzQxMiw3IEBAIGludCB2Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZj cHUgKnYpCiAKICAgICBzcGluX2xvY2tfaW5pdCgmdi0+YXJjaC52cG11LnZwbXVfbG9jayk7CiAK LSAgICBpZiAoIGhhc19odm1fY29udGFpbmVyX2RvbWFpbihkKSApCisgICAgaWYgKCBpc19odm1f ZG9tYWluKGQpICkKICAgICB7CiAgICAgICAgIHJjID0gaHZtX3ZjcHVfaW5pdGlhbGlzZSh2KTsK ICAgICAgICAgZ290byBkb25lOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgdmNwdV9kZXN0cm95 KHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICggIWlzX2lkbGVfZG9tYWluKHYtPmRvbWFpbikgKQog ICAgICAgICB2cG11X2Rlc3Ryb3kodik7CiAKLSAgICBpZiAoIGhhc19odm1fY29udGFpbmVyX3Zj cHUodikgKQorICAgIGlmICggaXNfaHZtX3ZjcHUodikgKQogICAgICAgICBodm1fdmNwdV9kZXN0 cm95KHYpOwogICAgIGVsc2UKICAgICAgICAgeGZyZWUodi0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4 dCk7CkBAIC01NzUsNyArNTc1LDcgQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBpbnQgZG9tY3JfZmxhZ3MsCiAgICAgICAgIGQtPmFyY2guZW11bGF0 aW9uX2ZsYWdzID0gZW1mbGFnczsKICAgICB9CiAKLSAgICBpZiAoIGhhc19odm1fY29udGFpbmVy X2RvbWFpbihkKSApCisgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAgICB7CiAgICAgICAg IGQtPmFyY2guaHZtX2RvbWFpbi5oYXBfZW5hYmxlZCA9CiAgICAgICAgICAgICBodm1fZnVuY3Mu aGFwX3N1cHBvcnRlZCAmJiAoZG9tY3JfZmxhZ3MgJiBET01DUkZfaGFwKTsKQEAgLTY0OSw3ICs2 NDksNyBAQCBpbnQgYXJjaF9kb21haW5fY3JlYXRlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBkb21jcl9mbGFncywKICAgICBpZiAoIChyYyA9IHBzcl9kb21haW5faW5pdChkKSkgIT0g MCApCiAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgIGlmICggaGFzX2h2bV9jb250YWluZXJfZG9t YWluKGQpICkKKyAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgIHsKICAgICAgICAgaWYg KCAocmMgPSBodm1fZG9tYWluX2luaXRpYWxpc2UoZCkpICE9IDAgKQogICAgICAgICAgICAgZ290 byBmYWlsOwpAQCAtNzA4LDcgKzcwOCw3IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGRvbWNyX2ZsYWdzLAogCiB2b2lkIGFyY2hfZG9tYWlu X2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBpZiAoIGhhc19odm1fY29udGFpbmVy X2RvbWFpbihkKSApCisgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAgICAgICAgaHZtX2Rv bWFpbl9kZXN0cm95KGQpOwogCiAgICAgeGZyZWUoZC0+YXJjaC5lODIwKTsKQEAgLTc2MCw4ICs3 NjAsOCBAQCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpkKQogICAg IHAybV90eXBlX3QgcDJtdDsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIC8qIFNvZnQgcmVz ZXQgaXMgc3VwcG9ydGVkIGZvciBIVk0vUFZIIGRvbWFpbnMgb25seS4gKi8KLSAgICBpZiAoICFo YXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgIC8qIFNvZnQgcmVzZXQgaXMgc3VwcG9y dGVkIGZvciBIVk0gZG9tYWlucyBvbmx5LiAqLworICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkg KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIGh2bV9kb21haW5fc29mdF9yZXNldChk KTsKQEAgLTk1MSw3ICs5NTEsNyBAQCBpbnQgYXJjaF9zZXRfaW5mb19ndWVzdCgKICAgICB2LT5m cHVfaW5pdGlhbGlzZWQgPSAhIShmbGFncyAmIFZHQ0ZfSTM4N19WQUxJRCk7CiAKICAgICB2LT5h cmNoLmZsYWdzICY9IH5URl9rZXJuZWxfbW9kZTsKLSAgICBpZiAoIChmbGFncyAmIFZHQ0ZfaW5f a2VybmVsKSB8fCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkvKj8/PyovICkKKyAgICBpZiAo IChmbGFncyAmIFZHQ0ZfaW5fa2VybmVsKSB8fCBpc19odm1fZG9tYWluKGQpLyo/Pz8qLyApCiAg ICAgICAgIHYtPmFyY2guZmxhZ3MgfD0gVEZfa2VybmVsX21vZGU7CiAKICAgICB2LT5hcmNoLnZn Y19mbGFncyA9IGZsYWdzOwpAQCAtOTk2LDcgKzk5Niw3IEBAIGludCBhcmNoX3NldF9pbmZvX2d1 ZXN0KAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21h aW4oZCkgKQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgewogICAgICAgICBmb3Ig KCBpID0gMDsgaSA8IEFSUkFZX1NJWkUodi0+YXJjaC5kZWJ1Z3JlZyk7ICsraSApCiAgICAgICAg ICAgICB2LT5hcmNoLmRlYnVncmVnW2ldID0gYyhkZWJ1Z3JlZ1tpXSk7CkBAIC0yMDIxLDcgKzIw MjEsNyBAQCBzdGF0aWMgdm9pZCBfX2NvbnRleHRfc3dpdGNoKHZvaWQpCiAgICAgICAgICAgICBp ZiAoIHhjcjAgIT0gZ2V0X3hjcjAoKSAmJiAhc2V0X3hjcjAoeGNyMCkgKQogICAgICAgICAgICAg ICAgIEJVRygpOwogCi0gICAgICAgICAgICBpZiAoIGNwdV9oYXNfeHNhdmVzICYmIGhhc19odm1f Y29udGFpbmVyX3ZjcHUobikgKQorICAgICAgICAgICAgaWYgKCBjcHVfaGFzX3hzYXZlcyAmJiBp c19odm1fdmNwdShuKSApCiAgICAgICAgICAgICAgICAgc2V0X21zcl94c3Mobi0+YXJjaC5odm1f dmNwdS5tc3JfeHNzKTsKICAgICAgICAgfQogICAgICAgICB2Y3B1X3Jlc3RvcmVfZnB1X2VhZ2Vy KG4pOwpAQCAtMjExMSw3ICsyMTExLDcgQEAgdm9pZCBjb250ZXh0X3N3aXRjaChzdHJ1Y3QgdmNw dSAqcHJldiwgc3RydWN0IHZjcHUgKm5leHQpCiAKICAgICAgICAgaWYgKCBpc19wdl9kb21haW4o bmV4dGQpICYmCiAgICAgICAgICAgICAgKGlzX2lkbGVfZG9tYWluKHByZXZkKSB8fAotICAgICAg ICAgICAgICBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4ocHJldmQpIHx8CisgICAgICAgICAgICAg IGlzX2h2bV9kb21haW4ocHJldmQpIHx8CiAgICAgICAgICAgICAgIGlzX3B2XzMyYml0X2RvbWFp bihwcmV2ZCkgIT0gaXNfcHZfMzJiaXRfZG9tYWluKG5leHRkKSkgKQogICAgICAgICB7CiAgICAg ICAgICAgICB1aW50NjRfdCBlZmVyID0gcmVhZF9lZmVyKCk7CkBAIC0yNDEzLDcgKzI0MTMsNyBA QCBpbnQgZG9tYWluX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4gKmQpCiAKICAg ICBwaXRfZGVpbml0KGQpOwogCi0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkg KQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAgIGh2bV9kb21haW5fcmVsaW5x dWlzaF9yZXNvdXJjZXMoZCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTI0NTYsNyArMjQ1Niw3IEBA IHZvaWQgdmNwdV9tYXJrX2V2ZW50c19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICgg YWxyZWFkeV9wZW5kaW5nICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCBoYXNfaHZtX2Nv bnRhaW5lcl92Y3B1KHYpICkKKyAgICBpZiAoIGlzX2h2bV92Y3B1KHYpICkKICAgICAgICAgaHZt X2Fzc2VydF9ldnRjaG5faXJxKHYpOwogICAgIGVsc2UKICAgICAgICAgdmNwdV9raWNrKHYpOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gveDg2L2Rv bWFpbl9idWlsZC5jCmluZGV4IDliZGVmYzguLmEwZDU4MTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMKQEAg LTM1Nyw5ICszNTcsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgY29tcHV0ZV9kb20w X25yX3BhZ2VzKAogICAgICAgICAgICAgYXZhaWwgLT0gbWF4X3BkeCA+PiBzOwogICAgIH0KIAot ICAgIG5lZWRfcGFnaW5nID0gaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQpCi0gICAgICAgICAg ICAgICAgICA/ICFpb21tdV9oYXBfcHRfc2hhcmUgfHwgIXBhZ2luZ19tb2RlX2hhcChkKQotICAg ICAgICAgICAgICAgICAgOiBvcHRfZG9tMF9zaGFkb3c7CisgICAgbmVlZF9wYWdpbmcgPSBpc19o dm1fZG9tYWluKGQpID8gIWlvbW11X2hhcF9wdF9zaGFyZSB8fCAhcGFnaW5nX21vZGVfaGFwKGQp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogb3B0X2RvbTBfc2hhZG93Owog ICAgIGZvciAoIDsgOyBuZWVkX3BhZ2luZyA9IDAgKQogICAgIHsKICAgICAgICAgbnJfcGFnZXMg PSBkb20wX25ycGFnZXM7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4v YXJjaC94ODYvZG9tY3RsLmMKaW5kZXggN2QyOTllZC4uMTIyMDIyNCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2RvbWN0bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtMTUxMSw3 ICsxNTExLDcgQEAgdm9pZCBhcmNoX2dldF9pbmZvX2d1ZXN0KHN0cnVjdCB2Y3B1ICp2LCB2Y3B1 X2d1ZXN0X2NvbnRleHRfdSBjKQogICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRSh2LT5h cmNoLmRlYnVncmVnKTsgKytpICkKICAgICAgICAgYyhkZWJ1Z3JlZ1tpXSA9IHYtPmFyY2guZGVi dWdyZWdbaV0pOwogCi0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAg IGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgewogICAgICAgICBzdHJ1Y3Qgc2VnbWVudF9y ZWdpc3RlciBzcmVnOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4v YXJjaC94ODYvaHZtL2RtLmMKaW5kZXggMjEyMmM0NS4uMzMzYzg4NCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtMjgzLDcg KzI4Myw3IEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICBpZiAoIHJjICkK ICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgaWYgKCAhaGFzX2h2bV9jb250YWluZXJfZG9tYWlu KGQpICkKKyAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKICAgICAgICAgZ290byBvdXQ7CiAK ICAgICByYyA9IHhzbV9kbV9vcChYU01fRE1fUFJJViwgZCk7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA0YzdkZTA1Li4w MjgyOTg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMKQEAgLTMwNjEsNyArMzA2MSw3IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5 X3Jlc3VsdCBfX2h2bV9jb3B5KAogICAgIGNoYXIgKnA7CiAgICAgaW50IGNvdW50LCB0b2RvID0g c2l6ZTsKIAotICAgIEFTU0VSVChoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHYpKTsKKyAgICBBU1NF UlQoaXNfaHZtX3ZjcHUodikpOwogCiAgICAgLyoKICAgICAgKiBYWFggRGlzYWJsZSBmb3IgNC4x LjA6IFBWLW9uLUhWTSBkcml2ZXJzIHdpbGwgZG8gZ3JhbnQtdGFibGUgb3BzCkBAIC00MDAyLDcg KzQwMDIsNyBAQCBzdGF0aWMgaW50IGh2bW9wX3NldF9wYXJhbSgKICAgICAgICAgcmV0dXJuIC1F U1JDSDsKIAogICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFoYXNfaHZtX2NvbnRhaW5lcl9k b21haW4oZCkgKQorICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQogICAgICAgICBnb3RvIG91 dDsKIAogICAgIHJjID0gaHZtX2FsbG93X3NldF9wYXJhbShkLCAmYSk7CkBAIC00MjU3LDcgKzQy NTcsNyBAQCBzdGF0aWMgaW50IGh2bW9wX2dldF9wYXJhbSgKICAgICAgICAgcmV0dXJuIC1FU1JD SDsKIAogICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFoYXNfaHZtX2NvbnRhaW5lcl9kb21h aW4oZCkgKQorICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQogICAgICAgICBnb3RvIG91dDsK IAogICAgIHJjID0gaHZtX2FsbG93X2dldF9wYXJhbShkLCAmYSk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwppbmRleCA3NjA1NDRi Li5hNzc0ZWQ3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9odm0vaXJxLmMKQEAgLTQ4MCw3ICs0ODAsNyBAQCBpbnQgaHZtX2xvY2FsX2V2ZW50 c19uZWVkX2RlbGl2ZXJ5KHN0cnVjdCB2Y3B1ICp2KQogCiB2b2lkIGFyY2hfZXZ0Y2huX2luamVj dChzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBpZiAoIGhhc19odm1fY29udGFpbmVyX3ZjcHUodikg KQorICAgIGlmICggaXNfaHZtX3ZjcHUodikgKQogICAgICAgICBodm1fYXNzZXJ0X2V2dGNobl9p cnEodik7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jIGIveGVuL2Fy Y2gveDg2L2h2bS9tdHJyLmMKaW5kZXggYzVjMjdjYi4uYjcyMWM2MyAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9tdHJyLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAgLTU0 MCw3ICs1NDAsNyBAQCBpbnQgaHZtX2dldF9tZW1fcGlubmVkX2NhY2hlYXR0cihzdHJ1Y3QgZG9t YWluICpkLCBnZm5fdCBnZm4sCiAgICAgdWludDY0X3QgbWFzayA9IH4odWludDY0X3QpMCA8PCBv cmRlcjsKICAgICBpbnQgcmMgPSAtRU5YSU87CiAKLSAgICBBU1NFUlQoaGFzX2h2bV9jb250YWlu ZXJfZG9tYWluKGQpKTsKKyAgICBBU1NFUlQoaXNfaHZtX2RvbWFpbihkKSk7CiAKICAgICByY3Vf cmVhZF9sb2NrKCZwaW5uZWRfY2FjaGVhdHRyX3JjdV9sb2NrKTsKICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5X3JjdSAoIHJhbmdlLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMg Yi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwppbmRleCAyNWY1NzU2Li5hMzY2OTJjIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2ku YwpAQCAtNTYwLDggKzU2MCw3IEBAIHZvaWQgbXNpeHRibF9pbml0KHN0cnVjdCBkb21haW4gKmQp CiB7CiAgICAgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyOwogCi0gICAgaWYgKCAhaGFz X2h2bV9jb250YWluZXJfZG9tYWluKGQpIHx8ICFoYXNfdmxhcGljKGQpIHx8Ci0gICAgICAgICBt c2l4dGJsX2luaXRpYWxpc2VkKGQpICkKKyAgICBpZiAoICFpc19odm1fZG9tYWluKGQpIHx8ICFo YXNfdmxhcGljKGQpIHx8IG1zaXh0YmxfaW5pdGlhbGlzZWQoZCkgKQogICAgICAgICByZXR1cm47 CiAKICAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJjaC5odm1fZG9tYWluLm1zaXh0YmxfbGlzdCk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92bWNzLmMKaW5kZXggOTc5MTc1Ni4uOTM0Njc0YyAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwpA QCAtNzY4LDcgKzc2OCw3IEBAIHZvaWQgdm14X3ZtY3NfZXhpdChzdHJ1Y3QgdmNwdSAqdikKICAg ICB7CiAgICAgICAgIC8qIERvbid0IGNvbmZ1c2Ugdm14X2RvX3Jlc3VtZSAoZm9yIEB2IG9yIEBj dXJyZW50ISkgKi8KICAgICAgICAgdm14X2NsZWFyX3ZtY3Modik7Ci0gICAgICAgIGlmICggaGFz X2h2bV9jb250YWluZXJfdmNwdShjdXJyZW50KSApCisgICAgICAgIGlmICggaXNfaHZtX3ZjcHUo Y3VycmVudCkgKQogICAgICAgICAgICAgdm14X2xvYWRfdm1jcyhjdXJyZW50KTsKIAogICAgICAg ICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdm14LnZtY3NfbG9jayk7CkBAIC0xOTI3LDcgKzE5 MjcsNyBAQCBzdGF0aWMgdm9pZCB2bWNzX2R1bXAodW5zaWduZWQgY2hhciBjaCkKIAogICAgIGZv cl9lYWNoX2RvbWFpbiAoIGQgKQogICAgIHsKLSAgICAgICAgaWYgKCAhaGFzX2h2bV9jb250YWlu ZXJfZG9tYWluKGQpICkKKyAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgcHJpbnRrKCJcbj4+PiBEb21haW4gJWQgPDw8XG4iLCBk LT5kb21haW5faWQpOwogICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j CmluZGV4IDlkZjRkZTMuLjQ1NjVmNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0yNDcsNyArMjQ3LDcg QEAgdm9pZCB2bXhfcGlfaG9va3NfYXNzaWduKHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgc3Ry dWN0IHZjcHUgKnY7CiAKLSAgICBpZiAoICFpb21tdV9pbnRwb3N0IHx8ICFoYXNfaHZtX2NvbnRh aW5lcl9kb21haW4oZCkgKQorICAgIGlmICggIWlvbW11X2ludHBvc3QgfHwgIWlzX2h2bV9kb21h aW4oZCkgKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoIWQtPmFyY2guaHZtX2RvbWFp bi5waV9vcHMudmNwdV9ibG9jayk7CkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCB2bXhfcGlfaG9v a3NfZGVhc3NpZ24oc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKIAot ICAgIGlmICggIWlvbW11X2ludHBvc3QgfHwgIWhhc19odm1fY29udGFpbmVyX2RvbWFpbihkKSAp CisgICAgaWYgKCAhaW9tbXVfaW50cG9zdCB8fCAhaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAg IHJldHVybjsKIAogICAgIEFTU0VSVChkLT5hcmNoLmh2bV9kb21haW4ucGlfb3BzLnZjcHVfYmxv Y2spOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwpp bmRleCBmYWY2OTEyLi5hNmIyNjQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysg Yi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNDM4LDcgKzQzOCw3IEBAIGludCBwYWdlX2lzX3JhbV90 eXBlKHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIG1lbV90eXBlKQogCiB1bnNpZ25l ZCBsb25nIGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAg aWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgIGlmICggaXNfaHZtX2RvbWFp bihkKSApCiAgICAgICAgIHJldHVybiBwMm1fZ2V0X2hvc3RwMm0oZCktPm1heF9tYXBwZWRfcGZu OwogICAgIC8qIE5CLiBQViBndWVzdHMgc3BlY2lmeSBucl9wZm5zIHJhdGhlciB0aGFuIG1heF9w Zm4gc28gd2UgYWRqdXN0IGhlcmUuICovCiAgICAgcmV0dXJuIChhcmNoX2dldF9tYXhfcGZuKGQp ID86IDEpIC0gMTsKQEAgLTMxODQsNyArMzE4NCw3IEBAIGxvbmcgZG9fbW11ZXh0X29wKAogICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIGhhc19odm1fY29udGFp bmVyX2RvbWFpbihkKSApCisgICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAg IHsKICAgICAgICAgICAgIHN3aXRjaCAoIG9wLmNtZCApCiAgICAgICAgICAgICB7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgYi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMK aW5kZXggNjMyNzYzMS4uNzVmNWZjMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3BhZ2lu Zy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwpAQCAtNDIwLDcgKzQyMCw3IEBAIHN0 YXRpYyBpbnQgcGFnaW5nX2xvZ19kaXJ0eV9vcChzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAg KiBNYXJrIGRpcnR5IGFsbCBjdXJyZW50bHkgd3JpdGUtbWFwcGVkIHBhZ2VzIG9uIGUuZy4gdGhl CiAgICAgICAgICAqIGZpbmFsIGl0ZXJhdGlvbiBvZiBhIHNhdmUgb3BlcmF0aW9uLgogICAgICAg ICAgKi8KLSAgICAgICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgJiYKKyAgICAg ICAgaWYgKCBpc19odm1fZG9tYWluKGQpICYmCiAgICAgICAgICAgICAgKHNjLT5tb2RlICYgWEVO X0RPTUNUTF9TSEFET1dfTE9HRElSVFlfRklOQUwpICkKICAgICAgICAgICAgIGh2bV9tYXBwZWRf Z3Vlc3RfZnJhbWVzX21hcmtfZGlydHkoZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4 IGQwNzhkNzguLmQ5M2YyYWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29t bW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMzE5LDcgKzMx OSw3IEBAIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgKnNoYWRvd19pbml0X2VtdWxhdGlv bigKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgdW5zaWduZWQgbG9uZyBhZGRy OwogCi0gICAgQVNTRVJUKGhhc19odm1fY29udGFpbmVyX3ZjcHUodikpOworICAgIEFTU0VSVChp c19odm1fdmNwdSh2KSk7CiAKICAgICBtZW1zZXQoc2hfY3R4dCwgMCwgc2l6ZW9mKCpzaF9jdHh0 KSk7CiAKQEAgLTM2Myw3ICszNjMsNyBAQCB2b2lkIHNoYWRvd19jb250aW51ZV9lbXVsYXRpb24o c3RydWN0IHNoX2VtdWxhdGVfY3R4dCAqc2hfY3R4dCwKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1 cnJlbnQ7CiAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCBkaWZmOwogCi0gICAgQVNTRVJUKGhhc19o dm1fY29udGFpbmVyX3ZjcHUodikpOworICAgIEFTU0VSVChpc19odm1fdmNwdSh2KSk7CiAKICAg ICAvKgogICAgICAqIFdlIGRvbid0IHJlZmV0Y2ggdGhlIHNlZ21lbnQgYmFzZXMsIGJlY2F1c2Ug d2UgZG9uJ3QgZW11bGF0ZQpAQCAtMTcwMCw5ICsxNzAwLDggQEAgdm9pZCAqc2hfZW11bGF0ZV9t YXBfZGVzdChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWRkciwKIAogI2lmbmRlZiBO REVCVUcKICAgICAvKiBXZSBkb24ndCBlbXVsYXRlIHVzZXItbW9kZSB3cml0ZXMgdG8gcGFnZSB0 YWJsZXMuICovCi0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkKLSAgICAgICAg ID8gaHZtX2dldF9jcGwodikgPT0gMwotICAgICAgICAgOiAhZ3Vlc3Rfa2VybmVsX21vZGUodiwg Z3Vlc3RfY3B1X3VzZXJfcmVncygpKSApCisgICAgaWYgKCBpc19odm1fZG9tYWluKGQpID8gaHZt X2dldF9jcGwodikgPT0gMworICAgICAgICAgICAgICAgICAgICAgICAgICA6ICFndWVzdF9rZXJu ZWxfbW9kZSh2LCBndWVzdF9jcHVfdXNlcl9yZWdzKCkpICkKICAgICB7CiAgICAgICAgIGdkcHJp bnRrKFhFTkxPR19ERUJVRywgIlVzZXItbW9kZSB3cml0ZSB0byBwYWdldGFibGUgcmVhY2hlZCAi CiAgICAgICAgICAgICAgICAgICJlbXVsYXRlX21hcF9kZXN0KCkuIFRoaXMgc2hvdWxkIG5ldmVy IGhhcHBlbiFcbiIpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJj aC94ODYvc2V0dXAuYwppbmRleCBjYzRjZGJjLi5lZTU0NWFiIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtMTcyMyw3ICsxNzIz LDcgQEAgdm9pZCBfX2h3ZG9tX2luaXQgc2V0dXBfaW9fYml0bWFwKHN0cnVjdCBkb21haW4gKmQp CiB7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkg KQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgewogICAgICAgICBiaXRtYXBfZmls bChkLT5hcmNoLmh2bV9kb21haW4uaW9fYml0bWFwLCAweDEwMDAwKTsKICAgICAgICAgcmMgPSBy YW5nZXNldF9yZXBvcnRfcmFuZ2VzKGQtPmFyY2guaW9wb3J0X2NhcHMsIDAsIDB4MTAwMDAsCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGltZS5jIGIveGVuL2FyY2gveDg2L3RpbWUuYwppbmRl eCBmZTY4M2JkLi5iNDk4OGJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGltZS5jCisrKyBi L3hlbi9hcmNoL3g4Ni90aW1lLmMKQEAgLTk0MCw3ICs5NDAsNyBAQCBzdGF0aWMgdm9pZCBfX3Vw ZGF0ZV92Y3B1X3N5c3RlbV90aW1lKHN0cnVjdCB2Y3B1ICp2LCBpbnQgZm9yY2UpCiAgICAgfQog ICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGlmICggaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQp ICYmIGh2bV90c2Nfc2NhbGluZ19zdXBwb3J0ZWQgKQorICAgICAgICBpZiAoIGlzX2h2bV9kb21h aW4oZCkgJiYgaHZtX3RzY19zY2FsaW5nX3N1cHBvcnRlZCApCiAgICAgICAgIHsKICAgICAgICAg ICAgIHRzY19zdGFtcCAgICAgICAgICAgID0gaHZtX3NjYWxlX3RzYyhkLCB0LT5zdGFtcC5sb2Nh bF90c2MpOwogICAgICAgICAgICAgX3UudHNjX3RvX3N5c3RlbV9tdWwgPSBkLT5hcmNoLnZ0c2Nf dG9fbnMubXVsX2ZyYWM7CkBAIC0xOTUxLDcgKzE5NTEsNyBAQCB2b2lkIHRzY19nZXRfaW5mbyhz dHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCAqdHNjX21vZGUsCiAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCAqZWxhcHNlZF9uc2VjLCB1aW50MzJfdCAqZ3RzY19raHosCiAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqaW5jYXJuYXRpb24pCiB7Ci0gICAgYm9vbF90IGVuYWJsZV90c2Nfc2Nh bGluZyA9IGhhc19odm1fY29udGFpbmVyX2RvbWFpbihkKSAmJgorICAgIGJvb2xfdCBlbmFibGVf dHNjX3NjYWxpbmcgPSBpc19odm1fZG9tYWluKGQpICYmCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGh2bV90c2Nfc2NhbGluZ19zdXBwb3J0ZWQgJiYgIWQtPmFyY2gudnRzYzsKIAog ICAgICppbmNhcm5hdGlvbiA9IGQtPmFyY2guaW5jYXJuYXRpb247CkBAIC0yMDMxLDcgKzIwMzEs NyBAQCB2b2lkIHRzY19zZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgKiAgUFY6 IGd1ZXN0IGhhcyBub3QgbWlncmF0ZWQgeWV0IChhbmQgdGh1cyBhcmNoLnRzY19raHogPT0gY3B1 X2toeikKICAgICAgICAgICovCiAgICAgICAgIGlmICggdHNjX21vZGUgPT0gVFNDX01PREVfREVG QVVMVCAmJiBob3N0X3RzY19pc19zYWZlKCkgJiYKLSAgICAgICAgICAgICAoaGFzX2h2bV9jb250 YWluZXJfZG9tYWluKGQpID8KKyAgICAgICAgICAgICAoaXNfaHZtX2RvbWFpbihkKSA/CiAgICAg ICAgICAgICAgIChkLT5hcmNoLnRzY19raHogPT0gY3B1X2toeiB8fAogICAgICAgICAgICAgICAg aHZtX2dldF90c2Nfc2NhbGluZ19yYXRpbyhkLT5hcmNoLnRzY19raHopKSA6CiAgICAgICAgICAg ICAgIGluY2FybmF0aW9uID09IDApICkKQEAgLTIwNDYsOCArMjA0Niw3IEBAIHZvaWQgdHNjX3Nl dF9pbmZvKHN0cnVjdCBkb21haW4gKmQsCiAgICAgY2FzZSBUU0NfTU9ERV9QVlJEVFNDUDoKICAg ICAgICAgZC0+YXJjaC52dHNjID0gIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9SRFRTQ1ApIHx8 CiAgICAgICAgICAgICAgICAgICAgICAgICFob3N0X3RzY19pc19zYWZlKCk7Ci0gICAgICAgIGVu YWJsZV90c2Nfc2NhbGluZyA9IGhhc19odm1fY29udGFpbmVyX2RvbWFpbihkKSAmJgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAhZC0+YXJjaC52dHNjICYmCisgICAgICAgIGVuYWJsZV90 c2Nfc2NhbGluZyA9IGlzX2h2bV9kb21haW4oZCkgJiYgIWQtPmFyY2gudnRzYyAmJgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBodm1fZ2V0X3RzY19zY2FsaW5nX3JhdGlvKGd0c2Nfa2h6 ID86IGNwdV9raHopOwogICAgICAgICBkLT5hcmNoLnRzY19raHogPSAoZW5hYmxlX3RzY19zY2Fs aW5nICYmIGd0c2Nfa2h6KSA/IGd0c2Nfa2h6IDogY3B1X2toejsKICAgICAgICAgc2V0X3RpbWVf c2NhbGUoJmQtPmFyY2gudnRzY190b19ucywgZC0+YXJjaC50c2Nfa2h6ICogMTAwMCApOwpAQCAt MjA2NCw3ICsyMDYzLDcgQEAgdm9pZCB0c2Nfc2V0X2luZm8oc3RydWN0IGRvbWFpbiAqZCwKICAg ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGQtPmFyY2guaW5jYXJuYXRpb24gPSBpbmNhcm5hdGlv biArIDE7Ci0gICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkgKQorICAgIGlmICgg aXNfaHZtX2RvbWFpbihkKSApCiAgICAgewogICAgICAgICBpZiAoIGh2bV90c2Nfc2NhbGluZ19z dXBwb3J0ZWQgJiYgIWQtPmFyY2gudnRzYyApCiAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21h aW4udHNjX3NjYWxpbmdfcmF0aW8gPQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMg Yi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCAwOGIwMDcwLi4wZDU0YmFmIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtNzk5 LDcgKzc5OSw3IEBAIHZvaWQgZG9fdHJhcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAg ICB9CiAKICAgICBpZiAoICgodHJhcG5yID09IFRSQVBfY29wcm9fZXJyb3IpIHx8ICh0cmFwbnIg PT0gVFJBUF9zaW1kX2Vycm9yKSkgJiYKLSAgICAgICAgIHN5c3RlbV9zdGF0ZSA+PSBTWVNfU1RB VEVfYWN0aXZlICYmIGhhc19odm1fY29udGFpbmVyX3ZjcHUoY3VycikgJiYKKyAgICAgICAgIHN5 c3RlbV9zdGF0ZSA+PSBTWVNfU1RBVEVfYWN0aXZlICYmIGlzX2h2bV92Y3B1KGN1cnIpICYmCiAg ICAgICAgICBjdXJyLT5hcmNoLmh2bV92Y3B1LmZwdV9leGNlcHRpb25fY2FsbGJhY2sgKQogICAg IHsKICAgICAgICAgY3Vyci0+YXJjaC5odm1fdmNwdS5mcHVfZXhjZXB0aW9uX2NhbGxiYWNrKApA QCAtOTc2LDcgKzk3Niw3IEBAIHZvaWQgY3B1aWRfaHlwZXJ2aXNvcl9sZWF2ZXMoY29uc3Qgc3Ry dWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSA0 OiAvKiBIVk0gaHlwZXJ2aXNvciBsZWFmLiAqLwotICAgICAgICBpZiAoICFoYXNfaHZtX2NvbnRh aW5lcl9kb21haW4oZCkgfHwgc3VibGVhZiAhPSAwICkKKyAgICAgICAgaWYgKCAhaXNfaHZtX2Rv bWFpbihkKSB8fCBzdWJsZWFmICE9IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg aWYgKCBjcHVfaGFzX3ZteF9hcGljX3JlZ192aXJ0ICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwppbmRleCBiNjZj MjRiLi5hZDRkNmMxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKKysr IGIveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgc2hv d19yZWdpc3RlcnMoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgZW51bSBj b250ZXh0IGNvbnRleHQ7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBzeXN0ZW1fc3RhdGUgPj0gU1lT X1NUQVRFX3NtcF9ib290ID8gY3VycmVudCA6IE5VTEw7CiAKLSAgICBpZiAoIGd1ZXN0X21vZGUo cmVncykgJiYgaGFzX2h2bV9jb250YWluZXJfdmNwdSh2KSApCisgICAgaWYgKCBndWVzdF9tb2Rl KHJlZ3MpICYmIGlzX2h2bV92Y3B1KHYpICkKICAgICB7CiAgICAgICAgIHN0cnVjdCBzZWdtZW50 X3JlZ2lzdGVyIHNyZWc7CiAgICAgICAgIGNvbnRleHQgPSBDVFhUX2h2bV9ndWVzdDsKQEAgLTYy Myw3ICs2MjMsNyBAQCBzdGF0aWMgdm9pZCBoeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlX3Jpbmcz X2tlcm5lbCh2b2lkICpoeXBlcmNhbGxfcGFnZSkKIHZvaWQgaHlwZXJjYWxsX3BhZ2VfaW5pdGlh bGlzZShzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpoeXBlcmNhbGxfcGFnZSkKIHsKICAgICBtZW1z ZXQoaHlwZXJjYWxsX3BhZ2UsIDB4Q0MsIFBBR0VfU0laRSk7Ci0gICAgaWYgKCBoYXNfaHZtX2Nv bnRhaW5lcl9kb21haW4oZCkgKQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAg IGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKGQsIGh5cGVyY2FsbF9wYWdlKTsKICAgICBl bHNlIGlmICggIWlzX3B2XzMyYml0X2RvbWFpbihkKSApCiAgICAgICAgIGh5cGVyY2FsbF9wYWdl X2luaXRpYWxpc2VfcmluZzNfa2VybmVsKGh5cGVyY2FsbF9wYWdlKTsKZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gveDg2L2lvbW11LmMKaW5kZXggNjljZDZjNS4uNzUwYzY2MyAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gveDg2L2lvbW11LmMKQEAgLTU1LDcgKzU1LDcgQEAgaW50IGFyY2hfaW9tbXVfcG9wdWxhdGVf cGFnZV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgd2hpbGUgKCAhcmMgJiYgKHBhZ2Ug PSBwYWdlX2xpc3RfcmVtb3ZlX2hlYWQoJmQtPnBhZ2VfbGlzdCkpICkKICAgICB7Ci0gICAgICAg IGlmICggaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQpIHx8CisgICAgICAgIGlmICggaXNfaHZt X2RvbWFpbihkKSB8fAogICAgICAgICAgICAgKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdU X3R5cGVfbWFzaykgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQogICAgICAgICB7CiAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgK aW5kZXggZDE4MmQ3NS4uZWMxNGNjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9k b21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCkBAIC0xNiw3ICsxNiw3 IEBACiAjZGVmaW5lIGlzX3B2XzMyYml0X2RvbWFpbihkKSAgKChkKS0+YXJjaC5pc18zMmJpdF9w dikKICNkZWZpbmUgaXNfcHZfMzJiaXRfdmNwdSh2KSAgICAoaXNfcHZfMzJiaXRfZG9tYWluKCh2 KS0+ZG9tYWluKSkKIAotI2RlZmluZSBpc19odm1fcHZfZXZ0Y2huX2RvbWFpbihkKSAoaGFzX2h2 bV9jb250YWluZXJfZG9tYWluKGQpICYmIFwKKyNkZWZpbmUgaXNfaHZtX3B2X2V2dGNobl9kb21h aW4oZCkgKGlzX2h2bV9kb21haW4oZCkgJiYgXAogICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4u aXJxLmNhbGxiYWNrX3ZpYV90eXBlID09IEhWTUlSUV9jYWxsYmFja192ZWN0b3IpCiAjZGVmaW5l IGlzX2h2bV9wdl9ldnRjaG5fdmNwdSh2KSAoaXNfaHZtX3B2X2V2dGNobl9kb21haW4odi0+ZG9t YWluKSkKICNkZWZpbmUgaXNfZG9tYWluX2RpcmVjdF9tYXBwZWQoZCkgKCh2b2lkKShkKSwgMCkK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZXZlbnQuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvZXZlbnQuaAppbmRleCBkNTg5ZDZmLi5hOTE1OTlkIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2V2ZW50LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ldmVudC5oCkBA IC0yNiw3ICsyNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGxvY2FsX2V2ZW50c19uZWVkX2RlbGl2 ZXJ5KHZvaWQpCiAKICAgICBBU1NFUlQoIWlzX2lkbGVfdmNwdSh2KSk7CiAKLSAgICByZXR1cm4g KGhhc19odm1fY29udGFpbmVyX3ZjcHUodikgPyBodm1fbG9jYWxfZXZlbnRzX25lZWRfZGVsaXZl cnkodikgOgorICAgIHJldHVybiAoaXNfaHZtX3ZjcHUodikgPyBodm1fbG9jYWxfZXZlbnRzX25l ZWRfZGVsaXZlcnkodikgOgogICAgICAgICAgICAgKHZjcHVfaW5mbyh2LCBldnRjaG5fdXBjYWxs X3BlbmRpbmcpICYmCiAgICAgICAgICAgICAgIXZjcHVfaW5mbyh2LCBldnRjaG5fdXBjYWxsX21h c2spKSk7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0X2FjY2Vzcy5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9hY2Nlc3MuaAppbmRleCA4OGVkYjNmLi5jYTcw MGM5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0X2FjY2Vzcy5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3RfYWNjZXNzLmgKQEAgLTE0LDI3ICsxNCwyNyBAQAog CiAvKiBSYXcgYWNjZXNzIGZ1bmN0aW9uczogbm8gdHlwZSBjaGVja2luZy4gKi8KICNkZWZpbmUg cmF3X2NvcHlfdG9fZ3Vlc3QoZHN0LCBzcmMsIGxlbikgICAgICAgIFwKLSAgICAoaGFzX2h2bV9j b250YWluZXJfdmNwdShjdXJyZW50KSA/ICAgICAgICAgICAgICAgICAgICAgXAorICAgIChpc19o dm1fdmNwdShjdXJyZW50KSA/ICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjb3B5X3RvX3Vz ZXJfaHZtKChkc3QpLCAoc3JjKSwgKGxlbikpIDogICAgXAogICAgICBjb3B5X3RvX3VzZXIoKGRz dCksIChzcmMpLCAobGVuKSkpCiAjZGVmaW5lIHJhd19jb3B5X2Zyb21fZ3Vlc3QoZHN0LCBzcmMs IGxlbikgICAgICBcCi0gICAgKGhhc19odm1fY29udGFpbmVyX3ZjcHUoY3VycmVudCkgPyAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAoaXNfaHZtX3ZjcHUoY3VycmVudCkgPyAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgY29weV9mcm9tX3VzZXJfaHZtKChkc3QpLCAoc3JjKSwgKGxlbikp IDogIFwKICAgICAgY29weV9mcm9tX3VzZXIoKGRzdCksIChzcmMpLCAobGVuKSkpCiAjZGVmaW5l IHJhd19jbGVhcl9ndWVzdChkc3QsICBsZW4pICAgICAgICAgICAgICBcCi0gICAgKGhhc19odm1f Y29udGFpbmVyX3ZjcHUoY3VycmVudCkgPyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoaXNf aHZtX3ZjcHUoY3VycmVudCkgPyAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2xlYXJfdXNl cl9odm0oKGRzdCksIChsZW4pKSA6ICAgICAgICAgICAgIFwKICAgICAgY2xlYXJfdXNlcigoZHN0 KSwgKGxlbikpKQogI2RlZmluZSBfX3Jhd19jb3B5X3RvX2d1ZXN0KGRzdCwgc3JjLCBsZW4pICAg ICAgXAotICAgIChoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KGN1cnJlbnQpID8gICAgICAgICAgICAg ICAgICAgICBcCisgICAgKGlzX2h2bV92Y3B1KGN1cnJlbnQpID8gICAgICAgICAgICAgICAgICAg ICBcCiAgICAgIGNvcHlfdG9fdXNlcl9odm0oKGRzdCksIChzcmMpLCAobGVuKSkgOiAgICBcCiAg ICAgIF9fY29weV90b191c2VyKChkc3QpLCAoc3JjKSwgKGxlbikpKQogI2RlZmluZSBfX3Jhd19j b3B5X2Zyb21fZ3Vlc3QoZHN0LCBzcmMsIGxlbikgICAgXAotICAgIChoYXNfaHZtX2NvbnRhaW5l cl92Y3B1KGN1cnJlbnQpID8gICAgICAgICAgICAgICAgICAgICBcCisgICAgKGlzX2h2bV92Y3B1 KGN1cnJlbnQpID8gICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNvcHlfZnJvbV91c2VyX2h2 bSgoZHN0KSwgKHNyYyksIChsZW4pKSA6ICBcCiAgICAgIF9fY29weV9mcm9tX3VzZXIoKGRzdCks IChzcmMpLCAobGVuKSkpCiAjZGVmaW5lIF9fcmF3X2NsZWFyX2d1ZXN0KGRzdCwgIGxlbikgICAg ICAgICAgICBcCi0gICAgKGhhc19odm1fY29udGFpbmVyX3ZjcHUoY3VycmVudCkgPyAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAoaXNfaHZtX3ZjcHUoY3VycmVudCkgPyAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgY2xlYXJfdXNlcl9odm0oKGRzdCksIChsZW4pKSA6ICAgICAgICAgICAg IFwKICAgICAgY2xlYXJfdXNlcigoZHN0KSwgKGxlbikpKQogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9odm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCmlu ZGV4IGRhMGY2YmEuLjJiNGUzMjggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2h2bS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCkBAIC02MjMsNyArNjIz LDcgQEAgdW5zaWduZWQgbG9uZyBodm1fY3I0X2d1ZXN0X3ZhbGlkX2JpdHMoY29uc3Qgc3RydWN0 IHZjcHUgKnYsIGJvb2wgcmVzdG9yZSk7CiAjZGVmaW5lIGFyY2hfdmNwdV9ibG9jayh2KSAoeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0cnVjdCB2Y3B1ICp2XyA9 ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBzdHJ1Y3Qg ZG9tYWluICpkXyA9IHZfLT5kb21haW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZF8pICYmICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIGlmICggaXNfaHZtX2RvbWFpbihkXykgJiYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgKGRfLT5hcmNoLmh2bV9kb21haW4ucGlfb3BzLnZjcHVf YmxvY2spICkgICAgICAgICAgXAogICAgICAgICBkXy0+YXJjaC5odm1fZG9tYWluLnBpX29wcy52 Y3B1X2Jsb2NrKHZfKTsgICAgICAgICAgXAogfSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hl bi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggY2MxMTk5OS4uODMyMzUy YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3NjaGVkLmgKQEAgLTg3NCw4ICs4NzQsNiBAQCB2b2lkIHdhdGNoZG9nX2RvbWFpbl9kZXN0 cm95KHN0cnVjdCBkb21haW4gKmQpOwogI2RlZmluZSBpc19wdl92Y3B1KHYpICAgKGlzX3B2X2Rv bWFpbigodiktPmRvbWFpbikpCiAjZGVmaW5lIGlzX2h2bV9kb21haW4oZCkgKChkKS0+Z3Vlc3Rf dHlwZSA9PSBndWVzdF90eXBlX2h2bSkKICNkZWZpbmUgaXNfaHZtX3ZjcHUodikgICAoaXNfaHZt X2RvbWFpbih2LT5kb21haW4pKQotI2RlZmluZSBoYXNfaHZtX2NvbnRhaW5lcl9kb21haW4oZCkg KChkKS0+Z3Vlc3RfdHlwZSAhPSBndWVzdF90eXBlX3B2KQotI2RlZmluZSBoYXNfaHZtX2NvbnRh aW5lcl92Y3B1KHYpICAgKGhhc19odm1fY29udGFpbmVyX2RvbWFpbigodiktPmRvbWFpbikpCiAj ZGVmaW5lIGlzX3Bpbm5lZF92Y3B1KHYpICgodiktPmRvbWFpbi0+aXNfcGlubmVkIHx8IFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfd2VpZ2h0KCh2KS0+Y3B1X2hhcmRfYWZm aW5pdHkpID09IDEpCiAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmggYi94ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaApp bmRleCBhNmNhYjAwLi4xM2NmN2JjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vdG1lbV94 ZW4uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaApAQCAtMTg1LDkgKzE4NSw4IEBA IHR5cGVkZWYgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjaGFyKSB0bWVtX2NsaV92YV9wYXJhbV90 Owogc3RhdGljIGlubGluZSBpbnQgdG1lbV9nZXRfdG1lbW9wX2Zyb21fY2xpZW50KHRtZW1fb3Bf dCAqb3AsIHRtZW1fY2xpX29wX3QgdW9wcykKIHsKICNpZmRlZiBDT05GSUdfQ09NUEFUCi0gICAg aWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KGN1cnJlbnQpID8KLSAgICAgICAgIGh2bV9ndWVz dF94ODZfbW9kZShjdXJyZW50KSAhPSA4IDoKLSAgICAgICAgIGlzX3B2XzMyYml0X3ZjcHUoY3Vy cmVudCkgKQorICAgIGlmICggaXNfaHZtX3ZjcHUoY3VycmVudCkgPyBodm1fZ3Vlc3RfeDg2X21v ZGUoY3VycmVudCkgIT0gOAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc19wdl8z MmJpdF92Y3B1KGN1cnJlbnQpICkKICAgICB7CiAgICAgICAgIGludCByYzsKICAgICAgICAgZW51 bSBYTEFUX3RtZW1fb3BfdSB1OwotLSAKMi4xMC4xIChBcHBsZSBHaXQtNzgpCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==