From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Jason A. Donenfeld" Subject: [PATCH v6 5/7] treewide: use get_random_u32() when possible Date: Mon, 10 Oct 2022 17:06:11 -0600 Message-Id: <20221010230613.1076905-6-Jason@zx2c4.com> In-Reply-To: <20221010230613.1076905-1-Jason@zx2c4.com> References: <20221010230613.1076905-1-Jason@zx2c4.com> MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+geert=linux-m68k.org@lists.infradead.org To: linux-kernel@vger.kernel.org, patches@lists.linux.dev Cc: "Jason A. Donenfeld" , Andreas Noever , Andrew Morton , Andy Shevchenko , Borislav Petkov , Catalin Marinas , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Christoph Hellwig , Christophe Leroy , Daniel Borkmann , Dave Airlie , Dave Hansen , "David S . Miller" , Eric Dumazet , Florian Westphal , Greg Kroah-Hartman , "H . Peter Anvin" , Heiko Carstens , Helge Deller , Herbert Xu , Huacai Chen , Hugh Dickins , Jakub Kicinski , "James E . J . Bottomley" , Jan Kara , Jason Gunthorpe , Jens Axboe , Johannes Berg , Jonathan Corbet , Jozsef Kadlecsik , KP Singh , Kees Cook , Marco Elver , Mauro Carvalho Chehab , Michael Ellerman , Pablo Neira Ayuso , Paolo Abeni , Peter Zijlstra , Richard Weinberger , Russell King , Theodore Ts'o , Thomas Bogendoerfer , Thomas Gleixner , Thomas Graf , Ulf Hansson , Vignesh Raghavendra , WANG Xuerui , Will Deacon , Yury Norov , dri-devel@lists.freedesktop.org, kasan-dev@googlegroups.com, kernel-janitors@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-block@vger.kernel.org, linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-media@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-nvme@lists.infradead.org, linux-parisc@vger.kernel.org, linux-rdma@vger.kernel.org, linux-s390@vger.kernel.org, linux-um@lists.infradead.org, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Chuck Lever , Jan Kara , Mika Westerberg , "Darrick J . Wong" List-ID: VGhlIHByYW5kb21fdTMyKCkgZnVuY3Rpb24gaGFzIGJlZW4gYSBkZXByZWNhdGVkIGlubGluZSB3 cmFwcGVyIGFyb3VuZApnZXRfcmFuZG9tX3UzMigpIGZvciBzZXZlcmFsIHJlbGVhc2VzIG5vdywg YW5kIGNvbXBpbGVzIGRvd24gdG8gdGhlCmV4YWN0IHNhbWUgY29kZS4gUmVwbGFjZSB0aGUgZGVw cmVjYXRlZCB3cmFwcGVyIHdpdGggYSBkaXJlY3QgY2FsbCB0bwp0aGUgcmVhbCBmdW5jdGlvbi4g VGhlIHNhbWUgYWxzbyBhcHBsaWVzIHRvIGdldF9yYW5kb21faW50KCksIHdoaWNoIGlzCmp1c3Qg YSB3cmFwcGVyIGFyb3VuZCBnZXRfcmFuZG9tX3UzMigpLiBUaGlzIHdhcyBkb25lIGFzIGEgYmFz aWMgZmluZAphbmQgcmVwbGFjZS4KClJldmlld2VkLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdy ZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpSZXZpZXdlZC1ieTogS2VlcyBDb29rIDxrZWVzY29v a0BjaHJvbWl1bS5vcmc+ClJldmlld2VkLWJ5OiBZdXJ5IE5vcm92IDx5dXJ5Lm5vcm92QGdtYWls LmNvbT4KQWNrZWQtYnk6IFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUB0b2tlLmRrPiAj IGZvciBzY2hfY2FrZQpBY2tlZC1ieTogQ2h1Y2sgTGV2ZXIgPGNodWNrLmxldmVyQG9yYWNsZS5j b20+ICMgZm9yIG5mc2QKUmV2aWV3ZWQtYnk6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+ICMgZm9y IGV4dDQKQWNrZWQtYnk6IE1pa2EgV2VzdGVyYmVyZyA8bWlrYS53ZXN0ZXJiZXJnQGxpbnV4Lmlu dGVsLmNvbT4gIyBmb3IgdGh1bmRlcmJvbHQKQWNrZWQtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGp3 b25nQGtlcm5lbC5vcmc+ICMgZm9yIHhmcwpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBLiBEb25lbmZl bGQgPEphc29uQHp4MmM0LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVy LnJzdCAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcGFyaXNjL2tlcm5lbC9wcm9jZXNzLmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9wYXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYyAg ICAgICAgICAgICAgICB8ICA0ICsrLS0KIGFyY2gvczM5MC9tbS9tbWFwLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YyAgICAgICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV9zZWxmdGVzdC5jIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fYnVkZHlf dGVzdC5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9tbV90ZXN0 LmMgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvY20uYyAg ICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdGlkX3Jk bWEuYyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJf Y20uYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiAuLi4vbWVkaWEvdGVzdC1kcml2ZXJzL3ZpdmlkL3ZpdmlkLXRv dWNoLWNhcC5jIHwgIDQgKystLQogZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvZ2F1ZGkyL2dhdWRp Mi5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2NuaWMuYyAg ICAgICAgICAgfCAgMiArLQogLi4uL2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19j bS5jICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyX21haW4u YyAgICAgIHwgIDYgKysrLS0tCiAuLi4vd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21m bWFjL3Buby5jIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgw MjExLmMgICAgfCAgNCArKy0tCiAuLi4vbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9j Zmc4MDIxMS5jIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvY2Zn ODAyMTEuYyAgfCAgMiArLQogZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYyAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL252bWUvY29tbW9uL2F1dGguYyAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMgICAgICAg ICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL3RhcmdldC9pc2NzaS9jeGdiaXQvY3hnYml0X2NtLmMg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGh1bmRlcmJvbHQveGRvbWFpbi5jICAgICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi91dmVzYWZiLmMgICAgICAgICAgICAg ICAgICB8ICAyICstCiBmcy9leGZhdC9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGZzL2V4dDQvaWFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0KIGZzL2V4dDQvbW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvZjJmcy9uYW1laS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBmcy9mYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL25mc2QvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNCArKy0tCiBmcy9udGZzMy9mc2xvZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrLS0tCiBmcy91Ymlmcy9qb3VybmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGZzL3hmcy9saWJ4ZnMveGZzX2lhbGxvYy5jICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMveGZzL3hmc19pY2FjaGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBmcy94ZnMveGZzX2xvZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5oICAgICAgICAgICAgICAg fCAgMiArLQogaW5jbHVkZS9uZXQvcmVkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL25ldC9zb2NrLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGtlcm5lbC9icGYvYmxvb21fZmlsdGVyLmMgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQoga2VybmVsL2JwZi9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBrZXJuZWwvYnBmL2hhc2h0YWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGtlcm5lbC9icGYvdmVyaWZpZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQoga2VybmVsL2tjc2FuL3NlbGZ0ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBsaWIvcmFuZG9tMzIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGxpYi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jICAgICAgICAgICAgICAgICAgfCAgNiArKyst LS0KIGxpYi90ZXN0X2Zwcm9iZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbGliL3Rlc3Rfa3Byb2Jlcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBsaWIvdGVzdF9taW5faGVhcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tCiBsaWIvdGVzdF9yaGFzaHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrLS0tCiBtbS9zaG1lbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIG1tL3NsYWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbmV0L2NvcmUvcGt0Z2VuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICsrLS0KIG5ldC9pcHY0L3JvdXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbmV0L2lwdjQvdGNwX2NkZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBuZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY29ubi5jICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9uZXRmaWx0ZXIveHRfc3RhdGlzdGljLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQog bmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvc2NoZWQvc2NoX2Nha2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5l dC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysr KystLS0tLS0tLS0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvZ3NzX2tyYjVfd3JhcC5jICAgICAgICAg ICAgfCAgNCArKy0tCiBuZXQvc3VucnBjL3hwcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIG5ldC91bml4L2FmX3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogNzIgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDEwMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJz dCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9maWx0ZXIucnN0CmluZGV4IDQzY2RjNGQzNDc0 NS4uZjY5ZGE1MDc0ODYwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmls dGVyLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJzdApAQCAtMzA1 LDcgKzMwNSw3IEBAIFBvc3NpYmxlIEJQRiBleHRlbnNpb25zIGFyZSBzaG93biBpbiB0aGUgZm9s bG93aW5nIHRhYmxlOgogICB2bGFuX3RjaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNr Yl92bGFuX3RhZ19nZXQoc2tiKQogICB2bGFuX2F2YWlsICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikKICAgdmxhbl90cGlkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBza2ItPnZsYW5fcHJvdG8KLSAgcmFuZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcmFuZG9tX3UzMigpCisgIHJhbmQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X3JhbmRvbV91MzIoKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PSAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogVGhlc2UgZXh0ZW5zaW9ucyBjYW4gYWxzbyBiZSBwcmVmaXhlZCB3aXRoICcjJy4K ZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3BhcmlzYy9r ZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDdjMzdlMDljOTJkYS4uMThjNGYwZTNlOTA2IDEwMDY0NAot LS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5l bC9wcm9jZXNzLmMKQEAgLTI4OCw3ICsyODgsNyBAQCBfX2dldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBicmtfcm5kKHZvaWQpCiB7 Ci0JcmV0dXJuIChnZXRfcmFuZG9tX2ludCgpICYgQlJLX1JORF9NQVNLKSA8PCBQQUdFX1NISUZU OworCXJldHVybiAoZ2V0X3JhbmRvbV91MzIoKSAmIEJSS19STkRfTUFTSykgPDwgUEFHRV9TSElG VDsKIH0KIAogdW5zaWduZWQgbG9uZyBhcmNoX3JhbmRvbWl6ZV9icmsoc3RydWN0IG1tX3N0cnVj dCAqbW0pCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzX3BhcmlzYy5jIGIvYXJj aC9wYXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYwppbmRleCAyYjM0Mjk0NTE3YTEuLjg0OGIwNzAy MDA1ZCAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYworKysgYi9h cmNoL3BhcmlzYy9rZXJuZWwvc3lzX3BhcmlzYy5jCkBAIC0yMzksMTQgKzIzOSwxNCBAQCBzdGF0 aWMgdW5zaWduZWQgbG9uZyBtbWFwX3JuZCh2b2lkKQogCXVuc2lnbmVkIGxvbmcgcm5kID0gMDsK IAogCWlmIChjdXJyZW50LT5mbGFncyAmIFBGX1JBTkRPTUlaRSkKLQkJcm5kID0gZ2V0X3JhbmRv bV9pbnQoKSAmIE1NQVBfUk5EX01BU0s7CisJCXJuZCA9IGdldF9yYW5kb21fdTMyKCkgJiBNTUFQ X1JORF9NQVNLOwogCiAJcmV0dXJuIHJuZCA8PCBQQUdFX1NISUZUOwogfQogCiB1bnNpZ25lZCBs b25nIGFyY2hfbW1hcF9ybmQodm9pZCkKIHsKLQlyZXR1cm4gKGdldF9yYW5kb21faW50KCkgJiBN TUFQX1JORF9NQVNLKSA8PCBQQUdFX1NISUZUOworCXJldHVybiAoZ2V0X3JhbmRvbV91MzIoKSAm IE1NQVBfUk5EX01BU0spIDw8IFBBR0VfU0hJRlQ7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25n IG1tYXBfbGVnYWN5X2Jhc2Uodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9tbWFwLmMg Yi9hcmNoL3MzOTAvbW0vbW1hcC5jCmluZGV4IDU5ODBjZTM0ODgzMi4uMzMyN2M0N2JjMTgxIDEw MDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vbW1hcC5jCisrKyBiL2FyY2gvczM5MC9tbS9tbWFwLmMK QEAgLTM3LDcgKzM3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgbW1hcF9pc19sZWdhY3koc3RydWN0 IHJsaW1pdCAqcmxpbV9zdGFjaykKIAogdW5zaWduZWQgbG9uZyBhcmNoX21tYXBfcm5kKHZvaWQp CiB7Ci0JcmV0dXJuIChnZXRfcmFuZG9tX2ludCgpICYgTU1BUF9STkRfTUFTSykgPDwgUEFHRV9T SElGVDsKKwlyZXR1cm4gKGdldF9yYW5kb21fdTMyKCkgJiBNTUFQX1JORF9NQVNLKSA8PCBQQUdF X1NISUZUOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWFwX2Jhc2VfbGVnYWN5KHVuc2ln bmVkIGxvbmcgcm5kKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYyBiL2Fy Y2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKaW5kZXggNDgyNzZjMGU0NzlkLi44NjBiNjAyNzNkZjMg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2NwdS9hbWQuYwpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyB2b2lkIGJzcF9pbml0X2Ft ZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJCXZhX2FsaWduLmZsYWdzICAgID0gQUxJR05fVkFf MzIgfCBBTElHTl9WQV82NDsKIAogCQkvKiBBIHJhbmRvbSB2YWx1ZSBwZXIgYm9vdCBmb3IgYml0 IHNsaWNlIFsxMjp1cHBlcl9iaXQpICovCi0JCXZhX2FsaWduLmJpdHMgPSBnZXRfcmFuZG9tX2lu dCgpICYgdmFfYWxpZ24ubWFzazsKKwkJdmFfYWxpZ24uYml0cyA9IGdldF9yYW5kb21fdTMyKCkg JiB2YV9hbGlnbi5tYXNrOwogCX0KIAogCWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX01XQUlU WCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDMyOWZmNzViODBiOS4uN2Jk MTg2MWRkYmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMTM3LDEyICsx MzcsMTIgQEAgc3RhdGljIHU2NCByYW5kb21fb2Zmc2V0KHU2NCBzdGFydCwgdTY0IGVuZCwgdTY0 IGxlbiwgdTY0IGFsaWduKQogCXJhbmdlID0gcm91bmRfZG93bihlbmQgLSBsZW4sIGFsaWduKSAt IHJvdW5kX3VwKHN0YXJ0LCBhbGlnbik7CiAJaWYgKHJhbmdlKSB7CiAJCWlmIChzaXplb2YodW5z aWduZWQgbG9uZykgPT0gc2l6ZW9mKHU2NCkpIHsKLQkJCWFkZHIgPSBnZXRfcmFuZG9tX2xvbmco KTsKKwkJCWFkZHIgPSBnZXRfcmFuZG9tX3U2NCgpOwogCQl9IGVsc2UgewotCQkJYWRkciA9IGdl dF9yYW5kb21faW50KCk7CisJCQlhZGRyID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJCWlmIChyYW5n ZSA+IFUzMl9NQVgpIHsKIAkJCQlhZGRyIDw8PSAzMjsKLQkJCQlhZGRyIHw9IGdldF9yYW5kb21f aW50KCk7CisJCQkJYWRkciB8PSBnZXRfcmFuZG9tX3UzMigpOwogCQkJfQogCQl9CiAJCWRpdjY0 X3U2NF9yZW0oYWRkciwgcmFuZ2UsICZhZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV9zZWxmdGVzdC5jCmluZGV4IGM0ZTkzMjM2OGIzNy4uMzlkYTBmYjBkNmQy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9zZWxmdGVz dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMK QEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IF9fcnVuX3NlbGZ0ZXN0cyhjb25zdCBjaGFy ICpuYW1lLAogCWludCBlcnIgPSAwOwogCiAJd2hpbGUgKCFpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9z ZWVkKQotCQlpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVkID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJ aTkxNV9zZWxmdGVzdC5yYW5kb21fc2VlZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlpOTE1X3Nl bGZ0ZXN0LnRpbWVvdXRfamlmZmllcyA9CiAJCWk5MTVfc2VsZnRlc3QudGltZW91dF9tcyA/CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2J1ZGR5X3Rlc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS90ZXN0cy9kcm1fYnVkZHlfdGVzdC5jCmluZGV4IDdhMmIyZDZiYzNmZS4uNjJm Njk1ODlhNzJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2J1ZGR5X3Rl c3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2J1ZGR5X3Rlc3QuYwpAQCAtNzI5 LDcgKzcyOSw3IEBAIHN0YXRpYyB2b2lkIGRybV90ZXN0X2J1ZGR5X2FsbG9jX2xpbWl0KHN0cnVj dCBrdW5pdCAqdGVzdCkKIHN0YXRpYyBpbnQgZHJtX2J1ZGR5X2luaXRfdGVzdChzdHJ1Y3Qga3Vu aXQgKnRlc3QpCiB7CiAJd2hpbGUgKCFyYW5kb21fc2VlZCkKLQkJcmFuZG9tX3NlZWQgPSBnZXRf cmFuZG9tX2ludCgpOworCQlyYW5kb21fc2VlZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlyZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fbW1fdGVzdC5j IGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9tbV90ZXN0LmMKaW5kZXggNjU5ZDFhZjRkY2E3 Li5jNGI2NmVlYWUyMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fbW1f dGVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fbW1fdGVzdC5jCkBAIC0yMjEy LDcgKzIyMTIsNyBAQCBzdGF0aWMgdm9pZCBkcm1fdGVzdF9tbV9jb2xvcl9ldmljdF9yYW5nZShz dHJ1Y3Qga3VuaXQgKnRlc3QpCiBzdGF0aWMgaW50IGRybV9tbV9pbml0X3Rlc3Qoc3RydWN0IGt1 bml0ICp0ZXN0KQogewogCXdoaWxlICghcmFuZG9tX3NlZWQpCi0JCXJhbmRvbV9zZWVkID0gZ2V0 X3JhbmRvbV9pbnQoKTsKKwkJcmFuZG9tX3NlZWQgPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJcmV0 dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvY20uYyBi L2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiNC9jbS5jCmluZGV4IDE0MzkyYzk0MmY0OS4uNDk5 YTQyNWEzMzc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvY20uYwor KysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvY20uYwpAQCAtNzM0LDcgKzczNCw3IEBA IHN0YXRpYyBpbnQgc2VuZF9jb25uZWN0KHN0cnVjdCBjNGl3X2VwICplcCkKIAkJCQkgICAmZXAt PmNvbS5yZW1vdGVfYWRkcjsKIAlpbnQgcmV0OwogCWVudW0gY2hpcF90eXBlIGFkYXB0ZXJfdHlw ZSA9IGVwLT5jb20uZGV2LT5yZGV2LmxsZGkuYWRhcHRlcl90eXBlOwotCXUzMiBpc24gPSAocHJh bmRvbV91MzIoKSAmIH43VUwpIC0gMTsKKwl1MzIgaXNuID0gKGdldF9yYW5kb21fdTMyKCkgJiB+ N1VMKSAtIDE7CiAJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjsKIAl1NjQgcGFyYW1zOwogCkBA IC0yNDY5LDcgKzI0NjksNyBAQCBzdGF0aWMgaW50IGFjY2VwdF9jcihzdHJ1Y3QgYzRpd19lcCAq ZXAsIHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJaWYgKCFpc190NChhZGFwdGVyX3R5cGUp KSB7Ci0JCXUzMiBpc24gPSAocHJhbmRvbV91MzIoKSAmIH43VUwpIC0gMTsKKwkJdTMyIGlzbiA9 IChnZXRfcmFuZG9tX3UzMigpICYgfjdVTCkgLSAxOwogCiAJCXNrYiA9IGdldF9za2Ioc2tiLCBy b3VuZHVwKHNpemVvZigqcnBsNSksIDE2KSwgR0ZQX0tFUk5FTCk7CiAJCXJwbDUgPSBfX3NrYl9w dXRfemVybyhza2IsIHJvdW5kdXAoc2l6ZW9mKCpycGw1KSwgMTYpKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3RpZF9yZG1hLmMgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvaGZpMS90aWRfcmRtYS5jCmluZGV4IDJhN2FiZjdhMWY3Zi4uMThiMDVmZmI0MTVhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS90aWRfcmRtYS5jCisrKyBiL2RyaXZl cnMvaW5maW5pYmFuZC9ody9oZmkxL3RpZF9yZG1hLmMKQEAgLTg1MCw3ICs4NTAsNyBAQCB2b2lk IGhmaTFfa2Vybl9pbml0X2N0eHRfZ2VuZXJhdGlvbnMoc3RydWN0IGhmaTFfY3R4dGRhdGEgKnJj ZCkKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBSWEVfTlVNX1RJRF9GTE9XUzsgaSsrKSB7 Ci0JCXJjZC0+Zmxvd3NbaV0uZ2VuZXJhdGlvbiA9IG1hc2tfZ2VuZXJhdGlvbihwcmFuZG9tX3Uz MigpKTsKKwkJcmNkLT5mbG93c1tpXS5nZW5lcmF0aW9uID0gbWFza19nZW5lcmF0aW9uKGdldF9y YW5kb21fdTMyKCkpOwogCQlrZXJuX3NldF9od19mbG93KHJjZCwgS0VSTl9HRU5FUkFUSU9OX1JF U0VSVkVELCBpKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4 NC9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCmluZGV4IGQxM2VjYmRk NDM5MS4uYTM3Y2ZhYzVlMjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4 NC9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYwpAQCAtOTYsNyAr OTYsNyBAQCBzdGF0aWMgdm9pZCBfX3Byb3BhZ2F0ZV9wa2V5X2V2KHN0cnVjdCBtbHg0X2liX2Rl diAqZGV2LCBpbnQgcG9ydF9udW0sCiBfX2JlNjQgbWx4NF9pYl9nZW5fbm9kZV9ndWlkKHZvaWQp CiB7CiAjZGVmaW5lIE5PREVfR1VJRF9ISQkoKHU2NCkgKCgodTY0KUlCX09QRU5JQl9PVUkpIDw8 IDQwKSkKLQlyZXR1cm4gY3B1X3RvX2JlNjQoTk9ERV9HVUlEX0hJIHwgcHJhbmRvbV91MzIoKSk7 CisJcmV0dXJuIGNwdV90b19iZTY0KE5PREVfR1VJRF9ISSB8IGdldF9yYW5kb21fdTMyKCkpOwog fQogCiBfX2JlNjQgbWx4NF9pYl9nZXRfbmV3X2RlbXV4X3RpZChzdHJ1Y3QgbWx4NF9pYl9kZW11 eF9jdHggKmN0eCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBv aWJfY20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfY20uYwppbmRleCBl YmIzNWI4MDlmMjYuLmI2MTBkMzYyOTViYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5k L3VscC9pcG9pYi9pcG9pYl9jbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIv aXBvaWJfY20uYwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQgaXBvaWJfY21fcmVxX2hh bmRsZXIoc3RydWN0IGliX2NtX2lkICpjbV9pZCwKIAkJZ290byBlcnJfcXA7CiAJfQogCi0JcHNu ID0gcHJhbmRvbV91MzIoKSAmIDB4ZmZmZmZmOworCXBzbiA9IGdldF9yYW5kb21fdTMyKCkgJiAw eGZmZmZmZjsKIAlyZXQgPSBpcG9pYl9jbV9tb2RpZnlfcnhfcXAoZGV2LCBjbV9pZCwgcC0+cXAs IHBzbik7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfbW9kaWZ5OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZC9yYWlkNS1jYWNoZS5jIGIvZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jCmluZGV4IDc5Yzcz MzMwMDIwYi4uODMyZDg1NjZlMTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQ1LWNhY2hl LmMKKysrIGIvZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jCkBAIC0yOTk0LDcgKzI5OTQsNyBAQCBz dGF0aWMgaW50IHI1bF9sb2FkX2xvZyhzdHJ1Y3QgcjVsX2xvZyAqbG9nKQogCX0KIGNyZWF0ZToK IAlpZiAoY3JlYXRlX3N1cGVyKSB7Ci0JCWxvZy0+bGFzdF9jcF9zZXEgPSBwcmFuZG9tX3UzMigp OworCQlsb2ctPmxhc3RfY3Bfc2VxID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJY3AgPSAwOwogCQly NWxfbG9nX3dyaXRlX2VtcHR5X21ldGFfYmxvY2sobG9nLCBjcCwgbG9nLT5sYXN0X2NwX3NlcSk7 CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Rlc3QtZHJpdmVycy92aXZpZC92aXZp ZC10b3VjaC1jYXAuYyBiL2RyaXZlcnMvbWVkaWEvdGVzdC1kcml2ZXJzL3ZpdmlkL3ZpdmlkLXRv dWNoLWNhcC5jCmluZGV4IDc5MjY2MGE4NWJjMS4uNmNjMzJlYjU0ZjlkIDEwMDY0NAotLS0gYS9k cml2ZXJzL21lZGlhL3Rlc3QtZHJpdmVycy92aXZpZC92aXZpZC10b3VjaC1jYXAuYworKysgYi9k cml2ZXJzL21lZGlhL3Rlc3QtZHJpdmVycy92aXZpZC92aXZpZC10b3VjaC1jYXAuYwpAQCAtMjEw LDcgKzIxMCw3IEBAIHN0YXRpYyB2b2lkIHZpdmlkX2ZpbGxfYnVmZl9ub2lzZShfX3MxNiAqdGNo X2J1ZiwgaW50IHNpemUpCiAKIAkvKiBGaWxsIDEwJSBvZiB0aGUgdmFsdWVzIHdpdGhpbiByYW5n ZSAtMyBhbmQgMywgemVybyB0aGUgb3RoZXJzICovCiAJZm9yIChpID0gMDsgaSA8IHNpemU7IGkr KykgewotCQl1bnNpZ25lZCBpbnQgcmFuZCA9IGdldF9yYW5kb21faW50KCk7CisJCXVuc2lnbmVk IGludCByYW5kID0gZ2V0X3JhbmRvbV91MzIoKTsKIAogCQlpZiAocmFuZCAlIDEwKQogCQkJdGNo X2J1ZltpXSA9IDA7CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCB2aXZpZF9maWxsYnVmZl90Y2go c3RydWN0IHZpdmlkX2RldiAqZGV2LCBzdHJ1Y3Qgdml2aWRfYnVmZmVyICpidWYpCiAJCXJldHVy bjsKIAogCWlmICh0ZXN0X3BhdF9pZHggPT0gMCkKLQkJZGV2LT50Y2hfcGF0X3JhbmRvbSA9IGdl dF9yYW5kb21faW50KCk7CisJCWRldi0+dGNoX3BhdF9yYW5kb20gPSBnZXRfcmFuZG9tX3UzMigp OwogCXJhbmQgPSBkZXYtPnRjaF9wYXRfcmFuZG9tOwogCiAJc3dpdGNoICh0ZXN0X3BhdHRlcm4p IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2dhdWRpMi9nYXVkaTIuYyBi L2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2dhdWRpMi9nYXVkaTIuYwppbmRleCA3NWM0YmVmNzg0 MWMuLjY1ZTZjYWU2MTAwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvZ2F1 ZGkyL2dhdWRpMi5jCisrKyBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2dhdWRpMi9nYXVkaTIu YwpAQCAtMjk0OCw3ICsyOTQ4LDcgQEAgc3RhdGljIHZvaWQgZ2F1ZGkyX3VzZXJfaW50ZXJydXB0 X3NldHVwKHN0cnVjdCBobF9kZXZpY2UgKmhkZXYpCiAKIHN0YXRpYyBpbmxpbmUgaW50IGdhdWRp Ml9nZXRfbm9uX3plcm9fcmFuZG9tX2ludCh2b2lkKQogewotCWludCByYW5kID0gZ2V0X3JhbmRv bV9pbnQoKTsKKwlpbnQgcmFuZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlyZXR1cm4gcmFuZCA/ IHJhbmQgOiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKaW5kZXggMjRiYjUwZGZkMzYyLi5l ODRjNDliZjRkMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMK KysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwpAQCAtNDgwNiw3ICs0ODA2LDcg QEAgc3RhdGljIHUzMiBib25kX3JyX2dlbl9zbGF2ZV9pZChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkK IAogCXN3aXRjaCAocGFja2V0c19wZXJfc2xhdmUpIHsKIAljYXNlIDA6Ci0JCXNsYXZlX2lkID0g cHJhbmRvbV91MzIoKTsKKwkJc2xhdmVfaWQgPSBnZXRfcmFuZG9tX3UzMigpOwogCQlicmVhazsK IAljYXNlIDE6CiAJCXNsYXZlX2lkID0gdGhpc19jcHVfaW5jX3JldHVybigqYm9uZC0+cnJfdHhf Y291bnRlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmlj LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmljLmMKaW5kZXggZjU5N2IzMTNh Y2FhLi4yMTk4ZTM1ZDllMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2NuaWMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmljLmMKQEAg LTQxNjQsNyArNDE2NCw3IEBAIHN0YXRpYyBpbnQgY25pY19jbV9pbml0X2JueDJfaHcoc3RydWN0 IGNuaWNfZGV2ICpkZXYpCiB7CiAJdTMyIHNlZWQ7CiAKLQlzZWVkID0gcHJhbmRvbV91MzIoKTsK KwlzZWVkID0gZ2V0X3JhbmRvbV91MzIoKTsKIAljbmljX2N0eF93cihkZXYsIDQ1LCAwLCBzZWVk KTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxz aW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2hlbHNpby9pbmxpbmVfY3J5cHRvL2NodGxzL2NodGxzX2NtLmMKaW5kZXggZWRhMTI5ZDAxNDNl Li5jMmU3MDM3YzdiYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v aW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jCkBAIC0xMDYzLDcgKzEwNjMs NyBAQCBzdGF0aWMgdm9pZCBjaHRsc19wYXNzX2FjY2VwdF9ycGwoc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAlvcHQyIHw9IFdORF9TQ0FMRV9FTl9WKFdTQ0FMRV9PSyh0cCkpOwogCXJwbDUtPm9wdDAg PSBjcHVfdG9fYmU2NChvcHQwKTsKIAlycGw1LT5vcHQyID0gY3B1X3RvX2JlMzIob3B0Mik7Ci0J cnBsNS0+aXNzID0gY3B1X3RvX2JlMzIoKHByYW5kb21fdTMyKCkgJiB+N1VMKSAtIDEpOworCXJw bDUtPmlzcyA9IGNwdV90b19iZTMyKChnZXRfcmFuZG9tX3UzMigpICYgfjdVTCkgLSAxKTsKIAlz ZXRfd3JfdHhxKHNrYiwgQ1BMX1BSSU9SSVRZX1NFVFVQLCBjc2stPnBvcnRfaWQpOwogCXQ0X3Nl dF9hcnBfZXJyX2hhbmRsZXIoc2tiLCBzaywgY2h0bHNfYWNjZXB0X3JwbF9hcnBfZmFpbHVyZSk7 CiAJY3hnYjRfbDJ0X3NlbmQoY3NrLT5lZ3Jlc3NfZGV2LCBza2IsIGNzay0+bDJ0X2VudHJ5KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJfbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9tYWluLmMKaW5kZXggMDIzNjgyY2Qy NzY4Li41NjcyZDk1MjQ1MmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tl ci9yb2NrZXJfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJf bWFpbi5jCkBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCByb2NrZXJfcmVnX3Rlc3QoY29u c3Qgc3RydWN0IHJvY2tlciAqcm9ja2VyKQogCXU2NCB0ZXN0X3JlZzsKIAl1NjQgcm5kOwogCi0J cm5kID0gcHJhbmRvbV91MzIoKTsKKwlybmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCXJuZCA+Pj0g MTsKIAlyb2NrZXJfd3JpdGUzMihyb2NrZXIsIFRFU1RfUkVHLCBybmQpOwogCXRlc3RfcmVnID0g cm9ja2VyX3JlYWQzMihyb2NrZXIsIFRFU1RfUkVHKTsKQEAgLTEzOSw5ICsxMzksOSBAQCBzdGF0 aWMgaW50IHJvY2tlcl9yZWdfdGVzdChjb25zdCBzdHJ1Y3Qgcm9ja2VyICpyb2NrZXIpCiAJCXJl dHVybiAtRUlPOwogCX0KIAotCXJuZCA9IHByYW5kb21fdTMyKCk7CisJcm5kID0gZ2V0X3JhbmRv bV91MzIoKTsKIAlybmQgPDw9IDMxOwotCXJuZCB8PSBwcmFuZG9tX3UzMigpOworCXJuZCB8PSBn ZXRfcmFuZG9tX3UzMigpOwogCXJvY2tlcl93cml0ZTY0KHJvY2tlciwgVEVTVF9SRUc2NCwgcm5k KTsKIAl0ZXN0X3JlZyA9IHJvY2tlcl9yZWFkNjQocm9ja2VyLCBURVNUX1JFRzY0KTsKIAlpZiAo dGVzdF9yZWcgIT0gcm5kICogMikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3Buby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3Buby5jCmluZGV4IGQwYTc0NjViZTU4Ni4uM2E3 YWRlZDMwZThlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNt ODAyMTEvYnJjbWZtYWMvcG5vLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20v YnJjbTgwMjExL2JyY21mbWFjL3Buby5jCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGludCBi cmNtZl9wbm9fc2V0X3JhbmRvbShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgc3RydWN0IGJyY21mX3Bu b19pbmZvICpwaSkKIAltZW1jcHkocGZuX21hYy5tYWMsIG1hY19hZGRyLCBFVEhfQUxFTik7CiAJ Zm9yIChpID0gMDsgaSA8IEVUSF9BTEVOOyBpKyspIHsKIAkJcGZuX21hYy5tYWNbaV0gJj0gbWFj X21hc2tbaV07Ci0JCXBmbl9tYWMubWFjW2ldIHw9IGdldF9yYW5kb21faW50KCkgJiB+KG1hY19t YXNrW2ldKTsKKwkJcGZuX21hYy5tYWNbaV0gfD0gZ2V0X3JhbmRvbV91MzIoKSAmIH4obWFjX21h c2tbaV0pOwogCX0KIAkvKiBDbGVhciBtdWx0aSBiaXQgKi8KIAlwZm5fbWFjLm1hY1swXSAmPSAw eEZFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2Nm ZzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvY2ZnODAyMTEu YwppbmRleCA1MzU5OTVlODI3OWYuLmJjZDU2NGRjMzU1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgwMjExLmMKKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgwMjExLmMKQEAgLTIzOSw3ICsyMzksNyBAQCBt d2lmaWV4X2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVs ZXNzX2RldiAqd2RldiwKIAl0eF9pbmZvLT5wa3RfbGVuID0gcGt0X2xlbjsKIAogCW13aWZpZXhf Zm9ybV9tZ210X2ZyYW1lKHNrYiwgYnVmLCBsZW4pOwotCSpjb29raWUgPSBwcmFuZG9tX3UzMigp IHwgMTsKKwkqY29va2llID0gZ2V0X3JhbmRvbV91MzIoKSB8IDE7CiAKIAlpZiAoaWVlZTgwMjEx X2lzX2FjdGlvbihtZ210LT5mcmFtZV9jb250cm9sKSkKIAkJc2tiID0gbXdpZmlleF9jbG9uZV9z a2JfZm9yX3R4X3N0YXR1cyhwcml2LApAQCAtMzAzLDcgKzMwMyw3IEBAIG13aWZpZXhfY2ZnODAy MTFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IHdpcGh5ICp3aXBoeSwKIAkJCQkJIGR1cmF0aW9u KTsKIAogCWlmICghcmV0KSB7Ci0JCSpjb29raWUgPSBwcmFuZG9tX3UzMigpIHwgMTsKKwkJKmNv b2tpZSA9IGdldF9yYW5kb21fdTMyKCkgfCAxOwogCQlwcml2LT5yb2NfY2ZnLmNvb2tpZSA9ICpj b29raWU7CiAJCXByaXYtPnJvY19jZmcuY2hhbiA9ICpjaGFuOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jCmluZGV4IGI4OTA0Nzk2 NWU3OC4uOWJiZmZmODAzMzU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNy b2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNy b2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgc3RhdGljIGlu dCBtZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksCiAJY29uc3QgdTggKnZlbmRvcl9pZTsKIAlp bnQgcmV0ID0gMDsKIAotCSpjb29raWUgPSBwcmFuZG9tX3UzMigpOworCSpjb29raWUgPSBnZXRf cmFuZG9tX3UzMigpOwogCXByaXYtPnR4X2Nvb2tpZSA9ICpjb29raWU7CiAJbWdtdCA9IChjb25z dCBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilidWY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2NmZzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9xdWFudGVubmEvcXRuZm1hYy9jZmc4MDIxMS5jCmluZGV4IGJmZGYwM2JmYTZjNS4uNzNl NmY5NDA4YjUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRu Zm1hYy9jZmc4MDIxMS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5m bWFjL2NmZzgwMjExLmMKQEAgLTQ0OSw3ICs0NDksNyBAQCBxdG5mX21nbXRfdHgoc3RydWN0IHdp cGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIHsKIAlzdHJ1Y3QgcXRuZl92 aWYgKnZpZiA9IHF0bmZfbmV0ZGV2X2dldF9wcml2KHdkZXYtPm5ldGRldik7CiAJY29uc3Qgc3Ry dWN0IGllZWU4MDIxMV9tZ210ICptZ210X2ZyYW1lID0gKHZvaWQgKilwYXJhbXMtPmJ1ZjsKLQl1 MzIgc2hvcnRfY29va2llID0gcHJhbmRvbV91MzIoKTsKKwl1MzIgc2hvcnRfY29va2llID0gZ2V0 X3JhbmRvbV91MzIoKTsKIAl1MTYgZmxhZ3MgPSAwOwogCXUxNiBmcmVxOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvdGkvd2xjb3JlL21haW4uYwppbmRleCAzZTM5MjJkNGM3ODguLjI4YzBmMDZlMzExZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYworKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jCkBAIC02MTAwLDcgKzYxMDAsNyBA QCBzdGF0aWMgaW50IHdsMTI3MV9yZWdpc3Rlcl9odyhzdHJ1Y3Qgd2wxMjcxICp3bCkKIAkJCXds MTI3MV93YXJuaW5nKCJGdXNlIG1hYyBhZGRyZXNzIGlzIHplcm8uIHVzaW5nIHJhbmRvbSBtYWMi KTsKIAkJCS8qIFVzZSBUSSBvdWkgYW5kIGEgcmFuZG9tIG5pYyAqLwogCQkJb3VpX2FkZHIgPSBX TENPUkVfVElfT1VJX0FERFJFU1M7Ci0JCQluaWNfYWRkciA9IGdldF9yYW5kb21faW50KCk7CisJ CQluaWNfYWRkciA9IGdldF9yYW5kb21fdTMyKCk7CiAJCX0gZWxzZSB7CiAJCQlvdWlfYWRkciA9 IHdsLT5mdXNlX291aV9hZGRyOwogCQkJLyogZnVzZSBoYXMgdGhlIEJEX0FERFIsIHRoZSBXTEFO IGFkZHJlc3NlcyBhcmUgdGhlIG5leHQgdHdvICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUv Y29tbW9uL2F1dGguYyBiL2RyaXZlcnMvbnZtZS9jb21tb24vYXV0aC5jCmluZGV4IDA0YmQyOGYx N2RjYy4uZDkwZTRmMGMwOGI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvY29tbW9uL2F1dGgu YworKysgYi9kcml2ZXJzL252bWUvY29tbW9uL2F1dGguYwpAQCAtMjMsNyArMjMsNyBAQCB1MzIg bnZtZV9hdXRoX2dldF9zZXFudW0odm9pZCkKIAogCW11dGV4X2xvY2soJm52bWVfZGhjaGFwX211 dGV4KTsKIAlpZiAoIW52bWVfZGhjaGFwX3NlcW51bSkKLQkJbnZtZV9kaGNoYXBfc2VxbnVtID0g cHJhbmRvbV91MzIoKTsKKwkJbnZtZV9kaGNoYXBfc2VxbnVtID0gZ2V0X3JhbmRvbV91MzIoKTsK IAllbHNlIHsKIAkJbnZtZV9kaGNoYXBfc2VxbnVtKys7CiAJCWlmICghbnZtZV9kaGNoYXBfc2Vx bnVtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2N4Z2JpL2N4Z2I0aS9jeGdiNGkuYyBiL2Ry aXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMKaW5kZXggNTNkOTFiZjljMTJhLi5jMDdk MmUzYjRiY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMK KysrIGIvZHJpdmVycy9zY3NpL2N4Z2JpL2N4Z2I0aS9jeGdiNGkuYwpAQCAtMjU0LDcgKzI1NCw3 IEBAIHN0YXRpYyB2b2lkIHNlbmRfYWN0X29wZW5fcmVxKHN0cnVjdCBjeGdiaV9zb2NrICpjc2ss IHN0cnVjdCBza19idWZmICpza2IsCiAJfSBlbHNlIGlmIChpc190NShsbGRpLT5hZGFwdGVyX3R5 cGUpKSB7CiAJCXN0cnVjdCBjcGxfdDVfYWN0X29wZW5fcmVxICpyZXEgPQogCQkJCShzdHJ1Y3Qg Y3BsX3Q1X2FjdF9vcGVuX3JlcSAqKXNrYi0+aGVhZDsKLQkJdTMyIGlzbiA9IChwcmFuZG9tX3Uz MigpICYgfjdVTCkgLSAxOworCQl1MzIgaXNuID0gKGdldF9yYW5kb21fdTMyKCkgJiB+N1VMKSAt IDE7CiAKIAkJSU5JVF9UUF9XUihyZXEsIDApOwogCQlPUENPREVfVElEKHJlcSkgPSBjcHVfdG9f YmUzMihNS19PUENPREVfVElEKENQTF9BQ1RfT1BFTl9SRVEsCkBAIC0yODIsNyArMjgyLDcgQEAg c3RhdGljIHZvaWQgc2VuZF9hY3Rfb3Blbl9yZXEoc3RydWN0IGN4Z2JpX3NvY2sgKmNzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAl9IGVsc2UgewogCQlzdHJ1Y3QgY3BsX3Q2X2FjdF9vcGVuX3Jl cSAqcmVxID0KIAkJCQkoc3RydWN0IGNwbF90Nl9hY3Rfb3Blbl9yZXEgKilza2ItPmhlYWQ7Ci0J CXUzMiBpc24gPSAocHJhbmRvbV91MzIoKSAmIH43VUwpIC0gMTsKKwkJdTMyIGlzbiA9IChnZXRf cmFuZG9tX3UzMigpICYgfjdVTCkgLSAxOwogCiAJCUlOSVRfVFBfV1IocmVxLCAwKTsKIAkJT1BD T0RFX1RJRChyZXEpID0gY3B1X3RvX2JlMzIoTUtfT1BDT0RFX1RJRChDUExfQUNUX09QRU5fUkVR LApkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5jIGIv ZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5jCmluZGV4IDMzMzZkMmI3OGJm Ny4uZDkyMDRjNTkwZDlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9jeGdiaXQv Y3hnYml0X2NtLmMKKysrIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5j CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBjeGdiaXRfcGFzc19hY2NlcHRfcnBsKHN0cnVjdCBjeGdi aXRfc29jayAqY3NrLCBzdHJ1Y3QgY3BsX3Bhc3NfYWNjZXB0X3JlcSAqcmVxKQogCW9wdDIgfD0g Q09OR19DTlRSTF9WKENPTkdfQUxHX05FV1JFTk8pOwogCiAJb3B0MiB8PSBUNV9JU1NfRjsKLQly cGw1LT5pc3MgPSBjcHVfdG9fYmUzMigocHJhbmRvbV91MzIoKSAmIH43VUwpIC0gMSk7CisJcnBs NS0+aXNzID0gY3B1X3RvX2JlMzIoKGdldF9yYW5kb21fdTMyKCkgJiB+N1VMKSAtIDEpOwogCiAJ b3B0MiB8PSBUNV9PUFRfMl9WQUxJRF9GOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RodW5kZXJi b2x0L3hkb21haW4uYyBiL2RyaXZlcnMvdGh1bmRlcmJvbHQveGRvbWFpbi5jCmluZGV4IGJiYjI0 OGEyNjg2Zi4uZjAwYjJmNjJkOGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RodW5kZXJib2x0L3hk b21haW4uYworKysgYi9kcml2ZXJzL3RodW5kZXJib2x0L3hkb21haW4uYwpAQCAtMjQzNyw3ICsy NDM3LDcgQEAgaW50IHRiX3hkb21haW5faW5pdCh2b2lkKQogCXRiX3Byb3BlcnR5X2FkZF9pbW1l ZGlhdGUoeGRvbWFpbl9wcm9wZXJ0eV9kaXIsICJkZXZpY2VpZCIsIDB4MSk7CiAJdGJfcHJvcGVy dHlfYWRkX2ltbWVkaWF0ZSh4ZG9tYWluX3Byb3BlcnR5X2RpciwgImRldmljZXJ2IiwgMHg4MDAw MDEwMCk7CiAKLQl4ZG9tYWluX3Byb3BlcnR5X2Jsb2NrX2dlbiA9IHByYW5kb21fdTMyKCk7CisJ eGRvbWFpbl9wcm9wZXJ0eV9ibG9ja19nZW4gPSBnZXRfcmFuZG9tX3UzMigpOwogCXJldHVybiAw OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvdXZlc2FmYi5jCmluZGV4IDRkZjY3NzI4MDJkNy4uMjg1YjgzYzIwMzI2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBpbnQgdXZl c2FmYl9leGVjKHN0cnVjdCB1dmVzYWZiX2t0YXNrICp0YXNrKQogCW1lbWNweSgmbS0+aWQsICZ1 dmVzYWZiX2NuX2lkLCBzaXplb2YobS0+aWQpKTsKIAltLT5zZXEgPSBzZXE7CiAJbS0+bGVuID0g bGVuOwotCW0tPmFjayA9IHByYW5kb21fdTMyKCk7CisJbS0+YWNrID0gZ2V0X3JhbmRvbV91MzIo KTsKIAogCS8qIHV2ZXNhZmJfdGFzayBzdHJ1Y3R1cmUgKi8KIAltZW1jcHkobSArIDEsICZ0YXNr LT50LCBzaXplb2YodGFzay0+dCkpOwpkaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW5vZGUuYyBiL2Zz L2V4ZmF0L2lub2RlLmMKaW5kZXggYTc5NTQzN2I4NmQwLi41NTkwYTFlODMxMjYgMTAwNjQ0Ci0t LSBhL2ZzL2V4ZmF0L2lub2RlLmMKKysrIGIvZnMvZXhmYXQvaW5vZGUuYwpAQCAtNTUyLDcgKzU1 Miw3IEBAIHN0YXRpYyBpbnQgZXhmYXRfZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgZXhmYXRfZGlyX2VudHJ5ICppbmZvKQogCWlub2RlLT5pX3VpZCA9IHNiaS0+b3B0aW9u cy5mc191aWQ7CiAJaW5vZGUtPmlfZ2lkID0gc2JpLT5vcHRpb25zLmZzX2dpZDsKIAlpbm9kZV9p bmNfaXZlcnNpb24oaW5vZGUpOwotCWlub2RlLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3UzMigp OworCWlub2RlLT5pX2dlbmVyYXRpb24gPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJaWYgKGluZm8t PmF0dHIgJiBBVFRSX1NVQkRJUikgeyAvKiBkaXJlY3RvcnkgKi8KIAkJaW5vZGUtPmlfZ2VuZXJh dGlvbiAmPSB+MTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaWFsbG9jLmMgYi9mcy9leHQ0L2lhbGxv Yy5jCmluZGV4IDc1NzVhYTM1OTY3NS4uZTliYzQ2Njg0MTA2IDEwMDY0NAotLS0gYS9mcy9leHQ0 L2lhbGxvYy5jCisrKyBiL2ZzL2V4dDQvaWFsbG9jLmMKQEAgLTEyNzksNyArMTI3OSw3IEBAIHN0 cnVjdCBpbm9kZSAqX19leHQ0X25ld19pbm9kZShzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm1udF91 c2VybnMsCiAJCQkJCUVYVDRfR1JPVVBfSU5GT19JQklUTUFQX0NPUlJVUFQpOwogCQlnb3RvIG91 dDsKIAl9Ci0JaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IHByYW5kb21fdTMyKCk7CisJaW5vZGUtPmlf Z2VuZXJhdGlvbiA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAkvKiBQcmVjb21wdXRlIGNoZWNrc3Vt IHNlZWQgZm9yIGlub2RlIG1ldGFkYXRhICovCiAJaWYgKGV4dDRfaGFzX21ldGFkYXRhX2NzdW0o c2IpKSB7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2lvY3RsLmMgYi9mcy9leHQ0L2lvY3RsLmMKaW5k ZXggNGQ0OWM1Y2ZiNjkwLi5kZWQ1MzU1MzViMjcgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW9jdGwu YworKysgYi9mcy9leHQ0L2lvY3RsLmMKQEAgLTQ1NCw4ICs0NTQsOCBAQCBzdGF0aWMgbG9uZyBz d2FwX2lub2RlX2Jvb3RfbG9hZGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJaW5vZGUtPmlf Y3RpbWUgPSBpbm9kZV9ibC0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7CiAJaW5vZGVf aW5jX2l2ZXJzaW9uKGlub2RlKTsKIAotCWlub2RlLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3Uz MigpOwotCWlub2RlX2JsLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3UzMigpOworCWlub2RlLT5p X2dlbmVyYXRpb24gPSBnZXRfcmFuZG9tX3UzMigpOworCWlub2RlX2JsLT5pX2dlbmVyYXRpb24g PSBnZXRfcmFuZG9tX3UzMigpOwogCWV4dDRfcmVzZXRfaW5vZGVfc2VlZChpbm9kZSk7CiAJZXh0 NF9yZXNldF9pbm9kZV9zZWVkKGlub2RlX2JsKTsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9tbXAu YyBiL2ZzL2V4dDQvbW1wLmMKaW5kZXggOWFmNjhhN2VjZGNmLi41ODhjYjA5YzUyOTEgMTAwNjQ0 Ci0tLSBhL2ZzL2V4dDQvbW1wLmMKKysrIGIvZnMvZXh0NC9tbXAuYwpAQCAtMjY1LDcgKzI2NSw3 IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbW1wX25ld19zZXEodm9pZCkKIAl1MzIgbmV3X3NlcTsK IAogCWRvIHsKLQkJbmV3X3NlcSA9IHByYW5kb21fdTMyKCk7CisJCW5ld19zZXEgPSBnZXRfcmFu ZG9tX3UzMigpOwogCX0gd2hpbGUgKG5ld19zZXEgPiBFWFQ0X01NUF9TRVFfTUFYKTsKIAogCXJl dHVybiBuZXdfc2VxOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9uYW1laS5jIGIvZnMvZjJmcy9uYW1l aS5jCmluZGV4IGJmMDBkNTA1N2FiYi4uOTM5NTM2OTgyYzNlIDEwMDY0NAotLS0gYS9mcy9mMmZz L25hbWVpLmMKKysrIGIvZnMvZjJmcy9uYW1laS5jCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBz dHJ1Y3QgaW5vZGUgKmYyZnNfbmV3X2lub2RlKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50X3Vz ZXJucywKIAlpbm9kZS0+aV9ibG9ja3MgPSAwOwogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlf YXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRfdGltZShpbm9kZSk7CiAJRjJGU19JKGlu b2RlKS0+aV9jcnRpbWUgPSBpbm9kZS0+aV9tdGltZTsKLQlpbm9kZS0+aV9nZW5lcmF0aW9uID0g cHJhbmRvbV91MzIoKTsKKwlpbm9kZS0+aV9nZW5lcmF0aW9uID0gZ2V0X3JhbmRvbV91MzIoKTsK IAogCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpKQogCQlGMkZTX0koaW5vZGUpLT5pX2N1cnJl bnRfZGVwdGggPSAxOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUu YwppbmRleCBhMzgyMzhkNzVjMDguLjFjYmNjNDYwOGRjNyAxMDA2NDQKLS0tIGEvZnMvZmF0L2lu b2RlLmMKKysrIGIvZnMvZmF0L2lub2RlLmMKQEAgLTUyMyw3ICs1MjMsNyBAQCBpbnQgZmF0X2Zp bGxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGUp CiAJaW5vZGUtPmlfdWlkID0gc2JpLT5vcHRpb25zLmZzX3VpZDsKIAlpbm9kZS0+aV9naWQgPSBz YmktPm9wdGlvbnMuZnNfZ2lkOwogCWlub2RlX2luY19pdmVyc2lvbihpbm9kZSk7Ci0JaW5vZGUt PmlfZ2VuZXJhdGlvbiA9IHByYW5kb21fdTMyKCk7CisJaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IGdl dF9yYW5kb21fdTMyKCk7CiAKIAlpZiAoKGRlLT5hdHRyICYgQVRUUl9ESVIpICYmICFJU19GUkVF KGRlLT5uYW1lKSkgewogCQlpbm9kZS0+aV9nZW5lcmF0aW9uICY9IH4xOwpkaWZmIC0tZ2l0IGEv ZnMvbmZzZC9uZnM0c3RhdGUuYyBiL2ZzL25mc2QvbmZzNHN0YXRlLmMKaW5kZXggMTk4ZDdhYmYz NGU0Li40ZTcxODUwMGEwMGMgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZzNHN0YXRlLmMKKysrIGIv ZnMvbmZzZC9uZnM0c3RhdGUuYwpAQCAtNDM3NSw4ICs0Mzc1LDggQEAgbmZzZDRfaW5pdF9sZWFz ZXNfbmV0KHN0cnVjdCBuZnNkX25ldCAqbm4pCiAJbm4tPm5mc2Q0X2dyYWNlID0gOTA7CiAJbm4t PnNvbWVib2R5X3JlY2xhaW1lZCA9IGZhbHNlOwogCW5uLT50cmFja19yZWNsYWltX2NvbXBsZXRl cyA9IGZhbHNlOwotCW5uLT5jbHZlcmlmaWVyX2NvdW50ZXIgPSBwcmFuZG9tX3UzMigpOwotCW5u LT5jbGllbnRpZF9iYXNlID0gcHJhbmRvbV91MzIoKTsKKwlubi0+Y2x2ZXJpZmllcl9jb3VudGVy ID0gZ2V0X3JhbmRvbV91MzIoKTsKKwlubi0+Y2xpZW50aWRfYmFzZSA9IGdldF9yYW5kb21fdTMy KCk7CiAJbm4tPmNsaWVudGlkX2NvdW50ZXIgPSBubi0+Y2xpZW50aWRfYmFzZSArIDE7CiAJbm4t PnMyc19jcF9jbF9pZCA9IG5uLT5jbGllbnRpZF9jb3VudGVyKys7CiAKZGlmZiAtLWdpdCBhL2Zz L250ZnMzL2ZzbG9nLmMgYi9mcy9udGZzMy9mc2xvZy5jCmluZGV4IGU3YzQ5NDAwNTEyMi4uMGQ2 MTFhNmM1NTExIDEwMDY0NAotLS0gYS9mcy9udGZzMy9mc2xvZy5jCisrKyBiL2ZzL250ZnMzL2Zz bG9nLmMKQEAgLTM4MTksNyArMzgxOSw3IEBAIGludCBsb2dfcmVwbGF5KHN0cnVjdCBudGZzX2lu b2RlICpuaSwgYm9vbCAqaW5pdGlhbGl6ZWQpCiAJCX0KIAogCQlsb2dfaW5pdF9wZ19oZHIobG9n LCBwYWdlX3NpemUsIHBhZ2Vfc2l6ZSwgMSwgMSk7Ci0JCWxvZ19jcmVhdGUobG9nLCBsX3NpemUs IDAsIGdldF9yYW5kb21faW50KCksIGZhbHNlLCBmYWxzZSk7CisJCWxvZ19jcmVhdGUobG9nLCBs X3NpemUsIDAsIGdldF9yYW5kb21fdTMyKCksIGZhbHNlLCBmYWxzZSk7CiAKIAkJbG9nLT5yYSA9 IHJhOwogCkBAIC0zODkzLDcgKzM4OTMsNyBAQCBpbnQgbG9nX3JlcGxheShzdHJ1Y3QgbnRmc19p bm9kZSAqbmksIGJvb2wgKmluaXRpYWxpemVkKQogCiAJCS8qIERvIHNvbWUgY2hlY2tzIGJhc2Vk IG9uIHdoZXRoZXIgd2UgaGF2ZSBhIHZhbGlkIGxvZyBwYWdlLiAqLwogCQlpZiAoIXJzdF9pbmZv LnZhbGlkX3BhZ2UpIHsKLQkJCW9wZW5fbG9nX2NvdW50ID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJ CW9wZW5fbG9nX2NvdW50ID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJCWdvdG8gaW5pdF9sb2dfaW5z dGFuY2U7CiAJCX0KIAkJb3Blbl9sb2dfY291bnQgPSBsZTMyX3RvX2NwdShyYTItPm9wZW5fbG9n X2NvdW50KTsKQEAgLTQwNDQsNyArNDA0NCw3IEBAIGludCBsb2dfcmVwbGF5KHN0cnVjdCBudGZz X2lub2RlICpuaSwgYm9vbCAqaW5pdGlhbGl6ZWQpCiAJCW1lbWNweShyYS0+Y2xpZW50cywgQWRk MlB0cihyYTIsIHQxNiksCiAJCSAgICAgICBsZTE2X3RvX2NwdShyYTItPnJhX2xlbikgLSB0MTYp OwogCi0JCWxvZy0+Y3VycmVudF9vcGVubG9nX2NvdW50ID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJ bG9nLT5jdXJyZW50X29wZW5sb2dfY291bnQgPSBnZXRfcmFuZG9tX3UzMigpOwogCQlyYS0+b3Bl bl9sb2dfY291bnQgPSBjcHVfdG9fbGUzMihsb2ctPmN1cnJlbnRfb3BlbmxvZ19jb3VudCk7CiAJ CWxvZy0+cmFfc2l6ZSA9IG9mZnNldG9mKHN0cnVjdCBSRVNUQVJUX0FSRUEsIGNsaWVudHMpICsK IAkJCSAgICAgICBzaXplb2Yoc3RydWN0IENMSUVOVF9SRUMpOwpkaWZmIC0tZ2l0IGEvZnMvdWJp ZnMvam91cm5hbC5jIGIvZnMvdWJpZnMvam91cm5hbC5jCmluZGV4IDc1ZGFiMGFlMzkzOS4uNDYx OTY1MjA0NmNmIDEwMDY0NAotLS0gYS9mcy91Ymlmcy9qb3VybmFsLmMKKysrIGIvZnMvdWJpZnMv am91cm5hbC5jCkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGljIHZvaWQgbWFya19pbm9kZV9jbGVh bihzdHJ1Y3QgdWJpZnNfaW5mbyAqYywgc3RydWN0IHViaWZzX2lub2RlICp1aSkKIHN0YXRpYyB2 b2lkIHNldF9kZW50X2Nvb2tpZShzdHJ1Y3QgdWJpZnNfaW5mbyAqYywgc3RydWN0IHViaWZzX2Rl bnRfbm9kZSAqZGVudCkKIHsKIAlpZiAoYy0+ZG91YmxlX2hhc2gpCi0JCWRlbnQtPmNvb2tpZSA9 IChfX2ZvcmNlIF9fbGUzMikgcHJhbmRvbV91MzIoKTsKKwkJZGVudC0+Y29va2llID0gKF9fZm9y Y2UgX19sZTMyKSBnZXRfcmFuZG9tX3UzMigpOwogCWVsc2UKIAkJZGVudC0+Y29va2llID0gMDsK IH0KZGlmZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2lhbGxvYy5jIGIvZnMveGZzL2xpYnhm cy94ZnNfaWFsbG9jLmMKaW5kZXggNzgzOGIzMTEyNmUyLi45NGRiNTBlYjcwNmEgMTAwNjQ0Ci0t LSBhL2ZzL3hmcy9saWJ4ZnMveGZzX2lhbGxvYy5jCisrKyBiL2ZzL3hmcy9saWJ4ZnMveGZzX2lh bGxvYy5jCkBAIC04MDUsNyArODA1LDcgQEAgeGZzX2lhbGxvY19hZ19hbGxvYygKIAkgKiBudW1i ZXIgZnJvbSBiZWluZyBlYXNpbHkgZ3Vlc3NhYmxlLgogCSAqLwogCWVycm9yID0geGZzX2lhbGxv Y19pbm9kZV9pbml0KGFyZ3MubXAsIHRwLCBOVUxMLCBuZXdsZW4sIHBhZy0+cGFnX2Fnbm8sCi0J CQlhcmdzLmFnYm5vLCBhcmdzLmxlbiwgcHJhbmRvbV91MzIoKSk7CisJCQlhcmdzLmFnYm5vLCBh cmdzLmxlbiwgZ2V0X3JhbmRvbV91MzIoKSk7CiAKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJv cjsKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfaWNhY2hlLmMgYi9mcy94ZnMveGZzX2ljYWNoZS5j CmluZGV4IDJiYmU3OTE2YTk5OC4uZWFlNzQyNzA2MmNmIDEwMDY0NAotLS0gYS9mcy94ZnMveGZz X2ljYWNoZS5jCisrKyBiL2ZzL3hmcy94ZnNfaWNhY2hlLmMKQEAgLTU5Niw3ICs1OTYsNyBAQCB4 ZnNfaWdldF9jYWNoZV9taXNzKAogCSAqLwogCWlmICh4ZnNfaGFzX3YzaW5vZGVzKG1wKSAmJgog CSAgICAoZmxhZ3MgJiBYRlNfSUdFVF9DUkVBVEUpICYmICF4ZnNfaGFzX2lrZWVwKG1wKSkgewot CQlWRlNfSShpcCktPmlfZ2VuZXJhdGlvbiA9IHByYW5kb21fdTMyKCk7CisJCVZGU19JKGlwKS0+ aV9nZW5lcmF0aW9uID0gZ2V0X3JhbmRvbV91MzIoKTsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgeGZz X2J1ZgkJKmJwOwogCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2xvZy5jIGIvZnMveGZzL3hmc19s b2cuYwppbmRleCAzODZiMDMwN2FlZDguLmFkODY1MmNiZjI0NSAxMDA2NDQKLS0tIGEvZnMveGZz L3hmc19sb2cuYworKysgYi9mcy94ZnMveGZzX2xvZy5jCkBAIC0zNTQ0LDcgKzM1NDQsNyBAQCB4 bG9nX3RpY2tldF9hbGxvYygKIAl0aWMtPnRfY3Vycl9yZXMJCT0gdW5pdF9yZXM7CiAJdGljLT50 X2NudAkJPSBjbnQ7CiAJdGljLT50X29jbnQJCT0gY250OwotCXRpYy0+dF90aWQJCT0gcHJhbmRv bV91MzIoKTsKKwl0aWMtPnRfdGlkCQk9IGdldF9yYW5kb21fdTMyKCk7CiAJaWYgKHBlcm1hbmVu dCkKIAkJdGljLT50X2ZsYWdzIHw9IFhMT0dfVElDX1BFUk1fUkVTRVJWOwogCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9uZXRmaWx0ZXIvbmZfcXVldWUuaCBiL2luY2x1ZGUvbmV0L25ldGZpbHRl ci9uZl9xdWV1ZS5oCmluZGV4IDk4MGRhYTZlMWUzYS4uYzgxMDIxYWIwN2FhIDEwMDY0NAotLS0g YS9pbmNsdWRlL25ldC9uZXRmaWx0ZXIvbmZfcXVldWUuaAorKysgYi9pbmNsdWRlL25ldC9uZXRm aWx0ZXIvbmZfcXVldWUuaApAQCAtNDMsNyArNDMsNyBAQCB2b2lkIG5mX3F1ZXVlX2VudHJ5X2Zy ZWUoc3RydWN0IG5mX3F1ZXVlX2VudHJ5ICplbnRyeSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgaW5p dF9oYXNocmFuZG9tKHUzMiAqamhhc2hfaW5pdHZhbCkKIHsKIAl3aGlsZSAoKmpoYXNoX2luaXR2 YWwgPT0gMCkKLQkJKmpoYXNoX2luaXR2YWwgPSBwcmFuZG9tX3UzMigpOworCQkqamhhc2hfaW5p dHZhbCA9IGdldF9yYW5kb21fdTMyKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGhhc2hfdjQo Y29uc3Qgc3RydWN0IGlwaGRyICppcGgsIHUzMiBpbml0dmFsKQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9uZXQvcmVkLmggYi9pbmNsdWRlL25ldC9yZWQuaAppbmRleCA0NTRhYzJiNjVkOGMuLjQyNTM2 NGRlMGRmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcmVkLmgKKysrIGIvaW5jbHVkZS9uZXQv cmVkLmgKQEAgLTM2Myw3ICszNjMsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgcmVk X2NhbGNfcWF2Zyhjb25zdCBzdHJ1Y3QgcmVkX3Bhcm1zICpwLAogCiBzdGF0aWMgaW5saW5lIHUz MiByZWRfcmFuZG9tKGNvbnN0IHN0cnVjdCByZWRfcGFybXMgKnApCiB7Ci0JcmV0dXJuIHJlY2lw cm9jYWxfZGl2aWRlKHByYW5kb21fdTMyKCksIHAtPm1heF9QX3JlY2lwcm9jYWwpOworCXJldHVy biByZWNpcHJvY2FsX2RpdmlkZShnZXRfcmFuZG9tX3UzMigpLCBwLT5tYXhfUF9yZWNpcHJvY2Fs KTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcmVkX21hcmtfcHJvYmFiaWxpdHkoY29uc3Qgc3Ry dWN0IHJlZF9wYXJtcyAqcCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1 ZGUvbmV0L3NvY2suaAppbmRleCAwODAzOGEzODVlZjIuLjllNDY0ZjY0MDlhNyAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBiL2luY2x1ZGUvbmV0L3NvY2suaApAQCAtMjEwOSw3 ICsyMTA5LDcgQEAgc3RhdGljIGlubGluZSBrdWlkX3Qgc29ja19uZXRfdWlkKGNvbnN0IHN0cnVj dCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrKQogCiBzdGF0aWMgaW5saW5lIHUzMiBu ZXRfdHhfcm5kaGFzaCh2b2lkKQogewotCXUzMiB2ID0gcHJhbmRvbV91MzIoKTsKKwl1MzIgdiA9 IGdldF9yYW5kb21fdTMyKCk7CiAKIAlyZXR1cm4gdiA/OiAxOwogfQpkaWZmIC0tZ2l0IGEva2Vy bmVsL2JwZi9ibG9vbV9maWx0ZXIuYyBiL2tlcm5lbC9icGYvYmxvb21fZmlsdGVyLmMKaW5kZXgg YjllYTUzOWE1NTYxLi40OGVlNzUwODQ5ZjIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvYmxvb21f ZmlsdGVyLmMKKysrIGIva2VybmVsL2JwZi9ibG9vbV9maWx0ZXIuYwpAQCAtMTU4LDcgKzE1OCw3 IEBAIHN0YXRpYyBzdHJ1Y3QgYnBmX21hcCAqYmxvb21fbWFwX2FsbG9jKHVuaW9uIGJwZl9hdHRy ICphdHRyKQogCQkJYXR0ci0+dmFsdWVfc2l6ZSAvIHNpemVvZih1MzIpOwogCiAJaWYgKCEoYXR0 ci0+bWFwX2ZsYWdzICYgQlBGX0ZfWkVST19TRUVEKSkKLQkJYmxvb20tPmhhc2hfc2VlZCA9IGdl dF9yYW5kb21faW50KCk7CisJCWJsb29tLT5oYXNoX3NlZWQgPSBnZXRfcmFuZG9tX3UzMigpOwog CiAJcmV0dXJuICZibG9vbS0+bWFwOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9jb3JlLmMg Yi9rZXJuZWwvYnBmL2NvcmUuYwppbmRleCAxOTU5MzYyN2UwMzcuLjA1ZDc1ZmUxN2I5YiAxMDA2 NDQKLS0tIGEva2VybmVsL2JwZi9jb3JlLmMKKysrIGIva2VybmVsL2JwZi9jb3JlLmMKQEAgLTEy MTYsNyArMTIxNiw3IEBAIHN0YXRpYyBpbnQgYnBmX2ppdF9ibGluZF9pbnNuKGNvbnN0IHN0cnVj dCBicGZfaW5zbiAqZnJvbSwKIAkJCSAgICAgIGJvb2wgZW1pdF96ZXh0KQogewogCXN0cnVjdCBi cGZfaW5zbiAqdG8gPSB0b19idWZmOwotCXUzMiBpbW1fcm5kID0gZ2V0X3JhbmRvbV9pbnQoKTsK Kwl1MzIgaW1tX3JuZCA9IGdldF9yYW5kb21fdTMyKCk7CiAJczE2IG9mZjsKIAogCUJVSUxEX0JV R19PTihCUEZfUkVHX0FYICArIDEgIT0gTUFYX0JQRl9KSVRfUkVHKTsKZGlmZiAtLWdpdCBhL2tl cm5lbC9icGYvaGFzaHRhYi5jIGIva2VybmVsL2JwZi9oYXNodGFiLmMKaW5kZXggZWQzZjhhNTM2 MDNiLi5mMzllZTNlMDU1ODkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvaGFzaHRhYi5jCisrKyBi L2tlcm5lbC9icGYvaGFzaHRhYi5jCkBAIC01MjcsNyArNTI3LDcgQEAgc3RhdGljIHN0cnVjdCBi cGZfbWFwICpodGFiX21hcF9hbGxvYyh1bmlvbiBicGZfYXR0ciAqYXR0cikKIAlpZiAoaHRhYi0+ bWFwLm1hcF9mbGFncyAmIEJQRl9GX1pFUk9fU0VFRCkKIAkJaHRhYi0+aGFzaHJuZCA9IDA7CiAJ ZWxzZQotCQlodGFiLT5oYXNocm5kID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJaHRhYi0+aGFzaHJu ZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlodGFiX2luaXRfYnVja2V0cyhodGFiKTsKIApkaWZm IC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmlu ZGV4IDZmNmQyZDUxMWMwNi4uMDE0ZWUwOTUzZGJkIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3Zl cmlmaWVyLmMKKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jCkBAIC0xMzM1MCw3ICsxMzM1MCw3 IEBAIHN0YXRpYyBpbnQgb3B0X3N1YnJlZ196ZXh0X2xvMzJfcm5kX2hpMzIoc3RydWN0IGJwZl92 ZXJpZmllcl9lbnYgKmVudiwKIAkJCSAgICBhdXhbYWRqX2lkeF0ucHRyX3R5cGUgPT0gUFRSX1RP X0NUWCkKIAkJCQljb250aW51ZTsKIAotCQkJaW1tX3JuZCA9IGdldF9yYW5kb21faW50KCk7CisJ CQlpbW1fcm5kID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJCXJuZF9oaTMyX3BhdGNoWzBdID0gaW5z bjsKIAkJCXJuZF9oaTMyX3BhdGNoWzFdLmltbSA9IGltbV9ybmQ7CiAJCQlybmRfaGkzMl9wYXRj aFszXS5kc3RfcmVnID0gbG9hZF9yZWc7CmRpZmYgLS1naXQgYS9rZXJuZWwva2NzYW4vc2VsZnRl c3QuYyBiL2tlcm5lbC9rY3Nhbi9zZWxmdGVzdC5jCmluZGV4IDc1NzEyOTU5Yzg0ZS4uNThiOTRk ZWFlNWMwIDEwMDY0NAotLS0gYS9rZXJuZWwva2NzYW4vc2VsZnRlc3QuYworKysgYi9rZXJuZWwv a2NzYW4vc2VsZnRlc3QuYwpAQCAtMjYsNyArMjYsNyBAQAogc3RhdGljIGJvb2wgX19pbml0IHRl c3RfcmVxdWlyZXModm9pZCkKIHsKIAkvKiByYW5kb20gc2hvdWxkIGJlIGluaXRpYWxpemVkIGZv ciB0aGUgYmVsb3cgdGVzdHMgKi8KLQlyZXR1cm4gcHJhbmRvbV91MzIoKSArIHByYW5kb21fdTMy KCkgIT0gMDsKKwlyZXR1cm4gZ2V0X3JhbmRvbV91MzIoKSArIGdldF9yYW5kb21fdTMyKCkgIT0g MDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmMK aW5kZXggZDVkOTAyOTM2MmNiLi5kNGYxOWUxYTY5ZDQgMTAwNjQ0Ci0tLSBhL2xpYi9yYW5kb20z Mi5jCisrKyBiL2xpYi9yYW5kb20zMi5jCkBAIC00Nyw3ICs0Nyw3IEBACiAgKglAc3RhdGU6IHBv aW50ZXIgdG8gc3RhdGUgc3RydWN0dXJlIGhvbGRpbmcgc2VlZGVkIHN0YXRlLgogICoKICAqCVRo aXMgaXMgdXNlZCBmb3IgcHNldWRvLXJhbmRvbW5lc3Mgd2l0aCBubyBvdXRzaWRlIHNlZWRpbmcu Ci0gKglGb3IgbW9yZSByYW5kb20gcmVzdWx0cywgdXNlIHByYW5kb21fdTMyKCkuCisgKglGb3Ig bW9yZSByYW5kb20gcmVzdWx0cywgdXNlIGdldF9yYW5kb21fdTMyKCkuCiAgKi8KIHUzMiBwcmFu ZG9tX3UzMl9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL2xp Yi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jIGIvbGliL3JlZWRfc29sb21vbi90ZXN0X3JzbGli LmMKaW5kZXggNGQyNDFiZGM4OGFhLi44NDhlN2ViNWRhOTIgMTAwNjQ0Ci0tLSBhL2xpYi9yZWVk X3NvbG9tb24vdGVzdF9yc2xpYi5jCisrKyBiL2xpYi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5j CkBAIC0xNjQsNyArMTY0LDcgQEAgc3RhdGljIGludCBnZXRfcmN3X3dlKHN0cnVjdCByc19jb250 cm9sICpycywgc3RydWN0IHdzcGFjZSAqd3MsCiAKIAkvKiBMb2FkIGMgd2l0aCByYW5kb20gZGF0 YSBhbmQgZW5jb2RlICovCiAJZm9yIChpID0gMDsgaSA8IGRsZW47IGkrKykKLQkJY1tpXSA9IHBy YW5kb21fdTMyKCkgJiBubjsKKwkJY1tpXSA9IGdldF9yYW5kb21fdTMyKCkgJiBubjsKIAogCW1l bXNldChjICsgZGxlbiwgMCwgbnJvb3RzICogc2l6ZW9mKCpjKSk7CiAJZW5jb2RlX3JzMTYocnMs IGMsIGRsZW4sIGMgKyBkbGVuLCAwKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgaW50IGdl dF9yY3dfd2Uoc3RydWN0IHJzX2NvbnRyb2wgKnJzLCBzdHJ1Y3Qgd3NwYWNlICp3cywKIAlmb3Ig KGkgPSAwOyBpIDwgZXJyczsgaSsrKSB7CiAJCWRvIHsKIAkJCS8qIEVycm9yIHZhbHVlIG11c3Qg YmUgbm9uemVybyAqLwotCQkJZXJydmFsID0gcHJhbmRvbV91MzIoKSAmIG5uOworCQkJZXJydmFs ID0gZ2V0X3JhbmRvbV91MzIoKSAmIG5uOwogCQl9IHdoaWxlIChlcnJ2YWwgPT0gMCk7CiAKIAkJ ZG8gewpAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgZ2V0X3Jjd193ZShzdHJ1Y3QgcnNf Y29udHJvbCAqcnMsIHN0cnVjdCB3c3BhY2UgKndzLAogCQkJLyogRXJhc3VyZSB3aXRoIGNvcnJ1 cHRlZCBzeW1ib2wgKi8KIAkJCWRvIHsKIAkJCQkvKiBFcnJvciB2YWx1ZSBtdXN0IGJlIG5vbnpl cm8gKi8KLQkJCQllcnJ2YWwgPSBwcmFuZG9tX3UzMigpICYgbm47CisJCQkJZXJydmFsID0gZ2V0 X3JhbmRvbV91MzIoKSAmIG5uOwogCQkJfSB3aGlsZSAoZXJydmFsID09IDApOwogCiAJCQllcnJs b2NzW2VycmxvY10gPSAxOwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RfZnByb2JlLmMgYi9saWIvdGVz dF9mcHJvYmUuYwppbmRleCBlZDcwNjM3YTJmZmEuLmUwMzgxYjNlYzQxMCAxMDA2NDQKLS0tIGEv bGliL3Rlc3RfZnByb2JlLmMKKysrIGIvbGliL3Rlc3RfZnByb2JlLmMKQEAgLTE0NSw3ICsxNDUs NyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfZnRyYWNlX2xvY2F0aW9uKHZvaWQgKmZ1bmMp CiBzdGF0aWMgaW50IGZwcm9iZV90ZXN0X2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KQogewogCWRv IHsKLQkJcmFuZDEgPSBwcmFuZG9tX3UzMigpOworCQlyYW5kMSA9IGdldF9yYW5kb21fdTMyKCk7 CiAJfSB3aGlsZSAocmFuZDEgPD0gZGl2X2ZhY3Rvcik7CiAKIAl0YXJnZXQgPSBmcHJvYmVfc2Vs ZnRlc3RfdGFyZ2V0OwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3Rfa3Byb2Jlcy5jIGIvbGliL3Rlc3Rf a3Byb2Jlcy5jCmluZGV4IGE1ZWRjMmViYzk0Ny4uZWViMWQ3MjhkOTc0IDEwMDY0NAotLS0gYS9s aWIvdGVzdF9rcHJvYmVzLmMKKysrIGIvbGliL3Rlc3Rfa3Byb2Jlcy5jCkBAIC0zNDEsNyArMzQx LDcgQEAgc3RhdGljIGludCBrcHJvYmVzX3Rlc3RfaW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QpCiAJ c3RhY2t0cmFjZV9kcml2ZXIgPSBrcHJvYmVfc3RhY2t0cmFjZV9kcml2ZXI7CiAKIAlkbyB7Ci0J CXJhbmQxID0gcHJhbmRvbV91MzIoKTsKKwkJcmFuZDEgPSBnZXRfcmFuZG9tX3UzMigpOwogCX0g d2hpbGUgKHJhbmQxIDw9IGRpdl9mYWN0b3IpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv bGliL3Rlc3RfbWluX2hlYXAuYyBiL2xpYi90ZXN0X21pbl9oZWFwLmMKaW5kZXggZDE5YzgwODBm ZDRkLi43YjAxYjQzODdjZmIgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0X21pbl9oZWFwLmMKKysrIGIv bGliL3Rlc3RfbWluX2hlYXAuYwpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgX19pbml0IGludCB0 ZXN0X2hlYXBpZnlfYWxsKGJvb2wgbWluX2hlYXApCiAJLyogVGVzdCB3aXRoIHJhbmRvbWx5IGdl bmVyYXRlZCB2YWx1ZXMuICovCiAJaGVhcC5uciA9IEFSUkFZX1NJWkUodmFsdWVzKTsKIAlmb3Ig KGkgPSAwOyBpIDwgaGVhcC5ucjsgaSsrKQotCQl2YWx1ZXNbaV0gPSBnZXRfcmFuZG9tX2ludCgp OworCQl2YWx1ZXNbaV0gPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJbWluX2hlYXBpZnlfYWxsKCZo ZWFwLCAmZnVuY3MpOwogCWVyciArPSBwb3BfdmVyaWZ5X2hlYXAobWluX2hlYXAsICZoZWFwLCAm ZnVuY3MpOwpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBfX2luaXQgaW50IHRlc3RfaGVhcF9w dXNoKGJvb2wgbWluX2hlYXApCiAKIAkvKiBUZXN0IHdpdGggcmFuZG9tbHkgZ2VuZXJhdGVkIHZh bHVlcy4gKi8KIAl3aGlsZSAoaGVhcC5uciA8IGhlYXAuc2l6ZSkgewotCQl0ZW1wID0gZ2V0X3Jh bmRvbV9pbnQoKTsKKwkJdGVtcCA9IGdldF9yYW5kb21fdTMyKCk7CiAJCW1pbl9oZWFwX3B1c2go JmhlYXAsICZ0ZW1wLCAmZnVuY3MpOwogCX0KIAllcnIgKz0gcG9wX3ZlcmlmeV9oZWFwKG1pbl9o ZWFwLCAmaGVhcCwgJmZ1bmNzKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBzdGF0aWMgX19pbml0IGlu dCB0ZXN0X2hlYXBfcG9wX3B1c2goYm9vbCBtaW5faGVhcCkKIAogCS8qIFRlc3Qgd2l0aCByYW5k b21seSBnZW5lcmF0ZWQgdmFsdWVzLiAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRh dGEpOyBpKyspIHsKLQkJdGVtcCA9IGdldF9yYW5kb21faW50KCk7CisJCXRlbXAgPSBnZXRfcmFu ZG9tX3UzMigpOwogCQltaW5faGVhcF9wb3BfcHVzaCgmaGVhcCwgJnRlbXAsICZmdW5jcyk7CiAJ fQogCWVyciArPSBwb3BfdmVyaWZ5X2hlYXAobWluX2hlYXAsICZoZWFwLCAmZnVuY3MpOwpkaWZm IC0tZ2l0IGEvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jIGIvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jCmlu ZGV4IDVhMWRkNDczNmI1Ni4uYjM1OGE3NGVkN2VkIDEwMDY0NAotLS0gYS9saWIvdGVzdF9yaGFz aHRhYmxlLmMKKysrIGIvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jCkBAIC0yOTEsNyArMjkxLDcgQEAg c3RhdGljIGludCBfX2luaXQgdGVzdF9yaGx0YWJsZSh1bnNpZ25lZCBpbnQgZW50cmllcykKIAlp ZiAoV0FSTl9PTihlcnIpKQogCQlnb3RvIG91dF9mcmVlOwogCi0JayA9IHByYW5kb21fdTMyKCk7 CisJayA9IGdldF9yYW5kb21fdTMyKCk7CiAJcmV0ID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgZW50 cmllczsgaSsrKSB7CiAJCXJobF90ZXN0X29iamVjdHNbaV0udmFsdWUuaWQgPSBrOwpAQCAtMzY5 LDEyICszNjksMTIgQEAgc3RhdGljIGludCBfX2luaXQgdGVzdF9yaGx0YWJsZSh1bnNpZ25lZCBp bnQgZW50cmllcykKIAlwcl9pbmZvKCJ0ZXN0ICVkIHJhbmRvbSByaGxpc3QgYWRkL2RlbGV0ZSBv cGVyYXRpb25zXG4iLCBlbnRyaWVzKTsKIAlmb3IgKGogPSAwOyBqIDwgZW50cmllczsgaisrKSB7 CiAJCXUzMiBpID0gcHJhbmRvbV91MzJfbWF4KGVudHJpZXMpOwotCQl1MzIgcHJhbmQgPSBwcmFu ZG9tX3UzMigpOworCQl1MzIgcHJhbmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJCWNvbmRfcmVz Y2hlZCgpOwogCiAJCWlmIChwcmFuZCA9PSAwKQotCQkJcHJhbmQgPSBwcmFuZG9tX3UzMigpOwor CQkJcHJhbmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJCWlmIChwcmFuZCAmIDEpIHsKIAkJCXBy YW5kID4+PSAxOwpkaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmMKaW5kZXggNDJl NTg4OGJmODRkLi42ZjJjZWY3MzgwOGQgMTAwNjQ0Ci0tLSBhL21tL3NobWVtLmMKKysrIGIvbW0v c2htZW0uYwpAQCAtMjMzMCw3ICsyMzMwLDcgQEAgc3RhdGljIHN0cnVjdCBpbm9kZSAqc2htZW1f Z2V0X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBpbm9kZSAqZGlyLAogCQlp bm9kZV9pbml0X293bmVyKCZpbml0X3VzZXJfbnMsIGlub2RlLCBkaXIsIG1vZGUpOwogCQlpbm9k ZS0+aV9ibG9ja3MgPSAwOwogCQlpbm9kZS0+aV9hdGltZSA9IGlub2RlLT5pX210aW1lID0gaW5v ZGUtPmlfY3RpbWUgPSBjdXJyZW50X3RpbWUoaW5vZGUpOwotCQlpbm9kZS0+aV9nZW5lcmF0aW9u ID0gcHJhbmRvbV91MzIoKTsKKwkJaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IGdldF9yYW5kb21fdTMy KCk7CiAJCWluZm8gPSBTSE1FTV9JKGlub2RlKTsKIAkJbWVtc2V0KGluZm8sIDAsIChjaGFyICop aW5vZGUgLSAoY2hhciAqKWluZm8pOwogCQlzcGluX2xvY2tfaW5pdCgmaW5mby0+bG9jayk7CmRp ZmYgLS1naXQgYS9tbS9zbGFiLmMgYi9tbS9zbGFiLmMKaW5kZXggYTU0ODZmZjgzNjJhLi42MGNk MTliOWVlMDQgMTAwNjQ0Ci0tLSBhL21tL3NsYWIuYworKysgYi9tbS9zbGFiLmMKQEAgLTIzODAs NyArMjM4MCw3IEBAIHN0YXRpYyBib29sIGZyZWVsaXN0X3N0YXRlX2luaXRpYWxpemUodW5pb24g ZnJlZWxpc3RfaW5pdF9zdGF0ZSAqc3RhdGUsCiAJdW5zaWduZWQgaW50IHJhbmQ7CiAKIAkvKiBV c2UgYmVzdCBlbnRyb3B5IGF2YWlsYWJsZSB0byBkZWZpbmUgYSByYW5kb20gc2hpZnQgKi8KLQly YW5kID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwlyYW5kID0gZ2V0X3JhbmRvbV91MzIoKTsKIAogCS8q IFVzZSBhIHJhbmRvbSBzdGF0ZSBpZiB0aGUgcHJlLWNvbXB1dGVkIGxpc3QgaXMgbm90IGF2YWls YWJsZSAqLwogCWlmICghY2FjaGVwLT5yYW5kb21fc2VxKSB7CmRpZmYgLS1naXQgYS9uZXQvY29y ZS9wa3RnZW4uYyBiL25ldC9jb3JlL3BrdGdlbi5jCmluZGV4IDVjYTRmOTUzMDM0Yy4uYzM3NjMw NTZjNTU0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3Rn ZW4uYwpAQCAtMjQ2NCw3ICsyNDY0LDcgQEAgc3RhdGljIHZvaWQgbW9kX2N1cl9oZWFkZXJzKHN0 cnVjdCBwa3RnZW5fZGV2ICpwa3RfZGV2KQogCQlmb3IgKGkgPSAwOyBpIDwgcGt0X2Rldi0+bnJf bGFiZWxzOyBpKyspCiAJCQlpZiAocGt0X2Rldi0+bGFiZWxzW2ldICYgTVBMU19TVEFDS19CT1RU T00pCiAJCQkJcGt0X2Rldi0+bGFiZWxzW2ldID0gTVBMU19TVEFDS19CT1RUT00gfAotCQkJCQkg ICAgICgoX19mb3JjZSBfX2JlMzIpcHJhbmRvbV91MzIoKSAmCisJCQkJCSAgICAgKChfX2ZvcmNl IF9fYmUzMilnZXRfcmFuZG9tX3UzMigpICYKIAkJCQkJCSAgICAgIGh0b25sKDB4MDAwZmZmZmYp KTsKIAl9CiAKQEAgLTI1NjgsNyArMjU2OCw3IEBAIHN0YXRpYyB2b2lkIG1vZF9jdXJfaGVhZGVy cyhzdHJ1Y3QgcGt0Z2VuX2RldiAqcGt0X2RldikKIAogCQkJZm9yIChpID0gMDsgaSA8IDQ7IGkr KykgewogCQkJCXBrdF9kZXYtPmN1cl9pbjZfZGFkZHIuczZfYWRkcjMyW2ldID0KLQkJCQkgICAg KCgoX19mb3JjZSBfX2JlMzIpcHJhbmRvbV91MzIoKSB8CisJCQkJICAgICgoKF9fZm9yY2UgX19i ZTMyKWdldF9yYW5kb21fdTMyKCkgfAogCQkJCSAgICAgIHBrdF9kZXYtPm1pbl9pbjZfZGFkZHIu czZfYWRkcjMyW2ldKSAmCiAJCQkJICAgICBwa3RfZGV2LT5tYXhfaW42X2RhZGRyLnM2X2FkZHIz MltpXSk7CiAJCQl9CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91 dGUuYwppbmRleCA3OTVjYmUxZGU5MTIuLjFhMzdhMDdjNzE2MyAxMDA2NDQKLS0tIGEvbmV0L2lw djQvcm91dGUuYworKysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC0zNjY0LDcgKzM2NjQsNyBAQCBz dGF0aWMgX19uZXRfaW5pdCBpbnQgcnRfZ2VuaWRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJ YXRvbWljX3NldCgmbmV0LT5pcHY0LnJ0X2dlbmlkLCAwKTsKIAlhdG9taWNfc2V0KCZuZXQtPmZu aGVfZ2VuaWQsIDApOwotCWF0b21pY19zZXQoJm5ldC0+aXB2NC5kZXZfYWRkcl9nZW5pZCwgZ2V0 X3JhbmRvbV9pbnQoKSk7CisJYXRvbWljX3NldCgmbmV0LT5pcHY0LmRldl9hZGRyX2dlbmlkLCBn ZXRfcmFuZG9tX3UzMigpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dGNwX2NkZy5jIGIvbmV0L2lwdjQvdGNwX2NkZy5jCmluZGV4IGRkYzdiYTA1NTRiZC4uZWZjZDE0 NWYwNmRiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfY2RnLmMKKysrIGIvbmV0L2lwdjQvdGNw X2NkZy5jCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIGJvb2wgdGNwX2NkZ19iYWNrb2ZmKHN0 cnVjdCBzb2NrICpzaywgdTMyIGdyYWQpCiAJc3RydWN0IGNkZyAqY2EgPSBpbmV0X2Nza19jYShz ayk7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CiAKLQlpZiAocHJhbmRvbV91 MzIoKSA8PSBuZXhwX3UzMihncmFkICogYmFja29mZl9mYWN0b3IpKQorCWlmIChnZXRfcmFuZG9t X3UzMigpIDw9IG5leHBfdTMyKGdyYWQgKiBiYWNrb2ZmX2ZhY3RvcikpCiAJCXJldHVybiBmYWxz ZTsKIAogCWlmICh1c2VfaW5lZmYpIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0 L2lwdjQvdWRwLmMKaW5kZXggZDYzMTE4Y2U1OTAwLi45ZjI2ODgyNDZkZWUgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC0yNDYsNyArMjQ2LDcgQEAg aW50IHVkcF9saWJfZ2V0X3BvcnQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBzaG9ydCBzbnVt LAogCQlpbmV0X2dldF9sb2NhbF9wb3J0X3JhbmdlKG5ldCwgJmxvdywgJmhpZ2gpOwogCQlyZW1h aW5pbmcgPSAoaGlnaCAtIGxvdykgKyAxOwogCi0JCXJhbmQgPSBwcmFuZG9tX3UzMigpOworCQly YW5kID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJZmlyc3QgPSByZWNpcHJvY2FsX3NjYWxlKHJhbmQs IHJlbWFpbmluZykgKyBsb3c7CiAJCS8qCiAJCSAqIGZvcmNlIHJhbmQgdG8gYmUgYW4gb2RkIG11 bHRpcGxlIG9mIFVEUF9IVEFCTEVfU0laRQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2Zsb3ds YWJlbC5jIGIvbmV0L2lwdjYvaXA2X2Zsb3dsYWJlbC5jCmluZGV4IGNlYjg1YzY3Y2UzOS4uMTg0 ODFlYjc2YTBhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKKysrIGIvbmV0 L2lwdjYvaXA2X2Zsb3dsYWJlbC5jCkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIHN0cnVjdCBp cDZfZmxvd2xhYmVsICpmbF9pbnRlcm4oc3RydWN0IG5ldCAqbmV0LAogCXNwaW5fbG9ja19iaCgm aXA2X2ZsX2xvY2spOwogCWlmIChsYWJlbCA9PSAwKSB7CiAJCWZvciAoOzspIHsKLQkJCWZsLT5s YWJlbCA9IGh0b25sKHByYW5kb21fdTMyKCkpJklQVjZfRkxPV0xBQkVMX01BU0s7CisJCQlmbC0+ bGFiZWwgPSBodG9ubChnZXRfcmFuZG9tX3UzMigpKSZJUFY2X0ZMT1dMQUJFTF9NQVNLOwogCQkJ aWYgKGZsLT5sYWJlbCkgewogCQkJCWxmbCA9IF9fZmxfbG9va3VwKG5ldCwgZmwtPmxhYmVsKTsK IAkJCQlpZiAoIWxmbCkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L291dHB1dF9jb3JlLmMgYi9uZXQv aXB2Ni9vdXRwdXRfY29yZS5jCmluZGV4IDI4ODBkYzdkOWE0OS4uMjY4NWMzZjE1ZTlkIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9vdXRwdXRfY29yZS5jCisrKyBiL25ldC9pcHY2L291dHB1dF9jb3Jl LmMKQEAgLTE4LDcgKzE4LDcgQEAgc3RhdGljIHUzMiBfX2lwdjZfc2VsZWN0X2lkZW50KHN0cnVj dCBuZXQgKm5ldCwKIAl1MzIgaWQ7CiAKIAlkbyB7Ci0JCWlkID0gcHJhbmRvbV91MzIoKTsKKwkJ aWQgPSBnZXRfcmFuZG9tX3UzMigpOwogCX0gd2hpbGUgKCFpZCk7CiAKIAlyZXR1cm4gaWQ7CmRp ZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY29ubi5jIGIvbmV0L25ldGZpbHRl ci9pcHZzL2lwX3ZzX2Nvbm4uYwppbmRleCBmYjY3ZjFjYTI0OTUuLjhjMDRiYjU3ZGQ2ZiAxMDA2 NDQKLS0tIGEvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2Nvbm4uYworKysgYi9uZXQvbmV0Zmls dGVyL2lwdnMvaXBfdnNfY29ubi5jCkBAIC0xMzA4LDcgKzEzMDgsNyBAQCB2b2lkIGlwX3ZzX3Jh bmRvbV9kcm9wZW50cnkoc3RydWN0IG5ldG5zX2lwdnMgKmlwdnMpCiAJICogUmFuZG9tbHkgc2Nh biAxLzMyIG9mIHRoZSB3aG9sZSB0YWJsZSBldmVyeSBzZWNvbmQKIAkgKi8KIAlmb3IgKGlkeCA9 IDA7IGlkeCA8IChpcF92c19jb25uX3RhYl9zaXplPj41KTsgaWR4KyspIHsKLQkJdW5zaWduZWQg aW50IGhhc2ggPSBwcmFuZG9tX3UzMigpICYgaXBfdnNfY29ubl90YWJfbWFzazsKKwkJdW5zaWdu ZWQgaW50IGhhc2ggPSBnZXRfcmFuZG9tX3UzMigpICYgaXBfdnNfY29ubl90YWJfbWFzazsKIAog CQlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoY3AsICZpcF92c19jb25uX3RhYltoYXNoXSwgY19s aXN0KSB7CiAJCQlpZiAoY3AtPmlwdnMgIT0gaXB2cykKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0 ZXIveHRfc3RhdGlzdGljLmMgYi9uZXQvbmV0ZmlsdGVyL3h0X3N0YXRpc3RpYy5jCmluZGV4IDIw M2UyNGFlNDcyYy4uYjI2YzFkY2ZjMjdiIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL3h0X3N0 YXRpc3RpYy5jCisrKyBiL25ldC9uZXRmaWx0ZXIveHRfc3RhdGlzdGljLmMKQEAgLTM0LDcgKzM0 LDcgQEAgc3RhdGlzdGljX210KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB4dF9h Y3Rpb25fcGFyYW0gKnBhcikKIAogCXN3aXRjaCAoaW5mby0+bW9kZSkgewogCWNhc2UgWFRfU1RB VElTVElDX01PREVfUkFORE9NOgotCQlpZiAoKHByYW5kb21fdTMyKCkgJiAweDdGRkZGRkZGKSA8 IGluZm8tPnUucmFuZG9tLnByb2JhYmlsaXR5KQorCQlpZiAoKGdldF9yYW5kb21fdTMyKCkgJiAw eDdGRkZGRkZGKSA8IGluZm8tPnUucmFuZG9tLnByb2JhYmlsaXR5KQogCQkJcmV0ID0gIXJldDsK IAkJYnJlYWs7CiAJY2FzZSBYVF9TVEFUSVNUSUNfTU9ERV9OVEg6CmRpZmYgLS1naXQgYS9uZXQv b3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYwppbmRleCA4 NjhkYjQ2NjlhMjkuLmNhM2ViZmRiMzAyMyAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Fj dGlvbnMuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCkBAIC0xMDMzLDcgKzEwMzMs NyBAQCBzdGF0aWMgaW50IHNhbXBsZShzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCWFjdGlvbnMgPSBubGFfbmV4dChzYW1wbGVfYXJnLCAmcmVtKTsKIAogCWlmICgo YXJnLT5wcm9iYWJpbGl0eSAhPSBVMzJfTUFYKSAmJgotCSAgICAoIWFyZy0+cHJvYmFiaWxpdHkg fHwgcHJhbmRvbV91MzIoKSA+IGFyZy0+cHJvYmFiaWxpdHkpKSB7CisJICAgICghYXJnLT5wcm9i YWJpbGl0eSB8fCBnZXRfcmFuZG9tX3UzMigpID4gYXJnLT5wcm9iYWJpbGl0eSkpIHsKIAkJaWYg KGxhc3QpCiAJCQljb25zdW1lX3NrYihza2IpOwogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMKaW5kZXggNzE5M2QyNTkz MmNlLi44MTdjZDA2OTViMzUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2FrZS5jCisrKyBi L25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC01NzMsNyArNTczLDcgQEAgc3RhdGljIGJvb2wgY29i YWx0X3Nob3VsZF9kcm9wKHN0cnVjdCBjb2JhbHRfdmFycyAqdmFycywKIAogCS8qIFNpbXBsZSBC TFVFIGltcGxlbWVudGF0aW9uLiAgTGFjayBvZiBFQ04gaXMgZGVsaWJlcmF0ZS4gKi8KIAlpZiAo dmFycy0+cF9kcm9wKQotCQlkcm9wIHw9IChwcmFuZG9tX3UzMigpIDwgdmFycy0+cF9kcm9wKTsK KwkJZHJvcCB8PSAoZ2V0X3JhbmRvbV91MzIoKSA8IHZhcnMtPnBfZHJvcCk7CiAKIAkvKiBPdmVy bG9hZCB0aGUgZHJvcF9uZXh0IGZpZWxkIGFzIGFuIGFjdGl2aXR5IHRpbWVvdXQgKi8KIAlpZiAo IXZhcnMtPmNvdW50KQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9uZXRlbS5jIGIvbmV0L3Nj aGVkL3NjaF9uZXRlbS5jCmluZGV4IGJhYjQ1YjNiMWZkYi4uZmIwMGFjNDBlY2I3IDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCkBA IC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0ZW1fc2tiX2NiICpuZXRl bV9za2JfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRpYyB2b2lkIGluaXRfY3JhbmRvbShz dHJ1Y3QgY3JuZHN0YXRlICpzdGF0ZSwgdW5zaWduZWQgbG9uZyByaG8pCiB7CiAJc3RhdGUtPnJo byA9IHJobzsKLQlzdGF0ZS0+bGFzdCA9IHByYW5kb21fdTMyKCk7CisJc3RhdGUtPmxhc3QgPSBn ZXRfcmFuZG9tX3UzMigpOwogfQogCiAvKiBnZXRfY3JhbmRvbSAtIGNvcnJlbGF0ZWQgcmFuZG9t IG51bWJlciBnZW5lcmF0b3IKQEAgLTE4NCw5ICsxODQsOSBAQCBzdGF0aWMgdTMyIGdldF9jcmFu ZG9tKHN0cnVjdCBjcm5kc3RhdGUgKnN0YXRlKQogCXVuc2lnbmVkIGxvbmcgYW5zd2VyOwogCiAJ aWYgKCFzdGF0ZSB8fCBzdGF0ZS0+cmhvID09IDApCS8qIG5vIGNvcnJlbGF0aW9uICovCi0JCXJl dHVybiBwcmFuZG9tX3UzMigpOworCQlyZXR1cm4gZ2V0X3JhbmRvbV91MzIoKTsKIAotCXZhbHVl ID0gcHJhbmRvbV91MzIoKTsKKwl2YWx1ZSA9IGdldF9yYW5kb21fdTMyKCk7CiAJcmhvID0gKHU2 NClzdGF0ZS0+cmhvICsgMTsKIAlhbnN3ZXIgPSAodmFsdWUgKiAoKDF1bGw8PDMyKSAtIHJobykg KyBzdGF0ZS0+bGFzdCAqIHJobykgPj4gMzI7CiAJc3RhdGUtPmxhc3QgPSBhbnN3ZXI7CkBAIC0y MDAsNyArMjAwLDcgQEAgc3RhdGljIHUzMiBnZXRfY3JhbmRvbShzdHJ1Y3QgY3JuZHN0YXRlICpz dGF0ZSkKIHN0YXRpYyBib29sIGxvc3NfNHN0YXRlKHN0cnVjdCBuZXRlbV9zY2hlZF9kYXRhICpx KQogewogCXN0cnVjdCBjbGdzdGF0ZSAqY2xnID0gJnEtPmNsZzsKLQl1MzIgcm5kID0gcHJhbmRv bV91MzIoKTsKKwl1MzIgcm5kID0gZ2V0X3JhbmRvbV91MzIoKTsKIAogCS8qCiAJICogTWFrZXMg YSBjb21wYXJpc29uIGJldHdlZW4gcm5kIGFuZCB0aGUgdHJhbnNpdGlvbgpAQCAtMjY4LDE1ICsy NjgsMTUgQEAgc3RhdGljIGJvb2wgbG9zc19naWxiX2VsbChzdHJ1Y3QgbmV0ZW1fc2NoZWRfZGF0 YSAqcSkKIAogCXN3aXRjaCAoY2xnLT5zdGF0ZSkgewogCWNhc2UgR09PRF9TVEFURToKLQkJaWYg KHByYW5kb21fdTMyKCkgPCBjbGctPmExKQorCQlpZiAoZ2V0X3JhbmRvbV91MzIoKSA8IGNsZy0+ YTEpCiAJCQljbGctPnN0YXRlID0gQkFEX1NUQVRFOwotCQlpZiAocHJhbmRvbV91MzIoKSA8IGNs Zy0+YTQpCisJCWlmIChnZXRfcmFuZG9tX3UzMigpIDwgY2xnLT5hNCkKIAkJCXJldHVybiB0cnVl OwogCQlicmVhazsKIAljYXNlIEJBRF9TVEFURToKLQkJaWYgKHByYW5kb21fdTMyKCkgPCBjbGct PmEyKQorCQlpZiAoZ2V0X3JhbmRvbV91MzIoKSA8IGNsZy0+YTIpCiAJCQljbGctPnN0YXRlID0g R09PRF9TVEFURTsKLQkJaWYgKHByYW5kb21fdTMyKCkgPiBjbGctPmEzKQorCQlpZiAoZ2V0X3Jh bmRvbV91MzIoKSA+IGNsZy0+YTMpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTYzMiw3ICs2 MzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRfc2xvdF9uZXh0KHN0cnVjdCBuZXRlbV9zY2hlZF9kYXRh ICpxLCB1NjQgbm93KQogCiAJaWYgKCFxLT5zbG90X2Rpc3QpCiAJCW5leHRfZGVsYXkgPSBxLT5z bG90X2NvbmZpZy5taW5fZGVsYXkgKwotCQkJCShwcmFuZG9tX3UzMigpICoKKwkJCQkoZ2V0X3Jh bmRvbV91MzIoKSAqCiAJCQkJIChxLT5zbG90X2NvbmZpZy5tYXhfZGVsYXkgLQogCQkJCSAgcS0+ c2xvdF9jb25maWcubWluX2RlbGF5KSA+PiAzMik7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvbmV0L3N1 bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMgYi9uZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19r cmI1X3dyYXAuYwppbmRleCA1Zjk2ZTc1ZjllZWMuLjQ4MzM3Njg3ODQ4YyAxMDA2NDQKLS0tIGEv bmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMKKysrIGIvbmV0L3N1bnJwYy9hdXRo X2dzcy9nc3Nfa3JiNV93cmFwLmMKQEAgLTEzMCw4ICsxMzAsOCBAQCBnc3Nfa3JiNV9tYWtlX2Nv bmZvdW5kZXIoY2hhciAqcCwgdTMyIGNvbmZsZW4pCiAKIAkvKiBpbml0aWFsaXplIHRvIHJhbmRv bSB2YWx1ZSAqLwogCWlmIChpID09IDApIHsKLQkJaSA9IHByYW5kb21fdTMyKCk7Ci0JCWkgPSAo aSA8PCAzMikgfCBwcmFuZG9tX3UzMigpOworCQlpID0gZ2V0X3JhbmRvbV91MzIoKTsKKwkJaSA9 IChpIDw8IDMyKSB8IGdldF9yYW5kb21fdTMyKCk7CiAJfQogCiAJc3dpdGNoIChjb25mbGVuKSB7 CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnQuYyBiL25ldC9zdW5ycGMveHBydC5jCmluZGV4 IGY4ZmFlNzgxNTY0OS4uOTQwNzAwN2Y0N2FlIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnQu YworKysgYi9uZXQvc3VucnBjL3hwcnQuYwpAQCAtMTg2OCw3ICsxODY4LDcgQEAgeHBydF9hbGxv Y194aWQoc3RydWN0IHJwY194cHJ0ICp4cHJ0KQogc3RhdGljIHZvaWQKIHhwcnRfaW5pdF94aWQo c3RydWN0IHJwY194cHJ0ICp4cHJ0KQogewotCXhwcnQtPnhpZCA9IHByYW5kb21fdTMyKCk7CisJ eHBydC0+eGlkID0gZ2V0X3JhbmRvbV91MzIoKTsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdp dCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwppbmRleCAxNWRiYjM5 MmM4NzUuLmIzNTQ1ZmM2ODA5NyAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5jCisrKyBi L25ldC91bml4L2FmX3VuaXguYwpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgc3RhdGljIGludCB1bml4 X2F1dG9iaW5kKHN0cnVjdCBzb2NrICpzaykKIAlhZGRyLT5uYW1lLT5zdW5fZmFtaWx5ID0gQUZf VU5JWDsKIAlyZWZjb3VudF9zZXQoJmFkZHItPnJlZmNudCwgMSk7CiAKLQlvcmRlcm51bSA9IHBy YW5kb21fdTMyKCk7CisJb3JkZXJudW0gPSBnZXRfcmFuZG9tX3UzMigpOwogCWxhc3RudW0gPSBv cmRlcm51bSAmIDB4RkZGRkY7CiByZXRyeToKIAlvcmRlcm51bSA9IChvcmRlcm51bSArIDEpICYg MHhGRkZGRjsKLS0gCjIuMzcuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==