From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78412C3A589 for ; Tue, 20 Aug 2019 23:02:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 07F4620C01 for ; Tue, 20 Aug 2019 23:02:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726141AbfHTXCD (ORCPT ); Tue, 20 Aug 2019 19:02:03 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:52358 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726028AbfHTXCD (ORCPT ); Tue, 20 Aug 2019 19:02:03 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 38F6414C03762 for ; Tue, 20 Aug 2019 16:02:00 -0700 (PDT) Date: Tue, 20 Aug 2019 16:01:55 -0700 (PDT) Message-Id: <20190820.160155.1535852678654846372.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Aug_20_16_01_55_2019_050)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Tue, 20 Aug 2019 16:02:01 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Tue_Aug_20_16_01_55_2019_050)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.2 -stable, respectively. Thank you. ----Next_Part(Tue_Aug_20_16_01_55_2019_050)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSBjZDA2OWI1MzQwMGIzMzc5MWFmOTZiYzY3N2NiYWQxYmQzZWYyMzIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYW5pc2ggQ2hvcHJhIDxtYW5pc2hjQG1hcnZlbGwuY29tPgpE YXRlOiBTdW4sIDE4IEF1ZyAyMDE5IDA3OjI1OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8x Ml0gYm54Mng6IEZpeCBWRidzIFZMQU4gcmVjb25maWd1cmF0aW9uIGluIHJlbG9hZC4KClsgVXBz dHJlYW0gY29tbWl0IDRhNGQyZDM3MmZiOWI5MjI5MzI3ZTJlZDAxZDVkOTU3MmVkZGY0ZGUgXQoK Q29tbWl0IDA0ZjA1MjMwYzVjMTMgKCJibngyeDogUmVtb3ZlIGNvbmZpZ3VyZWQgdmxhbnMgYXMK cGFydCBvZiB1bmxvYWQgc2VxdWVuY2UuIiksIGludHJvZHVjZWQgYSByZWdyZXNzaW9uIGluIGRy aXZlcgp0aGF0IGFzIGEgcGFydCBvZiBWRidzIHJlbG9hZCBmbG93LCBWTEFOcyBjcmVhdGVkIG9u IHRoZSBWRgpkb2Vzbid0IGdldCByZS1jb25maWd1cmVkIGluIGhhcmR3YXJlIGFzIHZsYW4gbWV0 YWRhdGEvaW5mbwp3YXMgbm90IGdldHRpbmcgY2xlYXJlZCBmb3IgdGhlIFZGcyB3aGljaCBjYXVz ZXMgdmxhbiBQSU5HIHRvIHN0b3AuCgpUaGlzIHBhdGNoIGNsZWFycyB0aGUgdmxhbiBtZXRhZGF0 YS9pbmZvIHNvIHRoYXQgVkxBTnMgZ2V0cwpyZS1jb25maWd1cmVkIGJhY2sgaW4gdGhlIGhhcmR3 YXJlIGluIFZGJ3MgcmVsb2FkIGZsb3cgYW5kClBJTkcvdHJhZmZpYyBjb250aW51ZXMgZm9yIFZM QU5zIGNyZWF0ZWQgb3ZlciB0aGUgVkZzLgoKRml4ZXM6IDA0ZjA1MjMwYzVjMTMgKCJibngyeDog UmVtb3ZlIGNvbmZpZ3VyZWQgdmxhbnMgYXMgcGFydCBvZiB1bmxvYWQgc2VxdWVuY2UuIikKU2ln bmVkLW9mZi1ieTogTWFuaXNoIENob3ByYSA8bWFuaXNoY0BtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9m Zi1ieTogU3VkYXJzYW5hIEthbGx1cnUgPHNrYWxsdXJ1QG1hcnZlbGwuY29tPgpTaWduZWQtb2Zm LWJ5OiBTaGFoZWQgU2hhaWtoIDxzaHNoYWlraEBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jIHwgIDcgKysrKy0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmggfCAgMiArKwogLi4uL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgICAgfCAxNyArKysrKysrKysrKyst LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Nt bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMKaW5k ZXggMzNiYWExN2ZhOWQ1Li5jZjAxZTczZDFiY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCkBAIC0zMDU4LDEyICszMDU4LDEzIEBAIGlu dCBibngyeF9uaWNfdW5sb2FkKHN0cnVjdCBibngyeCAqYnAsIGludCB1bmxvYWRfbW9kZSwgYm9v bCBrZWVwX2xpbmspCiAJLyogaWYgVkYgaW5kaWNhdGUgdG8gUEYgdGhpcyBmdW5jdGlvbiBpcyBn b2luZyBkb3duIChQRiB3aWxsIGRlbGV0ZSBzcAogCSAqIGVsZW1lbnRzIGFuZCBjbGVhciBpbml0 aWFsaXphdGlvbnMKIAkgKi8KLQlpZiAoSVNfVkYoYnApKQorCWlmIChJU19WRihicCkpIHsKKwkJ Ym54MnhfY2xlYXJfdmxhbl9pbmZvKGJwKTsKIAkJYm54MnhfdmZwZl9jbG9zZV92ZihicCk7Ci0J ZWxzZSBpZiAodW5sb2FkX21vZGUgIT0gVU5MT0FEX1JFQ09WRVJZKQorCX0gZWxzZSBpZiAodW5s b2FkX21vZGUgIT0gVU5MT0FEX1JFQ09WRVJZKSB7CiAJCS8qIGlmIHRoaXMgaXMgYSBub3JtYWwv Y2xvc2UgdW5sb2FkIG5lZWQgdG8gY2xlYW4gdXAgY2hpcCovCiAJCWJueDJ4X2NoaXBfY2xlYW51 cChicCwgdW5sb2FkX21vZGUsIGtlZXBfbGluayk7Ci0JZWxzZSB7CisJfSBlbHNlIHsKIAkJLyog U2VuZCB0aGUgVU5MT0FEX1JFUVVFU1QgdG8gdGhlIE1DUCAqLwogCQlibngyeF9zZW5kX3VubG9h ZF9yZXEoYnAsIHVubG9hZF9tb2RlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibngyeC9ibngyeF9jbW4uaAppbmRleCAwZTUwOGU1ZGVmY2UuLmVlNTE1OWVmODM3ZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21u LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmgK QEAgLTQyNSw2ICs0MjUsOCBAQCB2b2lkIGJueDJ4X3NldF9yZXNldF9nbG9iYWwoc3RydWN0IGJu eDJ4ICpicCk7CiB2b2lkIGJueDJ4X2Rpc2FibGVfY2xvc2VfdGhlX2dhdGUoc3RydWN0IGJueDJ4 ICpicCk7CiBpbnQgYm54MnhfaW5pdF9od19mdW5jX2NuaWMoc3RydWN0IGJueDJ4ICpicCk7CiAK K3ZvaWQgYm54MnhfY2xlYXJfdmxhbl9pbmZvKHN0cnVjdCBibngyeCAqYnApOworCiAvKioKICAq IGJueDJ4X3NwX2V2ZW50IC0gaGFuZGxlIHJhbXJvZHMgY29tcGxldGlvbi4KICAqCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKaW5kZXggMmM5 YWYwZjQyMGU1Li42OGM2MmUzMmU4ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKQEAgLTg0ODgsMTEgKzg0ODgsMjEgQEAgaW50IGJu eDJ4X3NldF92bGFuX29uZShzdHJ1Y3QgYm54MnggKmJwLCB1MTYgdmxhbiwKIAlyZXR1cm4gcmM7 CiB9CiAKK3ZvaWQgYm54MnhfY2xlYXJfdmxhbl9pbmZvKHN0cnVjdCBibngyeCAqYnApCit7CisJ c3RydWN0IGJueDJ4X3ZsYW5fZW50cnkgKnZsYW47CisKKwkvKiBNYXJrIHRoYXQgaHcgZm9yZ290 IGFsbCBlbnRyaWVzICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCAmYnAtPnZsYW5fcmVn LCBsaW5rKQorCQl2bGFuLT5odyA9IGZhbHNlOworCisJYnAtPnZsYW5fY250ID0gMDsKK30KKwog c3RhdGljIGludCBibngyeF9kZWxfYWxsX3ZsYW5zKHN0cnVjdCBibngyeCAqYnApCiB7CiAJc3Ry dWN0IGJueDJ4X3ZsYW5fbWFjX29iaiAqdmxhbl9vYmogPSAmYnAtPnNwX29ianNbMF0udmxhbl9v Ymo7CiAJdW5zaWduZWQgbG9uZyByYW1yb2RfZmxhZ3MgPSAwLCB2bGFuX2ZsYWdzID0gMDsKLQlz dHJ1Y3QgYm54Mnhfdmxhbl9lbnRyeSAqdmxhbjsKIAlpbnQgcmM7CiAKIAlfX3NldF9iaXQoUkFN Uk9EX0NPTVBfV0FJVCwgJnJhbXJvZF9mbGFncyk7CkBAIC04NTAxLDEwICs4NTExLDcgQEAgc3Rh dGljIGludCBibngyeF9kZWxfYWxsX3ZsYW5zKHN0cnVjdCBibngyeCAqYnApCiAJaWYgKHJjKQog CQlyZXR1cm4gcmM7CiAKLQkvKiBNYXJrIHRoYXQgaHcgZm9yZ290IGFsbCBlbnRyaWVzICovCi0J bGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCAmYnAtPnZsYW5fcmVnLCBsaW5rKQotCQl2bGFuLT5o dyA9IGZhbHNlOwotCWJwLT52bGFuX2NudCA9IDA7CisJYm54MnhfY2xlYXJfdmxhbl9pbmZvKGJw KTsKIAogCXJldHVybiAwOwogfQotLSAKMi4yMC4xCgoKRnJvbSAyYzJmMzNkMGM2MGU3MjYyNjM2 NjY5MGE2ZDExZTliZTBlYzRkY2FhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVI YWliaW5nIDx5dWVoYWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFdlZCwgNyBBdWcgMjAxOSAxMDox OTo1OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTJdIGJvbmRpbmc6IEFkZCB2bGFuIHR4IG9m ZmxvYWQgdG8gaHdfZW5jX2ZlYXR1cmVzCgpbIFVwc3RyZWFtIGNvbW1pdCBkNTk1YjAzZGUyY2Iw YmRmOWJjZGYzNWZmMjc4NDBjYzNhMzcxNThmIF0KCkFzIGNvbW1pdCAzMGQ4MTc3ZThhYzcgKCJi b25kaW5nOiBBbHdheXMgZW5hYmxlIHZsYW4gdHggb2ZmbG9hZCIpCnNhaWQsIHdlIHNob3VsZCBh bHdheXMgZW5hYmxlIGJvbmRpbmcncyB2bGFuIHR4IG9mZmxvYWQsIHBhc3MgdGhlCnZsYW4gcGFj a2V0cyB0byB0aGUgc2xhdmUgZGV2aWNlcyB3aXRoIHZsYW4gdGNpLCBsZXQgdGhlbSB0byBoYW5k bGUKdmxhbiBpbXBsZW1lbnRhdGlvbi4KCk5vdyBpZiBlbmNhcHN1bGF0aW9uIHByb3RvY29scyBs aWtlIFZYTEFOIGlzIHVzZWQsIHNrYi0+ZW5jYXBzdWxhdGlvbgptYXkgYmUgc2V0LCB0aGVuIHRo ZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHZsYW4gZGV2aWNlIHdoaWNoIGJhc2VkIG9uCmJvbmRpbmcg ZGV2aWNlLiBIb3dldmVyIGluIG5ldGlmX3NrYl9mZWF0dXJlcygpLCB0aGUgY2hlY2sgb2YKaHdf ZW5jX2ZlYXR1cmVzOgoKCSBpZiAoc2tiLT5lbmNhcHN1bGF0aW9uKQogICAgICAgICAgICAgICAg IGZlYXR1cmVzICY9IGRldi0+aHdfZW5jX2ZlYXR1cmVzOwoKY2xlYXJzIE5FVElGX0ZfSFdfVkxB Tl9DVEFHX1RYL05FVElGX0ZfSFdfVkxBTl9TVEFHX1RYLiBUaGlzIHJlc3VsdHMKaW4gc2FtZSBp c3N1ZSBpbiBjb21taXQgMzBkODE3N2U4YWM3IGxpa2UgdGhpczoKCnZsYW5fZGV2X2hhcmRfc3Rh cnRfeG1pdAogIC0tPmRldl9xdWV1ZV94bWl0CiAgICAtLT52YWxpZGF0ZV94bWl0X3NrYgogICAg ICAtLT5uZXRpZl9za2JfZmVhdHVyZXMgLy9ORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWCBpcyBjbGVh cmVkCiAgICAgIC0tPnZhbGlkYXRlX3htaXRfdmxhbgogICAgICAgIC0tPl9fdmxhbl9od2FjY2Vs X3B1c2hfaW5zaWRlIC8vc2tiLT50Y2kgaXMgY2xlYXJlZAouLi4KIC0tPiBib25kX3N0YXJ0X3ht aXQKICAgLS0+IGJvbmRfeG1pdF9oYXNoIC8vQk9ORF9YTUlUX1BPTElDWV9FTkNBUDM0CiAgICAg LS0+IF9fc2tiX2Zsb3dfZGlzc2VjdCAvLyBuaG9mZiBwb2ludCB0byBJUCBoZWFkZXIKICAgICAg ICAtLT4gIGNhc2UgaHRvbnMoRVRIX1BfODAyMVEpCiAgICAgICAgICAgICAvLyBza2Jfdmxhbl90 YWdfcHJlc2VudCBpcyBmYWxzZSwgc28KICAgICAgICAgICAgIHZsYW4gPSBfX3NrYl9oZWFkZXJf cG9pbnRlcihza2IsIG5ob2ZmLCBzaXplb2YoX3ZsYW4pLAogICAgICAgICAgICAgLy92bGFuIHBv aW50IHRvIGlwIGhlYWRlciB3cm9uZ2x5CgpGaXhlczogYjJhMTAzZTZkMGFmICgiYm9uZGluZzog Y29udmVydCB0byBuZG9fZml4X2ZlYXR1cmVzIikKU2lnbmVkLW9mZi1ieTogWXVlSGFpYmluZyA8 eXVlaGFpYmluZ0BodWF3ZWkuY29tPgpBY2tlZC1ieTogSmF5IFZvc2J1cmdoIDxqYXkudm9zYnVy Z2hAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAyICsr CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMK aW5kZXggYmUwYjc4NWJlY2QwLi44ZjE0Zjg1YjhlOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YwpAQCAtMTEwMiw2ICsxMTAyLDggQEAgc3RhdGljIHZvaWQgYm9uZF9jb21wdXRlX2ZlYXR1cmVz KHN0cnVjdCBib25kaW5nICpib25kKQogZG9uZToKIAlib25kX2Rldi0+dmxhbl9mZWF0dXJlcyA9 IHZsYW5fZmVhdHVyZXM7CiAJYm9uZF9kZXYtPmh3X2VuY19mZWF0dXJlcyA9IGVuY19mZWF0dXJl cyB8IE5FVElGX0ZfR1NPX0VOQ0FQX0FMTCB8CisJCQkJICAgIE5FVElGX0ZfSFdfVkxBTl9DVEFH X1RYIHwKKwkJCQkgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFggfAogCQkJCSAgICBORVRJRl9G X0dTT19VRFBfTDQ7CiAJYm9uZF9kZXYtPmdzb19tYXhfc2VncyA9IGdzb19tYXhfc2VnczsKIAlu ZXRpZl9zZXRfZ3NvX21heF9zaXplKGJvbmRfZGV2LCBnc29fbWF4X3NpemUpOwotLSAKMi4yMC4x CgoKRnJvbSBjMWY0NWIzMTgwMjA1MzdkZjgyYjMyYzlkOGEzOTk2YmFjNzA0N2RkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+CkRhdGU6 IFN1biwgMTEgQXVnIDIwMTkgMjI6MTg6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIDAzLzEyXSBu ZXQ6IGRzYTogQ2hlY2sgZXhpc3RlbmNlIG9mIC5wb3J0X21kYl9hZGQgY2FsbGJhY2sKIGJlZm9y ZSBjYWxsaW5nIGl0CgpbIFVwc3RyZWFtIGNvbW1pdCA1ODc5OTg2NWJlODRlMmE4OTVkYWI3MmRl MGUxYjk5NmVkOTQzZjIyIF0KClRoZSBkc2EgZnJhbWV3b3JrIGhhcyBvcHRpb25hbCAucG9ydF9t ZGJfe3ByZXBhcmUsYWRkLGRlbH0gY2FsbGJhY2sgZmllbGRzCmZvciBkcml2ZXJzIHRvIGhhbmRs ZSBtdWx0aWNhc3QgZGF0YWJhc2UgZW50cmllcy4gV2hlbiBhZGRpbmcgYW4gZW50cnksIHRoZQpm cmFtZXdvcmsgZ29lcyB0aHJvdWdoIGEgcHJlcGFyZSBwaGFzZSwgdGhlbiBhIGNvbW1pdCBwaGFz ZS4gRHJpdmVycyBub3QKcHJvdmlkaW5nIHRoZXNlIGNhbGxiYWNrcyBzaG91bGQgYmUgZGV0ZWN0 ZWQgaW4gdGhlIHByZXBhcmUgcGhhc2UuCgpEU0EgY29yZSBtYXkgc3RpbGwgYnlwYXNzIHRoZSBi cmlkZ2UgbGF5ZXIgYW5kIGNhbGwgdGhlIGRzYV9wb3J0X21kYl9hZGQKZnVuY3Rpb24gZGlyZWN0 bHkgd2l0aCBubyBwcmVwYXJlIHBoYXNlIG9yIG5vIHN3aXRjaGRldiB0cmFucyBvYmplY3QsCmFu ZCB0aGUgZnJhbWV3b3JrIGVuZHMgdXAgY2FsbGluZyBhbiB1bmRlZmluZWQgLnBvcnRfbWRiX2Fk ZCBjYWxsYmFjay4KVGhpcyByZXN1bHRzIGluIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBh cyBzaG93biBpbiB0aGUgbG9nIGJlbG93LgoKVGhlIG90aGVyIGZ1bmN0aW9ucyBzZWVtIHRvIGJl IHByb3Blcmx5IGd1YXJkZWQuIERvIHRoZSBzYW1lIGZvcgoucG9ydF9tZGJfYWRkIGluIGRzYV9z d2l0Y2hfbWRiX2FkZF9iaXRtYXAoKSBhcyB3ZWxsLgoKICAgIDg8LS0tIGN1dCBoZXJlIC0tLQog ICAgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZp cnR1YWwgYWRkcmVzcyAwMDAwMDAwMAogICAgcGdkID0gKHB0cnZhbCkKICAgIFswMDAwMDAwMF0g KnBnZD0wMDAwMDAwMAogICAgSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDgwMDAwMDA1IFsjMV0gU01Q IEFSTQogICAgTW9kdWxlcyBsaW5rZWQgaW46IHJ0bDh4eHh1IHJ0bDgxOTJjdSBydGxfdXNiIHJ0 bDgxOTJjX2NvbW1vbiBydGx3aWZpIG1hYzgwMjExIGNmZzgwMjExCiAgICBDUFU6IDEgUElEOiAx MzQgQ29tbToga3dvcmtlci8xOjIgTm90IHRhaW50ZWQgNS4zLjAtcmMxLTAwMjQ3LWdkMzUxOTAz MDc1MmEgIzEKICAgIEhhcmR3YXJlIG5hbWU6IEFsbHdpbm5lciBzdW43aSAoQTIwKSBGYW1pbHkK ICAgIFdvcmtxdWV1ZTogZXZlbnRzIHN3aXRjaGRldl9kZWZlcnJlZF9wcm9jZXNzX3dvcmsKICAg IFBDIGlzIGF0IDB4MAogICAgTFIgaXMgYXQgZHNhX3N3aXRjaF9ldmVudCsweDU3MC8weDYyMAog ICAgcGMgOiBbPDAwMDAwMDAwPl0gICAgbHIgOiBbPGMwODUzM2VjPl0gICAgcHNyOiA4MDA3MDAx MwogICAgc3AgOiBlZTg3MWRiOCAgaXAgOiAwMDAwMDAwMCAgZnAgOiBlZTk4ZDBhNAogICAgcjEw OiAwMDAwMDAwYyAgcjkgOiAwMDAwMDAwOCAgcjggOiBlZTg5ZjcxMAogICAgcjcgOiBlZTk4ZDA0 MCAgcjYgOiBlZTk4ZDA4OCAgcjUgOiBjMGYwNGM0OCAgcjQgOiBlZTk4ZDA0YwogICAgcjMgOiAw MDAwMDAwMCAgcjIgOiBlZTg5ZjcxMCAgcjEgOiAwMDAwMDAwOCAgcjAgOiBlZTk4ZDA0MAogICAg RmxhZ3M6IE56Y3YgIElSUXMgb24gIEZJUXMgb24gIE1vZGUgU1ZDXzMyICBJU0EgQVJNICBTZWdt ZW50IG5vbmUKICAgIENvbnRyb2w6IDEwYzUzODdkICBUYWJsZTogNmRlYjQwNmEgIERBQzogMDAw MDAwNTEKICAgIFByb2Nlc3Mga3dvcmtlci8xOjIgKHBpZDogMTM0LCBzdGFjayBsaW1pdCA9IDB4 KHB0cnZhbCkpCiAgICBTdGFjazogKDB4ZWU4NzFkYjggdG8gMHhlZTg3MjAwMCkKICAgIDFkYTA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVl ODcxZTE0IDEwM2FjZTJkCiAgICAxZGMwOiAwMDAwMDAwMCBmZmZmZmZmZiAwMDAwMDAwMCBlZTg3 MWUxNCAwMDAwMDAwNSAwMDAwMDAwMCBjMDg1MjRhMCAwMDAwMDAwMAogICAgMWRlMDogZmZmZmUw MDAgYzAxNGJkZmMgYzBmMDRjNDggZWU4NzFlOTggYzBmMDRjNDggZWU5ZTUwMDAgYzA4NTExMjAg YzAxNGJlZjAKICAgIDFlMDA6IDAwMDAwMDAwIGI2NDNhZWEyIGVlOWI0MDY4IGMwODUwOWE4IGVl MmJmOTQwIGVlODlmNzEwIGVlODcxZWNiIDAwMDAwMDAwCiAgICAxZTIwOiAwMDAwMDAwOCAxMDNh Y2UyZCAwMDAwMDAwMCBjMDg3ZTI0OCBlZTI5Yzg2OCAxMDNhY2UyZCAwMDAwMDAwMSBmZmZmZmZm ZgogICAgMWU0MDogMDAwMDAwMDAgZWU4NzFlOTggMDAwMDAwMDYgMDAwMDAwMDAgYzBmYjJhNTAg YzA4N2UyZDAgZmZmZmZmZmYgYzA4NTIzYzQKICAgIDFlNjA6IGZmZmZmZmZmIGMwMTRiZGZjIDAw MDAwMDA2IGMwZmFkMmQwIGVlODcxZTk4IGVlODlmNzEwIDAwMDAwMDAwIGMwMTRjNTAwCiAgICAx ZTgwOiAwMDAwMDAwMCBlZTg5ZjNjMCBjMGYwNGM0OCAwMDAwMDAwMCBlZTllNTAwMCBjMDg3ZGZi NCBlZTllNTAwMCAwMDAwMDAwMAogICAgMWVhMDogZWU4OWY3MTAgZWU4NzFlY2IgMDAwMDAwMDEg MTAzYWNlMmQgMDAwMDAwMDAgYzBmMDRjNDggMDAwMDAwMDAgYzA4N2UwYTgKICAgIDFlYzA6IDAw MDAwMDAwIGVmZDlhM2UwIDAwODlmM2MwIDEwM2FjZTJkIGVlODlmNzAwIGVlODlmNzEwIGVlOWU1 MDAwIDAwMDAwMTIyCiAgICAxZWUwOiAwMDAwMDEwMCBjMDg3ZTEzMCBlZTg5ZjcwMCBjMGZhZDJj OCBjMTAwM2VmMCBjMDg3ZGU0YyAyZTkyODAwMCBjMGZhZDJlYwogICAgMWYwMDogYzBmYWQyZWMg ZWU4Mzk1ODAgZWY3YTYyYzAgZWY3YTk0MDAgMDAwMDAwMDAgYzA4N2RlZjggYzBmYWQyZWMgYzAx NDQ3ZGMKICAgIDFmMjA6IGVmMzE1NjQwIGVmN2E2MmMwIDAwMDAwMDA4IGVlODM5NTgwIGVlODM5 NTk0IGVmN2E2MmMwIDAwMDAwMDA4IGMwZjAzZDAwCiAgICAxZjQwOiBlZjdhNjJkOCBlZjdhNjJj MCBmZmZmZTAwMCBjMDE0NWI4NCBmZmZmZTAwMCBjMGZiMjQyMCBjMGJmYWE4YyAwMDAwMDAwMAog ICAgMWY2MDogZmZmZmUwMDAgZWU4NGI2MDAgZWU4NGI1YzAgMDAwMDAwMDAgZWU4NzAwMDAgZWU4 Mzk1ODAgYzAxNDViNDAgZWYwZTVlYTQKICAgIDFmODA6IGVlODRiNjFjIGMwMTRhNmY4IDAwMDAw MDAxIGVlODRiNWMwIGMwMTRhNWIwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwCiAgICAxZmEw OiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBjMDEwMTBlOCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMAogICAgMWZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKICAgIDFmZTA6IDAwMDAw MDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDEzIDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwCiAgICBbPGMwODUzM2VjPl0gKGRzYV9zd2l0Y2hfZXZlbnQpIGZyb20gWzxjMDE0 YmRmYz5dIChub3RpZmllcl9jYWxsX2NoYWluKzB4NDgvMHg4NCkKICAgIFs8YzAxNGJkZmM+XSAo bm90aWZpZXJfY2FsbF9jaGFpbikgZnJvbSBbPGMwMTRiZWYwPl0gKHJhd19ub3RpZmllcl9jYWxs X2NoYWluKzB4MTgvMHgyMCkKICAgIFs8YzAxNGJlZjA+XSAocmF3X25vdGlmaWVyX2NhbGxfY2hh aW4pIGZyb20gWzxjMDg1MDlhOD5dIChkc2FfcG9ydF9tZGJfYWRkKzB4NDgvMHg3NCkKICAgIFs8 YzA4NTA5YTg+XSAoZHNhX3BvcnRfbWRiX2FkZCkgZnJvbSBbPGMwODdlMjQ4Pl0gKF9fc3dpdGNo ZGV2X2hhbmRsZV9wb3J0X29ial9hZGQrMHg1NC8weGQ0KQogICAgWzxjMDg3ZTI0OD5dIChfX3N3 aXRjaGRldl9oYW5kbGVfcG9ydF9vYmpfYWRkKSBmcm9tIFs8YzA4N2UyZDA+XSAoc3dpdGNoZGV2 X2hhbmRsZV9wb3J0X29ial9hZGQrMHg4LzB4MTQpCiAgICBbPGMwODdlMmQwPl0gKHN3aXRjaGRl dl9oYW5kbGVfcG9ydF9vYmpfYWRkKSBmcm9tIFs8YzA4NTIzYzQ+XSAoZHNhX3NsYXZlX3N3aXRj aGRldl9ibG9ja2luZ19ldmVudCsweDk0LzB4YTQpCiAgICBbPGMwODUyM2M0Pl0gKGRzYV9zbGF2 ZV9zd2l0Y2hkZXZfYmxvY2tpbmdfZXZlbnQpIGZyb20gWzxjMDE0YmRmYz5dIChub3RpZmllcl9j YWxsX2NoYWluKzB4NDgvMHg4NCkKICAgIFs8YzAxNGJkZmM+XSAobm90aWZpZXJfY2FsbF9jaGFp bikgZnJvbSBbPGMwMTRjNTAwPl0gKGJsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4rMHg1MC8w eDY4KQogICAgWzxjMDE0YzUwMD5dIChibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKSBmcm9t IFs8YzA4N2RmYjQ+XSAoc3dpdGNoZGV2X3BvcnRfb2JqX25vdGlmeSsweDQ0LzB4YTgpCiAgICBb PGMwODdkZmI0Pl0gKHN3aXRjaGRldl9wb3J0X29ial9ub3RpZnkpIGZyb20gWzxjMDg3ZTBhOD5d IChzd2l0Y2hkZXZfcG9ydF9vYmpfYWRkX25vdysweDkwLzB4MTA0KQogICAgWzxjMDg3ZTBhOD5d IChzd2l0Y2hkZXZfcG9ydF9vYmpfYWRkX25vdykgZnJvbSBbPGMwODdlMTMwPl0gKHN3aXRjaGRl dl9wb3J0X29ial9hZGRfZGVmZXJyZWQrMHgxNC8weDVjKQogICAgWzxjMDg3ZTEzMD5dIChzd2l0 Y2hkZXZfcG9ydF9vYmpfYWRkX2RlZmVycmVkKSBmcm9tIFs8YzA4N2RlNGM+XSAoc3dpdGNoZGV2 X2RlZmVycmVkX3Byb2Nlc3MrMHg2NC8weDEwNCkKICAgIFs8YzA4N2RlNGM+XSAoc3dpdGNoZGV2 X2RlZmVycmVkX3Byb2Nlc3MpIGZyb20gWzxjMDg3ZGVmOD5dIChzd2l0Y2hkZXZfZGVmZXJyZWRf cHJvY2Vzc193b3JrKzB4Yy8weDE0KQogICAgWzxjMDg3ZGVmOD5dIChzd2l0Y2hkZXZfZGVmZXJy ZWRfcHJvY2Vzc193b3JrKSBmcm9tIFs8YzAxNDQ3ZGM+XSAocHJvY2Vzc19vbmVfd29yaysweDIx OC8weDUwYykKICAgIFs8YzAxNDQ3ZGM+XSAocHJvY2Vzc19vbmVfd29yaykgZnJvbSBbPGMwMTQ1 Yjg0Pl0gKHdvcmtlcl90aHJlYWQrMHg0NC8weDViYykKICAgIFs8YzAxNDViODQ+XSAod29ya2Vy X3RocmVhZCkgZnJvbSBbPGMwMTRhNmY4Pl0gKGt0aHJlYWQrMHgxNDgvMHgxNTApCiAgICBbPGMw MTRhNmY4Pl0gKGt0aHJlYWQpIGZyb20gWzxjMDEwMTBlOD5dIChyZXRfZnJvbV9mb3JrKzB4MTQv MHgyYykKICAgIEV4Y2VwdGlvbiBzdGFjaygweGVlODcxZmIwIHRvIDB4ZWU4NzFmZjgpCiAgICAx ZmEwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAwMDAwMCAwMDAwMDAw MCAwMDAwMDAwMCAwMDAwMDAwMAogICAgMWZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKICAgIDFmZTA6IDAw MDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDEzIDAwMDAwMDAwCiAgICBD b2RlOiBiYWQgUEMgdmFsdWUKICAgIC0tLVsgZW5kIHRyYWNlIDEyOTJjNjFhYmQxN2IxMzAgXS0t LQoKICAgIFs8YzA4NTMzZWM+XSAoZHNhX3N3aXRjaF9ldmVudCkgZnJvbSBbPGMwMTRiZGZjPl0g KG5vdGlmaWVyX2NhbGxfY2hhaW4rMHg0OC8weDg0KQogICAgY29ycmVzcG9uZHMgdG8KCgkkIGFy bS1saW51eC1nbnVlYWJpaGYtYWRkcjJsaW5lIC1DIC1pIC1lIHZtbGludXggYzA4NTMzZWMKCgls aW51eC9uZXQvZHNhL3N3aXRjaC5jOjE1NgoJbGludXgvbmV0L2RzYS9zd2l0Y2guYzoxNzgKCWxp bnV4L25ldC9kc2Evc3dpdGNoLmM6MzI4CgpGaXhlczogZTZkYjk4ZGI4YTk1ICgibmV0OiBkc2E6 IGFkZCBzd2l0Y2ggbWRiIGJpdG1hcCBmdW5jdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBDaGVuLVl1 IFRzYWkgPHdlbnNAY3NpZS5vcmc+ClJldmlld2VkLWJ5OiBWaXZpZW4gRGlkZWxvdCA8dml2aWVu LmRpZGVsb3RAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS9zd2l0Y2guYyB8IDMgKysrCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9zd2l0Y2guYyBiL25l dC9kc2Evc3dpdGNoLmMKaW5kZXggMTQyYjI5NGQzNDQ2Li5iMGI5NDEzZmE1YmYgMTAwNjQ0Ci0t LSBhL25ldC9kc2Evc3dpdGNoLmMKKysrIGIvbmV0L2RzYS9zd2l0Y2guYwpAQCAtMTI3LDYgKzEy Nyw5IEBAIHN0YXRpYyB2b2lkIGRzYV9zd2l0Y2hfbWRiX2FkZF9iaXRtYXAoc3RydWN0IGRzYV9z d2l0Y2ggKmRzLAogewogCWludCBwb3J0OwogCisJaWYgKCFkcy0+b3BzLT5wb3J0X21kYl9hZGQp CisJCXJldHVybjsKKwogCWZvcl9lYWNoX3NldF9iaXQocG9ydCwgYml0bWFwLCBkcy0+bnVtX3Bv cnRzKQogCQlkcy0+b3BzLT5wb3J0X21kYl9hZGQoZHMsIHBvcnQsIG1kYik7CiB9Ci0tIAoyLjIw LjEKCgpGcm9tIGY1YmEyYmFlNjFiYzQ0NzhiNWE0YmMwYWE1OTMwOTU4ZjliMjM5ODYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlbndlbiBXYW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4K RGF0ZTogTW9uLCAxMiBBdWcgMjAxOSAxNDoxMTozNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDQv MTJdIG5ldC9tbHg0X2VuOiBmaXggYSBtZW1vcnkgbGVhayBidWcKClsgVXBzdHJlYW0gY29tbWl0 IDQ4ZWM3MDE0YzU2ZTVlYjJmYmY2ZjQ3OTg5NjE0MzYyMmQ4MzRmM2IgXQoKSW4gbWx4NF9lbl9j b25maWdfcnNzX3N0ZWVyKCksICdyc3NfbWFwLT5pbmRpcl9xcCcgaXMgYWxsb2NhdGVkIHRocm91 Z2gKa3phbGxvYygpLiBBZnRlciB0aGF0LCBtbHg0X3FwX2FsbG9jKCkgaXMgaW52b2tlZCB0byBj b25maWd1cmUgUlNTCmluZGlyZWN0aW9uLiBIb3dldmVyLCBpZiBtbHg0X3FwX2FsbG9jKCkgZmFp bHMsIHRoZSBhbGxvY2F0ZWQKJ3Jzc19tYXAtPmluZGlyX3FwJyBpcyBub3QgZGVhbGxvY2F0ZWQs IGxlYWRpbmcgdG8gYSBtZW1vcnkgbGVhayBidWcuCgpUbyBmaXggdGhlIGFib3ZlIGlzc3VlLCBh ZGQgdGhlICdxcF9hbGxvY19lcnInIGxhYmVsIHRvIGZyZWUKJ3Jzc19tYXAtPmluZGlyX3FwJy4K CkZpeGVzOiA0OTMxYzZlZjA0YjQgKCJuZXQvbWx4NF9lbjogT3B0aW1pemVkIHNpbmdsZSByaW5n IHN0ZWVyaW5nIikKU2lnbmVkLW9mZi1ieTogV2Vud2VuIFdhbmcgPHdlbndlbkBjcy51Z2EuZWR1 PgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgfCAzICsrLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwppbmRleCBmNWNkOTUzOTk4MGYuLjQ1ZDlh NWY4ZmExYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9l bl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwpA QCAtMTE5MCw3ICsxMTkwLDcgQEAgaW50IG1seDRfZW5fY29uZmlnX3Jzc19zdGVlcihzdHJ1Y3Qg bWx4NF9lbl9wcml2ICpwcml2KQogCWVyciA9IG1seDRfcXBfYWxsb2MobWRldi0+ZGV2LCBwcml2 LT5iYXNlX3FwbiwgcnNzX21hcC0+aW5kaXJfcXApOwogCWlmIChlcnIpIHsKIAkJZW5fZXJyKHBy aXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgUlNTIGluZGlyZWN0aW9uIFFQXG4iKTsKLQkJZ290byBy c3NfZXJyOworCQlnb3RvIHFwX2FsbG9jX2VycjsKIAl9CiAKIAlyc3NfbWFwLT5pbmRpcl9xcC0+ ZXZlbnQgPSBtbHg0X2VuX3NxcF9ldmVudDsKQEAgLTEyNDQsNiArMTI0NCw3IEBAIGludCBtbHg0 X2VuX2NvbmZpZ19yc3Nfc3RlZXIoc3RydWN0IG1seDRfZW5fcHJpdiAqcHJpdikKIAkJICAgICAg IE1MWDRfUVBfU1RBVEVfUlNULCBOVUxMLCAwLCAwLCByc3NfbWFwLT5pbmRpcl9xcCk7CiAJbWx4 NF9xcF9yZW1vdmUobWRldi0+ZGV2LCByc3NfbWFwLT5pbmRpcl9xcCk7CiAJbWx4NF9xcF9mcmVl KG1kZXYtPmRldiwgcnNzX21hcC0+aW5kaXJfcXApOworcXBfYWxsb2NfZXJyOgogCWtmcmVlKHJz c19tYXAtPmluZGlyX3FwKTsKIAlyc3NfbWFwLT5pbmRpcl9xcCA9IE5VTEw7CiByc3NfZXJyOgot LSAKMi4yMC4xCgoKRnJvbSBjYmExZjI0ZjZjODRjYTEwNDM3MzdkNGNhODE0MzhjNTNhZjFlZjFm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFdlZCwgMTQgQXVnIDIwMTkgMDI6MTE6NTcgLTA3MDAKU3ViamVjdDog W1BBVENIIDA1LzEyXSBuZXQvcGFja2V0OiBmaXggcmFjZSBpbiB0cGFja2V0X3NuZCgpCgpbIFVw c3RyZWFtIGNvbW1pdCAzMmQzMTgyY2QyY2QyOWIyZTdlMDRkZjdiMGRiMzUwZmJlMTEyODlmIF0K CnBhY2tldF9zZW5kbXNnKCkgY2hlY2tzIHR4X3JpbmcucGdfdmVjIHRvIGRlY2lkZQppZiBpdCBt dXN0IGNhbGwgdHBhY2tldF9zbmQoKS4KClByb2JsZW0gaXMgdGhhdCB0aGUgY2hlY2sgaXMgbG9j a2xlc3MsIG1lYW5pbmcgYW5vdGhlciB0aHJlYWQKY2FuIGlzc3VlIGEgY29uY3VycmVudCBzZXRz b2Nrb3B0KFBBQ0tFVF9UWF9SSU5HICkgdG8gZmxpcAp0eF9yaW5nLnBnX3ZlYyBiYWNrIHRvIE5V TEwuCgpHaXZlbiB0aGF0IHRwYWNrZXRfc25kKCkgZ3JhYnMgcGdfdmVjX2xvY2sgbXV0ZXgsIHdl IGNhbgpwZXJmb3JtIHRoZSBjaGVjayBhZ2FpbiB0byBzb2x2ZSB0aGUgcmFjZS4KCnN5emJvdCBy ZXBvcnRlZCA6CgprYXNhbjogQ09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkCmthc2FuOiBHUEYg Y291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2Vzcwpn ZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBQUkVFTVBUIFNNUCBLQVNBTgpDUFU6 IDEgUElEOiAxMTQyOSBDb21tOiBzeXotZXhlY3V0b3IzOTQgTm90IHRhaW50ZWQgNS4zLjAtcmM0 KyAjMTAxCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xl IENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExClJJUDogMDAxMDpwYWNrZXRf bG9va3VwX2ZyYW1lKzB4OGQvMHgyNzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzo0NzQKQ29kZTog YzEgZWUgMDMgZjcgNzMgMGMgODAgM2MgMGUgMDAgMGYgODUgY2IgMDEgMDAgMDAgNDggOGIgMGIg ODkgYzAgNGMgOGQgMjQgYzEgNDggYjggMDAgMDAgMDAgMDAgMDAgZmMgZmYgZGYgNGMgODkgZTEg NDggYzEgZTkgMDMgPDgwPiAzYyAwMSAwMCAwZiA4NSA5NCAwMSAwMCAwMCA0OCA4ZCA3YiAxMCA0 ZCA4YiAzYyAyNCA0OCBiOCAwMCAwMApSU1A6IDAwMTg6ZmZmZjg4ODA5ZjgyZjdiOCBFRkxBR1M6 IDAwMDEwMjQ2ClJBWDogZGZmZmZjMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODgwYTQ1YzcwMzAgUkNY OiAwMDAwMDAwMDAwMDAwMDAwClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDFmZmZmMTEwMTQ4 YjhlMDYgUkRJOiBmZmZmODg4MGE0NWM3MDNjClJCUDogZmZmZjg4ODA5ZjgyZjdlOCBSMDg6IGZm ZmY4ODgwODdhZWEyMDAgUjA5OiBmZmZmZmJmZmYxMzRhZTUwClIxMDogZmZmZmZiZmZmMTM0YWU0 ZiBSMTE6IGZmZmZmZmZmODlhNTcyN2YgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClIxMzogMDAwMDAw MDAwMDAwMDAwMSBSMTQ6IGZmZmY4ODgwYTQ1YzZhYzAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCkZT OiAgMDAwMDdmYTA0NzE2ZjcwMCgwMDAwKSBHUzpmZmZmODg4MGFlOTAwMDAwKDAwMDApIGtubEdT OjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAw MDA4MDA1MDAzMwpDUjI6IDAwMDA3ZmEwNDcxNmVkYjggQ1IzOiAwMDAwMDAwMDkxZWI0MDAwIENS NDogMDAwMDAwMDAwMDE0MDZlMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAw MDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAw MDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxsIFRyYWNlOgogcGFja2V0 X2N1cnJlbnRfZnJhbWUgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzo0ODcgW2lubGluZV0KIHRwYWNr ZXRfc25kIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MjY2NyBbaW5saW5lXQogcGFja2V0X3NlbmRt c2crMHg1OTAvMHg2MjUwIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjk3NQogc29ja19zZW5kbXNn X25vc2VjIG5ldC9zb2NrZXQuYzo2MzcgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGQ3LzB4MTMw IG5ldC9zb2NrZXQuYzo2NTcKIF9fX3N5c19zZW5kbXNnKzB4M2UyLzB4OTIwIG5ldC9zb2NrZXQu YzoyMzExCiBfX3N5c19zZW5kbW1zZysweDFiZi8weDRkMCBuZXQvc29ja2V0LmM6MjQxMwogX19k b19zeXNfc2VuZG1tc2cgbmV0L3NvY2tldC5jOjI0NDIgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRt bXNnIG5ldC9zb2NrZXQuYzoyNDM5IFtpbmxpbmVdCiBfX3g2NF9zeXNfc2VuZG1tc2crMHg5ZC8w eDEwMCBuZXQvc29ja2V0LmM6MjQzOQogZG9fc3lzY2FsbF82NCsweGZkLzB4NmEwIGFyY2gveDg2 L2VudHJ5L2NvbW1vbi5jOjI5NgogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkv MHhiZQoKRml4ZXM6IDY5ZTNjNzVmNGQ1NCAoIm5ldDogVFhfUklORyBhbmQgcGFja2V0IG1tYXAi KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9h Zl9wYWNrZXQuYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tl dC5jCmluZGV4IDkzYjVhNDIwMDU4NS4uNzIwNGU3YmJlYmIwIDEwMDY0NAotLS0gYS9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI2MTYsNiAr MjYxNiwxMyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfc25kKHN0cnVjdCBwYWNrZXRfc29jayAqcG8s IHN0cnVjdCBtc2doZHIgKm1zZykKIAogCW11dGV4X2xvY2soJnBvLT5wZ192ZWNfbG9jayk7CiAK KwkvKiBwYWNrZXRfc2VuZG1zZygpIGNoZWNrIG9uIHR4X3JpbmcucGdfdmVjIHdhcyBsb2NrbGVz cywKKwkgKiB3ZSBuZWVkIHRvIGNvbmZpcm0gaXQgdW5kZXIgcHJvdGVjdGlvbiBvZiBwZ192ZWNf bG9jay4KKwkgKi8KKwlpZiAodW5saWtlbHkoIXBvLT50eF9yaW5nLnBnX3ZlYykpIHsKKwkJZXJy ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAJaWYgKGxpa2VseShzYWRkciA9PSBOVUxMKSkg ewogCQlkZXYJPSBwYWNrZXRfY2FjaGVkX2Rldl9nZXQocG8pOwogCQlwcm90bwk9IHBvLT5udW07 Ci0tIAoyLjIwLjEKCgpGcm9tIDFiMjI1NGEwNjAwZTlkMzg5ODI0NWY4ODhjOGU3MzlhZDI1MjFl NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpoZW5nYmluIDx6aGVuZ2JpbjEzQGh1 YXdlaS5jb20+CkRhdGU6IFR1ZSwgMTMgQXVnIDIwMTkgMjI6MDU6NTAgKzA4MDAKU3ViamVjdDog W1BBVENIIDA2LzEyXSBzY3RwOiBmaXggbWVtbGVhayBpbiBzY3RwX3NlbmRfcmVzZXRfc3RyZWFt cwoKWyBVcHN0cmVhbSBjb21taXQgNmQ1YWZlMjAzOTdiNDc4MTkyZWQ4YzM4ZWMwZWUxMGZhM2Fl YzY0OSBdCgpJZiB0aGUgc3RyZWFtIG91dHEgaXMgbm90IGVtcHR5LCBuZWVkIHRvIGtmcmVlIG5z dHJfbGlzdC4KCkZpeGVzOiBkNTcwYTU5YzViNWYgKCJzY3RwOiBvbmx5IGFsbG93IHRoZSBvdXQg c3RyZWFtIHJlc2V0IHdoZW4gdGhlIHN0cmVhbSBvdXRxIGlzIGVtcHR5IikKUmVwb3J0ZWQtYnk6 IEh1bGsgUm9ib3QgPGh1bGtjaUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiB6aGVuZ2JpbiA8 emhlbmdiaW4xM0BodWF3ZWkuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIg PG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2lj aW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBuZXQvc2N0cC9zdHJlYW0uYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMg Yi9uZXQvc2N0cC9zdHJlYW0uYwppbmRleCAwZGE1NzkzOGE2YzUuLjg3MDYxYTRiYjQ0YiAxMDA2 NDQKLS0tIGEvbmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTQx Niw2ICs0MTYsNyBAQCBpbnQgc2N0cF9zZW5kX3Jlc2V0X3N0cmVhbXMoc3RydWN0IHNjdHBfYXNz b2NpYXRpb24gKmFzb2MsCiAJCW5zdHJfbGlzdFtpXSA9IGh0b25zKHN0cl9saXN0W2ldKTsKIAog CWlmIChvdXQgJiYgIXNjdHBfc3RyZWFtX291dHFfaXNfZW1wdHkoc3RyZWFtLCBzdHJfbnVtcywg bnN0cl9saXN0KSkgeworCQlrZnJlZShuc3RyX2xpc3QpOwogCQlyZXR2YWwgPSAtRUFHQUlOOwog CQlnb3RvIG91dDsKIAl9Ci0tIAoyLjIwLjEKCgpGcm9tIDgxZTMzZGQ3ZGE2ZDM3MzZiZWVjZmI0 NjI2MzBmOTIxOTcxNDFjZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25n IDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMiBBdWcgMjAxOSAyMDo0OToxMiAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTJdIHNjdHA6IGZpeCB0aGUgdHJhbnNwb3J0IGVycm9y X2NvdW50IGNoZWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBhMTc5NGRlOGI5MmVhNmJjMjAzN2Y0NDVi Mjk2ODE0YWM4MjY2OTNlIF0KCkFzIHRoZSBhbm5vdGF0aW9uIHNheXMgaW4gc2N0cF9kb184XzJf dHJhbnNwb3J0X3N0cmlrZSgpOgoKICAiSWYgdGhlIHRyYW5zcG9ydCBlcnJvciBjb3VudCBpcyBn cmVhdGVyIHRoYW4gdGhlIHBmX3JldHJhbnMKICAgdGhyZXNob2xkLCBhbmQgbGVzcyB0aGFuIHBh dGhtYXhydHggLi4uIgoKSXQgc2hvdWxkIGJlIHRyYW5zcG9ydC0+ZXJyb3JfY291bnQgY2hlY2tl ZCB3aXRoIHBhdGhtYXhyeHQsCmluc3RlYWQgb2YgYXNvYy0+cGZfcmV0cmFucy4KCkZpeGVzOiA1 YWE5M2JjZjY2ZjQgKCJzY3RwOiBJbXBsZW1lbnQgcXVpY2sgZmFpbG92ZXIgZHJhZnQgZnJvbSB0 c3Z3ZyIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNr ZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21l LmNvbT4KLS0tCiBuZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9z bV9zaWRlZWZmZWN0LmMgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKaW5kZXggMzEzMWI0MTU0 Yzc0Li4yOGFkYWMzMWYwZmYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYwor KysgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdGF0aWMg dm9pZCBzY3RwX2RvXzhfMl90cmFuc3BvcnRfc3RyaWtlKHN0cnVjdCBzY3RwX2NtZF9zZXEgKmNv bW1hbmRzLAogCSAqLwogCWlmIChuZXQtPnNjdHAucGZfZW5hYmxlICYmCiAJICAgKHRyYW5zcG9y dC0+c3RhdGUgPT0gU0NUUF9BQ1RJVkUpICYmCi0JICAgKGFzb2MtPnBmX3JldHJhbnMgPCB0cmFu c3BvcnQtPnBhdGhtYXhyeHQpICYmCisJICAgKHRyYW5zcG9ydC0+ZXJyb3JfY291bnQgPCB0cmFu c3BvcnQtPnBhdGhtYXhyeHQpICYmCiAJICAgKHRyYW5zcG9ydC0+ZXJyb3JfY291bnQgPiBhc29j LT5wZl9yZXRyYW5zKSkgewogCiAJCXNjdHBfYXNzb2NfY29udHJvbF90cmFuc3BvcnQoYXNvYywg dHJhbnNwb3J0LAotLSAKMi4yMC4xCgoKRnJvbSBlZGEyZTQzMDE2NjNkOTM5NTA3Mjk4NGE3NWI5 MGYxZjcwNjA1NzljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVIYWliaW5nIDx5 dWVoYWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgOCBBdWcgMjAxOSAxNDoyMjo0NyArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDgvMTJdIHRlYW06IEFkZCB2bGFuIHR4IG9mZmxvYWQgdG8gaHdf ZW5jX2ZlYXR1cmVzCgpbIFVwc3RyZWFtIGNvbW1pdCAyMjdmMmYwMzBlMjhkODc4M2MzZDEwY2U3 MGZmNGJhNzljYWQ2NTNmIF0KCldlIHNob3VsZCBhbHNvIGVuYWJsZSB0ZWFtJ3MgdmxhbiB0eCBv ZmZsb2FkIGluIGh3X2VuY19mZWF0dXJlcywKcGFzcyB0aGUgdmxhbiBwYWNrZXRzIHRvIHRoZSBz bGF2ZSBkZXZpY2VzIHdpdGggdmxhbiB0Y2ksIGxldCB0aGUKc2xhdmUgaGFuZGxlIHZsYW4gdHVu bmVsaW5nIG9mZmxvYWQgaW1wbGVtZW50YXRpb24uCgpGaXhlczogMzI2OGU1Y2I0OTRkICgidGVh bTogQWR2ZXJ0aXNlIHR1bm5lbGluZyBvZmZsb2FkIGZlYXR1cmVzIikKU2lnbmVkLW9mZi1ieTog WXVlSGFpYmluZyA8eXVlaGFpYmluZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFt LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgYi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwppbmRleCBk YzMwZjExZjQ3NjYuLjNmZWI0OWJhZGRhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGVhbS90 ZWFtLmMKKysrIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKQEAgLTEwMTEsNiArMTAxMSw4IEBA IHN0YXRpYyB2b2lkIF9fdGVhbV9jb21wdXRlX2ZlYXR1cmVzKHN0cnVjdCB0ZWFtICp0ZWFtKQog CiAJdGVhbS0+ZGV2LT52bGFuX2ZlYXR1cmVzID0gdmxhbl9mZWF0dXJlczsKIAl0ZWFtLT5kZXYt Pmh3X2VuY19mZWF0dXJlcyA9IGVuY19mZWF0dXJlcyB8IE5FVElGX0ZfR1NPX0VOQ0FQX0FMTCB8 CisJCQkJICAgICBORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWCB8CisJCQkJICAgICBORVRJRl9GX0hX X1ZMQU5fU1RBR19UWCB8CiAJCQkJICAgICBORVRJRl9GX0dTT19VRFBfTDQ7CiAJdGVhbS0+ZGV2 LT5oYXJkX2hlYWRlcl9sZW4gPSBtYXhfaGFyZF9oZWFkZXJfbGVuOwogCi0tIAoyLjIwLjEKCgpG cm9tIGUyYjA0ZmMzZjZjNjEyNGQ3ODM2YjU1ZjcyZTEzZDM0MTA4Nzg1NzUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IENocmlzIFBhY2toYW0gPGNocmlzLnBhY2toYW1AYWxsaWVkdGVs ZXNpcy5jby5uej4KRGF0ZTogTW9uLCAxMiBBdWcgMjAxOSAwODoxODoyNSArMTIwMApTdWJqZWN0 OiBbUEFUQ0ggMDkvMTJdIHRpcGM6IGluaXRpYWxpc2UgYWRkcl90cmFpbF9lbmQgd2hlbiBzZXR0 aW5nIG5vZGUKIGFkZHJlc3NlcwoKWyBVcHN0cmVhbSBjb21taXQgODg3NGVjYWUyOTc3ZTVhMmQ0 ZjBiYTMwMTM2NDQzNWI4MWMwNTkzOCBdCgpXZSBzZXQgdGhlIGZpZWxkICdhZGRyX3RyaWFsX2Vu ZCcgdG8gJ2ppZmZpZXMnLCBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50CnZhbHVlIDAsIGF0IHRoZSBt b21lbnQgdGhlIG5vZGUgYWRkcmVzcyBpcyBpbml0aWFsaXplZC4gVGhpcyBndWFyYW50ZWVzCndl IGRvbid0IGluYWR2ZXJ0ZW50bHkgZW50ZXIgYW4gYWRkcmVzcyB0cmlhbCBwZXJpb2Qgd2hlbiB0 aGUgbm9kZQphZGRyZXNzIGlzIGV4cGxpY2l0bHkgc2V0IGJ5IHRoZSB1c2VyLgoKU2lnbmVkLW9m Zi1ieTogQ2hyaXMgUGFja2hhbSA8Y2hyaXMucGFja2hhbUBhbGxpZWR0ZWxlc2lzLmNvLm56PgpB Y2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvYWRk ci5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9u ZXQvdGlwYy9hZGRyLmMgYi9uZXQvdGlwYy9hZGRyLmMKaW5kZXggYjg4ZDQ4ZDAwOTEzLi4wZjFl YWVkMWJkMWIgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL2FkZHIuYworKysgYi9uZXQvdGlwYy9hZGRy LmMKQEAgLTc1LDYgKzc1LDcgQEAgdm9pZCB0aXBjX3NldF9ub2RlX2FkZHIoc3RydWN0IG5ldCAq bmV0LCB1MzIgYWRkcikKIAkJdGlwY19zZXRfbm9kZV9pZChuZXQsIG5vZGVfaWQpOwogCX0KIAl0 bi0+dHJpYWxfYWRkciA9IGFkZHI7CisJdG4tPmFkZHJfdHJpYWxfZW5kID0gamlmZmllczsKIAlw cl9pbmZvKCIzMi1iaXQgbm9kZSBhZGRyZXNzIGhhc2ggc2V0IHRvICV4XG4iLCBhZGRyKTsKIH0K IAotLSAKMi4yMC4xCgoKRnJvbSBlNmQxNTc0YmY5MDUxYzA0ZDNmOTYzMDU5YmNjMDEwNWVkNWU2 ZDZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5s YWdlcndhbGxAY2l0cml4LmNvbT4KRGF0ZTogTW9uLCA1IEF1ZyAyMDE5IDE2OjM0OjM0ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxMC8xMl0geGVuL25ldGJhY2s6IFJlc2V0IG5yX2ZyYWdzIGJlZm9y ZSBmcmVlaW5nIHNrYgoKWyBVcHN0cmVhbSBjb21taXQgM2EwMjMzZGRlYzU1NGI4ODYyOThkZTI0 MjhlZGI1YzUwYTIwZTY5NCBdCgpBdCB0aGlzIHBvaW50IG5yX2ZyYWdzIGhhcyBiZWVuIGluY3Jl bWVudGVkIGJ1dCB0aGUgZnJhZyBkb2VzIG5vdCB5ZXQKaGF2ZSBhIHBhZ2UgYXNzaWduZWQgc28g ZnJlZWluZyB0aGUgc2tiIHJlc3VsdHMgaW4gYSBjcmFzaC4gUmVzZXQKbnJfZnJhZ3MgYmVmb3Jl IGZyZWVpbmcgdGhlIHNrYiB0byBwcmV2ZW50IHRoaXMuCgpTaWduZWQtb2ZmLWJ5OiBSb3NzIExh Z2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3hlbi1uZXRi YWNrL25ldGJhY2suYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgYi9kcml2ZXJzL25l dC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKaW5kZXggZDUwODFmZmRjOGYwLi4xYzg0OTEwNmI3OTMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYworKysgYi9kcml2 ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKQEAgLTkyNSw2ICs5MjUsNyBAQCBzdGF0aWMg dm9pZCB4ZW52aWZfdHhfYnVpbGRfZ29wcyhzdHJ1Y3QgeGVudmlmX3F1ZXVlICpxdWV1ZSwKIAkJ CXNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3MgPSBNQVhfU0tCX0ZSQUdTOwogCQkJbnNrYiA9IHhl bnZpZl9hbGxvY19za2IoMCk7CiAJCQlpZiAodW5saWtlbHkobnNrYiA9PSBOVUxMKSkgeworCQkJ CXNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3MgPSAwOwogCQkJCWtmcmVlX3NrYihza2IpOwogCQkJ CXhlbnZpZl90eF9lcnIocXVldWUsICZ0eHJlcSwgZXh0cmFfY291bnQsIGlkeCk7CiAJCQkJaWYg KG5ldF9yYXRlbGltaXQoKSkKQEAgLTk0MCw2ICs5NDEsNyBAQCBzdGF0aWMgdm9pZCB4ZW52aWZf dHhfYnVpbGRfZ29wcyhzdHJ1Y3QgeGVudmlmX3F1ZXVlICpxdWV1ZSwKIAogCQkJaWYgKHhlbnZp Zl9zZXRfc2tiX2dzbyhxdWV1ZS0+dmlmLCBza2IsIGdzbykpIHsKIAkJCQkvKiBGYWlsdXJlIGlu IHhlbnZpZl9zZXRfc2tiX2dzbyBpcyBmYXRhbC4gKi8KKwkJCQlza2Jfc2hpbmZvKHNrYiktPm5y X2ZyYWdzID0gMDsKIAkJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCQlrZnJlZV9za2IobnNrYik7CiAJ CQkJYnJlYWs7Ci0tIAoyLjIwLjEKCgpGcm9tIDBkMTNiZWVlYjM3MTcxMDhjMjA4YzE4MTZkNzE0 MGUwNTNkOTkwYTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh1eSBOZ3V5ZW4gPGh1 eW5AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDEgQXVnIDIwMTkgMTE6MTA6MTkgLTA1MDAKU3Vi amVjdDogW1BBVENIIDExLzEyXSBuZXQvbWx4NWU6IE9ubHkgc3VwcG9ydCB0eC9yeCBwYXVzZSBz ZXR0aW5nIGZvciBwb3J0CiBvd25lcgoKWyBVcHN0cmVhbSBjb21taXQgNDY2ZGY2ZWI0YTllODEz YjNjZmM2NzQzNjMzMTY0NTBjNTdhODljNSBdCgpPbmx5IHN1cHBvcnQgY2hhbmdpbmcgdHgvcngg cGF1c2UgZnJhbWUgc2V0dGluZyBpZiB0aGUgbmV0IGRldmljZQppcyB0aGUgdnBvcnQgZ3JvdXAg bWFuYWdlci4KCkZpeGVzOiAzYzJkMThlZjIyZGYgKCJuZXQvbWx4NWU6IFN1cHBvcnQgZXRodG9v bCBnZXQvc2V0X3BhdXNlcGFyYW0iKQpTaWduZWQtb2ZmLWJ5OiBIdXkgTmd1eWVuIDxodXluQG1l bGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFBhcmF2IFBhbmRpdCA8cGFyYXZAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIHwg MyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwppbmRleCA3OTJi YjhiYzBjZDMuLjJiOTM1MGY0Yzc1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCkBAIC0xMDgzLDYgKzEwODMsOSBAQCBz dGF0aWMgaW50IG1seDVlX3NldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYs CiAJc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYgPSBwcml2LT5tZGV2OwogCWludCBlcnI7CiAK KwlpZiAoIU1MWDVfQ0FQX0dFTihtZGV2LCB2cG9ydF9ncm91cF9tYW5hZ2VyKSkKKwkJcmV0dXJu IC1FT1BOT1RTVVBQOworCiAJaWYgKHBhdXNlcGFyYW0tPmF1dG9uZWcpCiAJCXJldHVybiAtRUlO VkFMOwogCi0tIAoyLjIwLjEKCgpGcm9tIGM3ZjdlN2U2OTZiYTkwNjA5ZWFkNTE5MzAyNTcxNWI5 ZjJmNmMzMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltIE1pa2l0eWFuc2tp eSA8bWF4aW1taUBtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgNSBKdWwgMjAxOSAxNzo1OToyOCAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTJdIG5ldC9tbHg1ZTogVXNlIGZsb3cga2V5cyBkaXNz ZWN0b3IgdG8gcGFyc2UgcGFja2V0cyBmb3IKIEFSRlMKClsgVXBzdHJlYW0gY29tbWl0IDQwNWI5 M2ViNzY0MzY3YTY3MGU3MjlkYTE4ZTU0ZGM0MmRiMzI2MjAgXQoKVGhlIGN1cnJlbnQgQVJGUyBj b2RlIHJlbGllcyBvbiBjZXJ0YWluIGZpZWxkcyB0byBiZSBzZXQgaW4gdGhlIFNLQgooZS5nLiB0 cmFuc3BvcnRfaGVhZGVyKSBhbmQgZXh0cmFjdHMgSVAgYWRkcmVzc2VzIGFuZCBwb3J0cyBieSBj dXN0b20KY29kZSB0aGF0IHBhcnNlcyB0aGUgcGFja2V0LiBUaGUgbmVjZXNzYXJ5IFNLQiBmaWVs ZHMsIGhvd2V2ZXIsIGFyZSBub3QKYWx3YXlzIHNldCBhdCB0aGF0IHBvaW50LCB3aGljaCBsZWFk cyB0byBhbiBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gVXNlCnNrYl9mbG93X2Rpc3NlY3RfZmxvd19r ZXlzKCkgdG8gZ2V0IHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gcmVsaWFibHksCmZpeCB0aGUg b3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIHJldXNlIHRoZSBjb2RlLgoKRml4ZXM6IDE4YzkwOGU0 NzdkYyAoIm5ldC9tbHg1ZTogQWRkIGFjY2VsZXJhdGVkIFJGUyBzdXBwb3J0IikKU2lnbmVkLW9m Zi1ieTogTWF4aW0gTWlraXR5YW5za2l5IDxtYXhpbW1pQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQt Ynk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2Fl ZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jIHwgOTcgKysrKysrKy0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCmluZGV4IDQ1 Y2RkZTY5NGQyMC4uYTRiZTA0ZGViZTY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMKQEAgLTQzNywxMiArNDM3LDYgQEAgYXJmc19o YXNoX2J1Y2tldChzdHJ1Y3QgYXJmc190YWJsZSAqYXJmc190LCBfX2JlMTYgc3JjX3BvcnQsCiAJ cmV0dXJuICZhcmZzX3QtPnJ1bGVzX2hhc2hbYnVja2V0X2lkeF07CiB9CiAKLXN0YXRpYyB1OCBh cmZzX2dldF9pcF9wcm90byhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpID8KLQkJaXBfaGRyKHNrYiktPnByb3Rv Y29sIDogaXB2Nl9oZHIoc2tiKS0+bmV4dGhkcjsKLX0KLQogc3RhdGljIHN0cnVjdCBhcmZzX3Rh YmxlICphcmZzX2dldF90YWJsZShzdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXMgKmFyZnMsCiAJCQkJ CSB1OCBpcF9wcm90bywgX19iZTE2IGV0eXBlKQogewpAQCAtNTk5LDMxICs1OTMsOSBAQCBzdGF0 aWMgdm9pZCBhcmZzX2hhbmRsZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlhcmZz X21heV9leHBpcmVfZmxvdyhwcml2KTsKIH0KIAotLyogcmV0dXJuIEw0IGRlc3RpbmF0aW9uIHBv cnQgZnJvbSBpcDQvNiBwYWNrZXRzICovCi1zdGF0aWMgX19iZTE2IGFyZnNfZ2V0X2RzdF9wb3J0 KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCi17Ci0JY2hhciAqdHJhbnNwb3J0X2hlYWRlcjsK LQotCXRyYW5zcG9ydF9oZWFkZXIgPSBza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotCWlmIChh cmZzX2dldF9pcF9wcm90byhza2IpID09IElQUFJPVE9fVENQKQotCQlyZXR1cm4gKChzdHJ1Y3Qg dGNwaGRyICopdHJhbnNwb3J0X2hlYWRlciktPmRlc3Q7Ci0JcmV0dXJuICgoc3RydWN0IHVkcGhk ciAqKXRyYW5zcG9ydF9oZWFkZXIpLT5kZXN0OwotfQotCi0vKiByZXR1cm4gTDQgc291cmNlIHBv cnQgZnJvbSBpcDQvNiBwYWNrZXRzICovCi1zdGF0aWMgX19iZTE2IGFyZnNfZ2V0X3NyY19wb3J0 KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCi17Ci0JY2hhciAqdHJhbnNwb3J0X2hlYWRlcjsK LQotCXRyYW5zcG9ydF9oZWFkZXIgPSBza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotCWlmIChh cmZzX2dldF9pcF9wcm90byhza2IpID09IElQUFJPVE9fVENQKQotCQlyZXR1cm4gKChzdHJ1Y3Qg dGNwaGRyICopdHJhbnNwb3J0X2hlYWRlciktPnNvdXJjZTsKLQlyZXR1cm4gKChzdHJ1Y3QgdWRw aGRyICopdHJhbnNwb3J0X2hlYWRlciktPnNvdXJjZTsKLX0KLQogc3RhdGljIHN0cnVjdCBhcmZz X3J1bGUgKmFyZnNfYWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCQkJIHN0 cnVjdCBhcmZzX3RhYmxlICphcmZzX3QsCi0JCQkJCSBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti LAorCQkJCQkgY29uc3Qgc3RydWN0IGZsb3dfa2V5cyAqZmssCiAJCQkJCSB1MTYgcnhxLCB1MzIg Zmxvd19pZCkKIHsKIAlzdHJ1Y3QgYXJmc19ydWxlICpydWxlOwpAQCAtNjM4LDE5ICs2MTAsMTkg QEAgc3RhdGljIHN0cnVjdCBhcmZzX3J1bGUgKmFyZnNfYWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVf cHJpdiAqcHJpdiwKIAlJTklUX1dPUksoJnJ1bGUtPmFyZnNfd29yaywgYXJmc19oYW5kbGVfd29y ayk7CiAKIAl0dXBsZSA9ICZydWxlLT50dXBsZTsKLQl0dXBsZS0+ZXR5cGUgPSBza2ItPnByb3Rv Y29sOworCXR1cGxlLT5ldHlwZSA9IGZrLT5iYXNpYy5uX3Byb3RvOworCXR1cGxlLT5pcF9wcm90 byA9IGZrLT5iYXNpYy5pcF9wcm90bzsKIAlpZiAodHVwbGUtPmV0eXBlID09IGh0b25zKEVUSF9Q X0lQKSkgewotCQl0dXBsZS0+c3JjX2lwdjQgPSBpcF9oZHIoc2tiKS0+c2FkZHI7Ci0JCXR1cGxl LT5kc3RfaXB2NCA9IGlwX2hkcihza2IpLT5kYWRkcjsKKwkJdHVwbGUtPnNyY19pcHY0ID0gZmst PmFkZHJzLnY0YWRkcnMuc3JjOworCQl0dXBsZS0+ZHN0X2lwdjQgPSBmay0+YWRkcnMudjRhZGRy cy5kc3Q7CiAJfSBlbHNlIHsKLQkJbWVtY3B5KCZ0dXBsZS0+c3JjX2lwdjYsICZpcHY2X2hkcihz a2IpLT5zYWRkciwKKwkJbWVtY3B5KCZ0dXBsZS0+c3JjX2lwdjYsICZmay0+YWRkcnMudjZhZGRy cy5zcmMsCiAJCSAgICAgICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7Ci0JCW1lbWNweSgmdHVw bGUtPmRzdF9pcHY2LCAmaXB2Nl9oZHIoc2tiKS0+ZGFkZHIsCisJCW1lbWNweSgmdHVwbGUtPmRz dF9pcHY2LCAmZmstPmFkZHJzLnY2YWRkcnMuZHN0LAogCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBp bjZfYWRkcikpOwogCX0KLQl0dXBsZS0+aXBfcHJvdG8gPSBhcmZzX2dldF9pcF9wcm90byhza2Ip OwotCXR1cGxlLT5zcmNfcG9ydCA9IGFyZnNfZ2V0X3NyY19wb3J0KHNrYik7Ci0JdHVwbGUtPmRz dF9wb3J0ID0gYXJmc19nZXRfZHN0X3BvcnQoc2tiKTsKKwl0dXBsZS0+c3JjX3BvcnQgPSBmay0+ cG9ydHMuc3JjOworCXR1cGxlLT5kc3RfcG9ydCA9IGZrLT5wb3J0cy5kc3Q7CiAKIAlydWxlLT5m bG93X2lkID0gZmxvd19pZDsKIAlydWxlLT5maWx0ZXJfaWQgPSBwcml2LT5mcy5hcmZzLmxhc3Rf ZmlsdGVyX2lkKysgJSBSUFNfTk9fRklMVEVSOwpAQCAtNjYxLDM3ICs2MzMsMzMgQEAgc3RhdGlj IHN0cnVjdCBhcmZzX3J1bGUgKmFyZnNfYWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diwKIAlyZXR1cm4gcnVsZTsKIH0KIAotc3RhdGljIGJvb2wgYXJmc19jbXBfaXBzKHN0cnVjdCBh cmZzX3R1cGxlICp0dXBsZSwKLQkJCSBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGlj IGJvb2wgYXJmc19jbXAoY29uc3Qgc3RydWN0IGFyZnNfdHVwbGUgKnR1cGxlLCBjb25zdCBzdHJ1 Y3QgZmxvd19rZXlzICpmaykKIHsKLQlpZiAodHVwbGUtPmV0eXBlID09IGh0b25zKEVUSF9QX0lQ KSAmJgotCSAgICB0dXBsZS0+c3JjX2lwdjQgPT0gaXBfaGRyKHNrYiktPnNhZGRyICYmCi0JICAg IHR1cGxlLT5kc3RfaXB2NCA9PSBpcF9oZHIoc2tiKS0+ZGFkZHIpCi0JCXJldHVybiB0cnVlOwot CWlmICh0dXBsZS0+ZXR5cGUgPT0gaHRvbnMoRVRIX1BfSVBWNikgJiYKLQkgICAgKCFtZW1jbXAo JnR1cGxlLT5zcmNfaXB2NiwgJmlwdjZfaGRyKHNrYiktPnNhZGRyLAotCQkgICAgIHNpemVvZihz dHJ1Y3QgaW42X2FkZHIpKSkgJiYKLQkgICAgKCFtZW1jbXAoJnR1cGxlLT5kc3RfaXB2NiwgJmlw djZfaGRyKHNrYiktPmRhZGRyLAotCQkgICAgIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKSkpCi0J CXJldHVybiB0cnVlOworCWlmICh0dXBsZS0+c3JjX3BvcnQgIT0gZmstPnBvcnRzLnNyYyB8fCB0 dXBsZS0+ZHN0X3BvcnQgIT0gZmstPnBvcnRzLmRzdCkKKwkJcmV0dXJuIGZhbHNlOworCWlmICh0 dXBsZS0+ZXR5cGUgIT0gZmstPmJhc2ljLm5fcHJvdG8pCisJCXJldHVybiBmYWxzZTsKKwlpZiAo dHVwbGUtPmV0eXBlID09IGh0b25zKEVUSF9QX0lQKSkKKwkJcmV0dXJuIHR1cGxlLT5zcmNfaXB2 NCA9PSBmay0+YWRkcnMudjRhZGRycy5zcmMgJiYKKwkJICAgICAgIHR1cGxlLT5kc3RfaXB2NCA9 PSBmay0+YWRkcnMudjRhZGRycy5kc3Q7CisJaWYgKHR1cGxlLT5ldHlwZSA9PSBodG9ucyhFVEhf UF9JUFY2KSkKKwkJcmV0dXJuICFtZW1jbXAoJnR1cGxlLT5zcmNfaXB2NiwgJmZrLT5hZGRycy52 NmFkZHJzLnNyYywKKwkJCSAgICAgICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSkgJiYKKwkJICAg ICAgICFtZW1jbXAoJnR1cGxlLT5kc3RfaXB2NiwgJmZrLT5hZGRycy52NmFkZHJzLmRzdCwKKwkJ CSAgICAgICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7CiAJcmV0dXJuIGZhbHNlOwogfQogCiBz dGF0aWMgc3RydWN0IGFyZnNfcnVsZSAqYXJmc19maW5kX3J1bGUoc3RydWN0IGFyZnNfdGFibGUg KmFyZnNfdCwKLQkJCQkJY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKKwkJCQkJY29uc3Qgc3Ry dWN0IGZsb3dfa2V5cyAqZmspCiB7CiAJc3RydWN0IGFyZnNfcnVsZSAqYXJmc19ydWxlOwogCXN0 cnVjdCBobGlzdF9oZWFkICpoZWFkOwotCV9fYmUxNiBzcmNfcG9ydCA9IGFyZnNfZ2V0X3NyY19w b3J0KHNrYik7Ci0JX19iZTE2IGRzdF9wb3J0ID0gYXJmc19nZXRfZHN0X3BvcnQoc2tiKTsKIAot CWhlYWQgPSBhcmZzX2hhc2hfYnVja2V0KGFyZnNfdCwgc3JjX3BvcnQsIGRzdF9wb3J0KTsKKwlo ZWFkID0gYXJmc19oYXNoX2J1Y2tldChhcmZzX3QsIGZrLT5wb3J0cy5zcmMsIGZrLT5wb3J0cy5k c3QpOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KGFyZnNfcnVsZSwgaGVhZCwgaGxpc3QpIHsKLQkJ aWYgKGFyZnNfcnVsZS0+dHVwbGUuc3JjX3BvcnQgPT0gc3JjX3BvcnQgJiYKLQkJICAgIGFyZnNf cnVsZS0+dHVwbGUuZHN0X3BvcnQgPT0gZHN0X3BvcnQgJiYKLQkJICAgIGFyZnNfY21wX2lwcygm YXJmc19ydWxlLT50dXBsZSwgc2tiKSkgeworCQlpZiAoYXJmc19jbXAoJmFyZnNfcnVsZS0+dHVw bGUsIGZrKSkKIAkJCXJldHVybiBhcmZzX3J1bGU7Ci0JCX0KIAl9CiAKIAlyZXR1cm4gTlVMTDsK QEAgLTcwNCwyMCArNjcyLDI0IEBAIGludCBtbHg1ZV9yeF9mbG93X3N0ZWVyKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IG1seDVlX2Fy ZnNfdGFibGVzICphcmZzID0gJnByaXYtPmZzLmFyZnM7CiAJc3RydWN0IGFyZnNfdGFibGUgKmFy ZnNfdDsKIAlzdHJ1Y3QgYXJmc19ydWxlICphcmZzX3J1bGU7CisJc3RydWN0IGZsb3dfa2V5cyBm azsKKworCWlmICghc2tiX2Zsb3dfZGlzc2VjdF9mbG93X2tleXMoc2tiLCAmZmssIDApKQorCQly ZXR1cm4gLUVQUk9UT05PU1VQUE9SVDsKIAotCWlmIChza2ItPnByb3RvY29sICE9IGh0b25zKEVU SF9QX0lQKSAmJgotCSAgICBza2ItPnByb3RvY29sICE9IGh0b25zKEVUSF9QX0lQVjYpKQorCWlm IChmay5iYXNpYy5uX3Byb3RvICE9IGh0b25zKEVUSF9QX0lQKSAmJgorCSAgICBmay5iYXNpYy5u X3Byb3RvICE9IGh0b25zKEVUSF9QX0lQVjYpKQogCQlyZXR1cm4gLUVQUk9UT05PU1VQUE9SVDsK IAogCWlmIChza2ItPmVuY2Fwc3VsYXRpb24pCiAJCXJldHVybiAtRVBST1RPTk9TVVBQT1JUOwog Ci0JYXJmc190ID0gYXJmc19nZXRfdGFibGUoYXJmcywgYXJmc19nZXRfaXBfcHJvdG8oc2tiKSwg c2tiLT5wcm90b2NvbCk7CisJYXJmc190ID0gYXJmc19nZXRfdGFibGUoYXJmcywgZmsuYmFzaWMu aXBfcHJvdG8sIGZrLmJhc2ljLm5fcHJvdG8pOwogCWlmICghYXJmc190KQogCQlyZXR1cm4gLUVQ Uk9UT05PU1VQUE9SVDsKIAogCXNwaW5fbG9ja19iaCgmYXJmcy0+YXJmc19sb2NrKTsKLQlhcmZz X3J1bGUgPSBhcmZzX2ZpbmRfcnVsZShhcmZzX3QsIHNrYik7CisJYXJmc19ydWxlID0gYXJmc19m aW5kX3J1bGUoYXJmc190LCAmZmspOwogCWlmIChhcmZzX3J1bGUpIHsKIAkJaWYgKGFyZnNfcnVs ZS0+cnhxID09IHJ4cV9pbmRleCkgewogCQkJc3Bpbl91bmxvY2tfYmgoJmFyZnMtPmFyZnNfbG9j ayk7CkBAIC03MjUsOCArNjk3LDcgQEAgaW50IG1seDVlX3J4X2Zsb3dfc3RlZXIoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJfQogCQlhcmZzX3J1 bGUtPnJ4cSA9IHJ4cV9pbmRleDsKIAl9IGVsc2UgewotCQlhcmZzX3J1bGUgPSBhcmZzX2FsbG9j X3J1bGUocHJpdiwgYXJmc190LCBza2IsCi0JCQkJCSAgICByeHFfaW5kZXgsIGZsb3dfaWQpOwor CQlhcmZzX3J1bGUgPSBhcmZzX2FsbG9jX3J1bGUocHJpdiwgYXJmc190LCAmZmssIHJ4cV9pbmRl eCwgZmxvd19pZCk7CiAJCWlmICghYXJmc19ydWxlKSB7CiAJCQlzcGluX3VubG9ja19iaCgmYXJm cy0+YXJmc19sb2NrKTsKIAkJCXJldHVybiAtRU5PTUVNOwotLSAKMi4yMC4xCgo= ----Next_Part(Tue_Aug_20_16_01_55_2019_050)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_52.mbox" RnJvbSBlNzI2ZTIwYTQ2ZmY3N2RiNDQ2MTk3MzE3NDI4MzFlYjU5ZWNlMjgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYW5pc2ggQ2hvcHJhIDxtYW5pc2hjQG1hcnZlbGwuY29tPgpE YXRlOiBTdW4sIDE4IEF1ZyAyMDE5IDA3OjI1OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8y OF0gYm54Mng6IEZpeCBWRidzIFZMQU4gcmVjb25maWd1cmF0aW9uIGluIHJlbG9hZC4KClsgVXBz dHJlYW0gY29tbWl0IDRhNGQyZDM3MmZiOWI5MjI5MzI3ZTJlZDAxZDVkOTU3MmVkZGY0ZGUgXQoK Q29tbWl0IDA0ZjA1MjMwYzVjMTMgKCJibngyeDogUmVtb3ZlIGNvbmZpZ3VyZWQgdmxhbnMgYXMK cGFydCBvZiB1bmxvYWQgc2VxdWVuY2UuIiksIGludHJvZHVjZWQgYSByZWdyZXNzaW9uIGluIGRy aXZlcgp0aGF0IGFzIGEgcGFydCBvZiBWRidzIHJlbG9hZCBmbG93LCBWTEFOcyBjcmVhdGVkIG9u IHRoZSBWRgpkb2Vzbid0IGdldCByZS1jb25maWd1cmVkIGluIGhhcmR3YXJlIGFzIHZsYW4gbWV0 YWRhdGEvaW5mbwp3YXMgbm90IGdldHRpbmcgY2xlYXJlZCBmb3IgdGhlIFZGcyB3aGljaCBjYXVz ZXMgdmxhbiBQSU5HIHRvIHN0b3AuCgpUaGlzIHBhdGNoIGNsZWFycyB0aGUgdmxhbiBtZXRhZGF0 YS9pbmZvIHNvIHRoYXQgVkxBTnMgZ2V0cwpyZS1jb25maWd1cmVkIGJhY2sgaW4gdGhlIGhhcmR3 YXJlIGluIFZGJ3MgcmVsb2FkIGZsb3cgYW5kClBJTkcvdHJhZmZpYyBjb250aW51ZXMgZm9yIFZM QU5zIGNyZWF0ZWQgb3ZlciB0aGUgVkZzLgoKRml4ZXM6IDA0ZjA1MjMwYzVjMTMgKCJibngyeDog UmVtb3ZlIGNvbmZpZ3VyZWQgdmxhbnMgYXMgcGFydCBvZiB1bmxvYWQgc2VxdWVuY2UuIikKU2ln bmVkLW9mZi1ieTogTWFuaXNoIENob3ByYSA8bWFuaXNoY0BtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9m Zi1ieTogU3VkYXJzYW5hIEthbGx1cnUgPHNrYWxsdXJ1QG1hcnZlbGwuY29tPgpTaWduZWQtb2Zm LWJ5OiBTaGFoZWQgU2hhaWtoIDxzaHNoYWlraEBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jIHwgIDcgKysrKy0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmggfCAgMiArKwogLi4uL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgICAgfCAxNyArKysrKysrKysrKyst LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Nt bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMKaW5k ZXggNDAzOWE5NTk5ZDc5Li45ZDU4MmIzZWJjODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCkBAIC0zMDU3LDEyICszMDU3LDEzIEBAIGlu dCBibngyeF9uaWNfdW5sb2FkKHN0cnVjdCBibngyeCAqYnAsIGludCB1bmxvYWRfbW9kZSwgYm9v bCBrZWVwX2xpbmspCiAJLyogaWYgVkYgaW5kaWNhdGUgdG8gUEYgdGhpcyBmdW5jdGlvbiBpcyBn b2luZyBkb3duIChQRiB3aWxsIGRlbGV0ZSBzcAogCSAqIGVsZW1lbnRzIGFuZCBjbGVhciBpbml0 aWFsaXphdGlvbnMKIAkgKi8KLQlpZiAoSVNfVkYoYnApKQorCWlmIChJU19WRihicCkpIHsKKwkJ Ym54MnhfY2xlYXJfdmxhbl9pbmZvKGJwKTsKIAkJYm54MnhfdmZwZl9jbG9zZV92ZihicCk7Ci0J ZWxzZSBpZiAodW5sb2FkX21vZGUgIT0gVU5MT0FEX1JFQ09WRVJZKQorCX0gZWxzZSBpZiAodW5s b2FkX21vZGUgIT0gVU5MT0FEX1JFQ09WRVJZKSB7CiAJCS8qIGlmIHRoaXMgaXMgYSBub3JtYWwv Y2xvc2UgdW5sb2FkIG5lZWQgdG8gY2xlYW4gdXAgY2hpcCovCiAJCWJueDJ4X2NoaXBfY2xlYW51 cChicCwgdW5sb2FkX21vZGUsIGtlZXBfbGluayk7Ci0JZWxzZSB7CisJfSBlbHNlIHsKIAkJLyog U2VuZCB0aGUgVU5MT0FEX1JFUVVFU1QgdG8gdGhlIE1DUCAqLwogCQlibngyeF9zZW5kX3VubG9h ZF9yZXEoYnAsIHVubG9hZF9tb2RlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibngyeC9ibngyeF9jbW4uaAppbmRleCBjMmY2ZTQ0ZTlhM2YuLjhiMDhjYjE4ZTM2MyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21u LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmgK QEAgLTQyNSw2ICs0MjUsOCBAQCB2b2lkIGJueDJ4X3NldF9yZXNldF9nbG9iYWwoc3RydWN0IGJu eDJ4ICpicCk7CiB2b2lkIGJueDJ4X2Rpc2FibGVfY2xvc2VfdGhlX2dhdGUoc3RydWN0IGJueDJ4 ICpicCk7CiBpbnQgYm54MnhfaW5pdF9od19mdW5jX2NuaWMoc3RydWN0IGJueDJ4ICpicCk7CiAK K3ZvaWQgYm54MnhfY2xlYXJfdmxhbl9pbmZvKHN0cnVjdCBibngyeCAqYnApOworCiAvKioKICAq IGJueDJ4X3NwX2V2ZW50IC0gaGFuZGxlIHJhbXJvZHMgY29tcGxldGlvbi4KICAqCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKaW5kZXggMmNj MTRkYjhmMGVjLi4xOTJmZjhkNWRhMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKQEAgLTg0ODIsMTEgKzg0ODIsMjEgQEAgaW50IGJu eDJ4X3NldF92bGFuX29uZShzdHJ1Y3QgYm54MnggKmJwLCB1MTYgdmxhbiwKIAlyZXR1cm4gcmM7 CiB9CiAKK3ZvaWQgYm54MnhfY2xlYXJfdmxhbl9pbmZvKHN0cnVjdCBibngyeCAqYnApCit7CisJ c3RydWN0IGJueDJ4X3ZsYW5fZW50cnkgKnZsYW47CisKKwkvKiBNYXJrIHRoYXQgaHcgZm9yZ290 IGFsbCBlbnRyaWVzICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCAmYnAtPnZsYW5fcmVn LCBsaW5rKQorCQl2bGFuLT5odyA9IGZhbHNlOworCisJYnAtPnZsYW5fY250ID0gMDsKK30KKwog c3RhdGljIGludCBibngyeF9kZWxfYWxsX3ZsYW5zKHN0cnVjdCBibngyeCAqYnApCiB7CiAJc3Ry dWN0IGJueDJ4X3ZsYW5fbWFjX29iaiAqdmxhbl9vYmogPSAmYnAtPnNwX29ianNbMF0udmxhbl9v Ymo7CiAJdW5zaWduZWQgbG9uZyByYW1yb2RfZmxhZ3MgPSAwLCB2bGFuX2ZsYWdzID0gMDsKLQlz dHJ1Y3QgYm54Mnhfdmxhbl9lbnRyeSAqdmxhbjsKIAlpbnQgcmM7CiAKIAlfX3NldF9iaXQoUkFN Uk9EX0NPTVBfV0FJVCwgJnJhbXJvZF9mbGFncyk7CkBAIC04NDk1LDEwICs4NTA1LDcgQEAgc3Rh dGljIGludCBibngyeF9kZWxfYWxsX3ZsYW5zKHN0cnVjdCBibngyeCAqYnApCiAJaWYgKHJjKQog CQlyZXR1cm4gcmM7CiAKLQkvKiBNYXJrIHRoYXQgaHcgZm9yZ290IGFsbCBlbnRyaWVzICovCi0J bGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCAmYnAtPnZsYW5fcmVnLCBsaW5rKQotCQl2bGFuLT5o dyA9IGZhbHNlOwotCWJwLT52bGFuX2NudCA9IDA7CisJYm54MnhfY2xlYXJfdmxhbl9pbmZvKGJw KTsKIAogCXJldHVybiAwOwogfQotLSAKMi4yMC4xCgoKRnJvbSBlN2JiN2RiN2Y2MWMwYTZjYjA0 OWI0YzdkZjJlNTA1NTM4MTQxMDBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVI YWliaW5nIDx5dWVoYWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFdlZCwgNyBBdWcgMjAxOSAxMDox OTo1OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMjhdIGJvbmRpbmc6IEFkZCB2bGFuIHR4IG9m ZmxvYWQgdG8gaHdfZW5jX2ZlYXR1cmVzCgpbIFVwc3RyZWFtIGNvbW1pdCBkNTk1YjAzZGUyY2Iw YmRmOWJjZGYzNWZmMjc4NDBjYzNhMzcxNThmIF0KCkFzIGNvbW1pdCAzMGQ4MTc3ZThhYzcgKCJi b25kaW5nOiBBbHdheXMgZW5hYmxlIHZsYW4gdHggb2ZmbG9hZCIpCnNhaWQsIHdlIHNob3VsZCBh bHdheXMgZW5hYmxlIGJvbmRpbmcncyB2bGFuIHR4IG9mZmxvYWQsIHBhc3MgdGhlCnZsYW4gcGFj a2V0cyB0byB0aGUgc2xhdmUgZGV2aWNlcyB3aXRoIHZsYW4gdGNpLCBsZXQgdGhlbSB0byBoYW5k bGUKdmxhbiBpbXBsZW1lbnRhdGlvbi4KCk5vdyBpZiBlbmNhcHN1bGF0aW9uIHByb3RvY29scyBs aWtlIFZYTEFOIGlzIHVzZWQsIHNrYi0+ZW5jYXBzdWxhdGlvbgptYXkgYmUgc2V0LCB0aGVuIHRo ZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHZsYW4gZGV2aWNlIHdoaWNoIGJhc2VkIG9uCmJvbmRpbmcg ZGV2aWNlLiBIb3dldmVyIGluIG5ldGlmX3NrYl9mZWF0dXJlcygpLCB0aGUgY2hlY2sgb2YKaHdf ZW5jX2ZlYXR1cmVzOgoKCSBpZiAoc2tiLT5lbmNhcHN1bGF0aW9uKQogICAgICAgICAgICAgICAg IGZlYXR1cmVzICY9IGRldi0+aHdfZW5jX2ZlYXR1cmVzOwoKY2xlYXJzIE5FVElGX0ZfSFdfVkxB Tl9DVEFHX1RYL05FVElGX0ZfSFdfVkxBTl9TVEFHX1RYLiBUaGlzIHJlc3VsdHMKaW4gc2FtZSBp c3N1ZSBpbiBjb21taXQgMzBkODE3N2U4YWM3IGxpa2UgdGhpczoKCnZsYW5fZGV2X2hhcmRfc3Rh cnRfeG1pdAogIC0tPmRldl9xdWV1ZV94bWl0CiAgICAtLT52YWxpZGF0ZV94bWl0X3NrYgogICAg ICAtLT5uZXRpZl9za2JfZmVhdHVyZXMgLy9ORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWCBpcyBjbGVh cmVkCiAgICAgIC0tPnZhbGlkYXRlX3htaXRfdmxhbgogICAgICAgIC0tPl9fdmxhbl9od2FjY2Vs X3B1c2hfaW5zaWRlIC8vc2tiLT50Y2kgaXMgY2xlYXJlZAouLi4KIC0tPiBib25kX3N0YXJ0X3ht aXQKICAgLS0+IGJvbmRfeG1pdF9oYXNoIC8vQk9ORF9YTUlUX1BPTElDWV9FTkNBUDM0CiAgICAg LS0+IF9fc2tiX2Zsb3dfZGlzc2VjdCAvLyBuaG9mZiBwb2ludCB0byBJUCBoZWFkZXIKICAgICAg ICAtLT4gIGNhc2UgaHRvbnMoRVRIX1BfODAyMVEpCiAgICAgICAgICAgICAvLyBza2Jfdmxhbl90 YWdfcHJlc2VudCBpcyBmYWxzZSwgc28KICAgICAgICAgICAgIHZsYW4gPSBfX3NrYl9oZWFkZXJf cG9pbnRlcihza2IsIG5ob2ZmLCBzaXplb2YoX3ZsYW4pLAogICAgICAgICAgICAgLy92bGFuIHBv aW50IHRvIGlwIGhlYWRlciB3cm9uZ2x5CgpGaXhlczogYjJhMTAzZTZkMGFmICgiYm9uZGluZzog Y29udmVydCB0byBuZG9fZml4X2ZlYXR1cmVzIikKU2lnbmVkLW9mZi1ieTogWXVlSGFpYmluZyA8 eXVlaGFpYmluZ0BodWF3ZWkuY29tPgpBY2tlZC1ieTogSmF5IFZvc2J1cmdoIDxqYXkudm9zYnVy Z2hAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAyICsr CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMK aW5kZXggYjBhYWIzYTBhMWJmLi5mMTgzY2FkZDE0ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YwpAQCAtMTExMyw2ICsxMTEzLDggQEAgc3RhdGljIHZvaWQgYm9uZF9jb21wdXRlX2ZlYXR1cmVz KHN0cnVjdCBib25kaW5nICpib25kKQogZG9uZToKIAlib25kX2Rldi0+dmxhbl9mZWF0dXJlcyA9 IHZsYW5fZmVhdHVyZXM7CiAJYm9uZF9kZXYtPmh3X2VuY19mZWF0dXJlcyA9IGVuY19mZWF0dXJl cyB8IE5FVElGX0ZfR1NPX0VOQ0FQX0FMTCB8CisJCQkJICAgIE5FVElGX0ZfSFdfVkxBTl9DVEFH X1RYIHwKKwkJCQkgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFggfAogCQkJCSAgICBORVRJRl9G X0dTT19VRFBfTDQ7CiAJYm9uZF9kZXYtPmdzb19tYXhfc2VncyA9IGdzb19tYXhfc2VnczsKIAlu ZXRpZl9zZXRfZ3NvX21heF9zaXplKGJvbmRfZGV2LCBnc29fbWF4X3NpemUpOwotLSAKMi4yMC4x CgoKRnJvbSBiZTljMzAyMTZjOWE0ZjBiYzY4NmRlYTE2MDA5MDdmYjUwM2Q2ZDQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+CkRhdGU6 IFN1biwgMTEgQXVnIDIwMTkgMjI6MTg6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIDAzLzI4XSBu ZXQ6IGRzYTogQ2hlY2sgZXhpc3RlbmNlIG9mIC5wb3J0X21kYl9hZGQgY2FsbGJhY2sKIGJlZm9y ZSBjYWxsaW5nIGl0CgpbIFVwc3RyZWFtIGNvbW1pdCA1ODc5OTg2NWJlODRlMmE4OTVkYWI3MmRl MGUxYjk5NmVkOTQzZjIyIF0KClRoZSBkc2EgZnJhbWV3b3JrIGhhcyBvcHRpb25hbCAucG9ydF9t ZGJfe3ByZXBhcmUsYWRkLGRlbH0gY2FsbGJhY2sgZmllbGRzCmZvciBkcml2ZXJzIHRvIGhhbmRs ZSBtdWx0aWNhc3QgZGF0YWJhc2UgZW50cmllcy4gV2hlbiBhZGRpbmcgYW4gZW50cnksIHRoZQpm cmFtZXdvcmsgZ29lcyB0aHJvdWdoIGEgcHJlcGFyZSBwaGFzZSwgdGhlbiBhIGNvbW1pdCBwaGFz ZS4gRHJpdmVycyBub3QKcHJvdmlkaW5nIHRoZXNlIGNhbGxiYWNrcyBzaG91bGQgYmUgZGV0ZWN0 ZWQgaW4gdGhlIHByZXBhcmUgcGhhc2UuCgpEU0EgY29yZSBtYXkgc3RpbGwgYnlwYXNzIHRoZSBi cmlkZ2UgbGF5ZXIgYW5kIGNhbGwgdGhlIGRzYV9wb3J0X21kYl9hZGQKZnVuY3Rpb24gZGlyZWN0 bHkgd2l0aCBubyBwcmVwYXJlIHBoYXNlIG9yIG5vIHN3aXRjaGRldiB0cmFucyBvYmplY3QsCmFu ZCB0aGUgZnJhbWV3b3JrIGVuZHMgdXAgY2FsbGluZyBhbiB1bmRlZmluZWQgLnBvcnRfbWRiX2Fk ZCBjYWxsYmFjay4KVGhpcyByZXN1bHRzIGluIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBh cyBzaG93biBpbiB0aGUgbG9nIGJlbG93LgoKVGhlIG90aGVyIGZ1bmN0aW9ucyBzZWVtIHRvIGJl IHByb3Blcmx5IGd1YXJkZWQuIERvIHRoZSBzYW1lIGZvcgoucG9ydF9tZGJfYWRkIGluIGRzYV9z d2l0Y2hfbWRiX2FkZF9iaXRtYXAoKSBhcyB3ZWxsLgoKICAgIDg8LS0tIGN1dCBoZXJlIC0tLQog ICAgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZp cnR1YWwgYWRkcmVzcyAwMDAwMDAwMAogICAgcGdkID0gKHB0cnZhbCkKICAgIFswMDAwMDAwMF0g KnBnZD0wMDAwMDAwMAogICAgSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDgwMDAwMDA1IFsjMV0gU01Q IEFSTQogICAgTW9kdWxlcyBsaW5rZWQgaW46IHJ0bDh4eHh1IHJ0bDgxOTJjdSBydGxfdXNiIHJ0 bDgxOTJjX2NvbW1vbiBydGx3aWZpIG1hYzgwMjExIGNmZzgwMjExCiAgICBDUFU6IDEgUElEOiAx MzQgQ29tbToga3dvcmtlci8xOjIgTm90IHRhaW50ZWQgNS4zLjAtcmMxLTAwMjQ3LWdkMzUxOTAz MDc1MmEgIzEKICAgIEhhcmR3YXJlIG5hbWU6IEFsbHdpbm5lciBzdW43aSAoQTIwKSBGYW1pbHkK ICAgIFdvcmtxdWV1ZTogZXZlbnRzIHN3aXRjaGRldl9kZWZlcnJlZF9wcm9jZXNzX3dvcmsKICAg IFBDIGlzIGF0IDB4MAogICAgTFIgaXMgYXQgZHNhX3N3aXRjaF9ldmVudCsweDU3MC8weDYyMAog ICAgcGMgOiBbPDAwMDAwMDAwPl0gICAgbHIgOiBbPGMwODUzM2VjPl0gICAgcHNyOiA4MDA3MDAx MwogICAgc3AgOiBlZTg3MWRiOCAgaXAgOiAwMDAwMDAwMCAgZnAgOiBlZTk4ZDBhNAogICAgcjEw OiAwMDAwMDAwYyAgcjkgOiAwMDAwMDAwOCAgcjggOiBlZTg5ZjcxMAogICAgcjcgOiBlZTk4ZDA0 MCAgcjYgOiBlZTk4ZDA4OCAgcjUgOiBjMGYwNGM0OCAgcjQgOiBlZTk4ZDA0YwogICAgcjMgOiAw MDAwMDAwMCAgcjIgOiBlZTg5ZjcxMCAgcjEgOiAwMDAwMDAwOCAgcjAgOiBlZTk4ZDA0MAogICAg RmxhZ3M6IE56Y3YgIElSUXMgb24gIEZJUXMgb24gIE1vZGUgU1ZDXzMyICBJU0EgQVJNICBTZWdt ZW50IG5vbmUKICAgIENvbnRyb2w6IDEwYzUzODdkICBUYWJsZTogNmRlYjQwNmEgIERBQzogMDAw MDAwNTEKICAgIFByb2Nlc3Mga3dvcmtlci8xOjIgKHBpZDogMTM0LCBzdGFjayBsaW1pdCA9IDB4 KHB0cnZhbCkpCiAgICBTdGFjazogKDB4ZWU4NzFkYjggdG8gMHhlZTg3MjAwMCkKICAgIDFkYTA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVl ODcxZTE0IDEwM2FjZTJkCiAgICAxZGMwOiAwMDAwMDAwMCBmZmZmZmZmZiAwMDAwMDAwMCBlZTg3 MWUxNCAwMDAwMDAwNSAwMDAwMDAwMCBjMDg1MjRhMCAwMDAwMDAwMAogICAgMWRlMDogZmZmZmUw MDAgYzAxNGJkZmMgYzBmMDRjNDggZWU4NzFlOTggYzBmMDRjNDggZWU5ZTUwMDAgYzA4NTExMjAg YzAxNGJlZjAKICAgIDFlMDA6IDAwMDAwMDAwIGI2NDNhZWEyIGVlOWI0MDY4IGMwODUwOWE4IGVl MmJmOTQwIGVlODlmNzEwIGVlODcxZWNiIDAwMDAwMDAwCiAgICAxZTIwOiAwMDAwMDAwOCAxMDNh Y2UyZCAwMDAwMDAwMCBjMDg3ZTI0OCBlZTI5Yzg2OCAxMDNhY2UyZCAwMDAwMDAwMSBmZmZmZmZm ZgogICAgMWU0MDogMDAwMDAwMDAgZWU4NzFlOTggMDAwMDAwMDYgMDAwMDAwMDAgYzBmYjJhNTAg YzA4N2UyZDAgZmZmZmZmZmYgYzA4NTIzYzQKICAgIDFlNjA6IGZmZmZmZmZmIGMwMTRiZGZjIDAw MDAwMDA2IGMwZmFkMmQwIGVlODcxZTk4IGVlODlmNzEwIDAwMDAwMDAwIGMwMTRjNTAwCiAgICAx ZTgwOiAwMDAwMDAwMCBlZTg5ZjNjMCBjMGYwNGM0OCAwMDAwMDAwMCBlZTllNTAwMCBjMDg3ZGZi NCBlZTllNTAwMCAwMDAwMDAwMAogICAgMWVhMDogZWU4OWY3MTAgZWU4NzFlY2IgMDAwMDAwMDEg MTAzYWNlMmQgMDAwMDAwMDAgYzBmMDRjNDggMDAwMDAwMDAgYzA4N2UwYTgKICAgIDFlYzA6IDAw MDAwMDAwIGVmZDlhM2UwIDAwODlmM2MwIDEwM2FjZTJkIGVlODlmNzAwIGVlODlmNzEwIGVlOWU1 MDAwIDAwMDAwMTIyCiAgICAxZWUwOiAwMDAwMDEwMCBjMDg3ZTEzMCBlZTg5ZjcwMCBjMGZhZDJj OCBjMTAwM2VmMCBjMDg3ZGU0YyAyZTkyODAwMCBjMGZhZDJlYwogICAgMWYwMDogYzBmYWQyZWMg ZWU4Mzk1ODAgZWY3YTYyYzAgZWY3YTk0MDAgMDAwMDAwMDAgYzA4N2RlZjggYzBmYWQyZWMgYzAx NDQ3ZGMKICAgIDFmMjA6IGVmMzE1NjQwIGVmN2E2MmMwIDAwMDAwMDA4IGVlODM5NTgwIGVlODM5 NTk0IGVmN2E2MmMwIDAwMDAwMDA4IGMwZjAzZDAwCiAgICAxZjQwOiBlZjdhNjJkOCBlZjdhNjJj MCBmZmZmZTAwMCBjMDE0NWI4NCBmZmZmZTAwMCBjMGZiMjQyMCBjMGJmYWE4YyAwMDAwMDAwMAog ICAgMWY2MDogZmZmZmUwMDAgZWU4NGI2MDAgZWU4NGI1YzAgMDAwMDAwMDAgZWU4NzAwMDAgZWU4 Mzk1ODAgYzAxNDViNDAgZWYwZTVlYTQKICAgIDFmODA6IGVlODRiNjFjIGMwMTRhNmY4IDAwMDAw MDAxIGVlODRiNWMwIGMwMTRhNWIwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwCiAgICAxZmEw OiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBjMDEwMTBlOCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMAogICAgMWZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKICAgIDFmZTA6IDAwMDAw MDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDEzIDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwCiAgICBbPGMwODUzM2VjPl0gKGRzYV9zd2l0Y2hfZXZlbnQpIGZyb20gWzxjMDE0 YmRmYz5dIChub3RpZmllcl9jYWxsX2NoYWluKzB4NDgvMHg4NCkKICAgIFs8YzAxNGJkZmM+XSAo bm90aWZpZXJfY2FsbF9jaGFpbikgZnJvbSBbPGMwMTRiZWYwPl0gKHJhd19ub3RpZmllcl9jYWxs X2NoYWluKzB4MTgvMHgyMCkKICAgIFs8YzAxNGJlZjA+XSAocmF3X25vdGlmaWVyX2NhbGxfY2hh aW4pIGZyb20gWzxjMDg1MDlhOD5dIChkc2FfcG9ydF9tZGJfYWRkKzB4NDgvMHg3NCkKICAgIFs8 YzA4NTA5YTg+XSAoZHNhX3BvcnRfbWRiX2FkZCkgZnJvbSBbPGMwODdlMjQ4Pl0gKF9fc3dpdGNo ZGV2X2hhbmRsZV9wb3J0X29ial9hZGQrMHg1NC8weGQ0KQogICAgWzxjMDg3ZTI0OD5dIChfX3N3 aXRjaGRldl9oYW5kbGVfcG9ydF9vYmpfYWRkKSBmcm9tIFs8YzA4N2UyZDA+XSAoc3dpdGNoZGV2 X2hhbmRsZV9wb3J0X29ial9hZGQrMHg4LzB4MTQpCiAgICBbPGMwODdlMmQwPl0gKHN3aXRjaGRl dl9oYW5kbGVfcG9ydF9vYmpfYWRkKSBmcm9tIFs8YzA4NTIzYzQ+XSAoZHNhX3NsYXZlX3N3aXRj aGRldl9ibG9ja2luZ19ldmVudCsweDk0LzB4YTQpCiAgICBbPGMwODUyM2M0Pl0gKGRzYV9zbGF2 ZV9zd2l0Y2hkZXZfYmxvY2tpbmdfZXZlbnQpIGZyb20gWzxjMDE0YmRmYz5dIChub3RpZmllcl9j YWxsX2NoYWluKzB4NDgvMHg4NCkKICAgIFs8YzAxNGJkZmM+XSAobm90aWZpZXJfY2FsbF9jaGFp bikgZnJvbSBbPGMwMTRjNTAwPl0gKGJsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4rMHg1MC8w eDY4KQogICAgWzxjMDE0YzUwMD5dIChibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKSBmcm9t IFs8YzA4N2RmYjQ+XSAoc3dpdGNoZGV2X3BvcnRfb2JqX25vdGlmeSsweDQ0LzB4YTgpCiAgICBb PGMwODdkZmI0Pl0gKHN3aXRjaGRldl9wb3J0X29ial9ub3RpZnkpIGZyb20gWzxjMDg3ZTBhOD5d IChzd2l0Y2hkZXZfcG9ydF9vYmpfYWRkX25vdysweDkwLzB4MTA0KQogICAgWzxjMDg3ZTBhOD5d IChzd2l0Y2hkZXZfcG9ydF9vYmpfYWRkX25vdykgZnJvbSBbPGMwODdlMTMwPl0gKHN3aXRjaGRl dl9wb3J0X29ial9hZGRfZGVmZXJyZWQrMHgxNC8weDVjKQogICAgWzxjMDg3ZTEzMD5dIChzd2l0 Y2hkZXZfcG9ydF9vYmpfYWRkX2RlZmVycmVkKSBmcm9tIFs8YzA4N2RlNGM+XSAoc3dpdGNoZGV2 X2RlZmVycmVkX3Byb2Nlc3MrMHg2NC8weDEwNCkKICAgIFs8YzA4N2RlNGM+XSAoc3dpdGNoZGV2 X2RlZmVycmVkX3Byb2Nlc3MpIGZyb20gWzxjMDg3ZGVmOD5dIChzd2l0Y2hkZXZfZGVmZXJyZWRf cHJvY2Vzc193b3JrKzB4Yy8weDE0KQogICAgWzxjMDg3ZGVmOD5dIChzd2l0Y2hkZXZfZGVmZXJy ZWRfcHJvY2Vzc193b3JrKSBmcm9tIFs8YzAxNDQ3ZGM+XSAocHJvY2Vzc19vbmVfd29yaysweDIx OC8weDUwYykKICAgIFs8YzAxNDQ3ZGM+XSAocHJvY2Vzc19vbmVfd29yaykgZnJvbSBbPGMwMTQ1 Yjg0Pl0gKHdvcmtlcl90aHJlYWQrMHg0NC8weDViYykKICAgIFs8YzAxNDViODQ+XSAod29ya2Vy X3RocmVhZCkgZnJvbSBbPGMwMTRhNmY4Pl0gKGt0aHJlYWQrMHgxNDgvMHgxNTApCiAgICBbPGMw MTRhNmY4Pl0gKGt0aHJlYWQpIGZyb20gWzxjMDEwMTBlOD5dIChyZXRfZnJvbV9mb3JrKzB4MTQv MHgyYykKICAgIEV4Y2VwdGlvbiBzdGFjaygweGVlODcxZmIwIHRvIDB4ZWU4NzFmZjgpCiAgICAx ZmEwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAwMDAwMCAwMDAwMDAw MCAwMDAwMDAwMCAwMDAwMDAwMAogICAgMWZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKICAgIDFmZTA6IDAw MDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDEzIDAwMDAwMDAwCiAgICBD b2RlOiBiYWQgUEMgdmFsdWUKICAgIC0tLVsgZW5kIHRyYWNlIDEyOTJjNjFhYmQxN2IxMzAgXS0t LQoKICAgIFs8YzA4NTMzZWM+XSAoZHNhX3N3aXRjaF9ldmVudCkgZnJvbSBbPGMwMTRiZGZjPl0g KG5vdGlmaWVyX2NhbGxfY2hhaW4rMHg0OC8weDg0KQogICAgY29ycmVzcG9uZHMgdG8KCgkkIGFy bS1saW51eC1nbnVlYWJpaGYtYWRkcjJsaW5lIC1DIC1pIC1lIHZtbGludXggYzA4NTMzZWMKCgls aW51eC9uZXQvZHNhL3N3aXRjaC5jOjE1NgoJbGludXgvbmV0L2RzYS9zd2l0Y2guYzoxNzgKCWxp bnV4L25ldC9kc2Evc3dpdGNoLmM6MzI4CgpGaXhlczogZTZkYjk4ZGI4YTk1ICgibmV0OiBkc2E6 IGFkZCBzd2l0Y2ggbWRiIGJpdG1hcCBmdW5jdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBDaGVuLVl1 IFRzYWkgPHdlbnNAY3NpZS5vcmc+ClJldmlld2VkLWJ5OiBWaXZpZW4gRGlkZWxvdCA8dml2aWVu LmRpZGVsb3RAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS9zd2l0Y2guYyB8IDMgKysrCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9zd2l0Y2guYyBiL25l dC9kc2Evc3dpdGNoLmMKaW5kZXggNGVjNWI3Zjg1ZDUxLi4wOWQ5Mjg2YjI3Y2MgMTAwNjQ0Ci0t LSBhL25ldC9kc2Evc3dpdGNoLmMKKysrIGIvbmV0L2RzYS9zd2l0Y2guYwpAQCAtMTUzLDYgKzE1 Myw5IEBAIHN0YXRpYyB2b2lkIGRzYV9zd2l0Y2hfbWRiX2FkZF9iaXRtYXAoc3RydWN0IGRzYV9z d2l0Y2ggKmRzLAogewogCWludCBwb3J0OwogCisJaWYgKCFkcy0+b3BzLT5wb3J0X21kYl9hZGQp CisJCXJldHVybjsKKwogCWZvcl9lYWNoX3NldF9iaXQocG9ydCwgYml0bWFwLCBkcy0+bnVtX3Bv cnRzKQogCQlkcy0+b3BzLT5wb3J0X21kYl9hZGQoZHMsIHBvcnQsIG1kYik7CiB9Ci0tIAoyLjIw LjEKCgpGcm9tIDMxMGExYjVkNzdhODdmZTRkOGU0NWY0MmE0YzEwNmI3ZmViZGNkZDMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlbndlbiBXYW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4K RGF0ZTogTW9uLCAxMiBBdWcgMjAxOSAxNDoxMTozNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDQv MjhdIG5ldC9tbHg0X2VuOiBmaXggYSBtZW1vcnkgbGVhayBidWcKClsgVXBzdHJlYW0gY29tbWl0 IDQ4ZWM3MDE0YzU2ZTVlYjJmYmY2ZjQ3OTg5NjE0MzYyMmQ4MzRmM2IgXQoKSW4gbWx4NF9lbl9j b25maWdfcnNzX3N0ZWVyKCksICdyc3NfbWFwLT5pbmRpcl9xcCcgaXMgYWxsb2NhdGVkIHRocm91 Z2gKa3phbGxvYygpLiBBZnRlciB0aGF0LCBtbHg0X3FwX2FsbG9jKCkgaXMgaW52b2tlZCB0byBj b25maWd1cmUgUlNTCmluZGlyZWN0aW9uLiBIb3dldmVyLCBpZiBtbHg0X3FwX2FsbG9jKCkgZmFp bHMsIHRoZSBhbGxvY2F0ZWQKJ3Jzc19tYXAtPmluZGlyX3FwJyBpcyBub3QgZGVhbGxvY2F0ZWQs IGxlYWRpbmcgdG8gYSBtZW1vcnkgbGVhayBidWcuCgpUbyBmaXggdGhlIGFib3ZlIGlzc3VlLCBh ZGQgdGhlICdxcF9hbGxvY19lcnInIGxhYmVsIHRvIGZyZWUKJ3Jzc19tYXAtPmluZGlyX3FwJy4K CkZpeGVzOiA0OTMxYzZlZjA0YjQgKCJuZXQvbWx4NF9lbjogT3B0aW1pemVkIHNpbmdsZSByaW5n IHN0ZWVyaW5nIikKU2lnbmVkLW9mZi1ieTogV2Vud2VuIFdhbmcgPHdlbndlbkBjcy51Z2EuZWR1 PgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgfCAzICsrLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwppbmRleCA2YzAxMzE0ZTg3YjAuLmRiMzU1 MmYyZDA4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9l bl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYwpA QCAtMTE4Nyw3ICsxMTg3LDcgQEAgaW50IG1seDRfZW5fY29uZmlnX3Jzc19zdGVlcihzdHJ1Y3Qg bWx4NF9lbl9wcml2ICpwcml2KQogCWVyciA9IG1seDRfcXBfYWxsb2MobWRldi0+ZGV2LCBwcml2 LT5iYXNlX3FwbiwgcnNzX21hcC0+aW5kaXJfcXApOwogCWlmIChlcnIpIHsKIAkJZW5fZXJyKHBy aXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgUlNTIGluZGlyZWN0aW9uIFFQXG4iKTsKLQkJZ290byBy c3NfZXJyOworCQlnb3RvIHFwX2FsbG9jX2VycjsKIAl9CiAKIAlyc3NfbWFwLT5pbmRpcl9xcC0+ ZXZlbnQgPSBtbHg0X2VuX3NxcF9ldmVudDsKQEAgLTEyNDEsNiArMTI0MSw3IEBAIGludCBtbHg0 X2VuX2NvbmZpZ19yc3Nfc3RlZXIoc3RydWN0IG1seDRfZW5fcHJpdiAqcHJpdikKIAkJICAgICAg IE1MWDRfUVBfU1RBVEVfUlNULCBOVUxMLCAwLCAwLCByc3NfbWFwLT5pbmRpcl9xcCk7CiAJbWx4 NF9xcF9yZW1vdmUobWRldi0+ZGV2LCByc3NfbWFwLT5pbmRpcl9xcCk7CiAJbWx4NF9xcF9mcmVl KG1kZXYtPmRldiwgcnNzX21hcC0+aW5kaXJfcXApOworcXBfYWxsb2NfZXJyOgogCWtmcmVlKHJz c19tYXAtPmluZGlyX3FwKTsKIAlyc3NfbWFwLT5pbmRpcl9xcCA9IE5VTEw7CiByc3NfZXJyOgot LSAKMi4yMC4xCgoKRnJvbSBiMTU2MzI1YTUwMTIwNTMzMDE1YzU0ODc2YmYzMWVkYmVlNWJjOGMy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFdlZCwgMTQgQXVnIDIwMTkgMDI6MTE6NTcgLTA3MDAKU3ViamVjdDog W1BBVENIIDA1LzI4XSBuZXQvcGFja2V0OiBmaXggcmFjZSBpbiB0cGFja2V0X3NuZCgpCgpbIFVw c3RyZWFtIGNvbW1pdCAzMmQzMTgyY2QyY2QyOWIyZTdlMDRkZjdiMGRiMzUwZmJlMTEyODlmIF0K CnBhY2tldF9zZW5kbXNnKCkgY2hlY2tzIHR4X3JpbmcucGdfdmVjIHRvIGRlY2lkZQppZiBpdCBt dXN0IGNhbGwgdHBhY2tldF9zbmQoKS4KClByb2JsZW0gaXMgdGhhdCB0aGUgY2hlY2sgaXMgbG9j a2xlc3MsIG1lYW5pbmcgYW5vdGhlciB0aHJlYWQKY2FuIGlzc3VlIGEgY29uY3VycmVudCBzZXRz b2Nrb3B0KFBBQ0tFVF9UWF9SSU5HICkgdG8gZmxpcAp0eF9yaW5nLnBnX3ZlYyBiYWNrIHRvIE5V TEwuCgpHaXZlbiB0aGF0IHRwYWNrZXRfc25kKCkgZ3JhYnMgcGdfdmVjX2xvY2sgbXV0ZXgsIHdl IGNhbgpwZXJmb3JtIHRoZSBjaGVjayBhZ2FpbiB0byBzb2x2ZSB0aGUgcmFjZS4KCnN5emJvdCBy ZXBvcnRlZCA6CgprYXNhbjogQ09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkCmthc2FuOiBHUEYg Y291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2Vzcwpn ZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBQUkVFTVBUIFNNUCBLQVNBTgpDUFU6 IDEgUElEOiAxMTQyOSBDb21tOiBzeXotZXhlY3V0b3IzOTQgTm90IHRhaW50ZWQgNS4zLjAtcmM0 KyAjMTAxCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xl IENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExClJJUDogMDAxMDpwYWNrZXRf bG9va3VwX2ZyYW1lKzB4OGQvMHgyNzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzo0NzQKQ29kZTog YzEgZWUgMDMgZjcgNzMgMGMgODAgM2MgMGUgMDAgMGYgODUgY2IgMDEgMDAgMDAgNDggOGIgMGIg ODkgYzAgNGMgOGQgMjQgYzEgNDggYjggMDAgMDAgMDAgMDAgMDAgZmMgZmYgZGYgNGMgODkgZTEg NDggYzEgZTkgMDMgPDgwPiAzYyAwMSAwMCAwZiA4NSA5NCAwMSAwMCAwMCA0OCA4ZCA3YiAxMCA0 ZCA4YiAzYyAyNCA0OCBiOCAwMCAwMApSU1A6IDAwMTg6ZmZmZjg4ODA5ZjgyZjdiOCBFRkxBR1M6 IDAwMDEwMjQ2ClJBWDogZGZmZmZjMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODgwYTQ1YzcwMzAgUkNY OiAwMDAwMDAwMDAwMDAwMDAwClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDFmZmZmMTEwMTQ4 YjhlMDYgUkRJOiBmZmZmODg4MGE0NWM3MDNjClJCUDogZmZmZjg4ODA5ZjgyZjdlOCBSMDg6IGZm ZmY4ODgwODdhZWEyMDAgUjA5OiBmZmZmZmJmZmYxMzRhZTUwClIxMDogZmZmZmZiZmZmMTM0YWU0 ZiBSMTE6IGZmZmZmZmZmODlhNTcyN2YgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClIxMzogMDAwMDAw MDAwMDAwMDAwMSBSMTQ6IGZmZmY4ODgwYTQ1YzZhYzAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCkZT OiAgMDAwMDdmYTA0NzE2ZjcwMCgwMDAwKSBHUzpmZmZmODg4MGFlOTAwMDAwKDAwMDApIGtubEdT OjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAw MDA4MDA1MDAzMwpDUjI6IDAwMDA3ZmEwNDcxNmVkYjggQ1IzOiAwMDAwMDAwMDkxZWI0MDAwIENS NDogMDAwMDAwMDAwMDE0MDZlMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAw MDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAw MDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxsIFRyYWNlOgogcGFja2V0 X2N1cnJlbnRfZnJhbWUgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzo0ODcgW2lubGluZV0KIHRwYWNr ZXRfc25kIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MjY2NyBbaW5saW5lXQogcGFja2V0X3NlbmRt c2crMHg1OTAvMHg2MjUwIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjk3NQogc29ja19zZW5kbXNn X25vc2VjIG5ldC9zb2NrZXQuYzo2MzcgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGQ3LzB4MTMw IG5ldC9zb2NrZXQuYzo2NTcKIF9fX3N5c19zZW5kbXNnKzB4M2UyLzB4OTIwIG5ldC9zb2NrZXQu YzoyMzExCiBfX3N5c19zZW5kbW1zZysweDFiZi8weDRkMCBuZXQvc29ja2V0LmM6MjQxMwogX19k b19zeXNfc2VuZG1tc2cgbmV0L3NvY2tldC5jOjI0NDIgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRt bXNnIG5ldC9zb2NrZXQuYzoyNDM5IFtpbmxpbmVdCiBfX3g2NF9zeXNfc2VuZG1tc2crMHg5ZC8w eDEwMCBuZXQvc29ja2V0LmM6MjQzOQogZG9fc3lzY2FsbF82NCsweGZkLzB4NmEwIGFyY2gveDg2 L2VudHJ5L2NvbW1vbi5jOjI5NgogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkv MHhiZQoKRml4ZXM6IDY5ZTNjNzVmNGQ1NCAoIm5ldDogVFhfUklORyBhbmQgcGFja2V0IG1tYXAi KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9h Zl9wYWNrZXQuYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tl dC5jCmluZGV4IDVmNzhkZjA4MDU3My4uYmFkMTQ0ZGZhYmM1IDEwMDY0NAotLS0gYS9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI2MDcsNiAr MjYwNywxMyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfc25kKHN0cnVjdCBwYWNrZXRfc29jayAqcG8s IHN0cnVjdCBtc2doZHIgKm1zZykKIAogCW11dGV4X2xvY2soJnBvLT5wZ192ZWNfbG9jayk7CiAK KwkvKiBwYWNrZXRfc2VuZG1zZygpIGNoZWNrIG9uIHR4X3JpbmcucGdfdmVjIHdhcyBsb2NrbGVz cywKKwkgKiB3ZSBuZWVkIHRvIGNvbmZpcm0gaXQgdW5kZXIgcHJvdGVjdGlvbiBvZiBwZ192ZWNf bG9jay4KKwkgKi8KKwlpZiAodW5saWtlbHkoIXBvLT50eF9yaW5nLnBnX3ZlYykpIHsKKwkJZXJy ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAJaWYgKGxpa2VseShzYWRkciA9PSBOVUxMKSkg ewogCQlkZXYJPSBwYWNrZXRfY2FjaGVkX2Rldl9nZXQocG8pOwogCQlwcm90bwk9IHBvLT5udW07 Ci0tIAoyLjIwLjEKCgpGcm9tIGFmZjJjMGFjMWRlMWVhODBjODJmMDZjN2I0OWQ4YTAwYjEwYjQw YWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5r aG9yb256aHVrQGxpbmFyby5vcmc+CkRhdGU6IFdlZCwgNyBBdWcgMjAxOSAwMTo0NTo0MCArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMDYvMjhdIG5ldDogc2NoZWQ6IHNjaF90YXByaW86IGZpeCBtZW1s ZWFrIGluIGVycm9yIHBhdGggZm9yCiBzY2hlZCBsaXN0IHBhcnNlCgpbIFVwc3RyZWFtIGNvbW1p dCA1MTY1MGQzM2IyNzcxYWNkNTA1MDY4ZGE2NjljZjg1Y2ZmYWMzNjlhIF0KCkluIGVycm9yIGNh c2UsIGFsbCBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCBmcm9tIHRoZSBzY2hlZCBsaXN0CmJlZm9y ZSBkZWxldGluZyBpdC4gRm9yIHNpbXBsaWNpdHkgdXNlIHJjdSB3YXkuCgpGaXhlczogNWE3ODFj Y2JkMTllNDYgKCJ0YzogQWRkIHN1cHBvcnQgZm9yIGNvbmZpZ3VyaW5nIHRoZSB0YXByaW8gc2No ZWR1bGVyIikKQWNrZWQtYnk6IFZpbmljaXVzIENvc3RhIEdvbWVzIDx2aW5pY2l1cy5nb21lc0Bp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEl2YW4gS2hvcm9uemh1ayA8aXZhbi5raG9yb256aHVr QGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX3RhcHJpby5jIHwgMyArKy0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX3RhcHJpby5jIGIvbmV0L3NjaGVkL3NjaF90YXByaW8uYwppbmRleCA5ZWNmYjhmNTkw MmEuLjhiZTg5YWE1MmI2ZSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YXByaW8uYworKysg Yi9uZXQvc2NoZWQvc2NoX3RhcHJpby5jCkBAIC04NDksNyArODQ5LDggQEAgc3RhdGljIGludCB0 YXByaW9fY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsCiAJc3Bp bl91bmxvY2tfYmgocWRpc2NfbG9jayhzY2gpKTsKIAogZnJlZV9zY2hlZDoKLQlrZnJlZShuZXdf YWRtaW4pOworCWlmIChuZXdfYWRtaW4pCisJCWNhbGxfcmN1KCZuZXdfYWRtaW4tPnJjdSwgdGFw cmlvX2ZyZWVfc2NoZWRfY2IpOwogCiAJcmV0dXJuIGVycjsKIH0KLS0gCjIuMjAuMQoKCkZyb20g ZWM0NjJkZjBiYWQ5MjczM2FiM2I0YTU3MDU4NTI5YmU0ZjgxZDEyMiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogemhlbmdiaW4gPHpoZW5nYmluMTNAaHVhd2VpLmNvbT4KRGF0ZTogVHVl LCAxMyBBdWcgMjAxOSAyMjowNTo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjhdIHNjdHA6 IGZpeCBtZW1sZWFrIGluIHNjdHBfc2VuZF9yZXNldF9zdHJlYW1zCgpbIFVwc3RyZWFtIGNvbW1p dCA2ZDVhZmUyMDM5N2I0NzgxOTJlZDhjMzhlYzBlZTEwZmEzYWVjNjQ5IF0KCklmIHRoZSBzdHJl YW0gb3V0cSBpcyBub3QgZW1wdHksIG5lZWQgdG8ga2ZyZWUgbnN0cl9saXN0LgoKRml4ZXM6IGQ1 NzBhNTljNWI1ZiAoInNjdHA6IG9ubHkgYWxsb3cgdGhlIG91dCBzdHJlYW0gcmVzZXQgd2hlbiB0 aGUgc3RyZWFtIG91dHEgaXMgZW1wdHkiKQpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2Np QGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IHpoZW5nYmluIDx6aGVuZ2JpbjEzQGh1YXdlaS5j b20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdt YWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ClNp Z25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29t PgotLS0KIG5ldC9zY3RwL3N0cmVhbS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5j CmluZGV4IDI1OTQ2NjA0YWY4NS4uZTgzY2RhYTJhYjc2IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9z dHJlYW0uYworKysgYi9uZXQvc2N0cC9zdHJlYW0uYwpAQCAtMzE2LDYgKzMxNiw3IEBAIGludCBz Y3RwX3NlbmRfcmVzZXRfc3RyZWFtcyhzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKIAkJ bnN0cl9saXN0W2ldID0gaHRvbnMoc3RyX2xpc3RbaV0pOwogCiAJaWYgKG91dCAmJiAhc2N0cF9z dHJlYW1fb3V0cV9pc19lbXB0eShzdHJlYW0sIHN0cl9udW1zLCBuc3RyX2xpc3QpKSB7CisJCWtm cmVlKG5zdHJfbGlzdCk7CiAJCXJldHZhbCA9IC1FQUdBSU47CiAJCWdvdG8gb3V0OwogCX0KLS0g CjIuMjAuMQoKCkZyb20gMTMzZmUwY2I4ZjVjY2NmM2UzNTYwOTY2M2IzY2EyYzE4Yjk0MjFlOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwu Y29tPgpEYXRlOiBNb24sIDEyIEF1ZyAyMDE5IDIwOjQ5OjEyICswODAwClN1YmplY3Q6IFtQQVRD SCAwOC8yOF0gc2N0cDogZml4IHRoZSB0cmFuc3BvcnQgZXJyb3JfY291bnQgY2hlY2sKClsgVXBz dHJlYW0gY29tbWl0IGExNzk0ZGU4YjkyZWE2YmMyMDM3ZjQ0NWIyOTY4MTRhYzgyNjY5M2UgXQoK QXMgdGhlIGFubm90YXRpb24gc2F5cyBpbiBzY3RwX2RvXzhfMl90cmFuc3BvcnRfc3RyaWtlKCk6 CgogICJJZiB0aGUgdHJhbnNwb3J0IGVycm9yIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGZf cmV0cmFucwogICB0aHJlc2hvbGQsIGFuZCBsZXNzIHRoYW4gcGF0aG1heHJ0eCAuLi4iCgpJdCBz aG91bGQgYmUgdHJhbnNwb3J0LT5lcnJvcl9jb3VudCBjaGVja2VkIHdpdGggcGF0aG1heHJ4dCwK aW5zdGVhZCBvZiBhc29jLT5wZl9yZXRyYW5zLgoKRml4ZXM6IDVhYTkzYmNmNjZmNCAoInNjdHA6 IEltcGxlbWVudCBxdWljayBmYWlsb3ZlciBkcmFmdCBmcm9tIHRzdndnIikKU2lnbmVkLW9mZi1i eTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNh cmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEph a3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIG5ldC9zY3Rw L3NtX3NpZGVlZmZlY3QuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYyBiL25l dC9zY3RwL3NtX3NpZGVlZmZlY3QuYwppbmRleCBhNTU0ZDZkMTVkMWIuLjFjZjViYjViNzNjNCAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCisrKyBiL25ldC9zY3RwL3NtX3Np ZGVlZmZlY3QuYwpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0YXRpYyB2b2lkIHNjdHBfZG9fOF8yX3Ry YW5zcG9ydF9zdHJpa2Uoc3RydWN0IHNjdHBfY21kX3NlcSAqY29tbWFuZHMsCiAJICovCiAJaWYg KG5ldC0+c2N0cC5wZl9lbmFibGUgJiYKIAkgICAodHJhbnNwb3J0LT5zdGF0ZSA9PSBTQ1RQX0FD VElWRSkgJiYKLQkgICAoYXNvYy0+cGZfcmV0cmFucyA8IHRyYW5zcG9ydC0+cGF0aG1heHJ4dCkg JiYKKwkgICAodHJhbnNwb3J0LT5lcnJvcl9jb3VudCA8IHRyYW5zcG9ydC0+cGF0aG1heHJ4dCkg JiYKIAkgICAodHJhbnNwb3J0LT5lcnJvcl9jb3VudCA+IGFzb2MtPnBmX3JldHJhbnMpKSB7CiAK IAkJc2N0cF9hc3NvY19jb250cm9sX3RyYW5zcG9ydChhc29jLCB0cmFuc3BvcnQsCi0tIAoyLjIw LjEKCgpGcm9tIGY5ZmExOWY0MWRjMjFhYTcwNDM2YjRjMzY2OTMxMDUyZTBmY2E2NGUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1ZUhhaWJpbmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNv bT4KRGF0ZTogVGh1LCA4IEF1ZyAyMDE5IDE0OjIyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSCAw OS8yOF0gdGVhbTogQWRkIHZsYW4gdHggb2ZmbG9hZCB0byBod19lbmNfZmVhdHVyZXMKClsgVXBz dHJlYW0gY29tbWl0IDIyN2YyZjAzMGUyOGQ4NzgzYzNkMTBjZTcwZmY0YmE3OWNhZDY1M2YgXQoK V2Ugc2hvdWxkIGFsc28gZW5hYmxlIHRlYW0ncyB2bGFuIHR4IG9mZmxvYWQgaW4gaHdfZW5jX2Zl YXR1cmVzLApwYXNzIHRoZSB2bGFuIHBhY2tldHMgdG8gdGhlIHNsYXZlIGRldmljZXMgd2l0aCB2 bGFuIHRjaSwgbGV0IHRoZQpzbGF2ZSBoYW5kbGUgdmxhbiB0dW5uZWxpbmcgb2ZmbG9hZCBpbXBs ZW1lbnRhdGlvbi4KCkZpeGVzOiAzMjY4ZTVjYjQ5NGQgKCJ0ZWFtOiBBZHZlcnRpc2UgdHVubmVs aW5nIG9mZmxvYWQgZmVhdHVyZXMiKQpTaWduZWQtb2ZmLWJ5OiBZdWVIYWliaW5nIDx5dWVoYWli aW5nQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYyB8IDIgKysKIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZWFtL3Rl YW0uYyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCmluZGV4IDM2OTE2YmY1MWVlNi4uZDFiNGM3 ZDhlMmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYworKysgYi9kcml2ZXJz L25ldC90ZWFtL3RlYW0uYwpAQCAtMTAwNCw2ICsxMDA0LDggQEAgc3RhdGljIHZvaWQgX190ZWFt X2NvbXB1dGVfZmVhdHVyZXMoc3RydWN0IHRlYW0gKnRlYW0pCiAKIAl0ZWFtLT5kZXYtPnZsYW5f ZmVhdHVyZXMgPSB2bGFuX2ZlYXR1cmVzOwogCXRlYW0tPmRldi0+aHdfZW5jX2ZlYXR1cmVzID0g ZW5jX2ZlYXR1cmVzIHwgTkVUSUZfRl9HU09fRU5DQVBfQUxMIHwKKwkJCQkgICAgIE5FVElGX0Zf SFdfVkxBTl9DVEFHX1RYIHwKKwkJCQkgICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFHX1RYIHwKIAkJ CQkgICAgIE5FVElGX0ZfR1NPX1VEUF9MNDsKIAl0ZWFtLT5kZXYtPmhhcmRfaGVhZGVyX2xlbiA9 IG1heF9oYXJkX2hlYWRlcl9sZW47CiAKLS0gCjIuMjAuMQoKCkZyb20gNWQ5NDMzNTdmYWEzZTE3 NDNmMmRkZjY4YWE0N2I3N2ZhNmIzMTQ5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Q2hyaXMgUGFja2hhbSA8Y2hyaXMucGFja2hhbUBhbGxpZWR0ZWxlc2lzLmNvLm56PgpEYXRlOiBN b24sIDEyIEF1ZyAyMDE5IDA4OjE4OjI1ICsxMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8yOF0gdGlw YzogaW5pdGlhbGlzZSBhZGRyX3RyYWlsX2VuZCB3aGVuIHNldHRpbmcgbm9kZQogYWRkcmVzc2Vz CgpbIFVwc3RyZWFtIGNvbW1pdCA4ODc0ZWNhZTI5NzdlNWEyZDRmMGJhMzAxMzY0NDM1YjgxYzA1 OTM4IF0KCldlIHNldCB0aGUgZmllbGQgJ2FkZHJfdHJpYWxfZW5kJyB0byAnamlmZmllcycsIGlu c3RlYWQgb2YgdGhlIGN1cnJlbnQKdmFsdWUgMCwgYXQgdGhlIG1vbWVudCB0aGUgbm9kZSBhZGRy ZXNzIGlzIGluaXRpYWxpemVkLiBUaGlzIGd1YXJhbnRlZXMKd2UgZG9uJ3QgaW5hZHZlcnRlbnRs eSBlbnRlciBhbiBhZGRyZXNzIHRyaWFsIHBlcmlvZCB3aGVuIHRoZSBub2RlCmFkZHJlc3MgaXMg ZXhwbGljaXRseSBzZXQgYnkgdGhlIHVzZXIuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBQYWNraGFt IDxjaHJpcy5wYWNraGFtQGFsbGllZHRlbGVzaXMuY28ubno+CkFja2VkLWJ5OiBKb24gTWFsb3kg PGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9hZGRyLmMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL2FkZHIuYyBiL25l dC90aXBjL2FkZHIuYwppbmRleCBiODhkNDhkMDA5MTMuLjBmMWVhZWQxYmQxYiAxMDA2NDQKLS0t IGEvbmV0L3RpcGMvYWRkci5jCisrKyBiL25ldC90aXBjL2FkZHIuYwpAQCAtNzUsNiArNzUsNyBA QCB2b2lkIHRpcGNfc2V0X25vZGVfYWRkcihzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyKQogCQl0 aXBjX3NldF9ub2RlX2lkKG5ldCwgbm9kZV9pZCk7CiAJfQogCXRuLT50cmlhbF9hZGRyID0gYWRk cjsKKwl0bi0+YWRkcl90cmlhbF9lbmQgPSBqaWZmaWVzOwogCXByX2luZm8oIjMyLWJpdCBub2Rl IGFkZHJlc3MgaGFzaCBzZXQgdG8gJXhcbiIsIGFkZHIpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9t IGM2MTY4ZDQyZDc3Y2RiODE2YzhkZDFkYzU3YmM1YmRmMjUxN2M0N2MgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29t PgpEYXRlOiBNb24sIDUgQXVnIDIwMTkgMTY6MzQ6MzQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzI4XSB4ZW4vbmV0YmFjazogUmVzZXQgbnJfZnJhZ3MgYmVmb3JlIGZyZWVpbmcgc2tiCgpbIFVw c3RyZWFtIGNvbW1pdCAzYTAyMzNkZGVjNTU0Yjg4NjI5OGRlMjQyOGVkYjVjNTBhMjBlNjk0IF0K CkF0IHRoaXMgcG9pbnQgbnJfZnJhZ3MgaGFzIGJlZW4gaW5jcmVtZW50ZWQgYnV0IHRoZSBmcmFn IGRvZXMgbm90IHlldApoYXZlIGEgcGFnZSBhc3NpZ25lZCBzbyBmcmVlaW5nIHRoZSBza2IgcmVz dWx0cyBpbiBhIGNyYXNoLiBSZXNldApucl9mcmFncyBiZWZvcmUgZnJlZWluZyB0aGUgc2tiIHRv IHByZXZlbnQgdGhpcy4KClNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vy d2FsbEBjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jIHwgMiAr KwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJh Y2suYwppbmRleCAxZDk5NDBkNGU4YzcuLmM5MjYyZmZlZWZlNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L25ldGJhY2suYwpAQCAtOTI1LDYgKzkyNSw3IEBAIHN0YXRpYyB2b2lkIHhlbnZpZl90eF9idWls ZF9nb3BzKHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1ZXVlLAogCQkJc2tiX3NoaW5mbyhza2IpLT5u cl9mcmFncyA9IE1BWF9TS0JfRlJBR1M7CiAJCQluc2tiID0geGVudmlmX2FsbG9jX3NrYigwKTsK IAkJCWlmICh1bmxpa2VseShuc2tiID09IE5VTEwpKSB7CisJCQkJc2tiX3NoaW5mbyhza2IpLT5u cl9mcmFncyA9IDA7CiAJCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQkJeGVudmlmX3R4X2VycihxdWV1 ZSwgJnR4cmVxLCBleHRyYV9jb3VudCwgaWR4KTsKIAkJCQlpZiAobmV0X3JhdGVsaW1pdCgpKQpA QCAtOTQwLDYgKzk0MSw3IEBAIHN0YXRpYyB2b2lkIHhlbnZpZl90eF9idWlsZF9nb3BzKHN0cnVj dCB4ZW52aWZfcXVldWUgKnF1ZXVlLAogCiAJCQlpZiAoeGVudmlmX3NldF9za2JfZ3NvKHF1ZXVl LT52aWYsIHNrYiwgZ3NvKSkgewogCQkJCS8qIEZhaWx1cmUgaW4geGVudmlmX3NldF9za2JfZ3Nv IGlzIGZhdGFsLiAqLworCQkJCXNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3MgPSAwOwogCQkJCWtm cmVlX3NrYihza2IpOwogCQkJCWtmcmVlX3NrYihuc2tiKTsKIAkJCQlicmVhazsKLS0gCjIuMjAu MQoKCkZyb20gYWQyMGNhOTBkNDlhN2IzYjIxNDNlYTBiOTgwNmVlNzM0ZDMzNmJhYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSHV5IE5ndXllbiA8aHV5bkBtZWxsYW5veC5jb20+CkRh dGU6IFRodSwgMSBBdWcgMjAxOSAxMToxMDoxOSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjhd IG5ldC9tbHg1ZTogT25seSBzdXBwb3J0IHR4L3J4IHBhdXNlIHNldHRpbmcgZm9yIHBvcnQKIG93 bmVyCgpbIFVwc3RyZWFtIGNvbW1pdCA0NjZkZjZlYjRhOWU4MTNiM2NmYzY3NDM2MzMxNjQ1MGM1 N2E4OWM1IF0KCk9ubHkgc3VwcG9ydCBjaGFuZ2luZyB0eC9yeCBwYXVzZSBmcmFtZSBzZXR0aW5n IGlmIHRoZSBuZXQgZGV2aWNlCmlzIHRoZSB2cG9ydCBncm91cCBtYW5hZ2VyLgoKRml4ZXM6IDNj MmQxOGVmMjJkZiAoIm5ldC9tbHg1ZTogU3VwcG9ydCBldGh0b29sIGdldC9zZXRfcGF1c2VwYXJh bSIpClNpZ25lZC1vZmYtYnk6IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpSZXZpZXdl ZC1ieTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCAzICsrKwogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCmluZGV4IGY2MzdkODFmMDhiYy4uMjJkNTEwMTc2 OTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9ldGh0b29sLmMKQEAgLTEzMTcsNiArMTMxNyw5IEBAIGludCBtbHg1ZV9ldGh0b29sX3Nl dF9wYXVzZXBhcmFtKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCXN0cnVjdCBtbHg1X2NvcmVf ZGV2ICptZGV2ID0gcHJpdi0+bWRldjsKIAlpbnQgZXJyOwogCisJaWYgKCFNTFg1X0NBUF9HRU4o bWRldiwgdnBvcnRfZ3JvdXBfbWFuYWdlcikpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwogCWlm IChwYXVzZXBhcmFtLT5hdXRvbmVnKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotLSAKMi4yMC4xCgoK RnJvbSA3MDJmNTM3NmRhMTQwNmE3ZTg1NGQ0ZTg4OWUzMzMwMDg0YWZhYWVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5j b20+CkRhdGU6IFNhdCwgMTcgQXVnIDIwMTkgMTc6MDQ6NDcgLTA0MDAKU3ViamVjdDogW1BBVENI IDEzLzI4XSBibnh0X2VuOiBGaXggVk5JQyBjbGVhcmluZyBsb2dpYyBmb3IgNTc1MDAgY2hpcHMu CgpbIFVwc3RyZWFtIGNvbW1pdCBhNDZlY2IxMTZmYjdmNzIyZmE4Y2IyZGEwMTk1OWMzNmU0ZTEw YzQxIF0KCkR1cmluZyBkZXZpY2Ugc2h1dGRvd24sIHRoZSBWTklDIGNsZWFyaW5nIHNlcXVlbmNl IG5lZWRzIHRvIGJlIG1vZGlmaWVkCnRvIGZyZWUgdGhlIFZOSUMgZmlyc3QgYmVmb3JlIGZyZWVp bmcgdGhlIFJTUyBjb250ZXh0cy4gIFRoZSBjdXJyZW50CmNvZGUgaXMgZG9pbmcgdGhlIHJldmVy c2UgYW5kIHdlIGNhbiBnZXQgbWlzLWRpcmVjdGVkIFJYIGNvbXBsZXRpb25zCnRvIENQIHJpbmcg SUQgMCB3aGVuIHRoZSBSU1MgY29udGV4dHMgYXJlIGZyZWVkIGFuZCB6ZXJvZWQuICBUaGUgY2xl YXJpbmcKb2YgUlNTIGNvbnRleHRzIGlzIG5vdCByZXF1aXJlZCB3aXRoIHRoZSBuZXcgc2VxdWVu Y2UuCgpSZWZhY3RvciB0aGUgVk5JQyBjbGVhcmluZyBsb2dpYyBpbnRvIGEgbmV3IGZ1bmN0aW9u IGJueHRfY2xlYXJfdm5pYygpCmFuZCBkbyB0aGUgY2hpcCBzcGVjaWZpYyBWTklDIGNsZWFyaW5n IHNlcXVlbmNlLgoKRml4ZXM6IDdiM2FmNGY3NWI4MSAoImJueHRfZW46IEFkZCBSU1Mgc3VwcG9y dCBmb3IgNTc1MDAgY2hpcHMuIikKU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVs LmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmMgfCAyNiArKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYwppbmRleCA3YWZhZTlkODBlNzUuLmQ5ZWFhZmE5Mzk3MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTY5NjMsMTkgKzY5NjMsMjkg QEAgc3RhdGljIHZvaWQgYm54dF9od3JtX2NsZWFyX3ZuaWNfcnNzKHN0cnVjdCBibnh0ICpicCkK IAkJYm54dF9od3JtX3ZuaWNfc2V0X3JzcyhicCwgaSwgZmFsc2UpOwogfQogCi1zdGF0aWMgdm9p ZCBibnh0X2h3cm1fcmVzb3VyY2VfZnJlZShzdHJ1Y3QgYm54dCAqYnAsIGJvb2wgY2xvc2VfcGF0 aCwKLQkJCQkgICAgYm9vbCBpcnFfcmVfaW5pdCkKK3N0YXRpYyB2b2lkIGJueHRfY2xlYXJfdm5p YyhzdHJ1Y3QgYm54dCAqYnApCiB7Ci0JaWYgKGJwLT52bmljX2luZm8pIHsKLQkJYm54dF9od3Jt X2NsZWFyX3ZuaWNfZmlsdGVyKGJwKTsKKwlpZiAoIWJwLT52bmljX2luZm8pCisJCXJldHVybjsK KworCWJueHRfaHdybV9jbGVhcl92bmljX2ZpbHRlcihicCk7CisJaWYgKCEoYnAtPmZsYWdzICYg Qk5YVF9GTEFHX0NISVBfUDUpKSB7CiAJCS8qIGNsZWFyIGFsbCBSU1Mgc2V0dGluZyBiZWZvcmUg ZnJlZSB2bmljIGN0eCAqLwogCQlibnh0X2h3cm1fY2xlYXJfdm5pY19yc3MoYnApOwogCQlibnh0 X2h3cm1fdm5pY19jdHhfZnJlZShicCk7Ci0JCS8qIGJlZm9yZSBmcmVlIHRoZSB2bmljLCB1bmRv IHRoZSB2bmljIHRwYSBzZXR0aW5ncyAqLwotCQlpZiAoYnAtPmZsYWdzICYgQk5YVF9GTEFHX1RQ QSkKLQkJCWJueHRfc2V0X3RwYShicCwgZmFsc2UpOwotCQlibnh0X2h3cm1fdm5pY19mcmVlKGJw KTsKIAl9CisJLyogYmVmb3JlIGZyZWUgdGhlIHZuaWMsIHVuZG8gdGhlIHZuaWMgdHBhIHNldHRp bmdzICovCisJaWYgKGJwLT5mbGFncyAmIEJOWFRfRkxBR19UUEEpCisJCWJueHRfc2V0X3RwYShi cCwgZmFsc2UpOworCWJueHRfaHdybV92bmljX2ZyZWUoYnApOworCWlmIChicC0+ZmxhZ3MgJiBC TlhUX0ZMQUdfQ0hJUF9QNSkKKwkJYm54dF9od3JtX3ZuaWNfY3R4X2ZyZWUoYnApOworfQorCitz dGF0aWMgdm9pZCBibnh0X2h3cm1fcmVzb3VyY2VfZnJlZShzdHJ1Y3QgYm54dCAqYnAsIGJvb2wg Y2xvc2VfcGF0aCwKKwkJCQkgICAgYm9vbCBpcnFfcmVfaW5pdCkKK3sKKwlibnh0X2NsZWFyX3Zu aWMoYnApOwogCWJueHRfaHdybV9yaW5nX2ZyZWUoYnAsIGNsb3NlX3BhdGgpOwogCWJueHRfaHdy bV9yaW5nX2dycF9mcmVlKGJwKTsKIAlpZiAoaXJxX3JlX2luaXQpIHsKLS0gCjIuMjAuMQoKCkZy b20gMTdiN2U2MDQ5ZDRlNzhiM2M0YzNhY2NlZjc2ZTdiMTk2NDljMDJhNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29t PgpEYXRlOiBTYXQsIDE3IEF1ZyAyMDE5IDE3OjA0OjQ4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAx NC8yOF0gYm54dF9lbjogSW1wcm92ZSBSWCBkb29yYmVsbCBzZXF1ZW5jZS4KClsgVXBzdHJlYW0g Y29tbWl0IGU4ZjI2N2IwNjMyMDgzNzJmN2EzMjljNmQ1Mjg4ZDU4OTQ0ZDg3M2MgXQoKV2hlbiBi b3RoIFJYIGJ1ZmZlcnMgYW5kIFJYIGFnZ3JlZ2F0aW9uIGJ1ZmZlcnMgaGF2ZSB0byBiZQpyZXBs ZW5pc2hlZCBhdCB0aGUgZW5kIG9mIE5BUEksIHBvc3QgdGhlIFJYIGFnZ3JlZ2F0aW9uIGJ1ZmZl cnMgZmlyc3QKYmVmb3JlIFJYIGJ1ZmZlcnMuICBPdGhlcndpc2UsIHdlIG1heSBydW4gaW50byBh IHNpdHVhdGlvbiB3aGVyZQp0aGVyZSBhcmUgb25seSBSWCBidWZmZXJzIHdpdGhvdXQgUlggYWdn cmVnYXRpb24gYnVmZmVycyBmb3IgYSBzcGxpdApzZWNvbmQuICBUaGlzIHdpbGwgY2F1c2UgdGhl IGhhcmR3YXJlIHRvIGFib3J0IHRoZSBSWCBwYWNrZXQgYW5kCnJlcG9ydCBidWZmZXIgZXJyb3Jz LCB3aGljaCB3aWxsIGNhdXNlIHVubmVjZXNzYXJ5IGNsZWFudXAgYnkgdGhlCmRyaXZlci4KClJp bmdpbmcgdGhlIEFnZ3JlZ2F0aW9uIHJpbmcgZG9vcmJlbGwgZmlyc3QgYmVmb3JlIHRoZSBSWCBy aW5nIGRvb3JiZWxsCndpbGwgcHJldmVudCBzb21lIG9mIHRoZXNlIGJ1ZmZlciBlcnJvcnMuICBV c2UgdGhlIHNhbWUgc2VxdWVuY2UgZHVyaW5nCnJpbmcgaW5pdGlhbGl6YXRpb24gYXMgd2VsbC4K CkZpeGVzOiA2OTcxOTdlNWExNzMgKCJibnh0X2VuOiBSZS1zdHJ1Y3R1cmUgZG9vcmJlbGxzLiIp ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgMTAgKysrKysrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IGQ5ZWFhZmE5Mzk3MC4u MzZmZTRmMTYxY2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQu YwpAQCAtMjAxNSw5ICsyMDE1LDkgQEAgc3RhdGljIHZvaWQgX19ibnh0X3BvbGxfd29ya19kb25l KHN0cnVjdCBibnh0ICpicCwgc3RydWN0IGJueHRfbmFwaSAqYm5hcGkpCiAJaWYgKGJuYXBpLT5l dmVudHMgJiBCTlhUX1JYX0VWRU5UKSB7CiAJCXN0cnVjdCBibnh0X3J4X3JpbmdfaW5mbyAqcnhy ID0gYm5hcGktPnJ4X3Jpbmc7CiAKLQkJYm54dF9kYl93cml0ZShicCwgJnJ4ci0+cnhfZGIsIHJ4 ci0+cnhfcHJvZCk7CiAJCWlmIChibmFwaS0+ZXZlbnRzICYgQk5YVF9BR0dfRVZFTlQpCiAJCQli bnh0X2RiX3dyaXRlKGJwLCAmcnhyLT5yeF9hZ2dfZGIsIHJ4ci0+cnhfYWdnX3Byb2QpOworCQli bnh0X2RiX3dyaXRlKGJwLCAmcnhyLT5yeF9kYiwgcnhyLT5yeF9wcm9kKTsKIAl9CiAJYm5hcGkt PmV2ZW50cyA9IDA7CiB9CkBAIC01MDExLDYgKzUwMTEsNyBAQCBzdGF0aWMgdm9pZCBibnh0X3Nl dF9kYihzdHJ1Y3QgYm54dCAqYnAsIHN0cnVjdCBibnh0X2RiX2luZm8gKmRiLCB1MzIgcmluZ190 eXBlLAogCiBzdGF0aWMgaW50IGJueHRfaHdybV9yaW5nX2FsbG9jKHN0cnVjdCBibnh0ICpicCkK IHsKKwlib29sIGFnZ19yaW5ncyA9ICEhKGJwLT5mbGFncyAmIEJOWFRfRkxBR19BR0dfUklOR1Mp OwogCWludCBpLCByYyA9IDA7CiAJdTMyIHR5cGU7CiAKQEAgLTUwODYsNyArNTA4Nyw5IEBAIHN0 YXRpYyBpbnQgYm54dF9od3JtX3JpbmdfYWxsb2Moc3RydWN0IGJueHQgKmJwKQogCQlpZiAocmMp CiAJCQlnb3RvIGVycl9vdXQ7CiAJCWJueHRfc2V0X2RiKGJwLCAmcnhyLT5yeF9kYiwgdHlwZSwg bWFwX2lkeCwgcmluZy0+ZndfcmluZ19pZCk7Ci0JCWJueHRfZGJfd3JpdGUoYnAsICZyeHItPnJ4 X2RiLCByeHItPnJ4X3Byb2QpOworCQkvKiBJZiB3ZSBoYXZlIGFnZyByaW5ncywgcG9zdCBhZ2cg YnVmZmVycyBmaXJzdC4gKi8KKwkJaWYgKCFhZ2dfcmluZ3MpCisJCQlibnh0X2RiX3dyaXRlKGJw LCAmcnhyLT5yeF9kYiwgcnhyLT5yeF9wcm9kKTsKIAkJYnAtPmdycF9pbmZvW21hcF9pZHhdLnJ4 X2Z3X3JpbmdfaWQgPSByaW5nLT5md19yaW5nX2lkOwogCQlpZiAoYnAtPmZsYWdzICYgQk5YVF9G TEFHX0NISVBfUDUpIHsKIAkJCXN0cnVjdCBibnh0X2NwX3JpbmdfaW5mbyAqY3ByID0gJmJuYXBp LT5jcF9yaW5nOwpAQCAtNTEwNSw3ICs1MTA4LDcgQEAgc3RhdGljIGludCBibnh0X2h3cm1fcmlu Z19hbGxvYyhzdHJ1Y3QgYm54dCAqYnApCiAJCX0KIAl9CiAKLQlpZiAoYnAtPmZsYWdzICYgQk5Y VF9GTEFHX0FHR19SSU5HUykgeworCWlmIChhZ2dfcmluZ3MpIHsKIAkJdHlwZSA9IEhXUk1fUklO R19BTExPQ19BR0c7CiAJCWZvciAoaSA9IDA7IGkgPCBicC0+cnhfbnJfcmluZ3M7IGkrKykgewog CQkJc3RydWN0IGJueHRfcnhfcmluZ19pbmZvICpyeHIgPSAmYnAtPnJ4X3JpbmdbaV07CkBAIC01 MTIxLDYgKzUxMjQsNyBAQCBzdGF0aWMgaW50IGJueHRfaHdybV9yaW5nX2FsbG9jKHN0cnVjdCBi bnh0ICpicCkKIAkJCWJueHRfc2V0X2RiKGJwLCAmcnhyLT5yeF9hZ2dfZGIsIHR5cGUsIG1hcF9p ZHgsCiAJCQkJICAgIHJpbmctPmZ3X3JpbmdfaWQpOwogCQkJYm54dF9kYl93cml0ZShicCwgJnJ4 ci0+cnhfYWdnX2RiLCByeHItPnJ4X2FnZ19wcm9kKTsKKwkJCWJueHRfZGJfd3JpdGUoYnAsICZy eHItPnJ4X2RiLCByeHItPnJ4X3Byb2QpOwogCQkJYnAtPmdycF9pbmZvW2dycF9pZHhdLmFnZ19m d19yaW5nX2lkID0gcmluZy0+ZndfcmluZ19pZDsKIAkJfQogCX0KLS0gCjIuMjAuMQoKCkZyb20g OTg0ZTAxNjVjZjQzYmJiZDc0MTIyOGYxYWZkYzE5ZDMxMGYzZTc1MiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2Fk Y29tLmNvbT4KRGF0ZTogU2F0LCAxNyBBdWcgMjAxOSAxNzowNDo0OSAtMDQwMApTdWJqZWN0OiBb UEFUQ0ggMTUvMjhdIGJueHRfZW46IEZpeCBoYW5kbGluZyBGUkFHX0VSUiB3aGVuIE5WTV9JTlNU QUxMX1VQREFURQogY21kIGZhaWxzCgpbIFVwc3RyZWFtIGNvbW1pdCBkZDJlYmYzNDA0YzdjMjk1 MDE0YmMwMjVkZWEyMzk2MDk2MGNlYjFhIF0KCklmIEZXIHJldHVybnMgRlJBR19FUlIgaW4gcmVz cG9uc2UgZXJyb3IgY29kZSwgZHJpdmVyIGlzIHJlc2VuZGluZyB0aGUKY29tbWFuZCBvbmx5IHdo ZW4gSFdSTSBjb21tYW5kIHJldHVybnMgc3VjY2Vzcy4gRml4IHRoZSBjb2RlIHRvIHJlc2VuZApO Vk1fSU5TVEFMTF9VUERBVEUgY29tbWFuZCB3aXRoIERFRlJBRyBpbnN0YWxsIGZsYWdzLCBpZiBG VyByZXR1cm5zCkZSQUdfRVJSIGluIGl0cyByZXNwb25zZSBlcnJvciBjb2RlLgoKRml4ZXM6IGNi NGQxZDYyNjE0NSAoImJueHRfZW46IFJldHJ5IGZhaWxlZCBOVk1fSU5TVEFMTF9VUERBVEUgd2l0 aCBkZWZyYWdtZW50YXRpb24gZmxhZyBlbmFibGVkLiIpClNpZ25lZC1vZmYtYnk6IFZhc3VuZGhh cmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6 IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMgfCAxMiArKysrKy0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMKaW5kZXggYTZj N2JhZjM4MDM2Li5iNzYxYTJlMjhhMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYwpAQCAtMjAxNiwyMSArMjAxNiwxOSBAQCBzdGF0 aWMgaW50IGJueHRfZmxhc2hfcGFja2FnZV9mcm9tX2ZpbGUoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAltdXRleF9sb2NrKCZicC0+aHdybV9jbWRfbG9jayk7CiAJaHdybV9lcnIgPSBfaHdybV9z ZW5kX21lc3NhZ2UoYnAsICZpbnN0YWxsLCBzaXplb2YoaW5zdGFsbCksCiAJCQkJICAgICAgSU5T VEFMTF9QQUNLQUdFX1RJTUVPVVQpOwotCWlmIChod3JtX2VycikKLQkJZ290byBmbGFzaF9wa2df ZXhpdDsKLQotCWlmIChyZXNwLT5lcnJvcl9jb2RlKSB7CisJaWYgKGh3cm1fZXJyKSB7CiAJCXU4 IGVycm9yX2NvZGUgPSAoKHN0cnVjdCBod3JtX2Vycl9vdXRwdXQgKilyZXNwKS0+Y21kX2VycjsK IAotCQlpZiAoZXJyb3JfY29kZSA9PSBOVk1fSU5TVEFMTF9VUERBVEVfQ01EX0VSUl9DT0RFX0ZS QUdfRVJSKSB7CisJCWlmIChyZXNwLT5lcnJvcl9jb2RlICYmIGVycm9yX2NvZGUgPT0KKwkJICAg IE5WTV9JTlNUQUxMX1VQREFURV9DTURfRVJSX0NPREVfRlJBR19FUlIpIHsKIAkJCWluc3RhbGwu ZmxhZ3MgfD0gY3B1X3RvX2xlMTYoCiAJCQkgICAgICAgTlZNX0lOU1RBTExfVVBEQVRFX1JFUV9G TEFHU19BTExPV0VEX1RPX0RFRlJBRyk7CiAJCQlod3JtX2VyciA9IF9od3JtX3NlbmRfbWVzc2Fn ZShicCwgJmluc3RhbGwsCiAJCQkJCQkgICAgICBzaXplb2YoaW5zdGFsbCksCiAJCQkJCQkgICAg ICBJTlNUQUxMX1BBQ0tBR0VfVElNRU9VVCk7Ci0JCQlpZiAoaHdybV9lcnIpCi0JCQkJZ290byBm bGFzaF9wa2dfZXhpdDsKIAkJfQorCQlpZiAoaHdybV9lcnIpCisJCQlnb3RvIGZsYXNoX3BrZ19l eGl0OwogCX0KIAogCWlmIChyZXNwLT5yZXN1bHQpIHsKLS0gCjIuMjAuMQoKCkZyb20gMWU3NzE4 YThlNWQzYmJkOTJjMmQzZWM5MDJkOTU3MDYwNjA3YWVmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNv bT4KRGF0ZTogU2F0LCAxNyBBdWcgMjAxOSAxNzowNDo1MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjhdIGJueHRfZW46IFN1cHByZXNzIEhXUk0gZXJyb3JzIGZvciBIV1JNX05WTV9HRVRfVkFS SUFCTEUKIGNvbW1hbmQKClsgVXBzdHJlYW0gY29tbWl0IGI3MDNiYTc1MWRiYjRiY2QwODY1MDll ZDRiMjgxMDJiYzE2NzBiMzUgXQoKRm9yIG5ld2x5IGFkZGVkIE5WTSBwYXJhbWV0ZXJzLCBvbGRl ciBmaXJtd2FyZSBtYXkgbm90IGhhdmUgdGhlIHN1cHBvcnQuClN1cHByZXNzIHRoZSBlcnJvciBt ZXNzYWdlIHRvIGF2b2lkIHRoZSB1bm5jZXNzYXJ5IGVycm9yIG1lc3NhZ2Ugd2hpY2ggaXMKdHJp Z2dlcmVkIHdoZW4gZGV2bGluayBjYWxscyB0aGUgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlv bi4KCkZpeGVzOiA3ODJhNjI0ZDAwZmEgKCJibnh0X2VuOiBBZGQgYm54dF9lbiBpbml0aWFsIHBh cmFtcyB0YWJsZSBhbmQgcmVnaXN0ZXIgaXQuIikKU2lnbmVkLW9mZi1ieTogVmFzdW5kaGFyYSBW b2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuYyB8IDkgKysrKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5rLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5jCmluZGV4IDU0OWM5MGQzZTQ2 NS4uYzA1ZDY2MzIxMmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHRfZGV2bGluay5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dF9kZXZsaW5rLmMKQEAgLTk4LDEwICs5OCwxMyBAQCBzdGF0aWMgaW50IGJueHRf aHdybV9udm1fcmVxKHN0cnVjdCBibnh0ICpicCwgdTMyIHBhcmFtX2lkLCB2b2lkICptc2csCiAJ aWYgKGlkeCkKIAkJcmVxLT5kaW1lbnNpb25zID0gY3B1X3RvX2xlMTYoMSk7CiAKLQlpZiAocmVx LT5yZXFfdHlwZSA9PSBjcHVfdG9fbGUxNihIV1JNX05WTV9TRVRfVkFSSUFCTEUpKQorCWlmIChy ZXEtPnJlcV90eXBlID09IGNwdV90b19sZTE2KEhXUk1fTlZNX1NFVF9WQVJJQUJMRSkpIHsKIAkJ bWVtY3B5KGRhdGFfYWRkciwgYnVmLCBieXRlc2l6ZSk7Ci0KLQlyYyA9IGh3cm1fc2VuZF9tZXNz YWdlKGJwLCBtc2csIG1zZ19sZW4sIEhXUk1fQ01EX1RJTUVPVVQpOworCQlyYyA9IGh3cm1fc2Vu ZF9tZXNzYWdlKGJwLCBtc2csIG1zZ19sZW4sIEhXUk1fQ01EX1RJTUVPVVQpOworCX0gZWxzZSB7 CisJCXJjID0gaHdybV9zZW5kX21lc3NhZ2Vfc2lsZW50KGJwLCBtc2csIG1zZ19sZW4sCisJCQkJ CSAgICAgIEhXUk1fQ01EX1RJTUVPVVQpOworCX0KIAlpZiAoIXJjICYmIHJlcS0+cmVxX3R5cGUg PT0gY3B1X3RvX2xlMTYoSFdSTV9OVk1fR0VUX1ZBUklBQkxFKSkKIAkJbWVtY3B5KGJ1ZiwgZGF0 YV9hZGRyLCBieXRlc2l6ZSk7CiAKLS0gCjIuMjAuMQoKCkZyb20gZGE1MjU1OWYzZWZlMGE3YTA1 NDk3NGRhZGQwZGFhODI0MzM1NzY4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmVu a2F0IER1dnZ1cnUgPHZlbmthdGt1bWFyLmR1dnZ1cnVAYnJvYWRjb20uY29tPgpEYXRlOiBTYXQs IDE3IEF1ZyAyMDE5IDE3OjA0OjUxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxNy8yOF0gYm54dF9l bjogVXNlIGNvcnJlY3Qgc3JjX2ZpZCB0byBkZXRlcm1pbmUgZGlyZWN0aW9uIG9mCiB0aGUgZmxv dwoKWyBVcHN0cmVhbSBjb21taXQgNjg1ZWM2YTgxYmIwZDQ3ZmFmMWRiYTQ5NDM3ZDViZGFlZGUy NzMzZCBdCgpEaXJlY3Rpb24gb2YgdGhlIGZsb3cgaXMgZGV0ZXJtaW5lZCB1c2luZyBzcmNfZmlk LiBGb3IgYW4gUlggZmxvdywKc3JjX2ZpZCBpcyBQRidzIGZpZCBhbmQgZm9yIFRYIGZsb3csIHNy Y19maWQgaXMgVkYncyBmaWQuIERpcmVjdGlvbgpvZiB0aGUgZmxvdyBtdXN0IGJlIHNwZWNpZmll ZCwgd2hlbiBnZXR0aW5nIHN0YXRpc3RpY3MgZm9yIHRoYXQgZmxvdy4KQ3VycmVudGx5LCBmb3Ig REVDQVAgZmxvdywgZGlyZWN0aW9uIGlzIGRldGVybWluZWQgaW5jb3JyZWN0bHksIGkuZS4sCmRp cmVjdGlvbiBpcyBpbml0aWFsaXplZCBhcyBUWCBmb3IgREVDQVAgZmxvdywgaW5zdGVhZCBvZiBS WC4gQmVjYXVzZQpvZiB3aGljaCwgc3RhdHMgYXJlIG5vdCByZXBvcnRlZCBmb3IgdGhpcyBERUNB UCBmbG93LCB0aG91Z2ggaXQgaXMKb2ZmbG9hZGVkIGFuZCB0aGVyZSBpcyB0cmFmZmljIGZvciB0 aGF0IGZsb3csIHJlc3VsdGluZyBpbiBmbG93IGFnZSBvdXQuCgpUaGlzIHBhdGNoIGZpeGVzIHRo ZSBwcm9ibGVtIGJ5IGRldGVybWluaW5nIHRoZSBERUNBUCBmbG93J3MgZGlyZWN0aW9uCnVzaW5n IGNvcnJlY3QgZmlkLiAgU2V0IHRoZSBmbG93IGRpcmVjdGlvbiBpbiBhbGwgY2FzZXMgZm9yIGNv bnNpc3RlbmN5CmV2ZW4gaWYgNjQtYml0IGZsb3cgaGFuZGxlIGlzIG5vdCB1c2VkLgoKRml4ZXM6 IGFiZDQzYTEzNTI1ZCAoImJueHRfZW46IFN1cHBvcnQgZm9yIDY0LWJpdCBmbG93IGhhbmRsZS4i KQpTaWduZWQtb2ZmLWJ5OiBWZW5rYXQgRHV2dnVydSA8dmVua2F0a3VtYXIuZHV2dnVydUBicm9h ZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2Fk Y29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF90Yy5jIHwg NCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3RjLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdGMuYwppbmRleCA0NGQ2 YzU3NDNmYjkuLmEyNWVkMTkwYjViMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54dC9ibnh0X3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0X3RjLmMKQEAgLTEyODUsOSArMTI4NSw3IEBAIHN0YXRpYyBpbnQgYm54dF90 Y19hZGRfZmxvdyhzdHJ1Y3QgYm54dCAqYnAsIHUxNiBzcmNfZmlkLAogCQlnb3RvIGZyZWVfbm9k ZTsKIAogCWJueHRfdGNfc2V0X3NyY19maWQoYnAsIGZsb3csIHNyY19maWQpOwotCi0JaWYgKGJw LT5md19jYXAgJiBCTlhUX0ZXX0NBUF9PVlNfNjRCSVRfSEFORExFKQotCQlibnh0X3RjX3NldF9m bG93X2RpcihicCwgZmxvdywgc3JjX2ZpZCk7CisJYm54dF90Y19zZXRfZmxvd19kaXIoYnAsIGZs b3csIGZsb3ctPnNyY19maWQpOwogCiAJaWYgKCFibnh0X3RjX2Nhbl9vZmZsb2FkKGJwLCBmbG93 KSkgewogCQlyYyA9IC1FT1BOT1RTVVBQOwotLSAKMi4yMC4xCgoKRnJvbSA5Nzc5Zjg3ZGRlN2M5 OGRkZDFmZjcyN2E3NGQ1NTJjYjA4YzU2MjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBTb21uYXRoIEtvdHVyIDxzb21uYXRoLmtvdHVyQGJyb2FkY29tLmNvbT4KRGF0ZTogU2F0LCAx NyBBdWcgMjAxOSAxNzowNDo1MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjhdIGJueHRfZW46 IEZpeCB0byBpbmNsdWRlIGZsb3cgZGlyZWN0aW9uIGluIEwyIGtleQoKWyBVcHN0cmVhbSBjb21t aXQgOWJmNDY1NjZlODBmZDk0ODQ1NTI3ZDAxZWJkODg4ZWI0OTMxMzU1MSBdCgpGVyBleHBlY3Rz IHRoZSBkcml2ZXIgdG8gcHJvdmlkZSB1bmlxdWUgZmxvdyByZWZlcmVuY2UgaGFuZGxlcwpmb3Ig VHggb3IgUnggZmxvd3MuIFdoZW4gYSBUeCBmbG93IGFuZCBhbiBSeCBmbG93IGVuZCB1cCBzaGFy aW5nCmEgcmVmZXJlbmNlIGhhbmRsZSwgZmxvdyBvZmZsb2FkIGRvZXMgbm90IHNlZW0gdG8gd29y ay4KVGhpcyBjb3VsZCBoYXBwZW4gaW4gdGhlIGNhc2Ugb2YgMiBmbG93cyBoYXZpbmcgdGhlaXIg TDIgZmllbGRzCndpbGRjYXJkZWQgYnV0IGluIGRpZmZlcmVudCBkaXJlY3Rpb24uCkZpeCB0byBp bmNvcnBvcmF0ZSB0aGUgZmxvdyBkaXJlY3Rpb24gYXMgcGFydCBvZiB0aGUgTDIga2V5Cgp2Mjog TW92ZSB0aGUgZGlyIGZpZWxkIHRvIHRoZSBlbmQgb2YgdGhlIGJueHRfdGNfbDJfa2V5IHN0cnVj dCB0bwpmaXggdGhlIHdhcm5pbmcgcmVwb3J0ZWQgYnkga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBp bnRlbC5jb20+LgpUaGVyZSBpcyBleGlzdGluZyBjb2RlIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHN0 cnVjdHVyZSB1c2luZwpuZXN0ZWQgaW5pdGlhbGl6ZXIgYW5kIHdpbGwgd2FybiB3aXRoIHRoZSBu ZXcgdTggZmllbGQgYWRkZWQgdG8KdGhlIGJlZ2lubmluZy4gIFRoZSBzdHJ1Y3R1cmUgYWxzbyBw YWNrcyBuaWNlciB3aGVuIHRoaXMgbmV3IHU4IGlzCmFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIHN0 cnVjdHVyZSBbTUNoYW5dLgoKRml4ZXM6IGFiZDQzYTEzNTI1ZCAoImJueHRfZW46IFN1cHBvcnQg Zm9yIDY0LWJpdCBmbG93IGhhbmRsZS4iKQpTaWduZWQtb2ZmLWJ5OiBTb21uYXRoIEtvdHVyIDxz b21uYXRoLmtvdHVyQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxt aWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54dC9ibnh0X3RjLmMgfCA0ICsrLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dF90Yy5oIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dF90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0X3RjLmMKaW5kZXggYTI1ZWQxOTBiNWIyLi40MzQ0NzBhNmI5ZjMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF90Yy5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF90Yy5jCkBAIC0xMjM2LDcgKzEyMzYsNyBA QCBzdGF0aWMgaW50IF9fYm54dF90Y19kZWxfZmxvdyhzdHJ1Y3QgYm54dCAqYnAsCiBzdGF0aWMg dm9pZCBibnh0X3RjX3NldF9mbG93X2RpcihzdHJ1Y3QgYm54dCAqYnAsIHN0cnVjdCBibnh0X3Rj X2Zsb3cgKmZsb3csCiAJCQkJIHUxNiBzcmNfZmlkKQogewotCWZsb3ctPmRpciA9IChicC0+cGYu ZndfZmlkID09IHNyY19maWQpID8gQk5YVF9ESVJfUlggOiBCTlhUX0RJUl9UWDsKKwlmbG93LT5s Ml9rZXkuZGlyID0gKGJwLT5wZi5md19maWQgPT0gc3JjX2ZpZCkgPyBCTlhUX0RJUl9SWCA6IEJO WFRfRElSX1RYOwogfQogCiBzdGF0aWMgdm9pZCBibnh0X3RjX3NldF9zcmNfZmlkKHN0cnVjdCBi bnh0ICpicCwgc3RydWN0IGJueHRfdGNfZmxvdyAqZmxvdywKQEAgLTE0MDUsNyArMTQwNSw3IEBA IHN0YXRpYyB2b2lkIGJueHRfZmlsbF9jZmFfc3RhdHNfcmVxKHN0cnVjdCBibnh0ICpicCwKIAkJ ICogMi4gMTV0aCBiaXQgb2YgZmxvd19oYW5kbGUgbXVzdCBzcGVjaWZ5IHRoZSBmbG93CiAJCSAq ICAgIGRpcmVjdGlvbiAoVFgvUlgpLgogCQkgKi8KLQkJaWYgKGZsb3dfbm9kZS0+Zmxvdy5kaXIg PT0gQk5YVF9ESVJfUlgpCisJCWlmIChmbG93X25vZGUtPmZsb3cubDJfa2V5LmRpciA9PSBCTlhU X0RJUl9SWCkKIAkJCWhhbmRsZSA9IENGQV9GTE9XX0lORk9fUkVRX0ZMT1dfSEFORExFX0RJUl9S WCB8CiAJCQkJIENGQV9GTE9XX0lORk9fUkVRX0ZMT1dfSEFORExFX01BWF9NQVNLOwogCQllbHNl CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdGMu aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF90Yy5oCmluZGV4IDhh MDk2ODk2N2JjNS4uOGIwZjE1MTBiZGM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibnh0L2JueHRfdGMuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHRfdGMuaApAQCAtMjMsNiArMjMsOSBAQCBzdHJ1Y3QgYm54dF90Y19sMl9r ZXkgewogCV9fYmUxNgkJaW5uZXJfdmxhbl90Y2k7CiAJX19iZTE2CQlldGhlcl90eXBlOwogCXU4 CQludW1fdmxhbnM7CisJdTgJCWRpcjsKKyNkZWZpbmUgQk5YVF9ESVJfUlgJMQorI2RlZmluZSBC TlhUX0RJUl9UWAkwCiB9OwogCiBzdHJ1Y3QgYm54dF90Y19sM19rZXkgewpAQCAtOTgsOSArMTAx LDYgQEAgc3RydWN0IGJueHRfdGNfZmxvdyB7CiAKIAkvKiBmbG93IGFwcGxpY2FibGUgdG8gcGt0 cyBpbmdyZXNzaW5nIG9uIHRoaXMgZmlkICovCiAJdTE2CQkJCXNyY19maWQ7Ci0JdTgJCQkJZGly OwotI2RlZmluZSBCTlhUX0RJUl9SWAkxCi0jZGVmaW5lIEJOWFRfRElSX1RYCTAKIAlzdHJ1Y3Qg Ym54dF90Y19sMl9rZXkJCWwyX2tleTsKIAlzdHJ1Y3QgYm54dF90Y19sMl9rZXkJCWwyX21hc2s7 CiAJc3RydWN0IGJueHRfdGNfbDNfa2V5CQlsM19rZXk7Ci0tIAoyLjIwLjEKCgpGcm9tIDIwZDIy YTYyM2ZiMmJiY2NkMTA3NjA4OWExYWU0NmFkZTQ2MWZiODcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFJvbWFuIE1hc2hhayA8bXJ2QG1vamF0YXR1LmNvbT4KRGF0ZTogV2VkLCA3IEF1 ZyAyMDE5IDE1OjU3OjI4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxOS8yOF0gbmV0IHNjaGVkOiB1 cGRhdGUgc2tiZWRpdCBhY3Rpb24gZm9yIGJhdGNoZWQgZXZlbnRzCiBvcGVyYXRpb25zCgpbIFVw c3RyZWFtIGNvbW1pdCBlMWZlYTMyMmZjNmQ0MDc1MjU0Y2E5YzVmMmFmZGFjZTAyODFkYTJhIF0K CkFkZCBnZXRfZmlsbF9zaXplKCkgcm91dGluZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgYWN0aW9u IHNpemUKd2hlbiBidWlsZGluZyBhIGJhdGNoIG9mIGV2ZW50cy4KCkZpeGVzOiBjYTliMGUyN2Ug KCJwa3RfYWN0aW9uOiBhZGQgbmV3IGFjdGlvbiBza2JlZGl0IikKU2lnbmVkLW9mZi1ieTogUm9t YW4gTWFzaGFrIDxtcnZAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMgfCAx MiArKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMgYi9uZXQvc2NoZWQvYWN0X3NrYmVkaXQuYwpp bmRleCBiMTAwODcwZjAyYTYuLjM3ZGNlZDAwYjYzZCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Fj dF9za2JlZGl0LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMKQEAgLTMwNyw2ICszMDcs MTcgQEAgc3RhdGljIGludCB0Y2Zfc2tiZWRpdF9zZWFyY2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgdGNfYWN0aW9uICoqYSwgdTMyIGluZGV4KQogCXJldHVybiB0Y2ZfaWRyX3NlYXJjaCh0biwg YSwgaW5kZXgpOwogfQogCitzdGF0aWMgc2l6ZV90IHRjZl9za2JlZGl0X2dldF9maWxsX3NpemUo Y29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYWN0KQoreworCXJldHVybiBubGFfdG90YWxfc2l6ZShz aXplb2Yoc3RydWN0IHRjX3NrYmVkaXQpKQorCQkrIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIp KSAvKiBUQ0FfU0tCRURJVF9QUklPUklUWSAqLworCQkrIG5sYV90b3RhbF9zaXplKHNpemVvZih1 MTYpKSAvKiBUQ0FfU0tCRURJVF9RVUVVRV9NQVBQSU5HICovCisJCSsgbmxhX3RvdGFsX3NpemUo c2l6ZW9mKHUzMikpIC8qIFRDQV9TS0JFRElUX01BUksgKi8KKwkJKyBubGFfdG90YWxfc2l6ZShz aXplb2YodTE2KSkgLyogVENBX1NLQkVESVRfUFRZUEUgKi8KKwkJKyBubGFfdG90YWxfc2l6ZShz aXplb2YodTMyKSkgLyogVENBX1NLQkVESVRfTUFTSyAqLworCQkrIG5sYV90b3RhbF9zaXplXzY0 Yml0KHNpemVvZih1NjQpKTsgLyogVENBX1NLQkVESVRfRkxBR1MgKi8KK30KKwogc3RhdGljIHN0 cnVjdCB0Y19hY3Rpb25fb3BzIGFjdF9za2JlZGl0X29wcyA9IHsKIAkua2luZAkJPQkic2tiZWRp dCIsCiAJLmlkCQk9CVRDQV9JRF9TS0JFRElULApAQCAtMzE2LDYgKzMyNyw3IEBAIHN0YXRpYyBz dHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3Rfc2tiZWRpdF9vcHMgPSB7CiAJLmluaXQJCT0JdGNmX3Nr YmVkaXRfaW5pdCwKIAkuY2xlYW51cAk9CXRjZl9za2JlZGl0X2NsZWFudXAsCiAJLndhbGsJCT0J dGNmX3NrYmVkaXRfd2Fsa2VyLAorCS5nZXRfZmlsbF9zaXplCT0JdGNmX3NrYmVkaXRfZ2V0X2Zp bGxfc2l6ZSwKIAkubG9va3VwCQk9CXRjZl9za2JlZGl0X3NlYXJjaCwKIAkuc2l6ZQkJPQlzaXpl b2Yoc3RydWN0IHRjZl9za2JlZGl0KSwKIH07Ci0tIAoyLjIwLjEKCgpGcm9tIGRlMTk5MjUyNDEy YTZmYjQ3NzlhMWQyZmYwNDE4NzBkNjY0NDMxZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFJvbWFuIE1hc2hhayA8bXJ2QG1vamF0YXR1LmNvbT4KRGF0ZTogV2VkLCA3IEF1ZyAyMDE5 IDE1OjU3OjI5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyMC8yOF0gdGMtdGVzdGluZzogdXBkYXRl ZCBza2JlZGl0IGFjdGlvbiB0ZXN0cyB3aXRoIGJhdGNoCiBjcmVhdGUvZGVsZXRlCgpbIFVwc3Ry ZWFtIGNvbW1pdCA3YmMxNjE4NDZkY2Y0YWYwNDg1ZjI2MDkzMGQxN2ZkZDg5MmE0OTgwIF0KClVw ZGF0ZSBUREMgdGVzdHMgd2l0aCBjYXNlcyB2YXJpZnlpbmcgYWJpbGl0eSBvZiBUQyB0byBpbnN0 YWxsIG9yIGRlbGV0ZQpiYXRjaGVzIG9mIHNrYmVkaXQgYWN0aW9ucy4KClNpZ25lZC1vZmYtYnk6 IFJvbWFuIE1hc2hhayA8bXJ2QG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi90Yy10ZXN0aW5nL3RjLXRlc3Rz L2FjdGlvbnMvc2tiZWRpdC5qc29uICB8IDQ3ICsrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBj aGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvdGMtdGVzdGluZy90Yy10ZXN0cy9hY3Rpb25zL3NrYmVkaXQuanNvbiBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvdGMtdGVzdHMvYWN0aW9ucy9za2JlZGl0Lmpzb24K aW5kZXggZWNkOTZlZGE3ZjZhLi5lMTFiN2MxZWZkYTMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvdGMtdGVzdHMvYWN0aW9ucy9za2JlZGl0Lmpzb24KKysr IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy90Yy10ZXN0cy9hY3Rpb25zL3Nr YmVkaXQuanNvbgpAQCAtNTA5LDUgKzUwOSw1MiBAQAogICAgICAgICAidGVhcmRvd24iOiBbCiAg ICAgICAgICAgICAiJFRDIGFjdGlvbnMgZmx1c2ggYWN0aW9uIHNrYmVkaXQiCiAgICAgICAgIF0K KyAgICB9LAorICAgIHsKKyAgICAgICAgImlkIjogIjYzMGMiLAorICAgICAgICAibmFtZSI6ICJB ZGQgYmF0Y2ggb2YgMzIgc2tiZWRpdCBhY3Rpb25zIHdpdGggYWxsIHBhcmFtZXRlcnMgYW5kIGNv b2tpZSIsCisgICAgICAgICJjYXRlZ29yeSI6IFsKKyAgICAgICAgICAgICJhY3Rpb25zIiwKKyAg ICAgICAgICAgICJza2JlZGl0IgorICAgICAgICBdLAorICAgICAgICAic2V0dXAiOiBbCisgICAg ICAgICAgICBbCisgICAgICAgICAgICAgICAgIiRUQyBhY3Rpb25zIGZsdXNoIGFjdGlvbiBza2Jl ZGl0IiwKKyAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAg ICAgICAgMjU1CisgICAgICAgICAgICBdCisgICAgICAgIF0sCisgICAgICAgICJjbWRVbmRlclRl c3QiOiAiYmFzaCAtYyBcImZvciBpIGluIFxcYHNlcSAxIDMyXFxgOyBkbyBjbWQ9XFxcImFjdGlv biBza2JlZGl0IHF1ZXVlX21hcHBpbmcgMiBwcmlvcml0eSAxMCBtYXJrIDcvMHhhYWJiY2NkZCBw dHlwZSBob3N0IGluaGVyaXRkc2ZpZWxkIGluZGV4IFxcJGkgY29va2llIGFhYmJjY2RkZWVmZjEx MjIzMzQ0NTU2Njc3ODgwMGExIFxcXCI7IGFyZ3M9XCJcXCRhcmdzXFwkY21kXCI7IGRvbmUgJiYg JFRDIGFjdGlvbnMgYWRkIFxcJGFyZ3NcIiIsCisgICAgICAgICJleHBFeGl0Q29kZSI6ICIwIiwK KyAgICAgICAgInZlcmlmeUNtZCI6ICIkVEMgYWN0aW9ucyBsaXN0IGFjdGlvbiBza2JlZGl0IiwK KyAgICAgICAgIm1hdGNoUGF0dGVybiI6ICJeWyBcdF0raW5kZXggWzAtOV0rIHJlZiIsCisgICAg ICAgICJtYXRjaENvdW50IjogIjMyIiwKKyAgICAgICAgInRlYXJkb3duIjogWworICAgICAgICAg ICAgIiRUQyBhY3Rpb25zIGZsdXNoIGFjdGlvbiBza2JlZGl0IgorICAgICAgICBdCisgICAgfSwK KyAgICB7CisgICAgICAgICJpZCI6ICI3MDZkIiwKKyAgICAgICAgIm5hbWUiOiAiRGVsZXRlIGJh dGNoIG9mIDMyIHNrYmVkaXQgYWN0aW9ucyB3aXRoIGFsbCBwYXJhbWV0ZXJzIiwKKyAgICAgICAg ImNhdGVnb3J5IjogWworICAgICAgICAgICAgImFjdGlvbnMiLAorICAgICAgICAgICAgInNrYmVk aXQiCisgICAgICAgIF0sCisgICAgICAgICJzZXR1cCI6IFsKKyAgICAgICAgICAgIFsKKyAgICAg ICAgICAgICAgICAiJFRDIGFjdGlvbnMgZmx1c2ggYWN0aW9uIHNrYmVkaXQiLAorICAgICAgICAg ICAgICAgIDAsCisgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAyNTUKKyAgICAg ICAgICAgIF0sCisgICAgICAgICAgICAiYmFzaCAtYyBcImZvciBpIGluIFxcYHNlcSAxIDMyXFxg OyBkbyBjbWQ9XFxcImFjdGlvbiBza2JlZGl0IHF1ZXVlX21hcHBpbmcgMiBwcmlvcml0eSAxMCBt YXJrIDcvMHhhYWJiY2NkZCBwdHlwZSBob3N0IGluaGVyaXRkc2ZpZWxkIGluZGV4IFxcJGkgXFxc IjsgYXJncz1cXFwiXFwkYXJnc1xcJGNtZFxcXCI7IGRvbmUgJiYgJFRDIGFjdGlvbnMgYWRkIFxc JGFyZ3NcIiIKKyAgICAgICAgXSwKKyAgICAgICAgImNtZFVuZGVyVGVzdCI6ICJiYXNoIC1jIFwi Zm9yIGkgaW4gXFxgc2VxIDEgMzJcXGA7IGRvIGNtZD1cXFwiYWN0aW9uIHNrYmVkaXQgaW5kZXgg XFwkaSBcXFwiOyBhcmdzPVwiXFwkYXJnc1xcJGNtZFwiOyBkb25lICYmICRUQyBhY3Rpb25zIGRl bCBcXCRhcmdzXCIiLAorICAgICAgICAiZXhwRXhpdENvZGUiOiAiMCIsCisgICAgICAgICJ2ZXJp ZnlDbWQiOiAiJFRDIGFjdGlvbnMgbGlzdCBhY3Rpb24gc2tiZWRpdCIsCisgICAgICAgICJtYXRj aFBhdHRlcm4iOiAiXlsgXHRdK2luZGV4IFswLTldKyByZWYiLAorICAgICAgICAibWF0Y2hDb3Vu dCI6ICIwIiwKKyAgICAgICAgInRlYXJkb3duIjogW10KICAgICB9CiBdCi0tIAoyLjIwLjEKCgpG cm9tIDNlMWMwOTIzY2QyN2YxMGU2MjFkOTQ2NzRjZDlhODliZTg5ZmQ0MzQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTog VHVlLCA2IEF1ZyAyMDE5IDEyOjE1OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yOF0gbmV0 ZGV2c2ltOiBSZXN0b3JlIHBlci1uZXR3b3JrIG5hbWVzcGFjZSBhY2NvdW50aW5nIGZvcgogZmli IGVudHJpZXMKClsgVXBzdHJlYW0gY29tbWl0IDU5Yzg0YjlmY2Y0MmM5OWE5NDVkNWZkYzQ5MjIw ZDg1NGU1Mzk2OTAgXQoKUHJpb3IgdG8gdGhlIGNvbW1pdCBpbiB0aGUgZml4ZXMgdGFnLCB0aGUg cmVzb3VyY2UgY29udHJvbGxlciBpbiBuZXRkZXZzaW0KdHJhY2tlZCBmaWIgZW50cmllcyBhbmQg cnVsZXMgcGVyIG5ldHdvcmsgbmFtZXNwYWNlLiBSZXN0b3JlIHRoYXQgYmVoYXZpb3IuCgpGaXhl czogNWZjNDk0MjI1YzFlICgibmV0ZGV2c2ltOiBjcmVhdGUgZGV2bGluayBpbnN0YW5jZSBwZXIg bmV0ZGV2c2ltIGluc3RhbmNlIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2Rldi5jICAgICAgIHwgIDYzICsrKysr KysrLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2ZpYi5jICAgICAgIHwgMTAyICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRl di5jICAgIHwgICA5ICsrLQogZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIHwgIDEw ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vZGV2LmMgYi9kcml2ZXJzL25ldC9u ZXRkZXZzaW0vZGV2LmMKaW5kZXggYjUwOWI5NDFkNWNhLi42ODI1MjU0ZWI4ODIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9kZXYuYworKysgYi9kcml2ZXJzL25ldC9uZXRkZXZz aW0vZGV2LmMKQEAgLTcxLDQ2ICs3MSw0NyBAQCBzdGF0aWMgdm9pZCBuc2ltX2Rldl9wb3J0X2Rl YnVnZnNfZXhpdChzdHJ1Y3QgbnNpbV9kZXZfcG9ydCAqbnNpbV9kZXZfcG9ydCkKIAlkZWJ1Z2Zz X3JlbW92ZV9yZWN1cnNpdmUobnNpbV9kZXZfcG9ydC0+ZGRpcik7CiB9CiAKK3N0YXRpYyBzdHJ1 Y3QgbmV0ICpuc2ltX2RldmxpbmtfbmV0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKQoreworCXJl dHVybiAmaW5pdF9uZXQ7Cit9CisKIHN0YXRpYyB1NjQgbnNpbV9kZXZfaXB2NF9maWJfcmVzb3Vy Y2Vfb2NjX2dldCh2b2lkICpwcml2KQogewotCXN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYgPSBw cml2OworCXN0cnVjdCBuZXQgKm5ldCA9IHByaXY7CiAKLQlyZXR1cm4gbnNpbV9maWJfZ2V0X3Zh bChuc2ltX2Rldi0+ZmliX2RhdGEsCi0JCQkJTlNJTV9SRVNPVVJDRV9JUFY0X0ZJQiwgZmFsc2Up OworCXJldHVybiBuc2ltX2ZpYl9nZXRfdmFsKG5ldCwgTlNJTV9SRVNPVVJDRV9JUFY0X0ZJQiwg ZmFsc2UpOwogfQogCiBzdGF0aWMgdTY0IG5zaW1fZGV2X2lwdjRfZmliX3J1bGVzX3Jlc19vY2Nf Z2V0KHZvaWQgKnByaXYpCiB7Ci0Jc3RydWN0IG5zaW1fZGV2ICpuc2ltX2RldiA9IHByaXY7CisJ c3RydWN0IG5ldCAqbmV0ID0gcHJpdjsKIAotCXJldHVybiBuc2ltX2ZpYl9nZXRfdmFsKG5zaW1f ZGV2LT5maWJfZGF0YSwKLQkJCQlOU0lNX1JFU09VUkNFX0lQVjRfRklCX1JVTEVTLCBmYWxzZSk7 CisJcmV0dXJuIG5zaW1fZmliX2dldF92YWwobmV0LCBOU0lNX1JFU09VUkNFX0lQVjRfRklCX1JV TEVTLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB1NjQgbnNpbV9kZXZfaXB2Nl9maWJfcmVzb3VyY2Vf b2NjX2dldCh2b2lkICpwcml2KQogewotCXN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYgPSBwcml2 OworCXN0cnVjdCBuZXQgKm5ldCA9IHByaXY7CiAKLQlyZXR1cm4gbnNpbV9maWJfZ2V0X3ZhbChu c2ltX2Rldi0+ZmliX2RhdGEsCi0JCQkJTlNJTV9SRVNPVVJDRV9JUFY2X0ZJQiwgZmFsc2UpOwor CXJldHVybiBuc2ltX2ZpYl9nZXRfdmFsKG5ldCwgTlNJTV9SRVNPVVJDRV9JUFY2X0ZJQiwgZmFs c2UpOwogfQogCiBzdGF0aWMgdTY0IG5zaW1fZGV2X2lwdjZfZmliX3J1bGVzX3Jlc19vY2NfZ2V0 KHZvaWQgKnByaXYpCiB7Ci0Jc3RydWN0IG5zaW1fZGV2ICpuc2ltX2RldiA9IHByaXY7CisJc3Ry dWN0IG5ldCAqbmV0ID0gcHJpdjsKIAotCXJldHVybiBuc2ltX2ZpYl9nZXRfdmFsKG5zaW1fZGV2 LT5maWJfZGF0YSwKLQkJCQlOU0lNX1JFU09VUkNFX0lQVjZfRklCX1JVTEVTLCBmYWxzZSk7CisJ cmV0dXJuIG5zaW1fZmliX2dldF92YWwobmV0LCBOU0lNX1JFU09VUkNFX0lQVjZfRklCX1JVTEVT LCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBpbnQgbnNpbV9kZXZfcmVzb3VyY2VzX3JlZ2lzdGVyKHN0 cnVjdCBkZXZsaW5rICpkZXZsaW5rKQogewotCXN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYgPSBk ZXZsaW5rX3ByaXYoZGV2bGluayk7CiAJc3RydWN0IGRldmxpbmtfcmVzb3VyY2Vfc2l6ZV9wYXJh bXMgcGFyYW1zID0gewogCQkuc2l6ZV9tYXggPSAodTY0KS0xLAogCQkuc2l6ZV9ncmFudWxhcml0 eSA9IDEsCiAJCS51bml0ID0gREVWTElOS19SRVNPVVJDRV9VTklUX0VOVFJZCiAJfTsKKwlzdHJ1 Y3QgbmV0ICpuZXQgPSBuc2ltX2RldmxpbmtfbmV0KGRldmxpbmspOwogCWludCBlcnI7CiAJdTY0 IG47CiAKQEAgLTEyNCw4ICsxMjUsNyBAQCBzdGF0aWMgaW50IG5zaW1fZGV2X3Jlc291cmNlc19y ZWdpc3RlcihzdHJ1Y3QgZGV2bGluayAqZGV2bGluaykKIAkJZ290byBvdXQ7CiAJfQogCi0JbiA9 IG5zaW1fZmliX2dldF92YWwobnNpbV9kZXYtPmZpYl9kYXRhLAotCQkJICAgICBOU0lNX1JFU09V UkNFX0lQVjRfRklCLCB0cnVlKTsKKwluID0gbnNpbV9maWJfZ2V0X3ZhbChuZXQsIE5TSU1fUkVT T1VSQ0VfSVBWNF9GSUIsIHRydWUpOwogCWVyciA9IGRldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIo ZGV2bGluaywgImZpYiIsIG4sCiAJCQkJCU5TSU1fUkVTT1VSQ0VfSVBWNF9GSUIsCiAJCQkJCU5T SU1fUkVTT1VSQ0VfSVBWNCwgJnBhcmFtcyk7CkBAIC0xMzQsOCArMTM0LDcgQEAgc3RhdGljIGlu dCBuc2ltX2Rldl9yZXNvdXJjZXNfcmVnaXN0ZXIoc3RydWN0IGRldmxpbmsgKmRldmxpbmspCiAJ CXJldHVybiBlcnI7CiAJfQogCi0JbiA9IG5zaW1fZmliX2dldF92YWwobnNpbV9kZXYtPmZpYl9k YXRhLAotCQkJICAgICBOU0lNX1JFU09VUkNFX0lQVjRfRklCX1JVTEVTLCB0cnVlKTsKKwluID0g bnNpbV9maWJfZ2V0X3ZhbChuZXQsIE5TSU1fUkVTT1VSQ0VfSVBWNF9GSUJfUlVMRVMsIHRydWUp OwogCWVyciA9IGRldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIoZGV2bGluaywgImZpYi1ydWxlcyIs IG4sCiAJCQkJCU5TSU1fUkVTT1VSQ0VfSVBWNF9GSUJfUlVMRVMsCiAJCQkJCU5TSU1fUkVTT1VS Q0VfSVBWNCwgJnBhcmFtcyk7CkBAIC0xNTQsOCArMTUzLDcgQEAgc3RhdGljIGludCBuc2ltX2Rl dl9yZXNvdXJjZXNfcmVnaXN0ZXIoc3RydWN0IGRldmxpbmsgKmRldmxpbmspCiAJCWdvdG8gb3V0 OwogCX0KIAotCW4gPSBuc2ltX2ZpYl9nZXRfdmFsKG5zaW1fZGV2LT5maWJfZGF0YSwKLQkJCSAg ICAgTlNJTV9SRVNPVVJDRV9JUFY2X0ZJQiwgdHJ1ZSk7CisJbiA9IG5zaW1fZmliX2dldF92YWwo bmV0LCBOU0lNX1JFU09VUkNFX0lQVjZfRklCLCB0cnVlKTsKIAllcnIgPSBkZXZsaW5rX3Jlc291 cmNlX3JlZ2lzdGVyKGRldmxpbmssICJmaWIiLCBuLAogCQkJCQlOU0lNX1JFU09VUkNFX0lQVjZf RklCLAogCQkJCQlOU0lNX1JFU09VUkNFX0lQVjYsICZwYXJhbXMpOwpAQCAtMTY0LDggKzE2Miw3 IEBAIHN0YXRpYyBpbnQgbnNpbV9kZXZfcmVzb3VyY2VzX3JlZ2lzdGVyKHN0cnVjdCBkZXZsaW5r ICpkZXZsaW5rKQogCQlyZXR1cm4gZXJyOwogCX0KIAotCW4gPSBuc2ltX2ZpYl9nZXRfdmFsKG5z aW1fZGV2LT5maWJfZGF0YSwKLQkJCSAgICAgTlNJTV9SRVNPVVJDRV9JUFY2X0ZJQl9SVUxFUywg dHJ1ZSk7CisJbiA9IG5zaW1fZmliX2dldF92YWwobmV0LCBOU0lNX1JFU09VUkNFX0lQVjZfRklC X1JVTEVTLCB0cnVlKTsKIAllcnIgPSBkZXZsaW5rX3Jlc291cmNlX3JlZ2lzdGVyKGRldmxpbmss ICJmaWItcnVsZXMiLCBuLAogCQkJCQlOU0lNX1JFU09VUkNFX0lQVjZfRklCX1JVTEVTLAogCQkJ CQlOU0lNX1JFU09VUkNFX0lQVjYsICZwYXJhbXMpOwpAQCAtMTc3LDE5ICsxNzQsMTkgQEAgc3Rh dGljIGludCBuc2ltX2Rldl9yZXNvdXJjZXNfcmVnaXN0ZXIoc3RydWN0IGRldmxpbmsgKmRldmxp bmspCiAJZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3JlZ2lzdGVyKGRldmxpbmssCiAJCQkJCSAg TlNJTV9SRVNPVVJDRV9JUFY0X0ZJQiwKIAkJCQkJICBuc2ltX2Rldl9pcHY0X2ZpYl9yZXNvdXJj ZV9vY2NfZ2V0LAotCQkJCQkgIG5zaW1fZGV2KTsKKwkJCQkJICBuZXQpOwogCWRldmxpbmtfcmVz b3VyY2Vfb2NjX2dldF9yZWdpc3RlcihkZXZsaW5rLAogCQkJCQkgIE5TSU1fUkVTT1VSQ0VfSVBW NF9GSUJfUlVMRVMsCiAJCQkJCSAgbnNpbV9kZXZfaXB2NF9maWJfcnVsZXNfcmVzX29jY19nZXQs Ci0JCQkJCSAgbnNpbV9kZXYpOworCQkJCQkgIG5ldCk7CiAJZGV2bGlua19yZXNvdXJjZV9vY2Nf Z2V0X3JlZ2lzdGVyKGRldmxpbmssCiAJCQkJCSAgTlNJTV9SRVNPVVJDRV9JUFY2X0ZJQiwKIAkJ CQkJICBuc2ltX2Rldl9pcHY2X2ZpYl9yZXNvdXJjZV9vY2NfZ2V0LAotCQkJCQkgIG5zaW1fZGV2 KTsKKwkJCQkJICBuZXQpOwogCWRldmxpbmtfcmVzb3VyY2Vfb2NjX2dldF9yZWdpc3RlcihkZXZs aW5rLAogCQkJCQkgIE5TSU1fUkVTT1VSQ0VfSVBWNl9GSUJfUlVMRVMsCiAJCQkJCSAgbnNpbV9k ZXZfaXB2Nl9maWJfcnVsZXNfcmVzX29jY19nZXQsCi0JCQkJCSAgbnNpbV9kZXYpOworCQkJCQkg IG5ldCk7CiBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KQEAgLTE5NywxMSArMTk0LDExIEBAIHN0YXRp YyBpbnQgbnNpbV9kZXZfcmVzb3VyY2VzX3JlZ2lzdGVyKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5r KQogc3RhdGljIGludCBuc2ltX2Rldl9yZWxvYWQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssCiAJ CQkgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7Ci0Jc3RydWN0IG5zaW1fZGV2 ICpuc2ltX2RldiA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTsKIAllbnVtIG5zaW1fcmVzb3VyY2Vf aWQgcmVzX2lkc1tdID0gewogCQlOU0lNX1JFU09VUkNFX0lQVjRfRklCLCBOU0lNX1JFU09VUkNF X0lQVjRfRklCX1JVTEVTLAogCQlOU0lNX1JFU09VUkNFX0lQVjZfRklCLCBOU0lNX1JFU09VUkNF X0lQVjZfRklCX1JVTEVTCiAJfTsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBuc2ltX2RldmxpbmtfbmV0 KGRldmxpbmspOwogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocmVzX2lk cyk7ICsraSkgewpAQCAtMjEwLDggKzIwNyw3IEBAIHN0YXRpYyBpbnQgbnNpbV9kZXZfcmVsb2Fk KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLAogCiAJCWVyciA9IGRldmxpbmtfcmVzb3VyY2Vfc2l6 ZV9nZXQoZGV2bGluaywgcmVzX2lkc1tpXSwgJnZhbCk7CiAJCWlmICghZXJyKSB7Ci0JCQllcnIg PSBuc2ltX2ZpYl9zZXRfbWF4KG5zaW1fZGV2LT5maWJfZGF0YSwKLQkJCQkJICAgICAgIHJlc19p ZHNbaV0sIHZhbCwgZXh0YWNrKTsKKwkJCWVyciA9IG5zaW1fZmliX3NldF9tYXgobmV0LCByZXNf aWRzW2ldLCB2YWwsIGV4dGFjayk7CiAJCQlpZiAoZXJyKQogCQkJCXJldHVybiBlcnI7CiAJCX0K QEAgLTI0MSwxNSArMjM3LDkgQEAgbnNpbV9kZXZfY3JlYXRlKHN0cnVjdCBuc2ltX2J1c19kZXYg Km5zaW1fYnVzX2RldiwgdW5zaWduZWQgaW50IHBvcnRfY291bnQpCiAJSU5JVF9MSVNUX0hFQUQo Jm5zaW1fZGV2LT5wb3J0X2xpc3QpOwogCW11dGV4X2luaXQoJm5zaW1fZGV2LT5wb3J0X2xpc3Rf bG9jayk7CiAKLQluc2ltX2Rldi0+ZmliX2RhdGEgPSBuc2ltX2ZpYl9jcmVhdGUoKTsKLQlpZiAo SVNfRVJSKG5zaW1fZGV2LT5maWJfZGF0YSkpIHsKLQkJZXJyID0gUFRSX0VSUihuc2ltX2Rldi0+ ZmliX2RhdGEpOwotCQlnb3RvIGVycl9kZXZsaW5rX2ZyZWU7Ci0JfQotCiAJZXJyID0gbnNpbV9k ZXZfcmVzb3VyY2VzX3JlZ2lzdGVyKGRldmxpbmspOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyX2Zp Yl9kZXN0cm95OworCQlnb3RvIGVycl9kZXZsaW5rX2ZyZWU7CiAKIAllcnIgPSBkZXZsaW5rX3Jl Z2lzdGVyKGRldmxpbmssICZuc2ltX2J1c19kZXYtPmRldik7CiAJaWYgKGVycikKQEAgLTI3MSw4 ICsyNjEsNiBAQCBuc2ltX2Rldl9jcmVhdGUoc3RydWN0IG5zaW1fYnVzX2RldiAqbnNpbV9idXNf ZGV2LCB1bnNpZ25lZCBpbnQgcG9ydF9jb3VudCkKIAlkZXZsaW5rX3VucmVnaXN0ZXIoZGV2bGlu ayk7CiBlcnJfcmVzb3VyY2VzX3VucmVnaXN0ZXI6CiAJZGV2bGlua19yZXNvdXJjZXNfdW5yZWdp c3RlcihkZXZsaW5rLCBOVUxMKTsKLWVycl9maWJfZGVzdHJveToKLQluc2ltX2ZpYl9kZXN0cm95 KG5zaW1fZGV2LT5maWJfZGF0YSk7CiBlcnJfZGV2bGlua19mcmVlOgogCWRldmxpbmtfZnJlZShk ZXZsaW5rKTsKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwpAQCAtMjg2LDcgKzI3NCw2IEBAIHN0YXRp YyB2b2lkIG5zaW1fZGV2X2Rlc3Ryb3koc3RydWN0IG5zaW1fZGV2ICpuc2ltX2RldikKIAluc2lt X2Rldl9kZWJ1Z2ZzX2V4aXQobnNpbV9kZXYpOwogCWRldmxpbmtfdW5yZWdpc3RlcihkZXZsaW5r KTsKIAlkZXZsaW5rX3Jlc291cmNlc191bnJlZ2lzdGVyKGRldmxpbmssIE5VTEwpOwotCW5zaW1f ZmliX2Rlc3Ryb3kobnNpbV9kZXYtPmZpYl9kYXRhKTsKIAltdXRleF9kZXN0cm95KCZuc2ltX2Rl di0+cG9ydF9saXN0X2xvY2spOwogCWRldmxpbmtfZnJlZShkZXZsaW5rKTsKIH0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9maWIuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9m aWIuYwppbmRleCA4YzU3YmE3NDc3NzIuLmY2MWQwOTQ3NDZjMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvbmV0ZGV2c2ltL2ZpYi5jCisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9maWIuYwpA QCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPG5ldC9pcF9maWIuaD4KICNpbmNsdWRlIDxuZXQv aXA2X2ZpYi5oPgogI2luY2x1ZGUgPG5ldC9maWJfcnVsZXMuaD4KKyNpbmNsdWRlIDxuZXQvbmV0 bnMvZ2VuZXJpYy5oPgogCiAjaW5jbHVkZSAibmV0ZGV2c2ltLmgiCiAKQEAgLTMyLDE0ICszMywx NSBAQCBzdHJ1Y3QgbnNpbV9wZXJfZmliX2RhdGEgewogfTsKIAogc3RydWN0IG5zaW1fZmliX2Rh dGEgewotCXN0cnVjdCBub3RpZmllcl9ibG9jayBmaWJfbmI7CiAJc3RydWN0IG5zaW1fcGVyX2Zp Yl9kYXRhIGlwdjQ7CiAJc3RydWN0IG5zaW1fcGVyX2ZpYl9kYXRhIGlwdjY7CiB9OwogCi11NjQg bnNpbV9maWJfZ2V0X3ZhbChzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqZmliX2RhdGEsCi0JCSAgICAg ZW51bSBuc2ltX3Jlc291cmNlX2lkIHJlc19pZCwgYm9vbCBtYXgpCitzdGF0aWMgdW5zaWduZWQg aW50IG5zaW1fZmliX25ldF9pZDsKKwordTY0IG5zaW1fZmliX2dldF92YWwoc3RydWN0IG5ldCAq bmV0LCBlbnVtIG5zaW1fcmVzb3VyY2VfaWQgcmVzX2lkLCBib29sIG1heCkKIHsKKwlzdHJ1Y3Qg bnNpbV9maWJfZGF0YSAqZmliX2RhdGEgPSBuZXRfZ2VuZXJpYyhuZXQsIG5zaW1fZmliX25ldF9p ZCk7CiAJc3RydWN0IG5zaW1fZmliX2VudHJ5ICplbnRyeTsKIAogCXN3aXRjaCAocmVzX2lkKSB7 CkBAIC02MiwxMCArNjQsMTAgQEAgdTY0IG5zaW1fZmliX2dldF92YWwoc3RydWN0IG5zaW1fZmli X2RhdGEgKmZpYl9kYXRhLAogCXJldHVybiBtYXggPyBlbnRyeS0+bWF4IDogZW50cnktPm51bTsK IH0KIAotaW50IG5zaW1fZmliX3NldF9tYXgoc3RydWN0IG5zaW1fZmliX2RhdGEgKmZpYl9kYXRh LAotCQkgICAgIGVudW0gbnNpbV9yZXNvdXJjZV9pZCByZXNfaWQsIHU2NCB2YWwsCitpbnQgbnNp bV9maWJfc2V0X21heChzdHJ1Y3QgbmV0ICpuZXQsIGVudW0gbnNpbV9yZXNvdXJjZV9pZCByZXNf aWQsIHU2NCB2YWwsCiAJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewor CXN0cnVjdCBuc2ltX2ZpYl9kYXRhICpmaWJfZGF0YSA9IG5ldF9nZW5lcmljKG5ldCwgbnNpbV9m aWJfbmV0X2lkKTsKIAlzdHJ1Y3QgbnNpbV9maWJfZW50cnkgKmVudHJ5OwogCWludCBlcnIgPSAw OwogCkBAIC0xMTgsOSArMTIwLDkgQEAgc3RhdGljIGludCBuc2ltX2ZpYl9ydWxlX2FjY291bnQo c3RydWN0IG5zaW1fZmliX2VudHJ5ICplbnRyeSwgYm9vbCBhZGQsCiAJcmV0dXJuIGVycjsKIH0K IAotc3RhdGljIGludCBuc2ltX2ZpYl9ydWxlX2V2ZW50KHN0cnVjdCBuc2ltX2ZpYl9kYXRhICpk YXRhLAotCQkJICAgICAgIHN0cnVjdCBmaWJfbm90aWZpZXJfaW5mbyAqaW5mbywgYm9vbCBhZGQp CitzdGF0aWMgaW50IG5zaW1fZmliX3J1bGVfZXZlbnQoc3RydWN0IGZpYl9ub3RpZmllcl9pbmZv ICppbmZvLCBib29sIGFkZCkKIHsKKwlzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqZGF0YSA9IG5ldF9n ZW5lcmljKGluZm8tPm5ldCwgbnNpbV9maWJfbmV0X2lkKTsKIAlzdHJ1Y3QgbmV0bGlua19leHRf YWNrICpleHRhY2sgPSBpbmZvLT5leHRhY2s7CiAJaW50IGVyciA9IDA7CiAKQEAgLTE1NSw5ICsx NTcsOSBAQCBzdGF0aWMgaW50IG5zaW1fZmliX2FjY291bnQoc3RydWN0IG5zaW1fZmliX2VudHJ5 ICplbnRyeSwgYm9vbCBhZGQsCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBuc2ltX2Zp Yl9ldmVudChzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqZGF0YSwKLQkJCSAgc3RydWN0IGZpYl9ub3Rp Zmllcl9pbmZvICppbmZvLCBib29sIGFkZCkKK3N0YXRpYyBpbnQgbnNpbV9maWJfZXZlbnQoc3Ry dWN0IGZpYl9ub3RpZmllcl9pbmZvICppbmZvLCBib29sIGFkZCkKIHsKKwlzdHJ1Y3QgbnNpbV9m aWJfZGF0YSAqZGF0YSA9IG5ldF9nZW5lcmljKGluZm8tPm5ldCwgbnNpbV9maWJfbmV0X2lkKTsK IAlzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2sgPSBpbmZvLT5leHRhY2s7CiAJaW50IGVy ciA9IDA7CiAKQEAgLTE3NiwyMiArMTc4LDE4IEBAIHN0YXRpYyBpbnQgbnNpbV9maWJfZXZlbnQo c3RydWN0IG5zaW1fZmliX2RhdGEgKmRhdGEsCiBzdGF0aWMgaW50IG5zaW1fZmliX2V2ZW50X25i KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsCiAJCQkgICAg IHZvaWQgKnB0cikKIHsKLQlzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqZGF0YSA9IGNvbnRhaW5lcl9v ZihuYiwgc3RydWN0IG5zaW1fZmliX2RhdGEsCi0JCQkJCQkgIGZpYl9uYik7CiAJc3RydWN0IGZp Yl9ub3RpZmllcl9pbmZvICppbmZvID0gcHRyOwogCWludCBlcnIgPSAwOwogCiAJc3dpdGNoIChl dmVudCkgewogCWNhc2UgRklCX0VWRU5UX1JVTEVfQUREOiAvKiBmYWxsIHRocm91Z2ggKi8KIAlj YXNlIEZJQl9FVkVOVF9SVUxFX0RFTDoKLQkJZXJyID0gbnNpbV9maWJfcnVsZV9ldmVudChkYXRh LCBpbmZvLAotCQkJCQkgIGV2ZW50ID09IEZJQl9FVkVOVF9SVUxFX0FERCk7CisJCWVyciA9IG5z aW1fZmliX3J1bGVfZXZlbnQoaW5mbywgZXZlbnQgPT0gRklCX0VWRU5UX1JVTEVfQUREKTsKIAkJ YnJlYWs7CiAKIAljYXNlIEZJQl9FVkVOVF9FTlRSWV9BREQ6ICAvKiBmYWxsIHRocm91Z2ggKi8K IAljYXNlIEZJQl9FVkVOVF9FTlRSWV9ERUw6Ci0JCWVyciA9IG5zaW1fZmliX2V2ZW50KGRhdGEs IGluZm8sCi0JCQkJICAgICBldmVudCA9PSBGSUJfRVZFTlRfRU5UUllfQUREKTsKKwkJZXJyID0g bnNpbV9maWJfZXZlbnQoaW5mbywgZXZlbnQgPT0gRklCX0VWRU5UX0VOVFJZX0FERCk7CiAJCWJy ZWFrOwogCX0KIApAQCAtMjAxLDIzICsxOTksMzAgQEAgc3RhdGljIGludCBuc2ltX2ZpYl9ldmVu dF9uYihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LAogLyog aW5jb25zaXN0ZW50IGR1bXAsIHRyeWluZyBhZ2FpbiAqLwogc3RhdGljIHZvaWQgbnNpbV9maWJf ZHVtcF9pbmNvbnNpc3RlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKIHsKLQlzdHJ1Y3Qg bnNpbV9maWJfZGF0YSAqZGF0YSA9IGNvbnRhaW5lcl9vZihuYiwgc3RydWN0IG5zaW1fZmliX2Rh dGEsCi0JCQkJCQkgIGZpYl9uYik7CisJc3RydWN0IG5zaW1fZmliX2RhdGEgKmRhdGE7CisJc3Ry dWN0IG5ldCAqbmV0OworCisJcmN1X3JlYWRfbG9jaygpOworCWZvcl9lYWNoX25ldF9yY3UobmV0 KSB7CisJCWRhdGEgPSBuZXRfZ2VuZXJpYyhuZXQsIG5zaW1fZmliX25ldF9pZCk7CisKKwkJZGF0 YS0+aXB2NC5maWIubnVtID0gMFVMTDsKKwkJZGF0YS0+aXB2NC5ydWxlcy5udW0gPSAwVUxMOwog Ci0JZGF0YS0+aXB2NC5maWIubnVtID0gMFVMTDsKLQlkYXRhLT5pcHY0LnJ1bGVzLm51bSA9IDBV TEw7Ci0JZGF0YS0+aXB2Ni5maWIubnVtID0gMFVMTDsKLQlkYXRhLT5pcHY2LnJ1bGVzLm51bSA9 IDBVTEw7CisJCWRhdGEtPmlwdjYuZmliLm51bSA9IDBVTEw7CisJCWRhdGEtPmlwdjYucnVsZXMu bnVtID0gMFVMTDsKKwl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAKLXN0cnVjdCBuc2ltX2Zp Yl9kYXRhICpuc2ltX2ZpYl9jcmVhdGUodm9pZCkKLXsKLQlzdHJ1Y3QgbnNpbV9maWJfZGF0YSAq ZGF0YTsKLQlpbnQgZXJyOworc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBuc2ltX2ZpYl9u YiA9IHsKKwkubm90aWZpZXJfY2FsbCA9IG5zaW1fZmliX2V2ZW50X25iLAorfTsKIAotCWRhdGEg PSBremFsbG9jKHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOwotCWlmICghZGF0YSkKLQkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7CisvKiBJbml0aWFsaXplIHBlciBuZXR3b3JrIG5hbWVzcGFj ZSBzdGF0ZSAqLworc3RhdGljIGludCBfX25ldF9pbml0IG5zaW1fZmliX25ldG5zX2luaXQoc3Ry dWN0IG5ldCAqbmV0KQoreworCXN0cnVjdCBuc2ltX2ZpYl9kYXRhICpkYXRhID0gbmV0X2dlbmVy aWMobmV0LCBuc2ltX2ZpYl9uZXRfaWQpOwogCiAJZGF0YS0+aXB2NC5maWIubWF4ID0gKHU2NCkt MTsKIAlkYXRhLT5pcHY0LnJ1bGVzLm1heCA9ICh1NjQpLTE7CkBAIC0yMjUsMjIgKzIzMCwzNyBA QCBzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqbnNpbV9maWJfY3JlYXRlKHZvaWQpCiAJZGF0YS0+aXB2 Ni5maWIubWF4ID0gKHU2NCktMTsKIAlkYXRhLT5pcHY2LnJ1bGVzLm1heCA9ICh1NjQpLTE7CiAK LQlkYXRhLT5maWJfbmIubm90aWZpZXJfY2FsbCA9IG5zaW1fZmliX2V2ZW50X25iOwotCWVyciA9 IHJlZ2lzdGVyX2ZpYl9ub3RpZmllcigmZGF0YS0+ZmliX25iLCBuc2ltX2ZpYl9kdW1wX2luY29u c2lzdGVudCk7Ci0JaWYgKGVycikgewotCQlwcl9lcnIoIkZhaWxlZCB0byByZWdpc3RlciBmaWIg bm90aWZpZXJcbiIpOwotCQlnb3RvIGVycl9vdXQ7Ci0JfQorCXJldHVybiAwOworfQogCi0JcmV0 dXJuIGRhdGE7CitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIG5zaW1fZmliX25ldF9v cHMgPSB7CisJLmluaXQgPSBuc2ltX2ZpYl9uZXRuc19pbml0LAorCS5pZCAgID0gJm5zaW1fZmli X25ldF9pZCwKKwkuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbnNpbV9maWJfZGF0YSksCit9OwogCi1l cnJfb3V0OgotCWtmcmVlKGRhdGEpOwotCXJldHVybiBFUlJfUFRSKGVycik7Cit2b2lkIG5zaW1f ZmliX2V4aXQodm9pZCkKK3sKKwl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJm5zaW1fZmliX25l dF9vcHMpOworCXVucmVnaXN0ZXJfZmliX25vdGlmaWVyKCZuc2ltX2ZpYl9uYik7CiB9CiAKLXZv aWQgbnNpbV9maWJfZGVzdHJveShzdHJ1Y3QgbnNpbV9maWJfZGF0YSAqZGF0YSkKK2ludCBuc2lt X2ZpYl9pbml0KHZvaWQpCiB7Ci0JdW5yZWdpc3Rlcl9maWJfbm90aWZpZXIoJmRhdGEtPmZpYl9u Yik7Ci0Ja2ZyZWUoZGF0YSk7CisJaW50IGVycjsKKworCWVyciA9IHJlZ2lzdGVyX3Blcm5ldF9z dWJzeXMoJm5zaW1fZmliX25ldF9vcHMpOworCWlmIChlcnIgPCAwKSB7CisJCXByX2VycigiRmFp bGVkIHRvIHJlZ2lzdGVyIHBlcm5ldCBzdWJzeXN0ZW1cbiIpOworCQlnb3RvIGVycl9vdXQ7CisJ fQorCisJZXJyID0gcmVnaXN0ZXJfZmliX25vdGlmaWVyKCZuc2ltX2ZpYl9uYiwgbnNpbV9maWJf ZHVtcF9pbmNvbnNpc3RlbnQpOworCWlmIChlcnIgPCAwKSB7CisJCXByX2VycigiRmFpbGVkIHRv IHJlZ2lzdGVyIGZpYiBub3RpZmllclxuIik7CisJCWdvdG8gZXJyX291dDsKKwl9CisKK2Vycl9v dXQ6CisJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9u ZXRkZXYuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwppbmRleCBlNWM4YWEwOGUx Y2QuLjUzM2ExODJlZWZjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRl di5jCisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwpAQCAtMzcwLDEyICszNzAs MTggQEAgc3RhdGljIGludCBfX2luaXQgbnNpbV9tb2R1bGVfaW5pdCh2b2lkKQogCWlmIChlcnIp CiAJCWdvdG8gZXJyX2Rldl9leGl0OwogCi0JZXJyID0gcnRubF9saW5rX3JlZ2lzdGVyKCZuc2lt X2xpbmtfb3BzKTsKKwllcnIgPSBuc2ltX2ZpYl9pbml0KCk7CiAJaWYgKGVycikKIAkJZ290byBl cnJfYnVzX2V4aXQ7CiAKKwllcnIgPSBydG5sX2xpbmtfcmVnaXN0ZXIoJm5zaW1fbGlua19vcHMp OworCWlmIChlcnIpCisJCWdvdG8gZXJyX2ZpYl9leGl0OworCiAJcmV0dXJuIDA7CiAKK2Vycl9m aWJfZXhpdDoKKwluc2ltX2ZpYl9leGl0KCk7CiBlcnJfYnVzX2V4aXQ6CiAJbnNpbV9idXNfZXhp dCgpOwogZXJyX2Rldl9leGl0OgpAQCAtMzg2LDYgKzM5Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IG5zaW1fbW9kdWxlX2luaXQodm9pZCkKIHN0YXRpYyB2b2lkIF9fZXhpdCBuc2ltX21vZHVsZV9l eGl0KHZvaWQpCiB7CiAJcnRubF9saW5rX3VucmVnaXN0ZXIoJm5zaW1fbGlua19vcHMpOworCW5z aW1fZmliX2V4aXQoKTsKIAluc2ltX2J1c19leGl0KCk7CiAJbnNpbV9kZXZfZXhpdCgpOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9u ZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCmluZGV4IDNmMzk4Nzk3YzJiYy4uZjkyNTNmZTY4YzMx IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmgKKysrIGIvZHJp dmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCkBAIC0xNjgsMTIgKzE2OCwxMCBAQCBpbnQg bnNpbV9kZXZfcG9ydF9hZGQoc3RydWN0IG5zaW1fYnVzX2RldiAqbnNpbV9idXNfZGV2LAogaW50 IG5zaW1fZGV2X3BvcnRfZGVsKHN0cnVjdCBuc2ltX2J1c19kZXYgKm5zaW1fYnVzX2RldiwKIAkJ ICAgICAgdW5zaWduZWQgaW50IHBvcnRfaW5kZXgpOwogCi1zdHJ1Y3QgbnNpbV9maWJfZGF0YSAq bnNpbV9maWJfY3JlYXRlKHZvaWQpOwotdm9pZCBuc2ltX2ZpYl9kZXN0cm95KHN0cnVjdCBuc2lt X2ZpYl9kYXRhICpmaWJfZGF0YSk7Ci11NjQgbnNpbV9maWJfZ2V0X3ZhbChzdHJ1Y3QgbnNpbV9m aWJfZGF0YSAqZmliX2RhdGEsCi0JCSAgICAgZW51bSBuc2ltX3Jlc291cmNlX2lkIHJlc19pZCwg Ym9vbCBtYXgpOwotaW50IG5zaW1fZmliX3NldF9tYXgoc3RydWN0IG5zaW1fZmliX2RhdGEgKmZp Yl9kYXRhLAotCQkgICAgIGVudW0gbnNpbV9yZXNvdXJjZV9pZCByZXNfaWQsIHU2NCB2YWwsCitp bnQgbnNpbV9maWJfaW5pdCh2b2lkKTsKK3ZvaWQgbnNpbV9maWJfZXhpdCh2b2lkKTsKK3U2NCBu c2ltX2ZpYl9nZXRfdmFsKHN0cnVjdCBuZXQgKm5ldCwgZW51bSBuc2ltX3Jlc291cmNlX2lkIHJl c19pZCwgYm9vbCBtYXgpOworaW50IG5zaW1fZmliX3NldF9tYXgoc3RydWN0IG5ldCAqbmV0LCBl bnVtIG5zaW1fcmVzb3VyY2VfaWQgcmVzX2lkLCB1NjQgdmFsLAogCQkgICAgIHN0cnVjdCBuZXRs aW5rX2V4dF9hY2sgKmV4dGFjayk7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19YRlJNX09GRkxP QUQpCi0tIAoyLjIwLjEKCgpGcm9tIDE5OTlhZjFiNDZlMmE2ZGJmOGM4YjJlZWQ5MTk2NDZkYThl MmE4YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFtYWQgSGVpYiA8bW9oYW1h ZGhAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDIzIEFwciAyMDE5IDIxOjEzOjQ4ICswMzAwClN1 YmplY3Q6IFtQQVRDSCAyMi8yOF0gbmV0L21seDVlOiBldGh0b29sLCBBdm9pZCBzZXR0aW5nIHNw ZWVkIHRvIDU2R0JBU0Ugd2hlbgogYXV0b25lZyBvZmYKClsgVXBzdHJlYW0gY29tbWl0IDVmYWY1 YjcwYzUxZGQ5Yzk5MDViZjgyMDllMzNjYmQ4Njc0ODY2MDcgXQoKU2V0dGluZyBzcGVlZCB0byA1 NkdCQVNFIGlzIGFsbG93ZWQgb25seSB3aXRoIGF1dG8tbmVnb3RpYXRpb24gZW5hYmxlZC4KClRo aXMgcGF0Y2ggcHJldmVudCBzZXR0aW5nIHNwZWVkIHRvIDU2R0JBU0Ugd2hlbiBhdXRvLW5lZ290 aWF0aW9uIGRpc2FibGVkLgoKRml4ZXM6IGY2MmI4YmI4ZjJkMyAoIm5ldC9tbHg1OiBFeHRlbmQg bWx4NV9jb3JlIHRvIHN1cHBvcnQgQ29ubmVjdFgtNCBFdGhlcm5ldCBmdW5jdGlvbmFsaXR5IikK U2lnbmVkLW9mZi1ieTogTW9oYW1hZCBIZWliIDxtb2hhbWFkaEBtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCA4ICsrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKaW5kZXggMjJkNTEw MTc2OTY1Li4wNmY5YmQ2YTQ1ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwpAQCAtMTA2MCw2ICsxMDYwLDE0IEBAIGlu dCBtbHg1ZV9ldGh0b29sX3NldF9saW5rX2tzZXR0aW5ncyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diwKIAlsaW5rX21vZGVzID0gYXV0b25lZyA9PSBBVVRPTkVHX0VOQUJMRSA/IGV0aHRvb2wycHR5 c19hZHZlcl9mdW5jKGFkdmVyKSA6CiAJCW1seDVlX3BvcnRfc3BlZWQybGlua21vZGVzKG1kZXYs IHNwZWVkLCAhZXh0KTsKIAorCWlmICgobGlua19tb2RlcyAmIE1MWDVFX1BST1RfTUFTSyhNTFg1 RV81NkdCQVNFX1I0KSkgJiYKKwkgICAgYXV0b25lZyAhPSBBVVRPTkVHX0VOQUJMRSkgeworCQlu ZXRkZXZfZXJyKHByaXYtPm5ldGRldiwgIiVzOiA1NkcgbGluayBzcGVlZCByZXF1aXJlcyBhdXRv bmVnIGVuYWJsZWRcbiIsCisJCQkgICBfX2Z1bmNfXyk7CisJCWVyciA9IC1FSU5WQUw7CisJCWdv dG8gb3V0OworCX0KKwogCWxpbmtfbW9kZXMgPSBsaW5rX21vZGVzICYgZXByb3RvLmNhcDsKIAlp ZiAoIWxpbmtfbW9kZXMpIHsKIAkJbmV0ZGV2X2Vycihwcml2LT5uZXRkZXYsICIlczogTm90IHN1 cHBvcnRlZCBsaW5rIG1vZGUocykgcmVxdWVzdGVkIiwKLS0gCjIuMjAuMQoKCkZyb20gOGRiM2Zm ZWZmMjA1YWU2MjFkYjg5NWFkYTY2YTYwY2RmYTY5ODYzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCA3IEF1ZyAy MDE5IDE1OjU5OjA2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMy8yOF0gbmV0L21seDVlOiBGaXgg ZmFsc2UgbmVnYXRpdmUgaW5kaWNhdGlvbiBvbiB0eCByZXBvcnRlcgogQ1FFIHJlY292ZXJ5Cgpb IFVwc3RyZWFtIGNvbW1pdCBkOWEyZmNmNTNjNzZhN2VkYjJiY2Y5OWU5NDUwNzkzNTU2MWE4M2Q1 IF0KClJlbW92ZSB3cm9uZyBlcnJvciByZXR1cm4gdmFsdWUgd2hlbiBTUSBpcyBub3QgaW4gZXJy b3Igc3RhdGUuCkNRRSByZWNvdmVyeSBvbiBUWCByZXBvcnRlciBxdWVyaWVzIHRoZSBzcSBzdGF0 ZS4gSWYgdGhlIHNxIGlzIG5vdCBpbgplcnJvciBzdGF0ZSwgdGhlIHNxIGlzIGVpdGhlciBpbiBy ZWFkeSBvciByZXNldCBzdGF0ZS4gUmVhZHkgc3RhdGUgaXMKZ29vZCBzdGF0ZSB3aGljaCBkb2Vz bid0IHJlcXVpcmUgcmVjb3ZlcnkgYW5kIHJlc2V0IHN0YXRlIGlzIGEgdGVtcG9yYWwKc3RhdGUg d2hpY2ggZW5kcyBpbiByZWFkeSBzdGF0ZS4gV2l0aCB0aGlzIHBhdGNoLCBDUUUgcmVjb3Zlcnkg aW4gdGhpcwpzY2VuYXJpbyBpcyBzdWNjZXNzZnVsLgoKRml4ZXM6IGRlODY1MGE4MjA3MSAoIm5l dC9tbHg1ZTogQWRkIHR4IHJlcG9ydGVyIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBBeWEgTGV2 aW4gPGF5YWxAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRA bWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxh bm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4v cmVwb3J0ZXJfdHguYyB8IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbi9yZXBvcnRlcl90eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMKaW5kZXggZjNkOTg3NDhiMjExLi5iMzA3 MjM0YjRlMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi9yZXBvcnRlcl90eC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi9yZXBvcnRlcl90eC5jCkBAIC04NiwxMCArODYsOCBAQCBzdGF0aWMgaW50 IG1seDVlX3R4X3JlcG9ydGVyX2Vycl9jcWVfcmVjb3ZlcihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNx KQogCQlyZXR1cm4gZXJyOwogCX0KIAotCWlmIChzdGF0ZSAhPSBNTFg1X1NRQ19TVEFURV9FUlIp IHsKLQkJbmV0ZGV2X2VycihkZXYsICJTUSAweCV4IG5vdCBpbiBFUlJPUiBzdGF0ZVxuIiwgc3Et PnNxbik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlpZiAoc3RhdGUgIT0gTUxYNV9TUUNfU1RB VEVfRVJSKQorCQlyZXR1cm4gMDsKIAogCW1seDVlX3R4X2Rpc2FibGVfcXVldWUoc3EtPnR4cSk7 CiAKLS0gCjIuMjAuMQoKCkZyb20gNzgzODQyOWUwNzFlMjQ1MDk2NmRkNGM5MGEyYzRlZmIzZDQ2 MTQzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlhIExldmluIDxheWFsQG1lbGxh bm94LmNvbT4KRGF0ZTogVGh1LCA4IEF1ZyAyMDE5IDE1OjU1OjQ4ICswMzAwClN1YmplY3Q6IFtQ QVRDSCAyNC8yOF0gbmV0L21seDVlOiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGluIENRRSByZWNv dmVyeSBmbG93CiBvZiB0eCByZXBvcnRlcgoKWyBVcHN0cmVhbSBjb21taXQgYTRlNTA4Y2FiNjIz OTUxZGM0NzU0ZjM0NmU1NjczNzE0ZjNiYmFkZSBdCgpSZW1vdmUgY2hlY2sgb2YgcmVjb3Zlcnkg Yml0LCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBDUUUgcmVjb3ZlcnkKZnVuY3Rpb24uIFRoaXMg dGVzdCBpcyBhbHJlYWR5IHBlcmZvcm1lZCByaWdodCBiZWZvcmUgdGhlIHJlcG9ydGVyCmlzIGlu dm9rZWQsIHdoZW4gQ1FFIGVycm9yIGlzIGRldGVjdGVkLgoKRml4ZXM6IGRlODY1MGE4MjA3MSAo Im5ldC9tbHg1ZTogQWRkIHR4IHJlcG9ydGVyIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBBeWEg TGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8 c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYyB8IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4vcmVwb3J0ZXJfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbi9yZXBvcnRlcl90eC5jCmluZGV4IGIzMDcyMzRiNGUwNS4uYzFjYWYxNGJjMzM0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4v cmVwb3J0ZXJfdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW4vcmVwb3J0ZXJfdHguYwpAQCAtNzYsOSArNzYsNiBAQCBzdGF0aWMgaW50IG1seDVlX3R4 X3JlcG9ydGVyX2Vycl9jcWVfcmVjb3ZlcihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKQogCXU4IHN0 YXRlOwogCWludCBlcnI7CiAKLQlpZiAoIXRlc3RfYml0KE1MWDVFX1NRX1NUQVRFX1JFQ09WRVJJ TkcsICZzcS0+c3RhdGUpKQotCQlyZXR1cm4gMDsKLQogCWVyciA9IG1seDVfY29yZV9xdWVyeV9z cV9zdGF0ZShtZGV2LCBzcS0+c3FuLCAmc3RhdGUpOwogCWlmIChlcnIpIHsKIAkJbmV0ZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gcXVlcnkgU1EgMHgleCBzdGF0ZS4gZXJyID0gJWRcbiIsCi0tIAoy LjIwLjEKCgpGcm9tIGMwYWM2ZTg3NzBiYTlmNmY0OWUwNWJiNmRhZGYxZmY0ZGZkZWYzYWEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4aW1taUBt ZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgNSBKdWwgMjAxOSAxNzo1OToyOCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMjUvMjhdIG5ldC9tbHg1ZTogVXNlIGZsb3cga2V5cyBkaXNzZWN0b3IgdG8gcGFy c2UgcGFja2V0cyBmb3IKIEFSRlMKClsgVXBzdHJlYW0gY29tbWl0IDQwNWI5M2ViNzY0MzY3YTY3 MGU3MjlkYTE4ZTU0ZGM0MmRiMzI2MjAgXQoKVGhlIGN1cnJlbnQgQVJGUyBjb2RlIHJlbGllcyBv biBjZXJ0YWluIGZpZWxkcyB0byBiZSBzZXQgaW4gdGhlIFNLQgooZS5nLiB0cmFuc3BvcnRfaGVh ZGVyKSBhbmQgZXh0cmFjdHMgSVAgYWRkcmVzc2VzIGFuZCBwb3J0cyBieSBjdXN0b20KY29kZSB0 aGF0IHBhcnNlcyB0aGUgcGFja2V0LiBUaGUgbmVjZXNzYXJ5IFNLQiBmaWVsZHMsIGhvd2V2ZXIs IGFyZSBub3QKYWx3YXlzIHNldCBhdCB0aGF0IHBvaW50LCB3aGljaCBsZWFkcyB0byBhbiBvdXQt b2YtYm91bmRzIGFjY2Vzcy4gVXNlCnNrYl9mbG93X2Rpc3NlY3RfZmxvd19rZXlzKCkgdG8gZ2V0 IHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gcmVsaWFibHksCmZpeCB0aGUgb3V0LW9mLWJvdW5k cyBhY2Nlc3MgYW5kIHJldXNlIHRoZSBjb2RlLgoKRml4ZXM6IDE4YzkwOGU0NzdkYyAoIm5ldC9t bHg1ZTogQWRkIGFjY2VsZXJhdGVkIFJGUyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogTWF4aW0g TWlraXR5YW5za2l5IDxtYXhpbW1pQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRv dWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQg PHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fYXJmcy5jIHwgOTcgKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDM0IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hcmZzLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYXJmcy5jCmluZGV4IDg2NTdlMGYyNjk5NS4u MmM3NWIyNzUyZjU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fYXJmcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9hcmZzLmMKQEAgLTQzNywxMiArNDM3LDYgQEAgYXJmc19oYXNoX2J1Y2tldChz dHJ1Y3QgYXJmc190YWJsZSAqYXJmc190LCBfX2JlMTYgc3JjX3BvcnQsCiAJcmV0dXJuICZhcmZz X3QtPnJ1bGVzX2hhc2hbYnVja2V0X2lkeF07CiB9CiAKLXN0YXRpYyB1OCBhcmZzX2dldF9pcF9w cm90byhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiAoc2tiLT5wcm90b2Nv bCA9PSBodG9ucyhFVEhfUF9JUCkpID8KLQkJaXBfaGRyKHNrYiktPnByb3RvY29sIDogaXB2Nl9o ZHIoc2tiKS0+bmV4dGhkcjsKLX0KLQogc3RhdGljIHN0cnVjdCBhcmZzX3RhYmxlICphcmZzX2dl dF90YWJsZShzdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXMgKmFyZnMsCiAJCQkJCSB1OCBpcF9wcm90 bywgX19iZTE2IGV0eXBlKQogewpAQCAtNjAyLDMxICs1OTYsOSBAQCBzdGF0aWMgdm9pZCBhcmZz X2hhbmRsZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlhcmZzX21heV9leHBpcmVf Zmxvdyhwcml2KTsKIH0KIAotLyogcmV0dXJuIEw0IGRlc3RpbmF0aW9uIHBvcnQgZnJvbSBpcDQv NiBwYWNrZXRzICovCi1zdGF0aWMgX19iZTE2IGFyZnNfZ2V0X2RzdF9wb3J0KGNvbnN0IHN0cnVj dCBza19idWZmICpza2IpCi17Ci0JY2hhciAqdHJhbnNwb3J0X2hlYWRlcjsKLQotCXRyYW5zcG9y dF9oZWFkZXIgPSBza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotCWlmIChhcmZzX2dldF9pcF9w cm90byhza2IpID09IElQUFJPVE9fVENQKQotCQlyZXR1cm4gKChzdHJ1Y3QgdGNwaGRyICopdHJh bnNwb3J0X2hlYWRlciktPmRlc3Q7Ci0JcmV0dXJuICgoc3RydWN0IHVkcGhkciAqKXRyYW5zcG9y dF9oZWFkZXIpLT5kZXN0OwotfQotCi0vKiByZXR1cm4gTDQgc291cmNlIHBvcnQgZnJvbSBpcDQv NiBwYWNrZXRzICovCi1zdGF0aWMgX19iZTE2IGFyZnNfZ2V0X3NyY19wb3J0KGNvbnN0IHN0cnVj dCBza19idWZmICpza2IpCi17Ci0JY2hhciAqdHJhbnNwb3J0X2hlYWRlcjsKLQotCXRyYW5zcG9y dF9oZWFkZXIgPSBza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotCWlmIChhcmZzX2dldF9pcF9w cm90byhza2IpID09IElQUFJPVE9fVENQKQotCQlyZXR1cm4gKChzdHJ1Y3QgdGNwaGRyICopdHJh bnNwb3J0X2hlYWRlciktPnNvdXJjZTsKLQlyZXR1cm4gKChzdHJ1Y3QgdWRwaGRyICopdHJhbnNw b3J0X2hlYWRlciktPnNvdXJjZTsKLX0KLQogc3RhdGljIHN0cnVjdCBhcmZzX3J1bGUgKmFyZnNf YWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCQkJIHN0cnVjdCBhcmZzX3Rh YmxlICphcmZzX3QsCi0JCQkJCSBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkgY29u c3Qgc3RydWN0IGZsb3dfa2V5cyAqZmssCiAJCQkJCSB1MTYgcnhxLCB1MzIgZmxvd19pZCkKIHsK IAlzdHJ1Y3QgYXJmc19ydWxlICpydWxlOwpAQCAtNjQxLDE5ICs2MTMsMTkgQEAgc3RhdGljIHN0 cnVjdCBhcmZzX3J1bGUgKmFyZnNfYWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwK IAlJTklUX1dPUksoJnJ1bGUtPmFyZnNfd29yaywgYXJmc19oYW5kbGVfd29yayk7CiAKIAl0dXBs ZSA9ICZydWxlLT50dXBsZTsKLQl0dXBsZS0+ZXR5cGUgPSBza2ItPnByb3RvY29sOworCXR1cGxl LT5ldHlwZSA9IGZrLT5iYXNpYy5uX3Byb3RvOworCXR1cGxlLT5pcF9wcm90byA9IGZrLT5iYXNp Yy5pcF9wcm90bzsKIAlpZiAodHVwbGUtPmV0eXBlID09IGh0b25zKEVUSF9QX0lQKSkgewotCQl0 dXBsZS0+c3JjX2lwdjQgPSBpcF9oZHIoc2tiKS0+c2FkZHI7Ci0JCXR1cGxlLT5kc3RfaXB2NCA9 IGlwX2hkcihza2IpLT5kYWRkcjsKKwkJdHVwbGUtPnNyY19pcHY0ID0gZmstPmFkZHJzLnY0YWRk cnMuc3JjOworCQl0dXBsZS0+ZHN0X2lwdjQgPSBmay0+YWRkcnMudjRhZGRycy5kc3Q7CiAJfSBl bHNlIHsKLQkJbWVtY3B5KCZ0dXBsZS0+c3JjX2lwdjYsICZpcHY2X2hkcihza2IpLT5zYWRkciwK KwkJbWVtY3B5KCZ0dXBsZS0+c3JjX2lwdjYsICZmay0+YWRkcnMudjZhZGRycy5zcmMsCiAJCSAg ICAgICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7Ci0JCW1lbWNweSgmdHVwbGUtPmRzdF9pcHY2 LCAmaXB2Nl9oZHIoc2tiKS0+ZGFkZHIsCisJCW1lbWNweSgmdHVwbGUtPmRzdF9pcHY2LCAmZmst PmFkZHJzLnY2YWRkcnMuZHN0LAogCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOwog CX0KLQl0dXBsZS0+aXBfcHJvdG8gPSBhcmZzX2dldF9pcF9wcm90byhza2IpOwotCXR1cGxlLT5z cmNfcG9ydCA9IGFyZnNfZ2V0X3NyY19wb3J0KHNrYik7Ci0JdHVwbGUtPmRzdF9wb3J0ID0gYXJm c19nZXRfZHN0X3BvcnQoc2tiKTsKKwl0dXBsZS0+c3JjX3BvcnQgPSBmay0+cG9ydHMuc3JjOwor CXR1cGxlLT5kc3RfcG9ydCA9IGZrLT5wb3J0cy5kc3Q7CiAKIAlydWxlLT5mbG93X2lkID0gZmxv d19pZDsKIAlydWxlLT5maWx0ZXJfaWQgPSBwcml2LT5mcy5hcmZzLmxhc3RfZmlsdGVyX2lkKysg JSBSUFNfTk9fRklMVEVSOwpAQCAtNjY0LDM3ICs2MzYsMzMgQEAgc3RhdGljIHN0cnVjdCBhcmZz X3J1bGUgKmFyZnNfYWxsb2NfcnVsZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAlyZXR1cm4g cnVsZTsKIH0KIAotc3RhdGljIGJvb2wgYXJmc19jbXBfaXBzKHN0cnVjdCBhcmZzX3R1cGxlICp0 dXBsZSwKLQkJCSBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGJvb2wgYXJmc19j bXAoY29uc3Qgc3RydWN0IGFyZnNfdHVwbGUgKnR1cGxlLCBjb25zdCBzdHJ1Y3QgZmxvd19rZXlz ICpmaykKIHsKLQlpZiAodHVwbGUtPmV0eXBlID09IGh0b25zKEVUSF9QX0lQKSAmJgotCSAgICB0 dXBsZS0+c3JjX2lwdjQgPT0gaXBfaGRyKHNrYiktPnNhZGRyICYmCi0JICAgIHR1cGxlLT5kc3Rf aXB2NCA9PSBpcF9oZHIoc2tiKS0+ZGFkZHIpCi0JCXJldHVybiB0cnVlOwotCWlmICh0dXBsZS0+ ZXR5cGUgPT0gaHRvbnMoRVRIX1BfSVBWNikgJiYKLQkgICAgKCFtZW1jbXAoJnR1cGxlLT5zcmNf aXB2NiwgJmlwdjZfaGRyKHNrYiktPnNhZGRyLAotCQkgICAgIHNpemVvZihzdHJ1Y3QgaW42X2Fk ZHIpKSkgJiYKLQkgICAgKCFtZW1jbXAoJnR1cGxlLT5kc3RfaXB2NiwgJmlwdjZfaGRyKHNrYikt PmRhZGRyLAotCQkgICAgIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKSkpCi0JCXJldHVybiB0cnVl OworCWlmICh0dXBsZS0+c3JjX3BvcnQgIT0gZmstPnBvcnRzLnNyYyB8fCB0dXBsZS0+ZHN0X3Bv cnQgIT0gZmstPnBvcnRzLmRzdCkKKwkJcmV0dXJuIGZhbHNlOworCWlmICh0dXBsZS0+ZXR5cGUg IT0gZmstPmJhc2ljLm5fcHJvdG8pCisJCXJldHVybiBmYWxzZTsKKwlpZiAodHVwbGUtPmV0eXBl ID09IGh0b25zKEVUSF9QX0lQKSkKKwkJcmV0dXJuIHR1cGxlLT5zcmNfaXB2NCA9PSBmay0+YWRk cnMudjRhZGRycy5zcmMgJiYKKwkJICAgICAgIHR1cGxlLT5kc3RfaXB2NCA9PSBmay0+YWRkcnMu djRhZGRycy5kc3Q7CisJaWYgKHR1cGxlLT5ldHlwZSA9PSBodG9ucyhFVEhfUF9JUFY2KSkKKwkJ cmV0dXJuICFtZW1jbXAoJnR1cGxlLT5zcmNfaXB2NiwgJmZrLT5hZGRycy52NmFkZHJzLnNyYywK KwkJCSAgICAgICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSkgJiYKKwkJICAgICAgICFtZW1jbXAo JnR1cGxlLT5kc3RfaXB2NiwgJmZrLT5hZGRycy52NmFkZHJzLmRzdCwKKwkJCSAgICAgICBzaXpl b2Yoc3RydWN0IGluNl9hZGRyKSk7CiAJcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgc3RydWN0 IGFyZnNfcnVsZSAqYXJmc19maW5kX3J1bGUoc3RydWN0IGFyZnNfdGFibGUgKmFyZnNfdCwKLQkJ CQkJY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKKwkJCQkJY29uc3Qgc3RydWN0IGZsb3dfa2V5 cyAqZmspCiB7CiAJc3RydWN0IGFyZnNfcnVsZSAqYXJmc19ydWxlOwogCXN0cnVjdCBobGlzdF9o ZWFkICpoZWFkOwotCV9fYmUxNiBzcmNfcG9ydCA9IGFyZnNfZ2V0X3NyY19wb3J0KHNrYik7Ci0J X19iZTE2IGRzdF9wb3J0ID0gYXJmc19nZXRfZHN0X3BvcnQoc2tiKTsKIAotCWhlYWQgPSBhcmZz X2hhc2hfYnVja2V0KGFyZnNfdCwgc3JjX3BvcnQsIGRzdF9wb3J0KTsKKwloZWFkID0gYXJmc19o YXNoX2J1Y2tldChhcmZzX3QsIGZrLT5wb3J0cy5zcmMsIGZrLT5wb3J0cy5kc3QpOwogCWhsaXN0 X2Zvcl9lYWNoX2VudHJ5KGFyZnNfcnVsZSwgaGVhZCwgaGxpc3QpIHsKLQkJaWYgKGFyZnNfcnVs ZS0+dHVwbGUuc3JjX3BvcnQgPT0gc3JjX3BvcnQgJiYKLQkJICAgIGFyZnNfcnVsZS0+dHVwbGUu ZHN0X3BvcnQgPT0gZHN0X3BvcnQgJiYKLQkJICAgIGFyZnNfY21wX2lwcygmYXJmc19ydWxlLT50 dXBsZSwgc2tiKSkgeworCQlpZiAoYXJmc19jbXAoJmFyZnNfcnVsZS0+dHVwbGUsIGZrKSkKIAkJ CXJldHVybiBhcmZzX3J1bGU7Ci0JCX0KIAl9CiAKIAlyZXR1cm4gTlVMTDsKQEAgLTcwNywyMCAr Njc1LDI0IEBAIGludCBtbHg1ZV9yeF9mbG93X3N0ZWVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IG1seDVlX2FyZnNfdGFibGVzICph cmZzID0gJnByaXYtPmZzLmFyZnM7CiAJc3RydWN0IGFyZnNfdGFibGUgKmFyZnNfdDsKIAlzdHJ1 Y3QgYXJmc19ydWxlICphcmZzX3J1bGU7CisJc3RydWN0IGZsb3dfa2V5cyBmazsKKworCWlmICgh c2tiX2Zsb3dfZGlzc2VjdF9mbG93X2tleXMoc2tiLCAmZmssIDApKQorCQlyZXR1cm4gLUVQUk9U T05PU1VQUE9SVDsKIAotCWlmIChza2ItPnByb3RvY29sICE9IGh0b25zKEVUSF9QX0lQKSAmJgot CSAgICBza2ItPnByb3RvY29sICE9IGh0b25zKEVUSF9QX0lQVjYpKQorCWlmIChmay5iYXNpYy5u X3Byb3RvICE9IGh0b25zKEVUSF9QX0lQKSAmJgorCSAgICBmay5iYXNpYy5uX3Byb3RvICE9IGh0 b25zKEVUSF9QX0lQVjYpKQogCQlyZXR1cm4gLUVQUk9UT05PU1VQUE9SVDsKIAogCWlmIChza2It PmVuY2Fwc3VsYXRpb24pCiAJCXJldHVybiAtRVBST1RPTk9TVVBQT1JUOwogCi0JYXJmc190ID0g YXJmc19nZXRfdGFibGUoYXJmcywgYXJmc19nZXRfaXBfcHJvdG8oc2tiKSwgc2tiLT5wcm90b2Nv bCk7CisJYXJmc190ID0gYXJmc19nZXRfdGFibGUoYXJmcywgZmsuYmFzaWMuaXBfcHJvdG8sIGZr LmJhc2ljLm5fcHJvdG8pOwogCWlmICghYXJmc190KQogCQlyZXR1cm4gLUVQUk9UT05PU1VQUE9S VDsKIAogCXNwaW5fbG9ja19iaCgmYXJmcy0+YXJmc19sb2NrKTsKLQlhcmZzX3J1bGUgPSBhcmZz X2ZpbmRfcnVsZShhcmZzX3QsIHNrYik7CisJYXJmc19ydWxlID0gYXJmc19maW5kX3J1bGUoYXJm c190LCAmZmspOwogCWlmIChhcmZzX3J1bGUpIHsKIAkJaWYgKGFyZnNfcnVsZS0+cnhxID09IHJ4 cV9pbmRleCkgewogCQkJc3Bpbl91bmxvY2tfYmgoJmFyZnMtPmFyZnNfbG9jayk7CkBAIC03Mjgs OCArNzAwLDcgQEAgaW50IG1seDVlX3J4X2Zsb3dfc3RlZXIoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJfQogCQlhcmZzX3J1bGUtPnJ4cSA9IHJ4 cV9pbmRleDsKIAl9IGVsc2UgewotCQlhcmZzX3J1bGUgPSBhcmZzX2FsbG9jX3J1bGUocHJpdiwg YXJmc190LCBza2IsCi0JCQkJCSAgICByeHFfaW5kZXgsIGZsb3dfaWQpOworCQlhcmZzX3J1bGUg PSBhcmZzX2FsbG9jX3J1bGUocHJpdiwgYXJmc190LCAmZmssIHJ4cV9pbmRleCwgZmxvd19pZCk7 CiAJCWlmICghYXJmc19ydWxlKSB7CiAJCQlzcGluX3VubG9ja19iaCgmYXJmcy0+YXJmc19sb2Nr KTsKIAkJCXJldHVybiAtRU5PTUVNOwotLSAKMi4yMC4xCgoKRnJvbSBjYWE4OTc1NjQ2ZGFlMzEy YmRjNWJmNjc1NWNiMWM2OTdlOGEzYjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK YWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCA3 IEF1ZyAyMDE5IDE3OjAzOjU5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNi8yOF0gbmV0L3Rsczog cHJldmVudCBza2Jfb3JwaGFuKCkgZnJvbSBsZWFraW5nIFRMUyBwbGFpbgogdGV4dCB3aXRoIG9m ZmxvYWQKClsgVXBzdHJlYW0gY29tbWl0IDQxNDc3NjYyMWQxMDA2ZTU3ZTgwZTZkYjdmZGMzODM3 ODk3YWFhNjQgXQoKc2tfdmFsaWRhdGVfeG1pdF9za2IoKSBhbmQgZHJpdmVycyBkZXBlbmQgb24g dGhlIHNrIG1lbWJlciBvZgpzdHJ1Y3Qgc2tfYnVmZiB0byBpZGVudGlmeSBzZWdtZW50cyByZXF1 aXJpbmcgZW5jcnlwdGlvbi4KQW55IG9wZXJhdGlvbiB3aGljaCByZW1vdmVzIG9yIGRvZXMgbm90 IHByZXNlcnZlIHRoZSBvcmlnaW5hbCBUTFMKc29ja2V0IHN1Y2ggYXMgc2tiX29ycGhhbigpIG9y IHNrYl9jbG9uZSgpIHdpbGwgY2F1c2UgY2xlYXIgdGV4dApsZWFrcy4KCk1ha2UgdGhlIFRDUCBz b2NrZXQgdW5kZXJseWluZyBhbiBvZmZsb2FkZWQgVExTIGNvbm5lY3Rpb24KbWFyayBhbGwgc2ti cyBhcyBkZWNyeXB0ZWQsIGlmIFRMUyBUWCBpcyBpbiBvZmZsb2FkIG1vZGUuClRoZW4gaW4gc2tf dmFsaWRhdGVfeG1pdF9za2IoKSBjYXRjaCBza2JzIHdoaWNoIGhhdmUgbm8gc29ja2V0CihvciBh IHNvY2tldCB3aXRoIG5vIHZhbGlkYXRpb24pIGFuZCBkZWNyeXB0ZWQgZmxhZyBzZXQuCgpOb3Rl IHRoYXQgQ09ORklHX1NPQ0tfVkFMSURBVEVfWE1JVCwgQ09ORklHX1RMU19ERVZJQ0UgYW5kCnNr LT5za192YWxpZGF0ZV94bWl0X3NrYiBhcmUgc2xpZ2h0bHkgaW50ZXJjaGFuZ2VhYmxlIHJpZ2h0 IG5vdywKdGhleSBhbGwgaW1wbHkgVExTIG9mZmxvYWQuIFRoZSBuZXcgY2hlY2tzIGFyZSBndWFy ZGVkIGJ5CkNPTkZJR19UTFNfREVWSUNFIGJlY2F1c2UgdGhhdCdzIHRoZSBvcHRpb24gZ3VhcmRp bmcgdGhlCnNrX2J1ZmYtPmRlY3J5cHRlZCBtZW1iZXIuCgpTZWNvbmQsIHNtYWxsZXIgaXNzdWUg d2l0aCBvcnBoYW5pbmcgaXMgdGhhdCBpdCBicmVha3MKdGhlIGd1YXJhbnRlZSB0aGF0IHBhY2tl dHMgd2lsbCBiZSBkZWxpdmVyZWQgdG8gZGV2aWNlCnF1ZXVlcyBpbi1vcmRlci4gQWxsIFRMUyBv ZmZsb2FkIGRyaXZlcnMgZGVwZW5kIG9uIHRoYXQKc2NoZWR1bGluZyBwcm9wZXJ0eS4gVGhpcyBt ZWFucyBza2Jfb3JwaGFuX3BhcnRpYWwoKSdzCnRyaWNrIG9mIHByZXNlcnZpbmcgcGFydGlhbCBz b2NrZXQgcmVmZXJlbmNlcyB3aWxsIGNhdXNlCmlzc3VlcyBpbiB0aGUgZHJpdmVycy4gV2UgbmVl ZCBhIGZ1bGwgb3JwaGFuLCBhbmQgYXMgYQpyZXN1bHQgbmV0ZW0gZGVsYXkvdGhyb3R0bGluZyB3 aWxsIGNhdXNlIGFsbCBUTFMgb2ZmbG9hZApza2JzIHRvIGJlIGRyb3BwZWQuCgpSZXVzaW5nIHRo ZSBza19idWZmLT5kZWNyeXB0ZWQgZmxhZyBhbHNvIHByb3RlY3RzIGZyb20KbGVha2luZyBjbGVh ciB0ZXh0IHdoZW4gaW5jb21pbmcsIGRlY3J5cHRlZCBza2IgaXMgcmVkaXJlY3RlZAooZS5nLiBi eSBUQykuCgpTZWUgY29tbWl0IDA2MDhjNjljOWE4MCAoImJwZjogc2tfbXNnLCBzb2Nre21hcHxo YXNofSByZWRpcmVjdAp0aHJvdWdoIFVMUCIpIGZvciBqdXN0aWZpY2F0aW9uIHdoeSB0aGUgaW50 ZXJuYWwgZmxhZyBpcyBzYWZlLgpUaGUgb25seSBsb2NhdGlvbiB3aGljaCBjb3VsZCBsZWFrIHRo ZSBmbGFnIGluIGlzIHRjcF9icGZfc2VuZG1zZygpLAp3aGljaCBpcyB0YWtlbiBjYXJlIG9mIGJ5 IGNsZWFyaW5nIHRoZSBwcmV2aW91c2x5IHVudXNlZCBiaXQuCgp2MjoKIC0gcmVtb3ZlIHN1cGVy Zmx1b3VzIGRlY3J5cHRlZCBtYXJrIGNvcHkgKFdpbGxlbSk7CiAtIHJlbW92ZSB0aGUgc3RhbGUg ZG9jIGVudHJ5IChCb3Jpcyk7CiAtIHJlbHkgZW50aXJlbHkgb24gRU9SIG1hcmtpbmcgdG8gcHJl dmVudCBjb2FsZXNjaW5nIChCb3Jpcyk7CiAtIHVzZSBhbiBpbnRlcm5hbCBzZW5kcGFnZXMgZmxh ZyBpbnN0ZWFkIG9mIG1hcmtpbmcgdGhlIHNvY2tldAogICAoQm9yaXMpLgp2MyAoV2lsbGVtKToK IC0gcmVvcmdhbml6ZSB0aGUgY2FuX3NrYl9vcnBoYW5fcGFydGlhbCgpIGNvbmRpdGlvbjsKIC0g Zml4IHRoZSBmbGFnIGxlYWstaW4gdGhyb3VnaCB0Y3BfYnBmX3NlbmRtc2cuCgpTaWduZWQtb2Zm LWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KQWNrZWQt Ynk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEJv cmlzIFBpc21lbm55IDxib3Jpc3BAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogRG9jdW1lbnRhdGlvbi9uZXR3b3Jr aW5nL3Rscy1vZmZsb2FkLnJzdCB8IDE4IC0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9saW51 eC9za2J1ZmYuaCAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysrKysrCiBpbmNsdWRlL2xpbnV4 L3NvY2tldC5oICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBpbmNsdWRlL25ldC9zb2NrLmgg ICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysrKysrLQogbmV0L2NvcmUvc29jay5jICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrLS0tLS0KIG5ldC9pcHY0 L3RjcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKysKIG5ldC9pcHY0L3RjcF9i cGYuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKy0KIG5ldC9pcHY0L3RjcF9vdXRw dXQuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKysKIG5ldC90bHMvdGxzX2RldmljZS5jICAg ICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrLS0KIDkgZmlsZXMgY2hhbmdlZCwgNTIgaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9u ZXR3b3JraW5nL3Rscy1vZmZsb2FkLnJzdCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy90bHMt b2ZmbG9hZC5yc3QKaW5kZXggY2I4NWFmNTU5ZGZmLi4xNzhmNDEwNGY1Y2YgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vbmV0d29ya2luZy90bHMtb2ZmbG9hZC5yc3QKKysrIGIvRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL3Rscy1vZmZsb2FkLnJzdApAQCAtNDQ1LDI0ICs0NDUsNiBAQCBUaGVz ZSBmbGFncyB3aWxsIGJlIGFjdGVkIHVwb24gYWNjb3JkaW5nbHkgYnkgdGhlIGNvcmUgYGBrdGxz YGAgY29kZS4KIFRMUyBkZXZpY2UgZmVhdHVyZSBmbGFncyBvbmx5IGNvbnRyb2wgYWRkaW5nIG9m IG5ldyBUTFMgY29ubmVjdGlvbgogb2ZmbG9hZHMsIG9sZCBjb25uZWN0aW9ucyB3aWxsIHJlbWFp biBhY3RpdmUgYWZ0ZXIgZmxhZ3MgYXJlIGNsZWFyZWQuCiAKLUtub3duIGJ1Z3MKLT09PT09PT09 PT0KLQotc2tiX29ycGhhbigpIGxlYWtzIGNsZWFyIHRleHQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0KLUN1cnJlbnRseSBkcml2ZXJzIGRlcGVuZCBvbiB0aGUgOmM6bWVtYmVyOmBz a2AgbWVtYmVyIG9mCi06Yzp0eXBlOmBzdHJ1Y3Qgc2tfYnVmZiA8c2tfYnVmZj5gIHRvIGlkZW50 aWZ5IHNlZ21lbnRzIHJlcXVpcmluZwotZW5jcnlwdGlvbi4gQW55IG9wZXJhdGlvbiB3aGljaCBy ZW1vdmVzIG9yIGRvZXMgbm90IHByZXNlcnZlIHRoZSBzb2NrZXQKLWFzc29jaWF0aW9uIHN1Y2gg YXMgOmM6ZnVuYzpgc2tiX29ycGhhbmAgb3IgOmM6ZnVuYzpgc2tiX2Nsb25lYAotd2lsbCBjYXVz ZSB0aGUgZHJpdmVyIHRvIG1pc3MgdGhlIHBhY2tldHMgYW5kIGxlYWQgdG8gY2xlYXIgdGV4dCBs ZWFrcy4KLQotUmVkaXJlY3RzIGxlYWsgY2xlYXIgdGV4dAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotCi1JbiB0aGUgUlggZGlyZWN0aW9uLCBpZiBzZWdtZW50IGhhcyBhbHJlYWR5IGJlZW4g ZGVjcnlwdGVkIGJ5IHRoZSBkZXZpY2UKLWFuZCBpdCBnZXRzIHJlZGlyZWN0ZWQgb3IgbWlycm9y ZWQgLSBjbGVhciB0ZXh0IHdpbGwgYmUgdHJhbnNtaXR0ZWQgb3V0LgotCiAuLiBfcHJlX3Rsc19k YXRhOgogCiBUcmFuc21pc3Npb24gb2YgcHJlLVRMUyBkYXRhCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3NrYnVmZi5oIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCAwNTZmNTU3ZDUx OTQuLjY0ZmE1OWIyYzhkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysg Yi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0xMzU4LDYgKzEzNTgsMTQgQEAgc3RhdGljIGlu bGluZSB2b2lkIHNrYl9jb3B5X2hhc2goc3RydWN0IHNrX2J1ZmYgKnRvLCBjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqZnJvbSkKIAl0by0+bDRfaGFzaCA9IGZyb20tPmw0X2hhc2g7CiB9OwogCitzdGF0 aWMgaW5saW5lIHZvaWQgc2tiX2NvcHlfZGVjcnlwdGVkKHN0cnVjdCBza19idWZmICp0bywKKwkJ CQkgICAgICBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqZnJvbSkKK3sKKyNpZmRlZiBDT05GSUdfVExT X0RFVklDRQorCXRvLT5kZWNyeXB0ZWQgPSBmcm9tLT5kZWNyeXB0ZWQ7CisjZW5kaWYKK30KKwog I2lmZGVmIE5FVF9TS0JVRkZfREFUQV9VU0VTX09GRlNFVAogc3RhdGljIGlubGluZSB1bnNpZ25l ZCBjaGFyICpza2JfZW5kX3BvaW50ZXIoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc29ja2V0LmggYi9pbmNsdWRlL2xpbnV4L3NvY2tldC5o CmluZGV4IGI1N2NkOGJmOTZlMi4uODEwZDVlYzBhZGEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L3NvY2tldC5oCisrKyBiL2luY2x1ZGUvbGludXgvc29ja2V0LmgKQEAgLTI5MSw2ICsyOTEs OSBAQCBzdHJ1Y3QgdWNyZWQgewogI2RlZmluZSBNU0dfQkFUQ0gJMHg0MDAwMCAvKiBzZW5kbW1z ZygpOiBtb3JlIG1lc3NhZ2VzIGNvbWluZyAqLwogI2RlZmluZSBNU0dfRU9GICAgICAgICAgTVNH X0ZJTgogI2RlZmluZSBNU0dfTk9fU0hBUkVEX0ZSQUdTIDB4ODAwMDAgLyogc2VuZHBhZ2UoKSBp bnRlcm5hbCA6IHBhZ2UgZnJhZ3MgYXJlIG5vdCBzaGFyZWQgKi8KKyNkZWZpbmUgTVNHX1NFTkRQ QUdFX0RFQ1JZUFRFRAkweDEwMDAwMCAvKiBzZW5kcGFnZSgpIGludGVybmFsIDogcGFnZSBtYXkg Y2FycnkKKwkJCQkJICAqIHBsYWluIHRleHQgYW5kIHJlcXVpcmUgZW5jcnlwdGlvbgorCQkJCQkg ICovCiAKICNkZWZpbmUgTVNHX1pFUk9DT1BZCTB4NDAwMDAwMAkvKiBVc2UgdXNlciBkYXRhIGlu IGtlcm5lbCBwYXRoICovCiAjZGVmaW5lIE1TR19GQVNUT1BFTgkweDIwMDAwMDAwCS8qIFNlbmQg ZGF0YSBpbiBUQ1AgU1lOICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNs dWRlL25ldC9zb2NrLmgKaW5kZXggNmNiYzE2MTM2MzU3Li41MjZkZTkxMWNkOTEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTI0ODIs NiArMjQ4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBza19mdWxsc29jayhjb25zdCBzdHJ1Y3Qg c29jayAqc2spCiAKIC8qIENoZWNrcyBpZiB0aGlzIFNLQiBiZWxvbmdzIHRvIGFuIEhXIG9mZmxv YWRlZCBzb2NrZXQKICAqIGFuZCB3aGV0aGVyIGFueSBTVyBmYWxsYmFja3MgYXJlIHJlcXVpcmVk IGJhc2VkIG9uIGRldi4KKyAqIENoZWNrIGRlY3J5cHRlZCBtYXJrIGluIGNhc2Ugc2tiX29ycGhh bigpIGNsZWFyZWQgc29ja2V0LgogICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBza19idWZmICpz a192YWxpZGF0ZV94bWl0X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkJICAgc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKQEAgLTI0ODksOCArMjQ5MCwxNSBAQCBzdGF0aWMgaW5saW5lIHN0 cnVjdCBza19idWZmICpza192YWxpZGF0ZV94bWl0X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog I2lmZGVmIENPTkZJR19TT0NLX1ZBTElEQVRFX1hNSVQKIAlzdHJ1Y3Qgc29jayAqc2sgPSBza2It PnNrOwogCi0JaWYgKHNrICYmIHNrX2Z1bGxzb2NrKHNrKSAmJiBzay0+c2tfdmFsaWRhdGVfeG1p dF9za2IpCisJaWYgKHNrICYmIHNrX2Z1bGxzb2NrKHNrKSAmJiBzay0+c2tfdmFsaWRhdGVfeG1p dF9za2IpIHsKIAkJc2tiID0gc2stPnNrX3ZhbGlkYXRlX3htaXRfc2tiKHNrLCBkZXYsIHNrYik7 CisjaWZkZWYgQ09ORklHX1RMU19ERVZJQ0UKKwl9IGVsc2UgaWYgKHVubGlrZWx5KHNrYi0+ZGVj cnlwdGVkKSkgeworCQlwcl93YXJuX3JhdGVsaW1pdGVkKCJ1bmVuY3J5cHRlZCBza2Igd2l0aCBu byBhc3NvY2lhdGVkIHNvY2tldCAtIGRyb3BwaW5nXG4iKTsKKwkJa2ZyZWVfc2tiKHNrYik7CisJ CXNrYiA9IE5VTEw7CisjZW5kaWYKKwl9CiAjZW5kaWYKIAogCXJldHVybiBza2I7CmRpZmYgLS1n aXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggYWE0YTAwZDM4MWUz Li5kZjdiMzhiNjAxNjQgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29y ZS9zb2NrLmMKQEAgLTE5ODgsNiArMTk4OCwxOSBAQCB2b2lkIHNrYl9zZXRfb3duZXJfdyhzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc29jayAqc2spCiB9CiBFWFBPUlRfU1lNQk9MKHNrYl9z ZXRfb3duZXJfdyk7CiAKK3N0YXRpYyBib29sIGNhbl9za2Jfb3JwaGFuX3BhcnRpYWwoY29uc3Qg c3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKyNpZmRlZiBDT05GSUdfVExTX0RFVklDRQorCS8qIERy aXZlcnMgZGVwZW5kIG9uIGluLW9yZGVyIGRlbGl2ZXJ5IGZvciBjcnlwdG8gb2ZmbG9hZCwKKwkg KiBwYXJ0aWFsIG9ycGhhbiBicmVha3Mgb3V0LW9mLW9yZGVyLU9LIGxvZ2ljLgorCSAqLworCWlm IChza2ItPmRlY3J5cHRlZCkKKwkJcmV0dXJuIGZhbHNlOworI2VuZGlmCisJcmV0dXJuIChza2It PmRlc3RydWN0b3IgPT0gc29ja193ZnJlZSB8fAorCQkoSVNfRU5BQkxFRChDT05GSUdfSU5FVCkg JiYgc2tiLT5kZXN0cnVjdG9yID09IHRjcF93ZnJlZSkpOworfQorCiAvKiBUaGlzIGhlbHBlciBp cyB1c2VkIGJ5IG5ldGVtLCBhcyBpdCBjYW4gaG9sZCBwYWNrZXRzIGluIGl0cwogICogZGVsYXkg cXVldWUuIFdlIHdhbnQgdG8gYWxsb3cgdGhlIG93bmVyIHNvY2tldCB0byBzZW5kIG1vcmUKICAq IHBhY2tldHMsIGFzIGlmIHRoZXkgd2VyZSBhbHJlYWR5IFRYIGNvbXBsZXRlZCBieSBhIHR5cGlj YWwgZHJpdmVyLgpAQCAtMTk5OSwxMSArMjAxMiw3IEBAIHZvaWQgc2tiX29ycGhhbl9wYXJ0aWFs KHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKHNrYl9pc190Y3BfcHVyZV9hY2soc2tiKSkKIAkJ cmV0dXJuOwogCi0JaWYgKHNrYi0+ZGVzdHJ1Y3RvciA9PSBzb2NrX3dmcmVlCi0jaWZkZWYgQ09O RklHX0lORVQKLQkgICAgfHwgc2tiLT5kZXN0cnVjdG9yID09IHRjcF93ZnJlZQotI2VuZGlmCi0J CSkgeworCWlmIChjYW5fc2tiX29ycGhhbl9wYXJ0aWFsKHNrYikpIHsKIAkJc3RydWN0IHNvY2sg KnNrID0gc2tiLT5zazsKIAogCQlpZiAocmVmY291bnRfaW5jX25vdF96ZXJvKCZzay0+c2tfcmVm Y250KSkgewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRl eCA1MjY0ZjA2NGE4N2UuLmIzMGY3Zjg3NzE4MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMK KysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTk4NCw2ICs5ODQsOSBAQCBzc2l6ZV90IGRvX3RjcF9z ZW5kcGFnZXMoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IG9mZnNldCwK IAkJCWlmICghc2tiKQogCQkJCWdvdG8gd2FpdF9mb3JfbWVtb3J5OwogCisjaWZkZWYgQ09ORklH X1RMU19ERVZJQ0UKKwkJCXNrYi0+ZGVjcnlwdGVkID0gISEoZmxhZ3MgJiBNU0dfU0VORFBBR0Vf REVDUllQVEVEKTsKKyNlbmRpZgogCQkJc2tiX2VudGFpbChzaywgc2tiKTsKIAkJCWNvcHkgPSBz aXplX2dvYWw7CiAJCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9icGYuYyBiL25ldC9pcHY0 L3RjcF9icGYuYwppbmRleCAzZDFlMTU0MDEzODQuLjhhNTZlMDljZmIwZSAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvdGNwX2JwZi5jCisrKyBiL25ldC9pcHY0L3RjcF9icGYuYwpAQCAtMzk4LDEwICsz OTgsMTQgQEAgc3RhdGljIGludCB0Y3BfYnBmX3NlbmRfdmVyZGljdChzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19wc29jayAqcHNvY2ssCiBzdGF0aWMgaW50IHRjcF9icGZfc2VuZG1zZyhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0 IHNrX21zZyB0bXAsICptc2dfdHggPSBOVUxMOwotCWludCBmbGFncyA9IG1zZy0+bXNnX2ZsYWdz IHwgTVNHX05PX1NIQVJFRF9GUkFHUzsKIAlpbnQgY29waWVkID0gMCwgZXJyID0gMDsKIAlzdHJ1 Y3Qgc2tfcHNvY2sgKnBzb2NrOwogCWxvbmcgdGltZW87CisJaW50IGZsYWdzOworCisJLyogRG9u J3QgbGV0IGludGVybmFsIGRvX3RjcF9zZW5kcGFnZXMoKSBmbGFncyB0aHJvdWdoICovCisJZmxh Z3MgPSAobXNnLT5tc2dfZmxhZ3MgJiB+TVNHX1NFTkRQQUdFX0RFQ1JZUFRFRCk7CisJZmxhZ3Mg fD0gTVNHX05PX1NIQVJFRF9GUkFHUzsKIAogCXBzb2NrID0gc2tfcHNvY2tfZ2V0KHNrKTsKIAlp ZiAodW5saWtlbHkoIXBzb2NrKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBi L25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCA3ZDBiZTA0NmNiYzEuLjM1OWQyOTgzNDhjNyAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9vdXRw dXQuYwpAQCAtMTMxOCw2ICsxMzE4LDcgQEAgaW50IHRjcF9mcmFnbWVudChzdHJ1Y3Qgc29jayAq c2ssIGVudW0gdGNwX3F1ZXVlIHRjcF9xdWV1ZSwKIAlidWZmID0gc2tfc3RyZWFtX2FsbG9jX3Nr YihzaywgbnNpemUsIGdmcCwgdHJ1ZSk7CiAJaWYgKCFidWZmKQogCQlyZXR1cm4gLUVOT01FTTsg LyogV2UnbGwganVzdCB0cnkgYWdhaW4gbGF0ZXIuICovCisJc2tiX2NvcHlfZGVjcnlwdGVkKGJ1 ZmYsIHNrYik7CiAKIAlzay0+c2tfd21lbV9xdWV1ZWQgKz0gYnVmZi0+dHJ1ZXNpemU7CiAJc2tf bWVtX2NoYXJnZShzaywgYnVmZi0+dHJ1ZXNpemUpOwpAQCAtMTg3Miw2ICsxODczLDcgQEAgc3Rh dGljIGludCB0c29fZnJhZ21lbnQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCB1bnNpZ25lZCBpbnQgbGVuLAogCWJ1ZmYgPSBza19zdHJlYW1fYWxsb2Nfc2tiKHNrLCAwLCBn ZnAsIHRydWUpOwogCWlmICh1bmxpa2VseSghYnVmZikpCiAJCXJldHVybiAtRU5PTUVNOworCXNr Yl9jb3B5X2RlY3J5cHRlZChidWZmLCBza2IpOwogCiAJc2stPnNrX3dtZW1fcXVldWVkICs9IGJ1 ZmYtPnRydWVzaXplOwogCXNrX21lbV9jaGFyZ2Uoc2ssIGJ1ZmYtPnRydWVzaXplKTsKQEAgLTIx NDEsNiArMjE0Myw3IEBAIHN0YXRpYyBpbnQgdGNwX210dV9wcm9iZShzdHJ1Y3Qgc29jayAqc2sp CiAJc2tfbWVtX2NoYXJnZShzaywgbnNrYi0+dHJ1ZXNpemUpOwogCiAJc2tiID0gdGNwX3NlbmRf aGVhZChzayk7CisJc2tiX2NvcHlfZGVjcnlwdGVkKG5za2IsIHNrYik7CiAKIAlUQ1BfU0tCX0NC KG5za2IpLT5zZXEgPSBUQ1BfU0tCX0NCKHNrYiktPnNlcTsKIAlUQ1BfU0tCX0NCKG5za2IpLT5l bmRfc2VxID0gVENQX1NLQl9DQihza2IpLT5zZXEgKyBwcm9iZV9zaXplOwpkaWZmIC0tZ2l0IGEv bmV0L3Rscy90bHNfZGV2aWNlLmMgYi9uZXQvdGxzL3Rsc19kZXZpY2UuYwppbmRleCBlYjhmMjRm NDIwZjAuLjRjZmNjZTIxMWMyZiAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfZGV2aWNlLmMKKysr IGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKQEAgLTM0Miw5ICszNDIsOSBAQCBzdGF0aWMgaW50IHRs c19wdXNoX2RhdGEoc3RydWN0IHNvY2sgKnNrLAogCXN0cnVjdCB0bHNfY29udGV4dCAqdGxzX2N0 eCA9IHRsc19nZXRfY3R4KHNrKTsKIAlzdHJ1Y3QgdGxzX3Byb3RfaW5mbyAqcHJvdCA9ICZ0bHNf Y3R4LT5wcm90X2luZm87CiAJc3RydWN0IHRsc19vZmZsb2FkX2NvbnRleHRfdHggKmN0eCA9IHRs c19vZmZsb2FkX2N0eF90eCh0bHNfY3R4KTsKLQlpbnQgdGxzX3B1c2hfcmVjb3JkX2ZsYWdzID0g ZmxhZ3MgfCBNU0dfU0VORFBBR0VfTk9UTEFTVDsKIAlpbnQgbW9yZSA9IGZsYWdzICYgKE1TR19T RU5EUEFHRV9OT1RMQVNUIHwgTVNHX01PUkUpOwogCXN0cnVjdCB0bHNfcmVjb3JkX2luZm8gKnJl Y29yZCA9IGN0eC0+b3Blbl9yZWNvcmQ7CisJaW50IHRsc19wdXNoX3JlY29yZF9mbGFnczsKIAlz dHJ1Y3QgcGFnZV9mcmFnICpwZnJhZzsKIAlzaXplX3Qgb3JpZ19zaXplID0gc2l6ZTsKIAl1MzIg bWF4X29wZW5fcmVjb3JkX2xlbjsKQEAgLTM1OSw2ICszNTksOSBAQCBzdGF0aWMgaW50IHRsc19w dXNoX2RhdGEoc3RydWN0IHNvY2sgKnNrLAogCWlmIChzay0+c2tfZXJyKQogCQlyZXR1cm4gLXNr LT5za19lcnI7CiAKKwlmbGFncyB8PSBNU0dfU0VORFBBR0VfREVDUllQVEVEOworCXRsc19wdXNo X3JlY29yZF9mbGFncyA9IGZsYWdzIHwgTVNHX1NFTkRQQUdFX05PVExBU1Q7CisKIAl0aW1lbyA9 IHNvY2tfc25kdGltZW8oc2ssIGZsYWdzICYgTVNHX0RPTlRXQUlUKTsKIAlpZiAodGxzX2lzX3Bh cnRpYWxseV9zZW50X3JlY29yZCh0bHNfY3R4KSkgewogCQlyYyA9IHRsc19wdXNoX3BhcnRpYWxf cmVjb3JkKHNrLCB0bHNfY3R4LCBmbGFncyk7CkBAIC01NDUsNyArNTQ4LDkgQEAgdm9pZCB0bHNf ZGV2aWNlX3dyaXRlX3NwYWNlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpj dHgpCiAJCWdmcF90IHNrX2FsbG9jYXRpb24gPSBzay0+c2tfYWxsb2NhdGlvbjsKIAogCQlzay0+ c2tfYWxsb2NhdGlvbiA9IEdGUF9BVE9NSUM7Ci0JCXRsc19wdXNoX3BhcnRpYWxfcmVjb3JkKHNr LCBjdHgsIE1TR19ET05UV0FJVCB8IE1TR19OT1NJR05BTCk7CisJCXRsc19wdXNoX3BhcnRpYWxf cmVjb3JkKHNrLCBjdHgsCisJCQkJCU1TR19ET05UV0FJVCB8IE1TR19OT1NJR05BTCB8CisJCQkJ CU1TR19TRU5EUEFHRV9ERUNSWVBURUQpOwogCQlzay0+c2tfYWxsb2NhdGlvbiA9IHNrX2FsbG9j YXRpb247CiAJfQogfQotLSAKMi4yMC4xCgoKRnJvbSA2NzIzMTdjNWFkM2Q5MDNjZmJmZWYwZTAw YWU1MmI3Mzk3NzA2NjZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2Fs bHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBNb24sIDEyIEF1ZyAyMDE5IDIxOjIw OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy8yOF0gbmV0OiBwaHk6IGNvbnNpZGVyIEFOX1JF U1RBUlQgc3RhdHVzIHdoZW4gcmVhZGluZyBsaW5rCiBzdGF0dXMKClsgVXBzdHJlYW0gY29tbWl0 IGMzNjc1N2ViOWRlZTEzNjgxMjI3YWQzNjc2ZDM3ZjE0YjNhMmIyYWYgXQoKQWZ0ZXIgY29uZmln dXJpbmcgYW5kIHJlc3RhcnRpbmcgYW5lZyB3ZSBpbW1lZGlhdGVseSB0cnkgdG8gcmVhZCB0aGUK bGluayBzdGF0dXMuIE9uIHNvbWUgc3lzdGVtcyB0aGUgUEhZIG1heSBub3QgeWV0IGhhdmUgY2xl YXJlZCB0aGUKImFuZWcgY29tcGxldGUiIGFuZCAibGluayB1cCIgYml0cywgcmVzdWx0aW5nIGlu IGEgZmFsc2UgbGluay11cApzaWduYWwuIFNlZSBbMF0gZm9yIGEgcmVwb3J0LgpDbGF1c2UgMjIg YW5kIDQ1IGJvdGggcmVxdWlyZSB0aGUgUEhZIHRvIGtlZXAgdGhlIEFOX1JFU1RBUlQKYml0IHNl dCB1bnRpbCB0aGUgUEhZIGFjdHVhbGx5IHN0YXJ0cyBhdXRvLW5lZ290aWF0aW9uLgpMZXQncyBj b25zaWRlciB0aGlzIGluIHRoZSBnZW5lcmljIGZ1bmN0aW9ucyBmb3IgcmVhZGluZyBsaW5rIHN0 YXR1cy4KVGhlIGNvbW1pdCBtYXJrZWQgYXMgZml4ZWQgaXMgdGhlIGZpcnN0IG9uZSB3aGVyZSB0 aGUgcGF0Y2ggYXBwbGllcwpjbGVhbmx5LgoKWzBdIGh0dHBzOi8vbWFyYy5pbmZvLz90PTE1NjUx ODQwMDMwMDAwMyZyPTEmdz0yCgpGaXhlczogYzExNjRiYjFhNjMxICgibmV0OiBwaHk6IGNoZWNr IFBNQVBNRCBsaW5rIHN0YXR1cyBvbmx5IGluIGdlbnBoeV9jNDVfcmVhZF9saW5rIikKVGVzdGVk LWJ5OiBZb25nbG9uZyBMaXUgPGxpdXlvbmdsb25nQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6 IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxq YWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHktYzQ1 LmMgICAgfCAxNCArKysrKysrKysrKysrKwogZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyB8 IDEyICsrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeS1jNDUuYyBiL2RyaXZl cnMvbmV0L3BoeS9waHktYzQ1LmMKaW5kZXggYjlkNDE0NTc4MWNhLi41OGJiMjVlNGFmMTAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHktYzQ1LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L3BoeS1jNDUuYwpAQCAtMjE5LDYgKzIxOSwyMCBAQCBpbnQgZ2VucGh5X2M0NV9yZWFkX2xpbmso c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpbnQgdmFsLCBkZXZhZDsKIAlib29sIGxpbmsg PSB0cnVlOwogCisJaWYgKHBoeWRldi0+YzQ1X2lkcy5kZXZpY2VzX2luX3BhY2thZ2UgJiBNRElP X0RFVlNfQU4pIHsKKwkJdmFsID0gcGh5X3JlYWRfbW1kKHBoeWRldiwgTURJT19NTURfQU4sIE1E SU9fQ1RSTDEpOworCQlpZiAodmFsIDwgMCkKKwkJCXJldHVybiB2YWw7CisKKwkJLyogQXV0b25l ZyBpcyBiZWluZyBzdGFydGVkLCB0aGVyZWZvcmUgZGlzcmVnYXJkIGN1cnJlbnQKKwkJICogbGlu ayBzdGF0dXMgYW5kIHJlcG9ydCBsaW5rIGFzIGRvd24uCisJCSAqLworCQlpZiAodmFsICYgTURJ T19BTl9DVFJMMV9SRVNUQVJUKSB7CisJCQlwaHlkZXYtPmxpbmsgPSAwOworCQkJcmV0dXJuIDA7 CisJCX0KKwl9CisKIAl3aGlsZSAobW1kX21hc2sgJiYgbGluaykgewogCQlkZXZhZCA9IF9fZmZz KG1tZF9tYXNrKTsKIAkJbW1kX21hc2sgJj0gfkJJVChkZXZhZCk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwpp bmRleCBmZmE0MDI3MzJhZWEuLjNhZjBhZjQ5NWNmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC0x NzA4LDcgKzE3MDgsMTcgQEAgRVhQT1JUX1NZTUJPTChnZW5waHlfYW5lZ19kb25lKTsKICAqLwog aW50IGdlbnBoeV91cGRhdGVfbGluayhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogewotCWlu dCBzdGF0dXM7CisJaW50IHN0YXR1cyA9IDAsIGJtY3I7CisKKwlibWNyID0gcGh5X3JlYWQocGh5 ZGV2LCBNSUlfQk1DUik7CisJaWYgKGJtY3IgPCAwKQorCQlyZXR1cm4gYm1jcjsKKworCS8qIEF1 dG9uZWcgaXMgYmVpbmcgc3RhcnRlZCwgdGhlcmVmb3JlIGRpc3JlZ2FyZCBCTVNSIHZhbHVlIGFu ZAorCSAqIHJlcG9ydCBsaW5rIGFzIGRvd24uCisJICovCisJaWYgKGJtY3IgJiBCTUNSX0FOUkVT VEFSVCkKKwkJZ290byBkb25lOwogCiAJLyogVGhlIGxpbmsgc3RhdGUgaXMgbGF0Y2hlZCBsb3cg c28gdGhhdCBtb21lbnRhcnkgbGluawogCSAqIGRyb3BzIGNhbiBiZSBkZXRlY3RlZC4gRG8gbm90 IGRvdWJsZS1yZWFkIHRoZSBzdGF0dXMKLS0gCjIuMjAuMQoKCkZyb20gNzEwMzA5Y2Q2NjIwOTYz Y2VlMjIyMWExOTc5ZDhhNDNlZDFiZWJiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBNb24sIDEyIEF1ZyAyMDE5IDEz OjA3OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyOC8yOF0gbmV0bGluazogRml4IG5sbXNnX3Bh cnNlIGFzIGEgd3JhcHBlciBmb3Igc3RyaWN0CiBtZXNzYWdlIHBhcnNpbmcKClsgVXBzdHJlYW0g Y29tbWl0IGQwMGVlNjRlMWRjZjA5YjNhZmVmZDEzNDBmM2U5ZWI2MzcyNzI3MTQgXQoKRXJpYyBy ZXBvcnRlZCBhIHN5emJvdCB3YXJuaW5nOgoKQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIG5o X3ZhbGlkX2dldF9kZWxfcmVxKzB4NmYxLzB4OGMwIG5ldC9pcHY0L25leHRob3AuYzoxNTEwCkNQ VTogMCBQSUQ6IDExODEyIENvbW06IHN5ei1leGVjdXRvcjQ0NCBOb3QgdGFpbnRlZCA1LjMuMC1y YzMrICMxNwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2ds ZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19k dW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxOTEv MHgxZjAgbGliL2R1bXBfc3RhY2suYzoxMTMKIGttc2FuX3JlcG9ydCsweDE2Mi8weDJkMCBtbS9r bXNhbi9rbXNhbl9yZXBvcnQuYzoxMDkKIF9fbXNhbl93YXJuaW5nKzB4NzUvMHhlMCBtbS9rbXNh bi9rbXNhbl9pbnN0ci5jOjI5NAogbmhfdmFsaWRfZ2V0X2RlbF9yZXErMHg2ZjEvMHg4YzAgbmV0 L2lwdjQvbmV4dGhvcC5jOjE1MTAKIHJ0bV9kZWxfbmV4dGhvcCsweDFiMS8weDYxMCBuZXQvaXB2 NC9uZXh0aG9wLmM6MTU0MwogcnRuZXRsaW5rX3Jjdl9tc2crMHgxMTVhLzB4MTU4MCBuZXQvY29y ZS9ydG5ldGxpbmsuYzo1MjIzCiBuZXRsaW5rX3Jjdl9za2IrMHg0MzEvMHg2MjAgbmV0L25ldGxp bmsvYWZfbmV0bGluay5jOjI0NzcKIHJ0bmV0bGlua19yY3YrMHg1MC8weDYwIG5ldC9jb3JlL3J0 bmV0bGluay5jOjUyNDEKIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsvYWZfbmV0 bGluay5jOjEzMDIgW2lubGluZV0KIG5ldGxpbmtfdW5pY2FzdCsweGY2Yy8weDEwNTAgbmV0L25l dGxpbmsvYWZfbmV0bGluay5jOjEzMjgKIG5ldGxpbmtfc2VuZG1zZysweDExMGYvMHgxMzMwIG5l dC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxOTE3CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tl dC5jOjYzNyBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NTcgW2lubGluZV0K IF9fX3N5c19zZW5kbXNnKzB4MTRmZi8weDE1OTAgbmV0L3NvY2tldC5jOjIzMTEKIF9fc3lzX3Nl bmRtbXNnKzB4NTNhLzB4YWUwIG5ldC9zb2NrZXQuYzoyNDEzCiBfX2RvX3N5c19zZW5kbW1zZyBu ZXQvc29ja2V0LmM6MjQ0MiBbaW5saW5lXQogX19zZV9zeXNfc2VuZG1tc2crMHhiZC8weGUwIG5l dC9zb2NrZXQuYzoyNDM5CiBfX3g2NF9zeXNfc2VuZG1tc2crMHg1Ni8weDcwIG5ldC9zb2NrZXQu YzoyNDM5CiBkb19zeXNjYWxsXzY0KzB4YmMvMHhmMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoy OTcKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDYzLzB4ZTcKClRoZSByb290IGNh dXNlIGlzIG5sbXNnX3BhcnNlIGNhbGxpbmcgX19ubGFfcGFyc2Ugd2hpY2ggbWVhbnMgdGhlCmhl YWRlciBzdHJ1Y3Qgc2l6ZSBpcyBub3QgY2hlY2tlZC4KCm5sbXNnX3BhcnNlIHNob3VsZCBiZSBh IHdyYXBwZXIgYXJvdW5kIF9fbmxtc2dfcGFyc2Ugd2l0aApOTF9WQUxJREFURV9TVFJJQ1QgZm9y IHRoZSB2YWxpZGF0ZSBhcmd1bWVudCB2ZXJ5IG11Y2ggbGlrZQpubG1zZ19wYXJzZV9kZXByZWNh dGVkIGlzIGZvciBOTF9WQUxJREFURV9MSUJFUkFMLgoKRml4ZXM6IDNkZTY0NDAzNTQ0NjUgKCJu ZXRsaW5rOiByZS1hZGQgcGFyc2UvdmFsaWRhdGUgZnVuY3Rpb25zIGluIHN0cmljdCBtb2RlIikK UmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQt Ynk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3Vi LmtpY2luc2tpQG5ldHJvbm9tZS5jb20+Ci0tLQogaW5jbHVkZS9uZXQvbmV0bGluay5oIHwgNSAr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC9uZXRsaW5rLmggYi9pbmNsdWRlL25ldC9uZXRsaW5rLmgK aW5kZXggMzk1YjQ0MDZmNGIwLi4yMjJhZjIwNDYwODYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L25ldGxpbmsuaAorKysgYi9pbmNsdWRlL25ldC9uZXRsaW5rLmgKQEAgLTY4MCw5ICs2ODAsOCBA QCBzdGF0aWMgaW5saW5lIGludCBubG1zZ19wYXJzZShjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5s aCwgaW50IGhkcmxlbiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5ICpwb2xpY3ks CiAJCQkgICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7Ci0JcmV0dXJuIF9f bmxhX3BhcnNlKHRiLCBtYXh0eXBlLCBubG1zZ19hdHRyZGF0YShubGgsIGhkcmxlbiksCi0JCQkg ICBubG1zZ19hdHRybGVuKG5saCwgaGRybGVuKSwgcG9saWN5LAotCQkJICAgTkxfVkFMSURBVEVf U1RSSUNULCBleHRhY2spOworCXJldHVybiBfX25sbXNnX3BhcnNlKG5saCwgaGRybGVuLCB0Yiwg bWF4dHlwZSwgcG9saWN5LAorCQkJICAgICBOTF9WQUxJREFURV9TVFJJQ1QsIGV4dGFjayk7CiB9 CiAKIC8qKgotLSAKMi4yMC4xCgo= ----Next_Part(Tue_Aug_20_16_01_55_2019_050)----