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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE3C6C3600C for ; Thu, 3 Apr 2025 23:07:48 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u0TeN-0005Pm-8S; Thu, 03 Apr 2025 19:07:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0TeI-0005OI-Ps for grub-devel@gnu.org; Thu, 03 Apr 2025 19:07:02 -0400 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u0TeC-0003Ca-S2 for grub-devel@gnu.org; Thu, 03 Apr 2025 19:07:02 -0400 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-548409cd2a8so1608548e87.3 for ; Thu, 03 Apr 2025 16:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743721614; x=1744326414; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=f0Ck4m4tapVvEGoaRJUxR+XLVgi7jcAbrEgQh5H0MHQ=; b=lT6iG+4U6UUqA1XjtZqifCTkZgGgBO2kqvIF6vZlrvquBPMn/NLLBwnUuWwwx4eeTi xgtNffjqI6me8W8Ek2CefywJhHGvVJVnk1B3l9b6JgMlXJwtWmhWcZw0Gw32JeUpMZU/ PYzvOFX9OZWwDrd8ncUeMNs4vV/21YPpCGqa1u4XWZWfMUlFEZqcJVzZnUmeCxP4DuWM z6evCJN+6YcE2qlxMA7bBQMPYZ9AHdFUx2afTY5QuAZ/oseYFIV//VzqVhi3J/j5pd9K x/bG5eJTWNSAehIVWf0V/W0iyinWAuor6AM9sM5oD018YDBVG8PvcYBXtxrgHuQNPXAV ooFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743721614; x=1744326414; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f0Ck4m4tapVvEGoaRJUxR+XLVgi7jcAbrEgQh5H0MHQ=; b=CJZ9FAW/EEENvfcMGzvEl4U6P0HD71LBnLMl0MiuWdITx/2Xo2T+XtmSfkdIBPk677 EIytE8LvlRwGmQtC2lmANVNCY05+P1wpvV6xhdz9Ru6HbgOkKo2ohri0wMpk4Lo7NV1T cDYgsVhc1zfOoBnB4kS05BVJ5m90EkE9WjD2rWSlQZqQVA1MZleVVYYK+NFem+RKa9g2 RISB5A4MBTu2o7y7vcMXaBpDarz3C9yEAIJFJgVdvy6ppJq+I9JfmNbKWvsjRi0uswVv lBtxvzAXtrcZCGKYpd6KUKBkFIawm5unxc+95QF32VTuMPCiI6I09Y7ZYPADjTRzSSUR kquQ== X-Gm-Message-State: AOJu0YxxqF3U6OeVWbhJ/Hbb3pIj4n2A/oX4kgGkKu9wdeG4x6+nJnBf CXGesCSoY89CMsI7A25TV0UvpO3daH0nYWMlMnZPrAZAnD0mDBhAuttb6XOv X-Gm-Gg: ASbGncvUW4KhpH1jo5WWlc3WdObHblC92Z4iDlfhdipoR2qCrsJFhnMpYeU4Isik6b5 5yCa1dOSjhMF6vAz82bS+yx7ZuMSQHQ+IOrayQvPkfLeeKvTJh9v3BvLVUqwVRtIybNsy/LmW3x 7LeOyxeNWZ4jXLsmuqgbmgoPoRDS5C4w6Cy1ufmnsv/VPb3WUm2dmDOlPTcVO2R5pZZNmnbeOW0 ToRwS75RyPTHlvtQbWhe9+9sNVEg2UCZ9PrsO9GeUwsLnxBQVUX8BqyznkZciriT5cs9HSA+Sf7 86n8gAA4dbk8MhwpxvhW0HlVnGdxsU5qWJBxT2D1T9iRJw== X-Google-Smtp-Source: AGHT+IF7rvy59XM7ZmY7lnRtG3ststUwR47XdqceyMzw10r4unHOYpYcR4nEa649jjvKEkDp7Y6/jA== X-Received: by 2002:a05:6512:e92:b0:549:8d07:ff13 with SMTP id 2adb3069b0e04-54c227ff7f6mr302296e87.51.1743721613454; Thu, 03 Apr 2025 16:06:53 -0700 (PDT) Received: from localhost ([5.166.23.113]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54c1e5ab7a8sm281476e87.22.2025.04.03.16.06.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 16:06:51 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v8 4/9] Adjust import script, definitions and API users for libgcrypt 1.11 Date: Fri, 4 Apr 2025 02:05:06 +0300 Message-ID: <20250403230630.3572282-5-phcoder@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250403230630.3572282-1-phcoder@gmail.com> References: <20250403230630.3572282-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::130; envelope-from=phcoder@gmail.com; helo=mail-lf1-x130.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VGhpcyBwYXRjaGVzIG1vZGlmaWVzIHRoZSBHUlVCLWxpYmdjcnlwdCBBUEkgdG8gbWF0Y2ggbmV3 IGxpYmdjcnlwdCAxLjExCgpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBTZXJiaW5lbmtvIDxwaGNv ZGVyQGdtYWlsLmNvbT4KLS0tCiBhdXRvZ2VuLnNoICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDUgKwogY29uZi9NYWtlZmlsZS5jb21tb24gICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICAgICAgICAgICAg ICAgICAgfCAgMjAgKy0KIGdydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jICAgICAgICAgICAg ICAgIHwgICA2ICstCiBncnViLWNvcmUvY29tbWFuZHMvcGdwLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxMTQgKysrLS0tLS0KIGdydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jICAgICAgICAg ICAgICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2Rpc2svY3J5cHRvZGlzay5jICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBncnViLWNvcmUvaW8vZ3ppby5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9sem9waW8uYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIxICstCiBncnViLWNvcmUvbGliL2NyYzY0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjQgKy0KIGdydWItY29yZS9saWIvY3J5cHRvLmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDI0NSArKysrKysrKysrKysrKystCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzAxX21kLnBhdGNoICAgfCAxMjQgKysrKysrKysrCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1w YXRjaGVzLzA0X2FyaWEucGF0Y2ggfCAgMjIgKysKIC4uLi8wNV9kaXNhYmxlX3JzYV9zaGFrZS5w YXRjaCAgICAgICAgICAgICAgICB8ICAzNiArKysKIGdydWItY29yZS9saWIvbGliZ2NyeXB0L3Ny Yy9nY3J5cHQtaW50LmggICAgICB8ICA1MSAtLS0tCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdF93 cmFwL2NpcGhlcl93cmFwLmggICAgfCAgMjEgKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0X3dy YXAvbWVtLmMgICAgICAgICAgICB8ICA4MyArKysrKy0KIGdydWItY29yZS9saWIvcG9zaXhfd3Jh cC9zeXMvdHlwZXMuaCAgICAgICAgICB8ICAgNCArCiBncnViLWNvcmUvbGliL3h6ZW1iZWQveHpf ZGVjX3N0cmVhbS5jICAgICAgICAgfCAgMTggKy0KIGluY2x1ZGUvZ3J1Yi9jcnlwdG8uaCAgICAg ICAgICAgICAgICAgICAgICAgICB8IDI2MiArKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvZ3J1 Yi9nY3J5cHQvZ3BnLWVycm9yLmggICAgICAgICAgICAgICB8ICAgOSArCiB1dGlsL2dydWItZnN0 ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHV0aWwvaW1wb3J0X2dj cnkucHkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4NiArKysrKysrKystLS0tCiB1dGls L2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgICAgICAgICAgICAgICAgICAgfCAgMTcgKysKIHV0aWwv aW1wb3J0X2djcnlwdGguc2VkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAtCiAyNyBmaWxl cyBjaGFuZ2VkLCAxMDA0IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wNF9hcmlh LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hl cy8wNV9kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHV0aWwvaW1w b3J0X2djcnlwdF9pbnRoLnNlZAoKZGlmZiAtLWdpdCBhL2F1dG9nZW4uc2ggYi9hdXRvZ2VuLnNo CmluZGV4IGViZDYxNDc5Mi4uZmJkYjMzODc5IDEwMDc1NQotLS0gYS9hdXRvZ2VuLnNoCisrKyBi L2F1dG9nZW4uc2gKQEAgLTM1LDYgKzM1LDcgQEAgJHtQWVRIT059IHV0aWwvaW1wb3J0X3VuaWNv ZGUucHkgdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgdW5pY29kZS9CaWRpTWlycm9yaW5nLnQKIGVj aG8gIkltcG9ydGluZyBsaWJnY3J5cHQuLi4iCiAke1BZVEhPTn0gdXRpbC9pbXBvcnRfZ2NyeS5w eSBncnViLWNvcmUvbGliL2xpYmdjcnlwdC8gZ3J1Yi1jb3JlCiBzZWQgLW4gLWYgdXRpbC9pbXBv cnRfZ2NyeXB0aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LmguaW4g PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCitzZWQgLW4gLWYgdXRpbC9pbXBvcnRfZ2Ny eXB0X2ludGguc2VkIDwgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCA+ PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCiBpZiBbIC1mIGluY2x1ZGUvZ3J1Yi9nY3J5 cHQvZzEwbGliLmggXTsgdGhlbgogICAgIHJtIGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZzEwbGliLmgK IGZpCkBAIC01MSw2ICs1MiwxMCBAQCBmb3IgeCBpbiBtcGktYXNtLWRlZnMuaCBtcGloLWFkZDEu YyBtcGloLXN1YjEuYyBtcGloLW11bDEuYyBtcGloLW11bDIuYyBtcGloLW11bAogICAgIGNwIGdy dWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpL2dlbmVyaWMvIiR4IiBncnViLWNvcmUvbGli L2xpYmdjcnlwdC1ncnViL21waS8iJHgiCiBkb25lCiAKK2ZvciB4IGluIGdydWItY29yZS9saWIv bGliZ2NyeXB0LXBhdGNoZXMvKi5wYXRjaDsgZG8KKyAgICBwYXRjaCAtaSAkeCAtcDEKK2RvbmUK KwogZWNobyAiSW1wb3J0aW5nIGxpYnRhc24xLi4uIgogaWYgWyAtZCBncnViLWNvcmUvbGliL2xp YnRhc24xLWdydWIgXTsgdGhlbgogICBybSAtcmYgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1ncnVi CmRpZmYgLS1naXQgYS9jb25mL01ha2VmaWxlLmNvbW1vbiBiL2NvbmYvTWFrZWZpbGUuY29tbW9u CmluZGV4IGM2MGY1NTM4Ni4uNWNhZGE0NTY4IDEwMDY0NAotLS0gYS9jb25mL01ha2VmaWxlLmNv bW1vbgorKysgYi9jb25mL01ha2VmaWxlLmNvbW1vbgpAQCAtODEsOCArODEsOCBAQCBDUFBGTEFH U19HTlVMSUIgPSAtSSQodG9wX2J1aWxkZGlyKS9ncnViLWNvcmUvbGliL2dudWxpYiAtSSQodG9w X3NyY2RpcikvZ3J1Yi1jbwogQ0ZMQUdTX1BPU0lYID0gLWZuby1idWlsdGluCiBDUFBGTEFHU19Q T1NJWCA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAKIAotQ0ZMQUdT X0dDUlkgPSAtV25vLWVycm9yIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1y ZWR1bmRhbnQtZGVjbHMgLVduby11bmRlZiAkKENGTEFHU19QT1NJWCkKLUNQUEZMQUdTX0dDUlkg PSAtSSQodG9wX3NyY2RpcikvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcCAkKENQUEZMQUdT X1BPU0lYKSAtRF9HQ1JZUFRfSU5fTElCR0NSWVBUPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUv Z3J1Yi9nY3J5cHQKK0NGTEFHU19HQ1JZID0gLVduby1lcnJvcj1zaWduLWNvbXBhcmUgLVduby1t aXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVm ICQoQ0ZMQUdTX1BPU0lYKQorQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJH Q1JZUFQ9MSAtRF9HQ1JZUFRfQ09ORklHX0hfSU5DTFVERUQ9MSAtREhBVkVfU1RSVE9VTD0xIC1J JCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvZ2NyeXB0CiAKIENQUEZMQUdTX0VGSUVNVSA9IC1J JCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvZWZpZW11L3J1bnRpbWUKIApkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmlu ZGV4IGY3MGUwMmU2OS4uYzEzOTdmY2YwIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUu Y29yZS5kZWYKKysrIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC05NzUsOCArOTc1 LDggQEAgbW9kdWxlID0gewogbW9kdWxlID0gewogICBuYW1lID0gcGdwOwogICBjb21tb24gPSBj b21tYW5kcy9wZ3AuYzsKLSAgY2ZsYWdzID0gJyQoQ0ZMQUdTX1BPU0lYKSc7Ci0gIGNwcGZsYWdz ID0gJy1JJChzcmNkaXIpL2xpYi9wb3NpeF93cmFwJzsKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dD UlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3Mg PSAnJChDUFBGTEFHU19HQ1JZKSc7CiB9OwogCiBtb2R1bGUgPSB7CkBAIC0yNTM0LDcgKzI1MzQs MjMgQEAgbW9kdWxlID0gewogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waWNv ZGVyLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1yc2hpZnQuYzsK ICAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktaW5saW5lLmM7CisgIGNvbW1v biA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1jb25zdC10aW1lLmM7CisgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpLXNjYW4uYzsKKyAgY29tbW9uID0gbGliL2xpYmdj cnlwdC1ncnViL3NyYy9jb25zdC10aW1lLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHRfd3Jh cC9tZW0uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jOworCisg IGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24t Y29tcGFyZSAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlJzsKKyAgY3BwZmxhZ3MgPSAnJChD UFBGTEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSBwdWJrZXk7CisgIGNv bW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvcHVia2V5LXV0aWwuYzsKKyAgY29tbW9u ID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxp Yi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvZHNhLWNvbW1vbi5jOworICBjb21tb24gPSBsaWIvbGli Z2NyeXB0LWdydWIvc3JjL3NleHAuYzsKKyAgY29tbW9uID0gbGliL2I2NGRlYy5jOwogCiAgIGNm bGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29t cGFyZSc7CiAgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYyBiL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMK aW5kZXggZDU2YjViMGJiLi5iNmY4ZTNkMWEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5k cy9oYXNoc3VtLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpAQCAtNzMsNyAr NzMsNyBAQCBoYXNoX2ZpbGUgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGdjcnlfbWRfc3BlY190 ICpoYXNoLCB2b2lkICpyZXN1bHQpCiAgIGlmICghcmVhZGJ1ZiB8fCAhY29udGV4dCkKICAgICBn b3RvIGZhaWw7CiAKLSAgaGFzaC0+aW5pdCAoY29udGV4dCk7CisgIGhhc2gtPmluaXQgKGNvbnRl eHQsIDApOwogICB3aGlsZSAoMSkKICAgICB7CiAgICAgICBncnViX3NzaXplX3QgcjsKZGlmZiAt LWdpdCBhL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYyBiL2dydWItY29yZS9jb21tYW5k cy9sZWdhY3ljZmcuYwppbmRleCAzYmY5ZmUyZTQuLmE3NjhmYTZlOCAxMDA2NDQKLS0tIGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdh Y3ljZmcuYwpAQCAtNjI0LDcgKzYyNCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25z dCBjaGFyICplbnRlcmVkLAogICBpZiAoIWN0eCkKICAgICByZXR1cm4gMDsKIAotICBHUlVCX01E X01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAgIEdSVUJf TURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9NRF9NRDUt PndyaXRlIChjdHgsIHB3LT5zYWx0ICsgMywgcHctPnNhbHRsZW4gLSAzKTsKICAgR1JVQl9NRF9N RDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwpAQCAtNjMyLDcgKzYzMiw3IEBA IGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICBHUlVCX01E X01ENS0+ZmluYWwgKGN0eCk7CiAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIE1E NV9IQVNITEVOKTsKIAotICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUt PmluaXQgKGN0eCwgMCk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRl cmVkbGVuKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIHB3LT5zYWx0LCBwdy0+c2FsdGxl bik7IC8qIGluY2x1ZGUgdGhlICQxJCBoZWFkZXIgKi8KICAgZm9yIChpID0gZW50ZXJlZGxlbjsg aSA+IDE2OyBpIC09IDE2KQpAQCAtNjQ4LDcgKzY0OCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9y ZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICAgIHsKICAgICAgIGdydWJfbWVtY3B5IChhbHRf cmVzdWx0LCBkaWdlc3QsIDE2KTsKIAotICAgICAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7Cisg ICAgICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgICAgIGlmICgoaSAmIDEpICE9IDAp CiAJR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICAgICAg ZWxzZQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3BncC5jCmluZGV4IDVmYWRjMzNjNC4uZTYxODg3ODYyIDEwMDY0NAotLS0gYS9ncnVi LWNvcmUvY29tbWFuZHMvcGdwLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCkBAIC0x MzYsNDEgKzEzNiwyNyBAQCBzdHJ1Y3Qgc2lnbmF0dXJlX3Y0X2hlYWRlcgogICBncnViX3VpbnQx Nl90IGhhc2hlZF9zdWI7CiB9IEdSVUJfUEFDS0VEOwogCi1jb25zdCBjaGFyICpoYXNoZXNbXSA9 IHsKLSAgWzB4MDFdID0gIm1kNSIsCi0gIFsweDAyXSA9ICJzaGExIiwKLSAgWzB4MDNdID0gInJp cGVtZDE2MCIsCi0gIFsweDA4XSA9ICJzaGEyNTYiLAotICBbMHgwOV0gPSAic2hhMzg0IiwKLSAg WzB4MGFdID0gInNoYTUxMiIsCi0gIFsweDBiXSA9ICJzaGEyMjQiCi19OwotCiBzdHJ1Y3QgZ2Ny eV9wa19zcGVjICpncnViX2NyeXB0b19wa19kc2E7CiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnVi X2NyeXB0b19wa19lY2RzYTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX3Jz YTsKIAotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90 ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGlj X3N1YmtleSAqc2spOwotc3RhdGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1 Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdy dWJfcHVibGljX3N1YmtleSAqc2spOwotCiBzdHJ1Y3QKIHsKICAgY29uc3QgY2hhciAqbmFtZTsK KyAgY29uc3QgY2hhciAqc2lnc2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXNpZzsKKyAgY29uc3Qg Y2hhciAqcHVic2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXB1YjsKICAgc3RydWN0IGdjcnlfcGtf c3BlYyAqKmFsZ287Ci0gIGludCAoKnBhZCkgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhf dCAqaHZhbCwKLQkgICAgICBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJf cHVibGljX3N1YmtleSAqc2spOworICBjb25zdCBjaGFyICpwYWRkaW5nOwogICBjb25zdCBjaGFy ICptb2R1bGU7CiB9IHBrYWxnb3NbXSA9CiAgIHsKLSAgICBbMV0gPSB7ICJyc2EiLCAxLCAyLCAm Z3J1Yl9jcnlwdG9fcGtfcnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzNdID0geyAi cnNhIiwgMSwgMiwgJmdydWJfY3J5cHRvX3BrX3JzYSwgcnNhX3BhZCwgImdjcnlfcnNhIiB9LAot ICAgIFsxN10gPSB7ICJkc2EiLCAyLCA0LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCBkc2FfcGFkLCAi Z2NyeV9kc2EiIH0sCisgICAgWzFdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSki LCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9f cGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzNdID0geyAicnNhIiwgIihzaWct dmFsIChyc2EgKHMgJU0pKSkiLCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSki LCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzE3 XSA9IHsgImRzYSIsICIoc2lnLXZhbCAoZHNhIChyICVNKSAocyAlTSkpKSIsIDIsCisJICAgICAi KHB1YmxpYy1rZXkgKGRzYSAocCAlTSkgKHEgJU0pIChnICVNKSAoeSAlTSkpKSIsCisJICAgICA0 LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCAicmF3IiwgImdjcnlfZHNhIiB9LAogICB9OwogCiBzdHJ1 Y3QgZ3J1Yl9wdWJsaWNfa2V5CkBAIC0xOTYsNyArMTgyLDcgQEAgZnJlZV9wayAoc3RydWN0IGdy dWJfcHVibGljX2tleSAqcGspCiAgICAgICBncnViX3NpemVfdCBpOwogICAgICAgZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUgKHNrLT5tcGlzKTsgaSsrKQogCWlmIChzay0+bXBpc1tpXSkKLQkg IGdjcnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKKwkgIF9nY3J5X21waV9yZWxlYXNlIChz ay0+bXBpc1tpXSk7CiAgICAgICBuc2sgPSBzay0+bmV4dDsKICAgICAgIGdydWJfZnJlZSAoc2sp OwogICAgIH0KQEAgLTMwMyw3ICsyODksNyBAQCBncnViX2xvYWRfcHVibGljX2tleSAoZ3J1Yl9m aWxlX3QgZikKIAlnb3RvIGZhaWw7CiAKICAgICAgIGdydWJfbWVtc2V0IChmaW5nZXJwcmludF9j b250ZXh0LCAwLCBHUlVCX01EX1NIQTEtPmNvbnRleHRzaXplKTsKLSAgICAgIEdSVUJfTURfU0hB MS0+aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCk7CisgICAgICBHUlVCX01EX1NIQTEtPmluaXQg KGZpbmdlcnByaW50X2NvbnRleHQsIDApOwogICAgICAgR1JVQl9NRF9TSEExLT53cml0ZSAoZmlu Z2VycHJpbnRfY29udGV4dCwgIlx4OTkiLCAxKTsKICAgICAgIGxlbl9iZSA9IGdydWJfY3B1X3Rv X2JlMTYgKGxlbik7CiAgICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250 ZXh0LCAmbGVuX2JlLCBzaXplb2YgKGxlbl9iZSkpOwpAQCAtMzM2LDcgKzMyMiw3IEBAIGdydWJf bG9hZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCiAJICBHUlVCX01EX1NIQTEtPndyaXRl IChmaW5nZXJwcmludF9jb250ZXh0LCBidWZmZXIsIGxiICsgc2l6ZW9mIChncnViX3VpbnQxNl90 KSk7CiAKLQkgIGlmIChnY3J5X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BH UCwKKwkgIGlmIChfZ2NyeV9tcGlfc2NhbiAoJnNrLT5tcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1As CiAJCQkgICAgIGJ1ZmZlciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAkgICAg ewogCSAgICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2ln bmF0dXJlIikpOwpAQCAtMzk0LDUxICszODAsNiBAQCBncnViX2NyeXB0b19wa19sb2NhdGVfc3Vi a2V5X2luX3RydXN0ZGIgKGdydWJfdWludDY0X3Qga2V5aWQpCiAgIHJldHVybiAwOwogfQogCi0K LXN0YXRpYyBpbnQKLWRzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZh bCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJr ZXkgKnNrKQotewotICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1w aXNbMV0pOwotICBncnViX2RwcmludGYgKCJjcnlwdCIsICJtdXN0IGJlICV1IGJpdHMgZ290ICVk IGJpdHNcbiIsIG5iaXRzLAotCQkoaW50KSg4ICogaGFzaC0+bWRsZW4pKTsKLSAgcmV0dXJuIGdj cnlfbXBpX3NjYW4gKGhtcGksIEdDUllNUElfRk1UX1VTRywgaHZhbCwKLQkJCW5iaXRzIC8gOCA8 ICh1bnNpZ25lZCkgaGFzaC0+bWRsZW4gPyBuYml0cyAvIDgKLQkJCTogKHVuc2lnbmVkKSBoYXNo LT5tZGxlbiwgMCk7Ci19Ci0KLXN0YXRpYyBpbnQKLXJzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGks IGdydWJfdWludDhfdCAqaHZhbCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVj dCBncnViX3B1YmxpY19zdWJrZXkgKnNrKQotewotICBncnViX3NpemVfdCB0bGVuLCBlbWxlbiwg ZmZsZW47Ci0gIGdydWJfdWludDhfdCAqZW0sICplbXB0cjsKLSAgdW5zaWduZWQgbmJpdHMgPSBn Y3J5X21waV9nZXRfbmJpdHMgKHNrLT5tcGlzWzBdKTsKLSAgaW50IHJldDsKLSAgdGxlbiA9IGhh c2gtPm1kbGVuICsgaGFzaC0+YXNubGVuOwotICBlbWxlbiA9IChuYml0cyArIDcpIC8gODsKLSAg aWYgKGVtbGVuIDwgdGxlbiArIDExKQotICAgIHJldHVybiAxOwotCi0gIGVtID0gZ3J1Yl9tYWxs b2MgKGVtbGVuKTsKLSAgaWYgKCFlbSkKLSAgICByZXR1cm4gMTsKLQotICBlbVswXSA9IDB4MDA7 Ci0gIGVtWzFdID0gMHgwMTsKLSAgZmZsZW4gPSBlbWxlbiAtIHRsZW4gLSAzOwotICBmb3IgKGVt cHRyID0gZW0gKyAyOyBlbXB0ciA8IGVtICsgMiArIGZmbGVuOyBlbXB0cisrKQotICAgICplbXB0 ciA9IDB4ZmY7Ci0gICplbXB0cisrID0gMHgwMDsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBoYXNo LT5hc25vaWQsIGhhc2gtPmFzbmxlbik7Ci0gIGVtcHRyICs9IGhhc2gtPmFzbmxlbjsKLSAgZ3J1 Yl9tZW1jcHkgKGVtcHRyLCBodmFsLCBoYXNoLT5tZGxlbik7Ci0KLSAgcmV0ID0gZ2NyeV9tcGlf c2NhbiAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBlbSwgZW1sZW4sIDApOwotICBncnViX2ZyZWUg KGVtKTsKLSAgcmV0dXJuIHJldDsKLX0KLQogc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQKIHsK ICAgZ3J1Yl9maWxlX3Qgc2lnOwpAQCAtNDgzLDE1ICs0MjQsMTIgQEAgZ3J1Yl92ZXJpZnlfc2ln bmF0dXJlX2luaXQgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVf dCBzaWcpCiAgIGlmICh0ICE9IDApCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JB RF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGlmIChoID49IEFSUkFZX1NJ WkUgKGhhc2hlcykgfHwgaGFzaGVzW2hdID09IE5VTEwpCi0gICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsICJ1bmtub3duIGhhc2giKTsKLQogICBpZiAocGsgPj0g QVJSQVlfU0laRSAocGthbGdvcykgfHwgcGthbGdvc1twa10ubmFtZSA9PSBOVUxMKQogICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCBOXygiYmFkIHNpZ25hdHVy ZSIpKTsKIAotICBjdHh0LT5oYXNoID0gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGhh c2hlc1toXSk7CisgIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAo aCk7CiAgIGlmICghY3R4dC0+aGFzaCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJf QkFEX1NJR05BVFVSRSwgImhhc2ggYCVzJyBub3QgbG9hZGVkIiwgaGFzaGVzW2hdKTsKKyAgICBy ZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhhc2ggYCVkJyBub3Qg bG9hZGVkIiwgaCk7CiAKICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCkBA IC00OTksNyArNDM3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVjdCBncnVi X3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICghY3R4dC0+aGFz aF9jb250ZXh0KQogICAgIHJldHVybiBncnViX2Vycm5vOwogCi0gIGN0eHQtPmhhc2gtPmluaXQg KGN0eHQtPmhhc2hfY29udGV4dCk7CisgIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29u dGV4dCwgMCk7CiAgIGN0eHQtPnNpZyA9IHNpZzsKIAogICByZXR1cm4gR1JVQl9FUlJfTk9ORTsK QEAgLTUyOCw3ICs0NjYsNiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdy dWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgIGdydWJfdWludDE2X3QgdW5oYXNoZWRfc3ViOwog ICBncnViX3NzaXplX3QgcjsKICAgZ3J1Yl91aW50OF90IGhhc2hfc3RhcnRbMl07Ci0gIGdjcnlf bXBpX3QgaG1waTsKICAgZ3J1Yl91aW50NjRfdCBrZXlpZCA9IDA7CiAgIHN0cnVjdCBncnViX3B1 YmxpY19zdWJrZXkgKnNrOwogCkBAIC02MjAsNyArNTU3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0 dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ3J1Yl9t ZW1jcHkgKHJlYWRidWYsICZsLCBzaXplb2YgKGwpKTsKICAgICAgIGdydWJfZHByaW50ZiAoImNy eXB0IiwgImFsaXZlXG4iKTsKIAotICAgICAgaWYgKGdjcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBH Q1JZTVBJX0ZNVF9QR1AsCisgICAgICBpZiAoX2djcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZ TVBJX0ZNVF9QR1AsCiAJCQkgcmVhZGJ1ZiwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAw KSkKIAlnb3RvIGZhaWw7CiAgICAgICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7 CkBAIC02MzgsOCArNTc1LDYgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBn cnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICBp ZiAocGthbGdvc1twa10ucGFkICgmaG1waSwgaHZhbCwgY3R4dC0+aGFzaCwgc2spKQotICAgIGdv dG8gZmFpbDsKICAgaWYgKCEqcGthbGdvc1twa10uYWxnbykKICAgICB7CiAgICAgICBncnViX2Rs X2xvYWQgKHBrYWxnb3NbcGtdLm1vZHVsZSk7CkBAIC02NTIsNyArNTg3LDI0IEBAIGdydWJfdmVy aWZ5X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKIAkJ ICBwa2FsZ29zW3BrXS5tb2R1bGUpOwogICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgaWYgKCgq cGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoMCwgaG1waSwgbXBpcywgc2stPm1waXMsIDAsIDAp KQorCisgIGdjcnlfc2V4cF90IGhzZXhwLCBwdWJrZXksIHNpZzsKKyAgZ3J1Yl9zaXplX3QgZXJy b2Y7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmaHNleHAsICZlcnJvZiwgIihkYXRhIChmbGFn cyAlcykgKGhhc2ggJXMgJWIpKSIsIHBrYWxnb3NbcGtdLnBhZGRpbmcsIGN0eHQtPmhhc2gtPm5h bWUsIGN0eHQtPmhhc2gtPm1kbGVuLCBodmFsKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2dj cnlfc2V4cF9idWlsZCgmcHVia2V5LCAmZXJyb2YsIHBrYWxnb3NbcGtdLnB1YnNleHAsIHNrLT5t cGlzWzBdLCBzay0+bXBpc1sxXSwgc2stPm1waXNbMl0sIHNrLT5tcGlzWzNdKSkKKyAgICBnb3Rv IGZhaWw7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmc2lnLCAmZXJyb2YsIHBrYWxnb3NbcGtd LnNpZ3NleHAsIG1waXNbMF0sIG1waXNbMV0pKQorICAgIGdvdG8gZmFpbDsKKworICBfZ2NyeV9z ZXhwX2R1bXAoc2lnKTsKKyAgX2djcnlfc2V4cF9kdW1wKGhzZXhwKTsKKyAgX2djcnlfc2V4cF9k dW1wKHB1YmtleSk7CisKKyAgaWYgKCgqcGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoc2lnLCBo c2V4cCwgcHVia2V5KSkKICAgICBnb3RvIGZhaWw7CiAKICAgZ3J1Yl9mcmVlIChyZWFkYnVmKTsK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3hudV91dWlkLmMKaW5kZXggYWU0YjNhNDE1Li4xNDA2YzQzZjUgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy94 bnVfdXVpZC5jCkBAIC02OCw3ICs2OCw3IEBAIGdydWJfY21kX3hudV91dWlkIChncnViX2NvbW1h bmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICBjdHggPSBncnViX3phbGxvYyAo R1JVQl9NRF9NRDUtPmNvbnRleHRzaXplKTsKICAgaWYgKCFjdHgpCiAgICAgcmV0dXJuIGdydWJf ZXJybm87Ci0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAo Y3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGhhc2hfcHJlZml4LCBzaXplb2Yg KGhhc2hfcHJlZml4KSk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCAmc2VyaWFsLCBzaXpl b2YgKHNlcmlhbCkpOwogICBHUlVCX01EX01ENS0+ZmluYWwgKGN0eCk7CmRpZmYgLS1naXQgYS9n cnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMK aW5kZXggN2E3ODVhNDljLi45ODM1MmE0MzIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2Ny eXB0b2Rpc2suYworKysgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKQEAgLTMwMiw3ICsz MDIsNyBAQCBncnViX2NyeXB0b2Rpc2tfZW5kZWNyeXB0IChzdHJ1Y3QgZ3J1Yl9jcnlwdG9kaXNr ICpkZXYsCiAJICAgICAgcmV0dXJuIEdQR19FUlJfT1VUX09GX01FTU9SWTsKIAogCSAgICB0bXAg PSBncnViX2NwdV90b19sZTY0IChzZWN0b3IgPDwgbG9nX3NlY3Rvcl9zaXplKTsKLQkgICAgZGV2 LT5pdl9oYXNoLT5pbml0IChjdHgpOworCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCwgMCk7 CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgZGV2LT5pdl9wcmVmaXgsIGRldi0+aXZf cHJlZml4X2xlbik7CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgJnRtcCwgc2l6ZW9m ICh0bXApKTsKIAkgICAgZGV2LT5pdl9oYXNoLT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9pby9nemlvLmMgYi9ncnViLWNvcmUvaW8vZ3ppby5jCmluZGV4IGNiN2ViMWZlMy4u ZmE5ZDk0MmIyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vZ3ppby5jCisrKyBiL2dydWItY29y ZS9pby9nemlvLmMKQEAgLTEyMDEsNyArMTIwMSw3IEBAIGluaXRpYWxpemVfdGFibGVzIChncnVi X2d6aW9fdCBnemlvKQogICBnemlvLT50ZCA9IE5VTEw7CiAKICAgaWYgKGd6aW8tPmhjb250ZXh0 KQotICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0KTsKKyAgICBnemlvLT5oZGVz Yy0+aW5pdChnemlvLT5oY29udGV4dCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jIGIvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jCmluZGV4IGE3ZDQ0MjU0My4uY2Vh OTQyMzA4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMKKysrIGIvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdGVzdF9oZWFkZXIgKGdydWJfZmlsZV90 IGZpbGUpCiAgICAgaWYgKCEgY29udGV4dCkKICAgICAgIHJldHVybiAwOwogCi0gICAgaGNoZWNr LT5pbml0KGNvbnRleHQpOworICAgIGhjaGVjay0+aW5pdChjb250ZXh0LCAwKTsKIAogICAgIC8q IE1BR0lDIGlzIG5vdCBpbmNsdWRlZCBpbiBjaGVjayBjYWxjdWxhdGlvbi4gICovCiAgICAgaGNo ZWNrLT53cml0ZShjb250ZXh0LCAmaGVhZGVyLmx6b3BfdmVyc2lvbiwgc2l6ZW9mKGhlYWRlcikt IExaT1BfTUFHSUNfU0laRSk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYyBi L2dydWItY29yZS9saWIvYWRsZXIzMi5jCmluZGV4IDQzYjY4YWY2Mi4uZjg0OWNjZWU2IDEwMDY0 NAotLS0gYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYworKysgYi9ncnViLWNvcmUvbGliL2FkbGVy MzIuYwpAQCAtMjksMTAgKzI5LDEyIEBAIHN0cnVjdCBhZGxlcjMyX2NvbnRleHQKIH07CiAKIHN0 YXRpYyB2b2lkCi1hZGxlcjMyX2luaXQgKHZvaWQgKmNvbnRleHQpCithZGxlcjMyX2luaXQgKHZv aWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgc3RydWN0IGFkbGVyMzJfY29u dGV4dCAqY3R4ID0gY29udGV4dDsKIAorICAodm9pZCkgZmxhZ3M7CisKICAgY3R4LT5hID0gMTsK ICAgY3R4LT5iID0gMDsKIH0KQEAgLTgxLDEzICs4MywyMiBAQCBhZGxlcjMyX3JlYWQgKHZvaWQg KmNvbnRleHQpCiAKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCBzcGVjX2FkbGVyMzIgPQogICB7Ci0g ICAgIkFETEVSMzIiLCAwLCAwLCAwLCA0LAotICAgIGFkbGVyMzJfaW5pdCwgYWRsZXIzMl93cml0 ZSwgYWRsZXIzMl9maW5hbCwgYWRsZXIzMl9yZWFkLAotICAgIHNpemVvZiAoc3RydWN0IGFkbGVy MzJfY29udGV4dCksCisgICAgLmFsZ28gPSBHQ1JZX01EX0FETEVSMzIsCisgICAgLmZsYWdzID0g ey5kaXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAgLm5hbWUgPSAiQURMRVIzMiIsCisgICAg LmFzbm9pZCA9IE5VTEwsCisgICAgLmFzbmxlbiA9IDAsCisgICAgLm9pZHMgPSBOVUxMLAorICAg IC5tZGxlbiA9IDQsCisgICAgLmluaXQgPSBhZGxlcjMyX2luaXQsCisgICAgLndyaXRlID0gYWRs ZXIzMl93cml0ZSwKKyAgICAuZmluYWwgPSBhZGxlcjMyX2ZpbmFsLAorICAgIC5yZWFkID0gYWRs ZXIzMl9yZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29u dGV4dCksCisgICAgLmJsb2Nrc2l6ZSA9IDY0LAogI2lmZGVmIEdSVUJfVVRJTAogICAgIC5tb2Ru YW1lID0gImFkbGVyMzIiLAogI2VuZGlmCi0gICAgLmJsb2Nrc2l6ZSA9IDY0CiAgIH07CiAKIApk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5j CmluZGV4IDQ5NjBmM2Y4OS4uYzIzMWZhOTdjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2Ny YzY0LmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCkBAIC02MSw4ICs2MSwxMCBAQCBpbml0 X2NyYzY0X3RhYmxlICh2b2lkKQogfQogCiBzdGF0aWMgdm9pZAotY3JjNjRfaW5pdCAodm9pZCAq Y29udGV4dCkKK2NyYzY0X2luaXQgKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykK IHsKKyAgKHZvaWQpIGZsYWdzOworCiAgIGlmICghIGNyYzY0X3RhYmxlWzFdKQogICAgIGluaXRf Y3JjNjRfdGFibGUgKCk7CiAgICooZ3J1Yl91aW50NjRfdCAqKSBjb250ZXh0ID0gMDsKQEAgLTk3 LDEwICs5OSwyMiBAQCBjcmM2NF9maW5hbCAodm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fICgo dW51c2VkKSkpCiAKIGdjcnlfbWRfc3BlY190IF9nY3J5X2RpZ2VzdF9zcGVjX2NyYzY0ID0KICAg ewotICAgICJDUkM2NCIsIDAsIDAsIDAsIDgsCi0gICAgY3JjNjRfaW5pdCwgY3JjNjRfd3JpdGUs IGNyYzY0X2ZpbmFsLCBjcmM2NF9yZWFkLAotICAgIHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCi0g ICAgLmJsb2Nrc2l6ZSA9IDY0CisgICAgLmFsZ28gPSBHQ1JZX01EX0NSQzY0LAorICAgIC5mbGFn cyA9IHsuZGlzYWJsZWQgPSAwLCAuZmlwcyA9IDB9LAorICAgIC5uYW1lID0gIkNSQzY0IiwKKyAg ICAuYXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisg ICAgLm1kbGVuID0gOCwKKyAgICAuaW5pdCA9IGNyYzY0X2luaXQsCisgICAgLndyaXRlID0gY3Jj NjRfd3JpdGUsCisgICAgLmZpbmFsID0gY3JjNjRfZmluYWwsCisgICAgLnJlYWQgPSBjcmM2NF9y ZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCisgICAgLmJs b2Nrc2l6ZSA9IDY0LAorI2lmZGVmIEdSVUJfVVRJTAorICAgIC5tb2RuYW1lID0gImNyYzY0IiwK KyNlbmRpZgogICB9OwogCiBHUlVCX01PRF9JTklUKGNyYzY0KQpkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9jcnlwdG8uYyBiL2dydWItY29yZS9saWIvY3J5cHRvLmMKaW5kZXggMzk2Zjc2NDEw Li5kZDYwZGQ0YWMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3J5cHRvLmMKKysrIGIvZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYwpAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9jcnlwdG9f aG1hY19oYW5kbGUKIHN0YXRpYyBnY3J5X2NpcGhlcl9zcGVjX3QgKmdydWJfY2lwaGVycyA9IE5V TEw7CiBzdGF0aWMgZ2NyeV9tZF9zcGVjX3QgKmdydWJfZGlnZXN0cyA9IE5VTEw7CiAKK2ludCBf Z2NyeV9ub19maXBzX21vZGVfcmVxdWlyZWQgPSAxOworCiB2b2lkICgqZ3J1Yl9jcnlwdG9fYXV0 b2xvYWRfaG9vaykgKGNvbnN0IGNoYXIgKm5hbWUpID0gTlVMTDsKIAogLyogQmFzZWQgb24gbGli Z2NyeXB0LTEuNC40L3NyYy9taXNjLmMuICAqLwpAQCAtNTYsNiArNTgsMTcgQEAgX2djcnlfYnVy bl9zdGFjayAoaW50IHNpemUpCiAgIGdydWJfYnVybl9zdGFjayAoc2l6ZSk7CiB9CiAKK3ZvaWQK K19fZ2NyeV9idXJuX3N0YWNrICh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKyAgZ3J1Yl9idXJuX3N0 YWNrIChzaXplKTsKK30KKwordm9pZAorX19nY3J5X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpCit7 Cit9CisKIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSkKIF9nY3J5X2Fzc2VydF9mYWls ZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCQkgICAg IGNvbnN0IGNoYXIgKmZ1bmMpCkBAIC02NCw2ICs3NywxMiBAQCBfZ2NyeV9hc3NlcnRfZmFpbGVk IChjb25zdCBjaGFyICpleHByLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgZ3J1Yl9m YXRhbCAoImFzc2VydGlvbiAlcyBhdCAlczolZCAoJXMpIGZhaWxlZFxuIiwgZXhwciwgZmlsZSwg bGluZSwgZnVuYyk7CiB9CiAKK3ZvaWQKK19nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50 IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKQoreworICAgIGdydWJfZmF0YWwgKCIuLi4gdGhpcyBp cyBhIGJ1ZyAoJXM6JWQ6JXMpXG4iLCBmaWxlLCBsaW5lLCBmdW5jKTsKK30KKwogCiB2b2lkIF9n Y3J5X2xvZ19lcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CkBAIC04Myw2ICsxMDIsMzYg QEAgdm9pZCBfZ2NyeV9sb2dfZXJyb3IgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0K IAordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xp c3QgYXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQgKCJkZWJ1ZyIpOwor CisgIGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1 ZywgImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkKKyAgICB7CisgICAg ICBncnViX3ByaW50ZiAoImdjcnlwdCBpbmZvOiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBm bXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdz KTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKK3ZvaWQKK19nY3J5X2Zhc3Rf d2lwZW1lbW9yeTIgKHZvaWQgKnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBn cnViX21lbXNldChwdHIsIHNldCwgbGVuKTsKK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVt b3J5ICh2b2lkICpwdHIsIGdydWJfc2l6ZV90IGxlbikKK3sKKyAgZ3J1Yl9tZW1zZXQocHRyLCAw LCBsZW4pOworfQorCiB2b2lkCiBncnViX2NpcGhlcl9yZWdpc3RlciAoZ2NyeV9jaXBoZXJfc3Bl Y190ICpjaXBoZXIpCiB7CkBAIC0xMjksNyArMTc4LDcgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29u c3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAKICAg aWYgKGhhc2gtPmNvbnRleHRzaXplID4gc2l6ZW9mIChjdHgpKQogICAgIGdydWJfZmF0YWwgKCJU b28gbGFyZ2UgbWQgY29udGV4dCIpOwotICBoYXNoLT5pbml0ICgmY3R4KTsKKyAgaGFzaC0+aW5p dCAoJmN0eCwgMCk7CiAgIGhhc2gtPndyaXRlICgmY3R4LCBpbiwgaW5sZW4pOwogICBoYXNoLT5m aW5hbCAoJmN0eCk7CiAgIGdydWJfbWVtY3B5IChvdXQsIGhhc2gtPnJlYWQgKCZjdHgpLCBoYXNo LT5tZGxlbik7CkBAIC0xNTMsNiArMjAyLDkxIEBAIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9u YW1lIChjb25zdCBjaGFyICpuYW1lKQogICAgIH0KIH0KIAorY29uc3QgZ2NyeV9tZF9zcGVjX3Qg KgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZCAoY29uc3QgY2hhciAqb2lkKQoreworICBj b25zdCBnY3J5X21kX3NwZWNfdCAqbWQ7CisKKyAgaWYgKCFvaWQpCisgICAgcmV0dXJuIE5VTEw7 CisKKyAgaWYgKGdydWJfc3RybmNtcCAob2lkLCAib2lkLiIsIDQpID09IDAgfHwgZ3J1Yl9zdHJu Y21wIChvaWQsICJPSUQuIiwgNCkgPT0gMCkKKyAgICBvaWQgKz0gNDsKKworCisgIGZvciAobWQg PSBncnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorICAgIHsKKyAgICAgIGNvbnN0IGdj cnlfbWRfb2lkX3NwZWNfdCAqb2lkX3NwZWNzID0gbWQtPm9pZHM7CisgICAgICBpZiAob2lkX3Nw ZWNzKQorICAgICAgICB7CisgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IG9pZF9zcGVjc1tqXS5v aWRzdHJpbmc7IGorKykKKyAgICAgICAgICAgIGlmIChncnViX3N0cmNhc2VjbXAgKG9pZCwgb2lk X3NwZWNzW2pdLm9pZHN0cmluZykgPT0gMCkKKyAgICAgICAgICAgICAgcmV0dXJuIG1kOworICAg ICAgICB9CisgICAgfQorCisgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAq bWRfYWxnb3NbXSA9IHsKKyAgICBbMV0gPSAiTUQ1IiwKKyAgICBbMl0gPSAiU0hBMSIsCisgICAg WzNdID0gIlJJUEVNRDE2MCIsCisgICAgWzZdID0gIlRJR0VSIiwKKyAgICBbOF0gPSAiU0hBMjU2 IiwKKyAgICBbOV0gPSAiU0hBMzg0IiwKKyAgICBbMTBdID0gIlNIQTUxMiIsCisgICAgWzExXSA9 ICJTSEEyMjQiLAorCisgICAgWzMwMV0gPSAiTUQ0IiwKKyAgICBbMzAyXSA9ICJDUkMzMiIsCisg ICAgWzMwM10gPSAiQ1JDMzJSRkMxNTEwIiwKKyAgICBbMzA0XSA9ICJDUkMyNFJGQzI0NDAiLAor ICAgIFszMDVdID0gIldISVJMUE9PTCIsCisgICAgWzMwNl0gPSAiVElHRVIxIiwKKyAgICBbMzA3 XSA9ICJUSUdFUjIiLAorICAgIFszMDhdID0gIkdPU1RSMzQxMV85NCIsCisgICAgWzMwOV0gPSAi U1RSSUJPRzI1NiIsCisgICAgWzMxMF0gPSAiU1RSSUJPRzUxMiIsCisgICAgWzMxMV0gPSAiR09T VFIzNDExX0NQIiwKKyAgICBbMzEyXSA9ICJTSEEzLTIyNCIsCisgICAgWzMxM10gPSAiU0hBMy0y NTYiLAorICAgIFszMTRdID0gIlNIQTMtMzg0IiwKKyAgICBbMzE1XSA9ICJTSEEzLTUxMiIsCisg ICAgWzMxNl0gPSAiU0hBS0UxMjgiLAorICAgIFszMTddID0gIlNIQUtFMjU2IiwKKyAgICBbMzE4 XSA9ICJCTEFLRTJCXzUxMiIsCisgICAgWzMxOV0gPSAiQkxBS0UyQl8zODQiLAorICAgIFszMjBd ID0gIkJMQUtFMkJfMjU2IiwKKyAgICBbMzIxXSA9ICJCTEFLRTJCXzE2MCIsCisgICAgWzMyMl0g PSAiQkxBS0UyU18yNTYiLAorICAgIFszMjNdID0gIkJMQUtFMlNfMjI0IiwKKyAgICBbMzI0XSA9 ICJCTEFLRTJTXzE2MCIsCisgICAgWzMyNV0gPSAiQkxBS0UyU18xMjgiLAorICAgIFszMjZdID0g IlNNMyIsCisgICAgWzMyN10gPSAiU0hBNTEyXzI1NiIsCisgICAgWzMyOF0gPSAiU0hBNTEyXzIy NCIsCit9OworCisKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9t ZF9ieV9hbGdvIChpbnQgYWxnbykKK3sKKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKm1kOworICBp bnQgZmlyc3QgPSAxOworICB3aGlsZSAoMSkKKyAgICB7CisgICAgICBmb3IgKG1kID0gZ3J1Yl9k aWdlc3RzOyBtZDsgbWQgPSBtZC0+bmV4dCkKKwlpZiAoYWxnbyA9PSBtZC0+YWxnbykKKwkgIHJl dHVybiBtZDsKKyAgICAgIGlmIChncnViX2NyeXB0b19hdXRvbG9hZF9ob29rICYmIGZpcnN0ICYm IGFsZ28gPiAwICYmIGFsZ28gPCAoaW50KUFSUkFZX1NJWkUobWRfYWxnb3MpICYmIG1kX2FsZ29z W2FsZ29dKSB7CisJZ3J1Yl9jcnlwdG9fYXV0b2xvYWRfaG9vayAobWRfYWxnb3NbYWxnb10pOwor ICAgICAgfSBlbHNlCisJcmV0dXJuIE5VTEw7CisgICAgICBmaXJzdCA9IDA7CisgICAgfQorfQor CiBjb25zdCBnY3J5X2NpcGhlcl9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX2NpcGhlcl9i eV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMTk2LDcgKzMzMCw5IEBAIGdydWJfY3J5 cHRvX2NpcGhlcl9zZXRfa2V5IChncnViX2NyeXB0b19jaXBoZXJfaGFuZGxlX3QgY2lwaGVyLAog CQkJICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKIAkJCSAgICB1bnNpZ25lZCBrZXlsZW4p CiB7Ci0gIHJldHVybiBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBr ZXlsZW4pOworICAvKiBUT0RPOiBGaXggdGhpcy4gSXQncyB1Z2x5IGFzIGhlbGwuICAqLworICB2 b2lkICpidWxrX29wc1sxMDBdOworICByZXR1cm4gY2lwaGVyLT5jaXBoZXItPnNldGtleSAoY2lw aGVyLT5jdHgsIGtleSwga2V5bGVuLCAodm9pZCAqKSBidWxrX29wcyk7CiB9CiAKIGdjcnlfZXJy X2NvZGVfdApAQCAtMzQzLDcgKzQ3OSw3IEBAIGdydWJfY3J5cHRvX2htYWNfaW5pdCAoY29uc3Qg c3RydWN0IGdjcnlfbWRfc3BlYyAqbWQsCiAgIGdydWJfZnJlZSAoaGVscGtleSk7CiAgIGhlbHBr ZXkgPSBOVUxMOwogCi0gIG1kLT5pbml0IChjdHgpOworICBtZC0+aW5pdCAoY3R4LCAwKTsKIAog ICBtZC0+d3JpdGUgKGN0eCwgaXBhZCwgbWQtPmJsb2Nrc2l6ZSk7IC8qIGlubmVyIHBhZCAqLwog ICBncnViX21lbXNldCAoaXBhZCwgMCwgbWQtPmJsb2Nrc2l6ZSk7CkBAIC0zOTAsNyArNTI2LDcg QEAgZ3J1Yl9jcnlwdG9faG1hY19maW5pIChzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUg KmhuZCwgdm9pZCAqb3V0KQogICBobmQtPm1kLT5yZWFkIChobmQtPmN0eCk7CiAgIHAgPSBobmQt Pm1kLT5yZWFkIChobmQtPmN0eCk7CiAKLSAgaG5kLT5tZC0+aW5pdCAoY3R4Mik7CisgIGhuZC0+ bWQtPmluaXQgKGN0eDIsIDApOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgaG5kLT5vcGFkLCBo bmQtPm1kLT5ibG9ja3NpemUpOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgcCwgaG5kLT5tZC0+ bWRsZW4pOwogICBobmQtPm1kLT5maW5hbCAoY3R4Mik7CkBAIC00MzMsMTkgKzU2OSwxMDYgQEAg Z3J1Yl9jcnlwdG9fZ2NyeV9lcnJvciAoZ2NyeV9lcnJfY29kZV90IGluKQogICByZXR1cm4gR1JV Ql9BQ0NFU1NfREVOSUVEOwogfQogCisKKy8qCisgKiBDb21wYXJlIGJ5dGUgYXJyYXlzIG9mIGxl bmd0aCBMRU4sIHJldHVybiAxIGlmIGl0J3Mgbm90IHNhbWUsCisgKiAwLCBvdGhlcndpc2UuCisg Ki8KIGludAotZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi LCBncnViX3NpemVfdCBuKQorZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICpiMSwgY29u c3Qgdm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbikKIHsKLSAgcmVnaXN0ZXIgZ3J1Yl9zaXplX3Qg Y291bnRlciA9IDA7Ci0gIGNvbnN0IGdydWJfdWludDhfdCAqcGEsICpwYjsKKyAgY29uc3QgZ3J1 Yl91aW50OF90ICphID0gYjE7CisgIGNvbnN0IGdydWJfdWludDhfdCAqYiA9IGIyOworICBpbnQg YWIsIGJhOworICBncnViX3NpemVfdCBpOwogCi0gIGZvciAocGEgPSBhLCBwYiA9IGI7IG47IHBh KyssIHBiKyssIG4tLSkKKyAgLyogQ29uc3RhbnQtdGltZSBjb21wYXJlLiAqLworICBmb3IgKGkg PSAwLCBhYiA9IDAsIGJhID0gMDsgaSA8IGxlbjsgaSsrKQogICAgIHsKLSAgICAgIGlmICgqcGEg IT0gKnBiKQotCWNvdW50ZXIrKzsKKyAgICAgIC8qIElmIGFbaV0gIT0gYltpXSwgZWl0aGVyIGFi IG9yIGJhIHdpbGwgYmUgbmVnYXRpdmUuICovCisgICAgICBhYiB8PSBhW2ldIC0gYltpXTsKKyAg ICAgIGJhIHw9IGJbaV0gLSBhW2ldOwogICAgIH0KIAotICByZXR1cm4gISFjb3VudGVyOworICAv KiAnYWIgfCBiYScgaXMgbmVnYXRpdmUgd2hlbiBidWZmZXJzIGFyZSBub3QgZXF1YWwsIGV4dHJh Y3Qgc2lnbiBiaXQuICAqLworICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpKGFiIHwgYmEpID4+IChz aXplb2YodW5zaWduZWQgaW50KSAqIDggLSAxKSkgJiAxOworfQorCisKK3ZvaWQgKgorX2djcnlf bWFsbG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4p OworfQorCit2b2lkICoKK19nY3J5X21hbGxvYyAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJu IGdydWJfbWFsbG9jKG4pOworfQorCit2b2lkICoKK19nY3J5X3htYWxsb2MoZ3J1Yl9zaXplX3Qg bikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkK KyAgICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0Owor fQorCit2b2lkICoKK19nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pCit7CisgIHZv aWQgKnJldCA9IGdydWJfbWFsbG9jKG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeG1hbGxvY19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisK K3ZvaWQgX2djcnlfZnJlZSAodm9pZCAqcCkKK3sKKyAgZ3J1Yl9mcmVlIChwKTsKK30KKwordm9p ZCAqCitfZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAq cmV0ID0gZ3J1Yl9yZWFsbG9jKGEsIG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeHJlYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQg KgorX2djcnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSkKK3sKKyAgdm9p ZCAqcmV0ID0gZ3J1Yl9jYWxsb2MobiwgbSk7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnVi X2ZhdGFsKCJfZ2NyeV94Y2FsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lk ICoKK19nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQor eworICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQor ICAgIGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2Nfc2VjdXJlIGZhaWxlZCIpOworICByZXR1cm4g cmV0OworfQorCisKK2ludAorX2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lkICphKQoreworICAo dm9pZCkgYTsKKworICByZXR1cm4gMDsKK30KKwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAo dm9pZCkKK3sKKyAgZ3J1Yl9mYXRhbCgiZ2NyeXB0IGRpdmlzaW9uIGJ5IHplcm8iKTsKIH0KIAog I2lmbmRlZiBHUlVCX1VUSUwKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBh dGNoZXMvMDFfbWQucGF0Y2ggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21k LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uOGNjYWQyZjEzCi0t LSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5w YXRjaApAQCAtMCwwICsxLDEyNCBAQAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1 Yi9jaXBoZXIvbWQuYwkyMDI0LTA1LTIxIDAxOjIyOjA0LjIyMjA4NDc3MyArMDMwMAorKysrIGIv Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvbWQuYwkyMDI0LTA1LTIxIDAxOjIy OjA3LjM2ODA5OTk2MSArMDMwMAorQEAgLTIwLDExICsyMCwyNSBAQAorICAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgICovCisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNpbmNs dWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+ CisrI2luY2x1ZGUgPGVycm5vLmg+CisgCisgCisgI2luY2x1ZGUgImcxMGxpYi5oIgorICNpbmNs dWRlICJjaXBoZXIuaCIKKyAKKysjZGVmaW5lIF9nY3J5X21kX3NlbGZ0ZXN0KGEsYixjKSAwCisr dHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9saXN0CisreworKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3Qg KnNwZWM7CisrICBzdHJ1Y3QgZ2NyeV9tZF9saXN0ICpuZXh0OworKyAgc2l6ZV90IGFjdHVhbF9z dHJ1Y3Rfc2l6ZTsgICAgIC8qIEFsbG9jYXRlZCBzaXplIG9mIHRoaXMgc3RydWN0dXJlLiAqLwor KyAgUFJPUEVSTFlfQUxJR05FRF9UWVBFIGNvbnRleHRbMV07CisrfSBHY3J5RGlnZXN0RW50cnk7 CisrCisgCisgLyogVGhpcyBpcyB0aGUgbGlzdCBvZiB0aGUgZGlnZXN0IGltcGxlbWVudGF0aW9u cyBpbmNsdWRlZCBpbgorICAgIGxpYmdjcnlwdC4gICovCitAQCAtNTMsNyArNjcsNiBAQAorIHN0 YXRpYyB2b2lkIG1kX2Nsb3NlIChnY3J5X21kX2hkX3QgYSk7Cisgc3RhdGljIHZvaWQgbWRfd3Jp dGUgKGdjcnlfbWRfaGRfdCBhLCBjb25zdCB2b2lkICppbmJ1Ziwgc2l6ZV90IGlubGVuKTsKKyBz dGF0aWMgYnl0ZSAqbWRfcmVhZCggZ2NyeV9tZF9oZF90IGEsIGludCBhbGdvICk7Cistc3RhdGlj IGludCBtZF9nZXRfYWxnbyggZ2NyeV9tZF9oZF90IGEgKTsKKyBzdGF0aWMgaW50IG1kX2RpZ2Vz dF9sZW5ndGgoIGludCBhbGdvICk7Cisgc3RhdGljIHZvaWQgbWRfc3RhcnRfZGVidWcgKCBnY3J5 X21kX2hkX3QgYSwgY29uc3QgY2hhciAqc3VmZml4ICk7Cisgc3RhdGljIHZvaWQgbWRfc3RvcF9k ZWJ1ZyAoIGdjcnlfbWRfaGRfdCBhICk7CitAQCAtMTg2LDkgKzE5OSw2IEBACisgCisgICBpZiAo ISBlcnIpCisgICAgIHsKKy0gICAgICAvKiBIbW1tLCBzaG91bGQgd2UgcmVhbGx5IGRvIHRoYXQ/ IC0geWVzIFstd2tdICovCistICAgICAgX2djcnlfZmFzdF9yYW5kb21fcG9sbCAoKTsKKy0KKyAg ICAgICBpZiAoYWxnbykKKyAJeworIAkgIGVyciA9IG1kX2VuYWJsZSAoaGQsIGFsZ28pOworQEAg LTQzNywxNCArNDQ3LDYgQEAKKyB7CisgICBHY3J5RGlnZXN0RW50cnkgKnI7CisgCistICBpZiAo YS0+Y3R4LT5kZWJ1ZykKKy0gICAgeworLSAgICAgIGlmIChhLT5idWZwb3MgJiYgZndyaXRlIChh LT5idWYsIGEtPmJ1ZnBvcywgMSwgYS0+Y3R4LT5kZWJ1ZykgIT0gMSkKKy0JQlVHKCk7CistICAg ICAgaWYgKGlubGVuICYmIGZ3cml0ZSAoaW5idWYsIGlubGVuLCAxLCBhLT5jdHgtPmRlYnVnKSAh PSAxKQorLQlCVUcoKTsKKy0gICAgfQorLQorICAgZm9yIChyID0gYS0+Y3R4LT5saXN0OyByOyBy ID0gci0+bmV4dCkKKyAgICAgeworICAgICAgIGlmIChhLT5idWZwb3MpCitAQCAtNjk1LDYgKzY5 Nyw3IEBACisgICAgICAgcmV0dXJuOworICAgICB9CisgCisrI2lmIDAKKyAgIGlmIChzcGVjLT5o YXNoX2J1ZmZlcnMgIT0gTlVMTCkKKyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92Owor QEAgLTcxMSw2ICs3MTQsNyBAQAorICAgICAgIHNwZWMtPmhhc2hfYnVmZmVycyAoZGlnZXN0LCBz cGVjLT5tZGxlbiwgJmlvdiwgMSk7CisgICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgewor ICAgICAgIC8qIEZvciB0aGUgb3RoZXJzIHdlIGRvIG5vdCBoYXZlIGEgZmFzdCBmdW5jdGlvbiwg c28gd2UgdXNlIHRoZQorICAgICAgICAgIG5vcm1hbCBmdW5jdGlvbnMuICovCitAQCAtODk0LDQz ICs4OTcsMTUgQEAKKyBzdGF0aWMgdm9pZAorIG1kX3N0YXJ0X2RlYnVnICggZ2NyeV9tZF9oZF90 IG1kLCBjb25zdCBjaGFyICpzdWZmaXggKQorIHsKKy0gIHN0YXRpYyBpbnQgaWR4PTA7CistICBj aGFyIGJ1Zls1MF07CistCistICBpZiAoZmlwc19tb2RlICgpKQorLSAgICByZXR1cm47CistCist ICBpZiAoIG1kLT5jdHgtPmRlYnVnICkKKy0gICAgeworLSAgICAgIGxvZ19kZWJ1ZygiT29wczog bWQgZGVidWcgYWxyZWFkeSBzdGFydGVkXG4iKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0g IGlkeCsrOworLSAgc25wcmludGYgKGJ1ZiwgRElNKGJ1ZiktMSwgImRiZ21kLSUwNWQuJS4xMHMi LCBpZHgsIHN1ZmZpeCApOworLSAgbWQtPmN0eC0+ZGVidWcgPSBmb3BlbihidWYsICJ3Iik7Cist ICBpZiAoICFtZC0+Y3R4LT5kZWJ1ZyApCistICAgIGxvZ19kZWJ1ZygibWQgZGVidWc6IGNhbid0 IG9wZW4gJXNcbiIsIGJ1ZiApOworKyAgKHZvaWQpIG1kOworKyAgKHZvaWQpIHN1ZmZpeDsKKyB9 CisgCisgCisgc3RhdGljIHZvaWQKKyBtZF9zdG9wX2RlYnVnKCBnY3J5X21kX2hkX3QgbWQgKQor IHsKKy0gIGlmICggbWQtPmN0eC0+ZGVidWcgKQorLSAgICB7CistICAgICAgaWYgKCBtZC0+YnVm cG9zICkKKy0gICAgICAgIG1kX3dyaXRlICggbWQsIE5VTEwsIDAgKTsKKy0gICAgICBmY2xvc2Ug KG1kLT5jdHgtPmRlYnVnKTsKKy0gICAgICBtZC0+Y3R4LT5kZWJ1ZyA9IE5VTEw7CistICAgIH0K Ky0KKy0gIHsgIC8qIGEga2x1ZGdlIHRvIHB1bGwgaW4gdGhlIF9fbXVsZGkzIGZvciBTb2xhcmlz ICovCistICAgIHZvbGF0aWxlIHUzMiBhID0gKHUzMikodWludHB0cl90KW1kOworLSAgICB2b2xh dGlsZSB1NjQgYiA9IDQyOworLSAgICB2b2xhdGlsZSB1NjQgYzsKKy0gICAgYyA9IGEgKiBiOwor LSAgICAodm9pZCljOworLSAgfQorKyAgKHZvaWQpIG1kOworIH0KKyAKKyAKZGlmZiAtLWdpdCBh L2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDRfYXJpYS5wYXRjaCBiL2dydWItY29y ZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmIyZjZlODg0ZgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29y ZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApAQCAtMCwwICsxLDIyIEBACitk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvY2lwaGVyL2FyaWEuYyBiL2dydWIt Y29yZS9saWIvbGliZ2NyeXB0L2NpcGhlci9hcmlhLmMKK2luZGV4IGJjMmQ0Mzg0MS4uY2ZjNWE3 NGYyIDEwMDY0NAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvYXJp YS5jCisrKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9hcmlhLmMKK0BA IC0xMDEzLDcgKzEwMTMsNyBAQCBhcmlhX2NyeXB0KEFSSUFfY29udGV4dCAqY3R4LCBieXRlICpv dXQsIGNvbnN0IGJ5dGUgKmluLAorICAgcmV0dXJuIDQgKiBzaXplb2Yodm9pZCAqKSArIDQgKiBz aXplb2YodTMyKTsgLyogc3RhY2sgYnVybiBkZXB0aCAqLworIH0KKyAKKy11bnNpZ25lZCBpbnQK KytzdGF0aWMgdW5zaWduZWQgaW50CisgYXJpYV9lbmNyeXB0KHZvaWQgKmMsIGJ5dGUgKm91dGJ1 ZiwgY29uc3QgYnl0ZSAqaW5idWYpCisgeworICAgQVJJQV9jb250ZXh0ICpjdHggPSAoQVJJQV9j b250ZXh0ICopYzsKK0BAIC0xMDIzLDcgKzEwMjMsNyBAQCBhcmlhX2VuY3J5cHQodm9pZCAqYywg Ynl0ZSAqb3V0YnVmLCBjb25zdCBieXRlICppbmJ1ZikKKyAgIHJldHVybiBhcmlhX2NyeXB0IChj dHgsIG91dGJ1ZiwgaW5idWYsIGN0eC0+ZW5jX2tleSk7CisgfQorIAorLXVuc2lnbmVkIGludAor K3N0YXRpYyB1bnNpZ25lZCBpbnQKKyBhcmlhX2RlY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVm LCBjb25zdCBieXRlICppbmJ1ZikKKyB7CisgICBBUklBX2NvbnRleHQgKmN0eCA9IChBUklBX2Nv bnRleHQgKiljOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8w NV9kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNo ZXMvMDVfZGlzYWJsZV9yc2Ffc2hha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5jOTkxMWQ0YWQKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xp YmdjcnlwdC1wYXRjaGVzLzA1X2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoCkBAIC0wLDAgKzEsMzYg QEAKK2RpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9jaXBoZXIvcnNhLWNvbW1v bi5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvY2lwaGVyL3JzYS1jb21tb24uYworaW5kZXgg MTkyMGVlZGQ4Li5jNDgxOTIwOGIgMTAwNjQ0CistLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlw dC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmMKKysrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LWdydWIvY2lwaGVyL3JzYS1jb21tb24uYworQEAgLTkxMiw2ICs5MTIsNyBAQCBfZ2NyeV9yc2Ff cHNzX2VuY29kZSAoZ2NyeV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywgaW50 IGFsZ28sCisgICBtZW1jcHkgKHAsIHNhbHQsIHNhbHRsZW4pOworIAorICAgLyogU3RlcCA5OiBk Ym1hc2sgPSBNR0YoSCwgZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisgICBpZiAoYWxn byA9PSBHQ1JZX01EX1NIQUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1NikKKyAgICAg eworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTkyNSw2ICs5MjYsNyBAQCBfZ2NyeV9y c2FfcHNzX2VuY29kZSAoZ2NyeV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywg aW50IGFsZ28sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEp OworICAgICB9CisgICBlbHNlCisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBo bGVuIC0gMSwgaCwgaGxlbiwgYWxnbyk7CisgCisgICAvKiBTdGVwIDEwOiBtYXNrZWREQiA9IERC IF4gZGJNYXNrICovCitAQCAtMTA4Niw2ICsxMDg4LDcgQEAgX2djcnlfcnNhX3Bzc192ZXJpZnkg KGdjcnlfbXBpX3QgdmFsdWUsIGludCBoYXNoZWRfYWxyZWFkeSwKKyAgICAgfQorIAorICAgLyog U3RlcCA3OiBkYm1hc2sgPSBNR0YoSCwgZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisg ICBpZiAoYWxnbyA9PSBHQ1JZX01EX1NIQUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1 NikKKyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTk5OSw2ICsxMTAyLDcg QEAgX2djcnlfcnNhX3Bzc192ZXJpZnkgKGdjcnlfbXBpX3QgdmFsdWUsIGludCBoYXNoZWRfYWxy ZWFkeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlvdiwgMSk7Cisg ICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgbWdmMSAoZGJtYXNrLCBlbWxlbiAtIGhsZW4g LSAxLCBoLCBobGVuLCBhbGdvKTsKKyAKKyAgIC8qIFN0ZXAgODogbWFza2VkREIgPSBEQiBeIGRi TWFzay4gICovCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0 LWludC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaAppbmRleCAx YjQ0OTI4MTguLjcwMTA4MTY4MCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQv c3JjL2djcnlwdC1pbnQuaAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0 LWludC5oCkBAIC0yOTcsNTcgKzI5Nyw2IEBAIHZvaWQgX2djcnlfc2V0X2xvZ19oYW5kbGVyIChn Y3J5X2hhbmRsZXJfbG9nX3QgZiwgdm9pZCAqb3BhcXVlKTsKIHZvaWQgX2djcnlfc2V0X2dldHRl eHRfaGFuZGxlciAoY29uc3QgY2hhciAqKCpmKShjb25zdCBjaGFyKikpOwogdm9pZCBfZ2NyeV9z ZXRfcHJvZ3Jlc3NfaGFuZGxlciAoZ2NyeV9oYW5kbGVyX3Byb2dyZXNzX3QgY2IsIHZvaWQgKmNi X2RhdGEpOwogCi0MCi0vKiBSZXR1cm4gYSBwb2ludGVyIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcg YSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAgIGNvZGUgaW4gdGhlIGVycm9yIHZhbHVlIEVS Ui4gICovCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKgotX2djcnlfc3RyZXJyb3IgKGdjcnlf ZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdfc3RyZXJyb3IgKGVycik7Ci19Ci0KLS8qIFJl dHVybiBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgY29udGFpbmluZyBhIGRlc2NyaXB0aW9uIG9mIHRo ZSBlcnJvcgotICAgc291cmNlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlu bGluZSBjb25zdCBjaGFyICoKLV9nY3J5X3N0cnNvdXJjZSAoZ2NyeV9lcnJvcl90IGVycikKLXsK LSAgcmV0dXJuIGdwZ19zdHJzb3VyY2UgKGVycik7Ci19Ci0KLS8qIFJldHJpZXZlIHRoZSBlcnJv ciBjb2RlIGZvciB0aGUgc3lzdGVtIGVycm9yIEVSUi4gIFRoaXMgcmV0dXJucwotICAgR1BHX0VS Ul9VTktOT1dOX0VSUk5PIGlmIHRoZSBzeXN0ZW0gZXJyb3IgaXMgbm90IG1hcHBlZCAocmVwb3J0 Ci0gICB0aGlzKS4gICovCi1zdGF0aWMgaW5saW5lIGdjcnlfZXJyX2NvZGVfdAotX2djcnlfZXJy X2NvZGVfZnJvbV9lcnJubyAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9t X2Vycm5vIChlcnIpOwotfQotCi0vKiBSZXRyaWV2ZSB0aGUgc3lzdGVtIGVycm9yIGZvciB0aGUg ZXJyb3IgY29kZSBDT0RFLiAgVGhpcyByZXR1cm5zIDAKLSAgIGlmIENPREUgaXMgbm90IGEgc3lz dGVtIGVycm9yIGNvZGUuICAqLwotc3RhdGljIGlubGluZSBpbnQKLV9nY3J5X2Vycl9jb2RlX3Rv X2Vycm5vIChnY3J5X2Vycl9jb2RlX3QgY29kZSkKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV90 b19lcnJubyAoY29kZSk7Ci19Ci0KLS8qIFJldHVybiBhbiBlcnJvciB2YWx1ZSB3aXRoIHRoZSBl cnJvciBzb3VyY2UgU09VUkNFIGFuZCB0aGUgc3lzdGVtCi0gICBlcnJvciBFUlIuICAqLwotc3Rh dGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5X2Vycl9tYWtlX2Zyb21fZXJybm8gKGdwZ19l cnJfc291cmNlX3Qgc291cmNlLCBpbnQgZXJyKQotewotICByZXR1cm4gZ3BnX2Vycl9tYWtlX2Zy b21fZXJybm8gKHNvdXJjZSwgZXJyKTsKLX0KLQotCi0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUg d2l0aCB0aGUgc3lzdGVtIGVycm9yIEVSUi4gICovCi1zdGF0aWMgaW5saW5lIGdjcnlfZXJyb3Jf dAotX2djcnlfZXJyb3JfZnJvbV9lcnJubyAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJv ciAoZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGVycikpOwotfQotCi0KIAwKIGdwZ19lcnJfY29k ZV90IF9nY3J5X3NleHBfbmV3IChnY3J5X3NleHBfdCAqcmV0c2V4cCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBsZW5ndGgsCmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmggYi9ncnVi LWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKaW5kZXggNDI4MzU0OTNkLi4z MGJhNjk4MWIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvY2lwaGVy X3dyYXAuaAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgK QEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgR1JVQl9HQ1JZX1dSQVBfSEVBREVSCiAjZGVmaW5l IEdSVUJfR0NSWV9XUkFQX0hFQURFUiAxCiAKKyNkZWZpbmUgVVNFX1NIQTUxMiAxCisKICNpbmNs dWRlIDxncnViL3R5cGVzLmg+CiAjaW5jbHVkZSA8Z3J1Yi9tbS5oPgogI2luY2x1ZGUgPGdydWIv bWlzYy5oPgpAQCAtMzUsMTAgKzM3LDEyIEBACiAjdW5kZWYgX19HTlVfTElCUkFSWV9fCiAjZGVm aW5lIF9fR05VX0xJQlJBUllfXyAxCiAKKyN1bmRlZiBIQVZFX1U2NAorI3VuZGVmIFU2NF9DCisj ZGVmaW5lIEhBVkVfVTY0IDEKKyNkZWZpbmUgVUlOVDY0X0MoYykgKGMgIyMgVUxMKQogI2RlZmlu ZSBVNjRfQyhjKSAoYyAjIyBVTEwpCiAKLSNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9fQkxJTkRJTkcg ICAgKDEgPDwgMCkKLQogI2RlZmluZSBDSVBIRVJfSU5GT19OT19XRUFLX0tFWSAgICAxCiAKICNk ZWZpbmUgSEFWRV9VNjRfVFlQRURFRiAxCkBAIC03NCw0ICs3OCwxNyBAQCBfZ2NyeV9maXBzX21v ZGUgKHZvaWQpCiAKICNkZWZpbmUgZ2NyeV9tcGlfbW9kIF9nY3J5X21waV9tb2QKIAorI2RlZmlu ZSBzdHJ0b2wgZ3J1Yl9zdHJ0b2wKKyNkZWZpbmUgc3RydG91bCBncnViX3N0cnRvdWwKKyNkZWZp bmUgYXRvaShucHRyKSAoc3RydG9sKChucHRyKSwgTlVMTCwgMTApKQorCisjZGVmaW5lIHN0cGNw eSBncnViX3N0cGNweQorCisjZGVmaW5lIHNwZWNfZnJvbV9hbGdvIGdydWJfY3J5cHRvX2xvb2t1 cF9tZF9ieV9hbGdvCisKK3N0cnVjdCBnY3J5X2NzaGFrZV9jdXN0b21pemF0aW9uOworCitncGdf ZXJyX2NvZGVfdAorX2djcnlfY3NoYWtlX2N1c3RvbWl6ZSAodm9pZCAqY29udGV4dCwgc3RydWN0 IGdjcnlfY3NoYWtlX2N1c3RvbWl6YXRpb24gKnApOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlw dF93cmFwL21lbS5jCmluZGV4IDc0YzZlYWZlNS4uZTk0N2RjOTk4IDEwMDY0NAotLS0gYS9ncnVi LWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jCisrKyBiL2dydWItY29yZS9saWIvbGliZ2Ny eXB0X3dyYXAvbWVtLmMKQEAgLTQ2LDYgKzQ2LDE1IEBAIGdjcnlfeGNhbGxvYyAoc2l6ZV90IG4s IHNpemVfdCBtKQogICByZXR1cm4gcmV0OwogfQogCit2b2lkICoKK19nY3J5X2NhbGxvYyAoc2l6 ZV90IG4sIHNpemVfdCBtKQoreworICBzaXplX3Qgc3o7CisgIGlmIChncnViX211bCAobiwgbSwg JnN6KSkKKyAgICByZXR1cm4gTlVMTDsKKyAgcmV0dXJuIGdydWJfemFsbG9jIChzeik7Cit9CisK IHZvaWQgKgogZ2NyeV94bWFsbG9jX3NlY3VyZSAoc2l6ZV90IG4pCiB7CkBAIC02OSw2ICs3OCwx NSBAQCBnY3J5X3hjYWxsb2Nfc2VjdXJlIChzaXplX3Qgbiwgc2l6ZV90IG0pCiAgIHJldHVybiBy ZXQ7CiB9CiAKK3ZvaWQgKgorX2djcnlfY2FsbG9jX3NlY3VyZSAoc2l6ZV90IG4sIHNpemVfdCBt KQoreworICBzaXplX3Qgc3o7CisgIGlmIChncnViX211bCAobiwgbSwgJnN6KSkKKyAgICByZXR1 cm4gTlVMTDsKKyAgcmV0dXJuIGdydWJfemFsbG9jIChzeik7Cit9CisKIHZvaWQgKgogZ2NyeV94 bWFsbG9jIChzaXplX3QgbikKIHsKQEAgLTg5LDEwICsxMDcsMTAgQEAgZ2NyeV94cmVhbGxvYyAo dm9pZCAqYSwgc2l6ZV90IG4pCiAgIHJldHVybiByZXQ7CiB9CiAKLXZvaWQKLV9nY3J5X2NoZWNr X2hlYXAgKGNvbnN0IHZvaWQgKmEgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQordm9pZCAqCitf Z2NyeV9yZWFsbG9jICh2b2lkICphLCBzaXplX3QgbikKIHsKLQorICByZXR1cm4gZ3J1Yl9yZWFs bG9jIChhLCBuKTsKIH0KIAogdm9pZCBfZ2NyeV9sb2dfcHJpbnRmIChjb25zdCBjaGFyICpmbXQs IC4uLikKQEAgLTExMyw2ICsxMzEsMjQgQEAgdm9pZCBfZ2NyeV9sb2dfcHJpbnRmIChjb25zdCBj aGFyICpmbXQsIC4uLikKICAgICB9CiB9CiAKK3ZvaWQgX2djcnlfbG9nX2RlYnVnIChjb25zdCBj aGFyICpmbXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1ZyA9 IGdydWJfZW52X2dldCAoImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJuOwor CisgIGlmIChncnViX3N0cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChkZWJ1 ZywgImdjcnlwdCIpKQorICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiZ2NyeXB0OiAiKTsKKyAg ICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3Mp OworICAgICAgdmFfZW5kIChhcmdzKTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9 CisKIHZvaWQgX2djcnlfbG9nX2J1ZyAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAgIHZhX2xp c3QgYXJnczsKQEAgLTEyNiw5ICsxNjIsOSBAQCB2b2lkIF9nY3J5X2xvZ19idWcgKGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogfQogCiBnY3J5X2Vycl9jb2RlX3QKLWdwZ19lcnJvcl9mcm9tX3N5c2Vy cm9yICh2b2lkKQorZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBlcnIpCiB7Ci0gIHN3aXRj aCAoZ3J1Yl9lcnJubykKKyAgc3dpdGNoIChlcnIpCiAgICAgewogICAgIGNhc2UgR1JVQl9FUlJf Tk9ORToKICAgICAgIHJldHVybiBHUEdfRVJSX05PX0VSUk9SOwpAQCAtMTM4LDMgKzE3NCw0MCBA QCBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCkKICAgICAgIHJldHVybiBHUEdfRVJSX0dF TkVSQUw7CiAgICAgfQogfQorCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX3N5c2Vy cm9yICh2b2lkKQoreworICByZXR1cm4gZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8oZ3J1Yl9lcnJu byk7Cit9CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fc3lzZXJyb3IgKHZv aWQpCit7CisgIHJldHVybiBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAoKTsKK30KKwordm9pZCBf Z2NyeV9mYXRhbF9lcnJvcihpbnQgcmMsIGNvbnN0IGNoYXIgKnRleHQgKQoreworICBncnViX2Zh dGFsKCJnY3J5IGZhdGFsICVkOiAlcyIsIHJjLCB0ZXh0KTsKK30KKworCit2b2lkIF9nY3J5X3Jh bmRvbWl6ZSAodm9pZCAqYnVmZmVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBzaXplX3QgbGVu Z3RoIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgICAgIGVudW0g Z2NyeV9yYW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIGdy dWJfZmF0YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVycyIpOworfQorCisK K3ZvaWQgKl9nY3J5X3JhbmRvbV9ieXRlc19zZWN1cmUgKHNpemVfdCBuYnl0ZXMgX19hdHRyaWJ1 dGVfXygodW51c2VkKSksIGVudW0gZ2NyeV9yYW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVf XygodW51c2VkKSkpCit7CisgIGdydWJfZmF0YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5k b20gbnVtYmVycyIpOworfQorCitjb25zdCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90 IGVycikKK3sKKyAgc3RhdGljIGNoYXIgYnVmWzI1Nl07CisgIGdydWJfc25wcmludGYoYnVmLCBz aXplb2YoYnVmKSAtIDUsICJncGcgZXJyb3IgJWRcbiIsIGVycik7CisgIHJldHVybiBidWY7Cit9 CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmggYi9ncnVi LWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKaW5kZXggMmYzZTg2NTQ5Li43Mzc3NWM5 Y2EgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvcG9zaXhfd3JhcC9zeXMvdHlwZXMuaAorKysg Yi9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKQEAgLTM5LDEyICszOSwxNiBA QCB0eXBlZGVmIGdydWJfaW50MzJfdCBpbnQzMl90OwogdHlwZWRlZiBncnViX2ludDY0X3QgaW50 NjRfdDsKIAogI2RlZmluZSBIQVZFX1U2NF9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX1U2 NCAxCiB0eXBlZGVmIGdydWJfdWludDY0X3QgdTY0OwogI2RlZmluZSBIQVZFX1UzMl9UWVBFREVG IDEKKyNkZWZpbmUgSEFWRV9UWVBFX1UzMiAxCiB0eXBlZGVmIGdydWJfdWludDMyX3QgdTMyOwog I2RlZmluZSBIQVZFX1UxNl9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX1UxNiAxCiB0eXBl ZGVmIGdydWJfdWludDE2X3QgdTE2OwogI2RlZmluZSBIQVZFX0JZVEVfVFlQRURFRiAxCisjZGVm aW5lIEhBVkVfVFlQRV9CWVRFIDEKIHR5cGVkZWYgZ3J1Yl91aW50OF90IGJ5dGU7CiAKIHR5cGVk ZWYgZ3J1Yl9hZGRyX3QgdWludHB0cl90OwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi94emVt YmVkL3h6X2RlY19zdHJlYW0uYyBiL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFt LmMKaW5kZXggODMyZDhhZjlhLi5mMmRkNDJkYzIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIv eHplbWJlZC94el9kZWNfc3RyZWFtLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2Rl Y19zdHJlYW0uYwpAQCAtNDI1LDkgKzQyNSw5IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBoYXNoX3Zh bGlkYXRlKHN0cnVjdCB4el9kZWMgKnMsIHN0cnVjdCB4el9idWYgKmIsCiAKICNpZm5kZWYgR1JV Ql9FTUJFRF9ERUNPTVBSRVNTT1IKIAlpZiAocy0+aGFzaCkKLQkJcy0+aGFzaC0+aW5pdChzLT5o YXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CiAJaWYg KHMtPmNyYzMyKQotCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0KTsKKwkJcy0+Y3Jj MzItPmluaXQocy0+Y3JjMzJfY29udGV4dCwgMCk7CiAjZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFs dWUgPSAwOwogCXMtPnBvcyA9IDA7CkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIGVudW0geHpf cmV0IGRlY19zdHJlYW1faGVhZGVyKHN0cnVjdCB4el9kZWMgKnMpCiAJCXMtPmNyYzMyX2NvbnRl eHQgPSBrbWFsbG9jKHMtPmNyYzMyLT5jb250ZXh0c2l6ZSwgR0ZQX0tFUk5FTCk7CiAJCWlmIChz LT5jcmMzMl9jb250ZXh0ID09IE5VTEwpCiAJCQlyZXR1cm4gWFpfTUVNTElNSVRfRVJST1I7Ci0J CXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRleHQpOworCQlzLT5jcmMzMi0+aW5pdChzLT5j cmMzMl9jb250ZXh0LCAwKTsKIAl9CiAjZW5kaWYKIApAQCAtNTMxLDkgKzUzMSw5IEBAIHN0YXRp YyBlbnVtIHh6X3JldCBkZWNfc3RyZWFtX2hlYWRlcihzdHJ1Y3QgeHpfZGVjICpzKQogCQkJCXJl dHVybiBYWl9NRU1MSU1JVF9FUlJPUjsKIAkJCX0KIAotCQkJcy0+aGFzaC0+aW5pdChzLT5oYXNo X2NvbnRleHQpOwotCQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCk7 Ci0gCQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCk7CisJCQlzLT5o YXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CisJCQlzLT5oYXNoLT5pbml0KHMtPmluZGV4 Lmhhc2guaGFzaF9jb250ZXh0LCAwKTsKKyAJCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhhc2gu aGFzaF9jb250ZXh0LCAwKTsKIAkJfQogI2VuZGlmCiAJfQpAQCAtMTAxNCw5ICsxMDE0LDkgQEAg dm9pZCB4el9kZWNfcmVzZXQoc3RydWN0IHh6X2RlYyAqcykKICNpZm5kZWYgR1JVQl9FTUJFRF9E RUNPTVBSRVNTT1IKIAlpZiAocy0+aGFzaCkKIAl7Ci0JCXMtPmhhc2gtPmluaXQocy0+aGFzaF9j b250ZXh0KTsKLQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCk7Ci0J CXMtPmhhc2gtPmluaXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5p bml0KHMtPmhhc2hfY29udGV4dCwgMCk7CisJCXMtPmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5o YXNoX2NvbnRleHQsIDApOworCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhhc2guaGFzaF9jb250 ZXh0LCAwKTsKIAl9CiAjZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFsdWUgPSAwOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ncnViL2NyeXB0by5oIGIvaW5jbHVkZS9ncnViL2NyeXB0by5oCmluZGV4IDMx Yzg3YzMwMi4uMjViMTE4ODk4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvY3J5cHRvLmgKKysr IGIvaW5jbHVkZS9ncnViL2NyeXB0by5oCkBAIC02NSw3ICs2NSwzMiBAQCB0eXBlZGVmIGVudW0K ICAgICBHUEdfRVJSX1dST05HX1BVQktFWV9BTEdPLAogICAgIEdQR19FUlJfT1VUX09GX01FTU9S WSwKICAgICBHUEdfRVJSX1RPT19MQVJHRSwKLSAgICBHUEdfRVJSX0VOT01FTQorICAgIEdQR19F UlJfRU5PTUVNLAorICAgIEdQR19FUlJfQ0hFQ0tTVU0sCisgICAgR1BHX0VSUl9JTlZfTEVOR1RI LAorICAgIEdQR19FUlJfVkFMVUVfTk9UX0ZPVU5ELAorICAgIEdQR19FUlJfRVJBTkdFLAorICAg IEdQR19FUlJfSU5WX0RBVEEsCisgICAgR1BHX0VSUl9FTkNPRElOR19QUk9CTEVNLAorICAgIEdQ R19FUlJfQlVGRkVSX1RPT19TSE9SVCwKKyAgICBHUEdfRVJSX1NZTlRBWCwKKyAgICBHUEdfRVJS X1NFWFBfSU5WX0xFTl9TUEVDLAorICAgIEdQR19FUlJfU0VYUF9VTk1BVENIRURfREgsCisgICAg R1BHX0VSUl9TRVhQX1VOTUFUQ0hFRF9QQVJFTiwKKyAgICBHUEdfRVJSX1NFWFBfWkVST19QUkVG SVgsCisgICAgR1BHX0VSUl9TRVhQX05FU1RFRF9ESCwKKyAgICBHUEdfRVJSX1NFWFBfVU5FWFBF Q1RFRF9QVU5DLAorICAgIEdQR19FUlJfU0VYUF9CQURfQ0hBUkFDVEVSLAorICAgIEdQR19FUlJf U0VYUF9OT1RfQ0FOT05JQ0FMLAorICAgIEdQR19FUlJfU0VYUF9TVFJJTkdfVE9PX0xPTkcsCisg ICAgR1BHX0VSUl9TRVhQX0JBRF9RVU9UQVRJT04sCisgICAgR1BHX0VSUl9TRVhQX09ERF9IRVhf TlVNQkVSUywKKyAgICBHUEdfRVJSX1NFWFBfQkFEX0hFWF9DSEFSLAorICAgIEdQR19FUlJfTElN SVRfUkVBQ0hFRCwKKyAgICBHUEdfRVJSX0VPRiwKKyAgICBHUEdfRVJSX0JBRF9EQVRBLAorICAg IEdQR19FUlJfRUlOVkFMLAorICAgIEdQR19FUlJfSU5WX1NUQVRFLAogICB9IGdwZ19lcnJfY29k ZV90OwogdHlwZWRlZiBncGdfZXJyX2NvZGVfdCBncGdfZXJyb3JfdDsKIHR5cGVkZWYgZ3BnX2Vy cm9yX3QgZ2NyeV9lcnJvcl90OwpAQCAtODQsMzcgKzEwOSw2MCBAQCBlbnVtIGdjcnlfY2lwaGVy X21vZGVzCiAgIH07CiAjZW5kaWYKIAorLyogRXh0cmEgYWxnbyBJRHMgbm90IGNvbWluZyBmcm9t IGdjcnlwdC4gICovCisjZGVmaW5lIEdDUllfTURfQURMRVIzMiAxMDMwMQorI2RlZmluZSBHQ1JZ X01EX0NSQzY0IDEwMzAyCisKIC8qIERvbid0IHJlbHkgb24gdGhpcy4gQ2hlY2shICAqLwogI2Rl ZmluZSBHUlVCX0NSWVBUT19NQVhfTURMRU4gNjQKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX0NJ UEhFUl9CTE9DS1NJWkUgMTYKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX01EX0NPTlRFWFRfU0la RSAyNTYKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9zZXRrZXkgZnVuY3Rpb24uICAqLworc3Ry dWN0IGNpcGhlcl9idWxrX29wczsKKwogdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X2Np cGhlcl9zZXRrZXlfdCkgKHZvaWQgKmMsCiAJCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5 LAotCQkJCQkJIHVuc2lnbmVkIGtleWxlbik7CisJCQkJCQkgdW5zaWduZWQga2V5bGVuLAorCQkJ CQkJIHN0cnVjdCBjaXBoZXJfYnVsa19vcHMgKmJ1bGtfb3BzKTsKIAogLyogVHlwZSBmb3IgdGhl IGNpcGhlcl9lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVy X2VuY3J5cHRfdCkgKHZvaWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwK LQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRlZiB1bnNpZ25l ZCBpbnQgKCpnY3J5X2NpcGhlcl9lbmNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkgICAgICAgdW5z aWduZWQgY2hhciAqb3V0YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5i dWYpOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX2RlY3J5cHQgZnVuY3Rpb24uICAqLwotdHlw ZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfZGVjcnlwdF90KSAodm9pZCAqYywKLQkJCQkgICAgICAg dW5zaWduZWQgY2hhciAqb3V0YnVmLAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpp bmJ1Zik7Cit0eXBlZGVmIHVuc2lnbmVkIGludCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRfdCkgKHZv aWQgKmMsCisJCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAgICAgICBj b25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3Rl bmNyeXB0IGZ1bmN0aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZW5jcnlw dF90KSAodm9pZCAqYywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1 Yl9zaXplX3Qgbik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RkZWNyeXB0IGZ1bmN0aW9u LiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90KSAodm9pZCAqYywK IAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qgbik7CisK K3R5cGVkZWYgdm9pZCAoKnNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3QpKGNvbnN0IGNoYXIgKmRvbWFp biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGdvLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2hhdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycmRlc2Mp OworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbnZleSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRv IGEgY2lwaGVyLiAgKi8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9zZXRf ZXh0cmFfaW5mb190KQorICAgICAodm9pZCAqYywgaW50IHdoYXQsIGNvbnN0IHZvaWQgKmJ1ZmZl ciwgZ3J1Yl9zaXplX3QgYnVmbGVuKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBzZXQgYW4gSVYg ZGlyZWN0bHkgaW4gdGhlIGFsZ29yaXRobSBtb2R1bGUuICAqLwordHlwZWRlZiB2b2lkICgqZ2Ny eV9jaXBoZXJfc2V0aXZfZnVuY190KSh2b2lkICpjLCBjb25zdCBncnViX3VpbnQ4X3QgKml2LCBn cnViX3NpemVfdCBpdmxlbik7CisKKy8qIERlZmluaXRpb24gb2YgdGhlIHNlbGZ0ZXN0IGZ1bmN0 aW9ucy4gICovCit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9zZWxmdGVzdF9mdW5jX3Qp CisgICAgIChpbnQgYWxnbywgaW50IGV4dGVuZGVkLCBzZWxmdGVzdF9yZXBvcnRfZnVuY190IHJl cG9ydCk7CiAKIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiB7CkBAIC0xMjUs OSArMTczLDE0IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiAvKiBNb2R1 bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIGNpcGhlcnMuICAqLwogdHlwZWRlZiBzdHJ1 Y3QgZ2NyeV9jaXBoZXJfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1bnNp Z25lZCBpbnQgZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZsYWdz OwogICBjb25zdCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKLSAgZ2NyeV9j aXBoZXJfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWNfdCAq b2lkczsKICAgZ3J1Yl9zaXplX3QgYmxvY2tzaXplOwogICBncnViX3NpemVfdCBrZXlsZW47CiAg IGdydWJfc2l6ZV90IGNvbnRleHRzaXplOwpAQCAtMTM2LDYgKzE4OSwxMCBAQCB0eXBlZGVmIHN0 cnVjdCBnY3J5X2NpcGhlcl9zcGVjCiAgIGdjcnlfY2lwaGVyX2RlY3J5cHRfdCBkZWNyeXB0Owog ICBnY3J5X2NpcGhlcl9zdGVuY3J5cHRfdCBzdGVuY3J5cHQ7CiAgIGdjcnlfY2lwaGVyX3N0ZGVj cnlwdF90IHN0ZGVjcnlwdDsKKyAgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3Q7CisgIGdj cnlfY2lwaGVyX3NldF9leHRyYV9pbmZvX3Qgc2V0X2V4dHJhX2luZm87CisgIGdjcnlfY2lwaGVy X3NldGl2X2Z1bmNfdCBzZXRpdjsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBjaGFyICpt b2RuYW1lOwogI2VuZGlmCkBAIC0xNDMsNyArMjAwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9j aXBoZXJfc3BlYwogfSBnY3J5X2NpcGhlcl9zcGVjX3Q7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF9p bml0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAodm9pZCAq Yyk7Cit0eXBlZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMsIHVuc2lnbmVkIGlu dCBmbGFncyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF93cml0ZSBmdW5jdGlvbi4gICovCiB0eXBl ZGVmIHZvaWQgKCpnY3J5X21kX3dyaXRlX3QpICh2b2lkICpjLCBjb25zdCB2b2lkICpidWYsIGdy dWJfc2l6ZV90IG5ieXRlcyk7CkBAIC0xNjIsMTYgKzIxOSwyNCBAQCB0eXBlZGVmIHN0cnVjdCBn Y3J5X21kX29pZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIG1l c3NhZ2UgZGlnZXN0cy4gICovCiB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKIHsKKyAgaW50 IGFsZ287CisgIHN0cnVjdCB7CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7CisgICAgdW5z aWduZWQgaW50IGZpcHM6MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hhciAqbmFtZTsKLSAgdW5z aWduZWQgY2hhciAqYXNub2lkOworICBjb25zdCB1bnNpZ25lZCBjaGFyICphc25vaWQ7CiAgIGlu dCBhc25sZW47Ci0gIGdjcnlfbWRfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9tZF9v aWRfc3BlY190ICpvaWRzOwogICBncnViX3NpemVfdCBtZGxlbjsKICAgZ2NyeV9tZF9pbml0X3Qg aW5pdDsKICAgZ2NyeV9tZF93cml0ZV90IHdyaXRlOwogICBnY3J5X21kX2ZpbmFsX3QgZmluYWw7 CiAgIGdjcnlfbWRfcmVhZF90IHJlYWQ7CisgIHZvaWQgKmV4dHJhY3Q7CisgIHZvaWQgKmhhc2hf YnVmZmVyczsKICAgZ3J1Yl9zaXplX3QgY29udGV4dHNpemU7IC8qIGFsbG9jYXRlIHRoaXMgYW1v dW50IG9mIGNvbnRleHQgKi8KKwogICAvKiBCbG9jayBzaXplLCBuZWVkZWQgZm9yIEhNQUMuICAq LwogICBncnViX3NpemVfdCBibG9ja3NpemU7CiAjaWZkZWYgR1JVQl9VVElMCkBAIC0xODAsNTQg KzI0NSwxMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiAgIHN0cnVjdCBnY3J5X21k X3NwZWMgKm5leHQ7CiB9IGdjcnlfbWRfc3BlY190OwogCit0eXBlZGVmIHN0cnVjdCBnY3J5X21k X2hhbmRsZSpnY3J5X21kX2hkX3Q7CisKIHN0cnVjdCBnY3J5X21waTsKIHR5cGVkZWYgc3RydWN0 IGdjcnlfbXBpICpnY3J5X21waV90OwogCitzdHJ1Y3QgZ2NyeV9zZXhwOwordHlwZWRlZiBzdHJ1 Y3QgZ2NyeV9zZXhwICpnY3J5X3NleHBfdDsKKworCisjZGVmaW5lIFBVQktFWV9GTEFHX05PX0JM SU5ESU5HICAgICgxIDw8IDApCisjZGVmaW5lIFBVQktFWV9GTEFHX1JGQzY5NzkgICAgICAgICgx IDw8IDEpCisjZGVmaW5lIFBVQktFWV9GTEFHX0ZJWEVETEVOICAgICAgICgxIDw8IDIpCisjZGVm aW5lIFBVQktFWV9GTEFHX0xFR0FDWVJFU1VMVCAgICgxIDw8IDMpCisjZGVmaW5lIFBVQktFWV9G TEFHX1JBV19GTEFHICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFBVQktFWV9GTEFHX1RSQU5TSUVO VF9LRVkgICgxIDw8IDUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9YOTMxICAgICAgICgxIDw8 IDYpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2ICAgICgxIDw8IDcpCisjZGVmaW5l IFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2XzIgICgxIDw8IDgpCisjZGVmaW5lIFBVQktFWV9GTEFH X1BBUkFNICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIFBVQktFWV9GTEFHX0NPTVAgICAgICAg ICAgICgxIDw8IDEwKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT0NPTVAgICAgICAgICAoMSA8PCAx MSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfRUREU0EgICAgICAgICAgKDEgPDwgMTIpCisjZGVmaW5l IFBVQktFWV9GTEFHX0dPU1QgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBQVUJLRVlfRkxB R19OT19LRVlURVNUICAgICAoMSA8PCAxNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfREpCX1RXRUFL ICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1NNMiAgICAgICAgICAgICgxIDw8 IDE2KQorI2RlZmluZSBQVUJLRVlfRkxBR19QUkVIQVNIICAgICAgICAoMSA8PCAxNykKKworZW51 bSBwa19vcGVyYXRpb24KKyAgeworICAgIFBVQktFWV9PUF9FTkNSWVBULAorICAgIFBVQktFWV9P UF9ERUNSWVBULAorICAgIFBVQktFWV9PUF9TSUdOLAorICAgIFBVQktFWV9PUF9WRVJJRlkKKyAg fTsKKworZW51bSBwa19lbmNvZGluZworICB7CisgICAgUFVCS0VZX0VOQ19SQVcsCisgICAgUFVC S0VZX0VOQ19QS0NTMSwKKyAgICBQVUJLRVlfRU5DX1BLQ1MxX1JBVywKKyAgICBQVUJLRVlfRU5D X09BRVAsCisgICAgUFVCS0VZX0VOQ19QU1MsCisgICAgUFVCS0VZX0VOQ19VTktOT1dOCisgIH07 CisKK3N0cnVjdCBwa19lbmNvZGluZ19jdHgKK3sKKyAgZW51bSBwa19vcGVyYXRpb24gb3A7Cisg IHVuc2lnbmVkIGludCBuYml0czsKKworICBlbnVtIHBrX2VuY29kaW5nIGVuY29kaW5nOworICBp bnQgZmxhZ3M7CisKKyAgaW50IGhhc2hfYWxnbzsKKworICAvKiBmb3IgT0FFUCAqLworICB1bnNp Z25lZCBjaGFyICpsYWJlbDsKKyAgZ3J1Yl9zaXplX3QgbGFiZWxsZW47CisKKyAgLyogZm9yIFBT UyAqLworICBncnViX3NpemVfdCBzYWx0bGVuOworCisgIGludCAoKiB2ZXJpZnlfY21wKSAodm9p ZCAqb3BhcXVlLCBnY3J5X21waV90IHRtcCk7CisgIHZvaWQgKnZlcmlmeV9hcmc7Cit9OworCiAv KiBUeXBlIGZvciB0aGUgcGtfZ2VuZXJhdGUgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vy cl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgIHVu c2lnbmVkIGludCBuYml0cywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdXNlX2UsCi0JCQkJ CSAgICAgICBnY3J5X21waV90ICpza2V5LAotCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAqKnJldGZh Y3RvcnMpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChn Y3J5X3NleHBfdCBnZW5wYXJtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2NyeV9zZXhwX3QgKnJfc2tleSk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19j aGVja19zZWNyZXRfa2V5IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgq Z2NyeV9wa19jaGVja19zZWNyZXRfa2V5X3QpIChpbnQgYWxnbywKLQkJCQkJCSAgICAgICBnY3J5 X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19jaGVja19z ZWNyZXRfa2V5X3QpIChnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBw a19lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9w a19lbmNyeXB0X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcmVzYXJyLAot CQkJCQkgICAgICBnY3J5X21waV90IGRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnBrZXks Ci0JCQkJCSAgICAgIGludCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlf cGtfZW5jcnlwdF90KSAoZ2NyeV9zZXhwX3QgKnJfY2lwaCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMp OwogCiAvKiBUeXBlIGZvciB0aGUgcGtfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdj cnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAg IGdjcnlfbXBpX3QgKnJlc3VsdCwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJ ICAgICAgZ2NyeV9tcGlfdCAqc2tleSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5cGVkZWYg Z2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChnY3J5X3NleHBfdCAqcl9wbGFp biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3Nl eHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfc2lnbiBmdW5j dGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2lnbl90KSAoaW50 IGFsZ28sCi0JCQkJCSAgIGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgZ2NyeV9tcGlfdCBk YXRhLAotCQkJCQkgICBnY3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90 ICgqZ2NyeV9wa19zaWduX3QpIChnY3J5X3NleHBfdCAqcl9zaWcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsK IAogLyogVHlwZSBmb3IgdGhlIHBrX3ZlcmlmeSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlf ZXJyX2NvZGVfdCAoKmdjcnlfcGtfdmVyaWZ5X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICBnY3J5 X21waV90IGhhc2gsCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICBnY3J5 X21waV90ICpwa2V5LAotCQkJCQkgICAgIGludCAoKmNtcCkgKHZvaWQgKiwgZ2NyeV9tcGlfdCks Ci0JCQkJCSAgICAgdm9pZCAqb3BhcXVldik7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdj cnlfcGtfdmVyaWZ5X3QpIChnY3J5X3NleHBfdCBzX3NpZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsK IAogLyogVHlwZSBmb3IgdGhlIHBrX2dldF9uYml0cyBmdW5jdGlvbi4gICovCi10eXBlZGVmIHVu c2lnbmVkICgqZ2NyeV9wa19nZXRfbmJpdHNfdCkgKGludCBhbGdvLCBnY3J5X21waV90ICpwa2V5 KTsKK3R5cGVkZWYgdW5zaWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoZ2NyeV9zZXhwX3Qg a2V5cGFybXMpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGtleWdyaXAuICAq LwordHlwZWRlZiBncGdfZXJyX2NvZGVfdCAoKnBrX2NvbXBfa2V5Z3JpcF90KSAoZ2NyeV9tZF9o ZF90IG1kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Ny eV9zZXhwX3Qga2V5cGFybSk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gcXVlcnkgYW4gRUNDIGN1 cnZlIG5hbWUuICAqLwordHlwZWRlZiBjb25zdCBjaGFyICooKnBrX2dldF9jdXJ2ZV90KShnY3J5 X3NleHBfdCBrZXlwYXJtcywgaW50IGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnJfbmJpdHMpOworCisvKiBUaGUgdHlwZSB1c2Vk IHRvIHF1ZXJ5IEVDQyBjdXJ2ZSBwYXJhbWV0ZXJzIGJ5IG5hbWUuICAqLwordHlwZWRlZiBnY3J5 X3NleHBfdCAoKnBrX2dldF9jdXJ2ZV9wYXJhbV90KShjb25zdCBjaGFyICpuYW1lKTsKIAogLyog TW9kdWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMuICAqLwog dHlwZWRlZiBzdHJ1Y3QgZ2NyeV9wa19zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1Y3Qgewor ICAgIHVuc2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBzOjE7Cisg IH0gZmxhZ3M7CisgIGludCB1c2U7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0IGNoYXIg KiphbGlhc2VzOwogICBjb25zdCBjaGFyICplbGVtZW50c19wa2V5OwpAQCAtMjM1LDcgKzM2OSw2 IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfcGtfc3BlYwogICBjb25zdCBjaGFyICplbGVtZW50c19l bmM7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRzX3NpZzsKICAgY29uc3QgY2hhciAqZWxlbWVudHNf Z3JpcDsKLSAgaW50IHVzZTsKICAgZ2NyeV9wa19nZW5lcmF0ZV90IGdlbmVyYXRlOwogICBnY3J5 X3BrX2NoZWNrX3NlY3JldF9rZXlfdCBjaGVja19zZWNyZXRfa2V5OwogICBnY3J5X3BrX2VuY3J5 cHRfdCBlbmNyeXB0OwpAQCAtMjQzLDYgKzM3NiwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X3Br X3NwZWMKICAgZ2NyeV9wa19zaWduX3Qgc2lnbjsKICAgZ2NyeV9wa192ZXJpZnlfdCB2ZXJpZnk7 CiAgIGdjcnlfcGtfZ2V0X25iaXRzX3QgZ2V0X25iaXRzOworICBwa19jb21wX2tleWdyaXBfdCBj b21wX2tleWdyaXA7CisgIHBrX2dldF9jdXJ2ZV90IGdldF9jdXJ2ZTsKKyAgcGtfZ2V0X2N1cnZl X3BhcmFtX3QgZ2V0X2N1cnZlX3BhcmFtOworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNvbnN0IGNo YXIgKm1vZG5hbWU7CiAjZW5kaWYKQEAgLTM0NSw2ICs0ODIsMTAgQEAgZ3J1Yl9jcnlwdG9faGFz aCAoY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4s CiAJCSAgZ3J1Yl9zaXplX3QgaW5sZW4pOwogY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgogZ3J1Yl9j cnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY29uc3QgZ2NyeV9t ZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKTsKK2Nv bnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQgKGNvbnN0 IGNoYXIgKm9pZCk7CiAKIGdydWJfZXJyX3QKIGdydWJfY3J5cHRvX2djcnlfZXJyb3IgKGdjcnlf ZXJyX2NvZGVfdCBpbik7CkBAIC00MDgsNyArNTQ5LDM1IEBAIHZvaWQgX2djcnlfYXNzZXJ0X2Zh aWxlZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAKIHZv aWQgX2djcnlfYnVybl9zdGFjayAoaW50IGJ5dGVzKTsKIHZvaWQgX2djcnlfbG9nX2Vycm9yKCBj b25zdCBjaGFyICpmbXQsIC4uLiApICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9f LCAxLCAyKSkpOwordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pOwor dm9pZCBfX2djcnlfYnVybl9zdGFjayAodW5zaWduZWQgaW50IHNpemUpOwordm9pZCBfX2djcnlf YnVybl9zdGFja19kdW1teSAodm9pZCk7Cit2b2lkIF9nY3J5X2J1ZyggY29uc3QgY2hhciAqZmls ZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lwZW1l bW9yeSAodm9pZCAqcHRyLCBncnViX3NpemVfdCBsZW4pOwordm9pZAorX2djcnlfZmFzdF93aXBl bWVtb3J5MiAodm9pZCAqcHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pOwordW5zaWduZWQg aW50CitfZ2NyeV9jdF9tZW1lcXVhbCAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIyLCBn cnViX3NpemVfdCBsZW4pOwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9ub3RfbWVtZXF1YWwgKGNv bnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKTsKKworCitzdGF0 aWMgaW5saW5lIHVuc2lnbmVkIGludCBfZ2NyeV9nZXRfaHdfZmVhdHVyZXModm9pZCkKK3sKKyAg cmV0dXJuIDA7Cit9CiAKK3ZvaWQgKl9nY3J5X21hbGxvYyhncnViX3NpemVfdCBuKTsKK3ZvaWQg Kl9nY3J5X21hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94bWFsbG9j KGdydWJfc2l6ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qg bik7Cit2b2lkIF9nY3J5X2ZyZWUgKHZvaWQgKnApOwordm9pZCAqX2djcnlfeHJlYWxsb2MgKHZv aWQgKmEsIGdydWJfc2l6ZV90IG4pOworaW50IF9nY3J5X2lzX3NlY3VyZSAoY29uc3Qgdm9pZCAq YSk7Cit2b2lkICpfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKTsK K3ZvaWQgKl9nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBt KTsKK3ZvaWQgX2djcnlfZGl2aWRlX2J5X3plcm8gKHZvaWQpOwogCiAjaWZkZWYgR1JVQl9VVElM CiB2b2lkIGdydWJfZ2NyeV9pbml0X2FsbCAodm9pZCk7CkBAIC00MTksNCArNTg4LDExIEBAIGdy dWJfZ2V0X3JhbmRvbSAodm9pZCAqb3V0LCBncnViX3NpemVfdCBsZW4pOwogCiAjZW5kaWYKIAor dHlwZWRlZiBzdHJ1Y3QgX2dwZ3J0X2I2NHN0YXRlICpncGdydF9iNjRzdGF0ZV90OworZ3BncnRf YjY0c3RhdGVfdCBncGdydF9iNjRkZWNfc3RhcnQgKGNvbnN0IGNoYXIgKnRpdGxlKTsKK2dwZ19l cnJvcl90ICAgICAgZ3BncnRfYjY0ZGVjX3Byb2MgKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUsCisJ CQkJICAgIHZvaWQgKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9zaXplX3QgKnJfbmJ5dGVzKTsKK2dwZ19lcnJvcl90 ICAgICAgZ3BncnRfYjY0ZGVjX2ZpbmlzaCAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSk7Citjb25z dCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycik7CiAjZW5kaWYKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmggYi9pbmNsdWRlL2dydWIvZ2NyeXB0 L2dwZy1lcnJvci5oCmluZGV4IDFlNDI1MDI4NC4uNDQ0YmVmMjIxIDEwMDY0NAotLS0gYS9pbmNs dWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3Bn LWVycm9yLmgKQEAgLTI5LDQgKzI5LDEzIEBAIGdwZ19lcnJfc291cmNlIChncGdfZXJyb3JfdCBl cnIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQogZ2NyeV9lcnJfY29kZV90CiBncGdfZXJyb3Jf ZnJvbV9zeXNlcnJvciAodm9pZCk7CiAKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zy b21fc3lzZXJyb3IgKHZvaWQpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX2Vy cm5vIChpbnQgZXJyKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJvbV9lcnJu byAoaW50IGVycik7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWZzdGVzdC5jIGIv dXRpbC9ncnViLWZzdGVzdC5jCmluZGV4IDdmZjkwMzdiOC4uMjRiMjBhYjkxIDEwMDY0NAotLS0g YS91dGlsL2dydWItZnN0ZXN0LmMKKysrIGIvdXRpbC9ncnViLWZzdGVzdC5jCkBAIC0zNjUsNyAr MzY1LDcgQEAgc3RhdGljIHZvaWQKIGNtZF9jcmMgKGNoYXIgKnBhdGhuYW1lKQogewogICBncnVi X3VpbnQ4X3QgKmNyYzMyX2NvbnRleHQgPSB4bWFsbG9jIChHUlVCX01EX0NSQzMyLT5jb250ZXh0 c2l6ZSk7Ci0gIEdSVUJfTURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCk7CisgIEdSVUJfTURf Q1JDMzItPmluaXQoY3JjMzJfY29udGV4dCwgMCk7CiAKICAgcmVhZF9maWxlIChwYXRobmFtZSwg Y3JjX2hvb2ssIGNyYzMyX2NvbnRleHQpOwogICBHUlVCX01EX0NSQzMyLT5maW5hbChjcmMzMl9j b250ZXh0KTsKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnkucHkgYi91dGlsL2ltcG9ydF9n Y3J5LnB5CmluZGV4IDJiMzMyMmQzYS4uNDg5MzU2ZDM3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9y dF9nY3J5LnB5CisrKyBiL3V0aWwvaW1wb3J0X2djcnkucHkKQEAgLTIyLDYgKzIyLDIzIEBAIGlt cG9ydCBvcwogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgY29kZWNzCiAKK2RlZiByZW1vdmVzdWZm aXgoYmFzZTogc3RyLCBzdWZmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBg cmVtb3Zlc3VmZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJh c2UuZW5kc3dpdGgoc3VmZml4KToKKyAgICAgICAgcmV0dXJuIGJhc2VbOi1sZW4oc3VmZml4KV0K KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYmFzZQorCisKK2RlZiByZW1vdmVwcmVmaXgoYmFz ZTogc3RyLCBwcmVmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3Zl cHJlZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2Uuc3Rh cnRzd2l0aChwcmVmaXgpOgorICAgICAgICByZXR1cm4gYmFzZVtsZW4ocHJlZml4KTpdCisgICAg ZWxzZToKKyAgICAgICAgcmV0dXJuIGJhc2UKKwogaWYgbGVuIChzeXMuYXJndikgPCAzOgogICAg IHByaW50ICgiVXNhZ2U6ICVzIFNPVVJDRSBERVNUSU5BVElPTiIgJSBzeXMuYXJndlswXSkKICAg ICBleGl0ICgwKQpAQCAtNjIsNiArNzksMTIgQEAgY29uZnV0aWwud3JpdGUgKCIgIGNmbGFncyA9 ICckKENGTEFHU19HQ1JZKSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBjcHBmbGFncyA9ICck KENQUEZMQUdTX0dDUlkpJztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3QgPSBn cnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNvbmZ1 dGlsLndyaXRlICgiXG4iKTsKKworZm9yIHNyYyBpbiBbJ3NyYy9jb25zdC10aW1lLmMnXToKKyAg ICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1 Yi8lcztcbiIgJSBzcmMpCisKK2NvbmZ1dGlsLndyaXRlICgiXG4iKTsKKwogY2hsb2cgPSAiIgog bW9kdWxlc19zeW1fbWQgPSBbXQogCkBAIC03OSwxMCArMTAyLDI1IEBAIG1kYmxvY2tzaXplcyA9 IHsiX2djcnlfZGlnZXN0X3NwZWNfY3JjMzIiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5 X2RpZ2VzdF9zcGVjX3NoYTI1NiIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfc2hhMzg0IiA6IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNf c2hhNTEyIiA6IDEyOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEy XzI1NiI6IDEyOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyXzIy NCI6IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIiIDogNjQs CiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMSIgOiA2NCwKICAgICAg ICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIyIiA6IDY0LAotICAgICAgICAgICAg ICAgICJfZ2NyeV9kaWdlc3Rfc3BlY193aGlybHBvb2wiIDogNjR9CisgICAgICAgICAgICAgICAg Il9nY3J5X2RpZ2VzdF9zcGVjX3doaXJscG9vbCIgOiA2NCwKKyAgICAgICAgICAgICAgICAiX2dj cnlfZGlnZXN0X3NwZWNfc2hha2UxMjgiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGln ZXN0X3NwZWNfc2hha2UyNTYiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3Nw ZWNfc20zIjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2df MjU2IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2dfNTEy IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjI0IjogMTE1 MiAvIDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjU2IjogMTA4 OCAvIDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMzg0IjogODMy IC8gOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM181MTIiOiA1NzYg LyA4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV85NCI6IDMy LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV9jcCI6IDMyLAor ICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19jc2hha2UxMjgiOiA2NCwKKyAgICAg ICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfY3NoYWtlMjU2IjogNjR9CiAKIGNyeXB0b2xp c3QgPSBjb2RlY3Mub3BlbiAob3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgImNyeXB0by5s c3QiKSwgInciLCAidXRmLTgiKQogCkBAIC05OSwyNiArMTM3LDU0IEBAIGNyeXB0b2xpc3Qud3Jp dGUgKCJBRVMtMjU2OiBnY3J5X3Jpam5kYWVsXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJBRExF UjMyOiBhZGxlcjMyXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJDUkM2NDogY3JjNjRcbiIpOwog CitleHRyYV9maWxlcyA9IHsKKyAgICAiZ2NyeV9jYW1lbGxpYSI6IFsiY2FtZWxsaWEuYyJdLCAj IE1haW4gZmlsZSBpcyBjYW1lbGxpYS1nbHVlLmMKKyAgICAiZ2NyeV9zaGE1MTIiICA6IFsiaGFz aC1jb21tb24uYyJdLAorfQorZXh0cmFfZmlsZXNfbGlzdCA9IFt4IGZvciB4cyBpbiBleHRyYV9m aWxlcy52YWx1ZXMoKSBmb3IgeCBpbiB4c10gKyBbInB1YmtleS11dGlsLmMiLCAicnNhLWNvbW1v bi5jIiwgImRzYS1jb21tb24uYyIsICJtZC5jIl0KKwogZm9yIGNpcGhlcl9maWxlIGluIGNpcGhl cl9maWxlczoKICAgICBpbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sIGNpcGhl cl9maWxlKQogICAgIG91dGZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCBjaXBo ZXJfZmlsZSkKICAgICBpZiBjaXBoZXJfZmlsZSA9PSAiQ2hhbmdlTG9nIiBvciBjaXBoZXJfZmls ZSA9PSAiQ2hhbmdlTG9nLTIwMTEiOgogICAgICAgICBjb250aW51ZQogICAgIGNobG9nbmV3ID0g IgkqICVzIiAlIGNpcGhlcl9maWxlCi0gICAgaWYgcmUubWF0Y2ggKCIoTWFuaWZlc3R8TWFrZWZp bGVcLmFtfGFjXC5jfGNpcGhlclwuY3xoYXNoLWNvbW1vblwuY3xobWFjLXRlc3RzXC5jfG1kXC5j fHB1YmtleVwuYykkIiwgY2lwaGVyX2ZpbGUpIG9yIGNpcGhlcl9maWxlID09ICJrZGYuYyIgb3Ig Y2lwaGVyX2ZpbGUgPT0gImVsZ2FtYWwuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInByaW1lZ2VuLmMi IG9yIGNpcGhlcl9maWxlID09ICJlY2MuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInRlc3QtZ2V0cnVz YWdlLmMiOgorICAgICMgVW51c2VkIGdlbmVyaWMgc3VwcG9ydCBmaWxlcworICAgIGlmIHJlLm1h dGNoIChyIihNYWtlZmlsZVwuYW18cHJpbWVnZW5cLmN8Y2lwaGVyXC5jfGNpcGhlci0uKlwuY3xt YWMtLipcLmN8bWFjXC5jfHB1YmtleVwuYykkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBjaGxv ZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29udGlu dWUKKyAgICAjIFRPRE86IFN1cHBvcnQgS0RGCisgICAgaWYgcmUubWF0Y2ggKHIiKGtkZlwuY3xz Y3J5cHRcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3Zl ZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBUT0RPOiBT dXBwb3J0IGNoYWNoYTIwIGFuZCBwb2x5MTMwNQorICAgICMgVE9ETzogU3VwcG9ydCBFQ0MKKyAg ICAjIFRPRE86IFN1cHBvcnQgcXVhbnR1bS1yZXNpc3RhbnQKKyAgICBpZiBjaXBoZXJfZmlsZSBp biBbInBvbHkxMzA1LmMiLCAiY2hhY2hhMjAuYyIsICJlY2MuYyIsICJlbGdhbWFsLmMiLAorICAg ICAgICAgICAgICAgICAgICAgICAic250cnVwNzYxLmMiLCAibWNlbGllY2U2Njg4MTI4Zi5jIiwg Imt5YmVyLWNvbW1vbi5jIiwgImt5YmVyLmMiLCAia3liZXIta2RlcC5jIiwgImtlbS1lY2MuYyIs ICJrZW0uYyJdIG9yIHJlLm1hdGNoIChyIl5lY2MtLipcLmMkIiwgY2lwaGVyX2ZpbGUpOgorICAg ICAgICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAg ICAgY29udGludWUKKyAgICAjIFRPRE86IFVzZSBvcHRpbWl6ZWQgdmVyc2lvbnMKKyAgICBpZiBy ZS5tYXRjaCAociIoLipcLltzU118LiotaW50ZWwtc2hhZXh0XC5jfC4qLXNzc2UzLWkzODZcLmN8 LiotcHBjXC5jfC4qLXNzc2UzLWFtZDY0XC5jfC4qLXMzOTB4XC5jfHJpam5kYWVsLWFlc25pXC5j fGNyYy1pbnRlbC1wY2xtdWxcLmN8LiotYXJtdjgtY2UuY3wuKi1hYXJjaDY0LWNlXC5jfC4qLXAx MGxlXC5jfHJpam5kYWVsLXBhZGxvY2suY3wuKi1wcGNbODldbGUuY3xyaWpuZGFlbC12YWVzLmN8 cmlqbmRhZWwtdmFlcy1pMzg2LmN8c2VycGVudC1hdng1MTIteDg2LmMpJCIsIGNpcGhlcl9maWxl KToKKyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcp CisgICAgICAgIGNvbnRpbnVlCisgICAgIyBXZSB1c2UgcHJlZ2VuZXJhdGVkIHZlcnNpb24KKyAg ICBpZiBjaXBoZXJfZmlsZSA9PSAiZ29zdC1zLWJveC5jIjoKICAgICAgICAgY2hsb2cgPSAiJXMl czogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCiAgICAgICAgIGNvbnRpbnVlCiAgICAg IyBBdXRvZ2VuZXJhdGVkIGZpbGVzLiBOb3QgZXZlbiB3b3J0aCBtZW50aW9ubmluZyBpbiBDaGFu Z2VMb2cKLSAgICBpZiByZS5tYXRjaCAoIk1ha2VmaWxlXC5pbiQiLCBjaXBoZXJfZmlsZSk6Cisg ICAgaWYgcmUubWF0Y2ggKHIiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKICAgICAgICAg Y29udGludWUKICAgICBuY2ggPSBGYWxzZQotICAgIGlmIHJlLm1hdGNoICgiLipcLltjaF0kIiwg Y2lwaGVyX2ZpbGUpOgotICAgICAgICBpc2MgPSByZS5tYXRjaCAoIi4qXC5jJCIsIGNpcGhlcl9m aWxlKQorICAgIGlmIHJlLm1hdGNoIChyIi4qXC5bY2hdJCIsIGNpcGhlcl9maWxlKToKKyAgICAg ICAgaXNjID0gcmUubWF0Y2ggKHIiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCiAgICAgICAgIGYgPSBj b2RlY3Mub3BlbiAoaW5maWxlLCAiciIsICJ1dGYtOCIpCiAgICAgICAgIGZ3ID0gY29kZWNzLm9w ZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKICAgICAgICAgZncud3JpdGUgKCIvKiBUaGlzIGZp bGUgd2FzIGF1dG9tYXRpY2FsbHkgaW1wb3J0ZWQgd2l0aCBcbiIpCiAgICAgICAgIGZ3LndyaXRl ICgiICAgaW1wb3J0X2djcnkucHkuIFBsZWFzZSBkb24ndCBtb2RpZnkgaXQgKi9cbiIpCi0gICAg ICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCisgICAgICAgIGFkZF9saWNl bnNlID0gY2lwaGVyX2ZpbGUgPT0gInB1YmtleS11dGlsLmMiIG9yIChpc2MgYW5kIG5vdCBjaXBo ZXJfZmlsZSBpbiBleHRyYV9maWxlc19saXN0KQorICAgICAgICBpZiBhZGRfbGljZW5zZToKKyAg ICAgICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCiAgICAgICAgIGlm IGNpcGhlcl9maWxlID09ICJjYW1lbGxpYS5oIjoKICAgICAgICAgICAgIGZ3LndyaXRlICgiI2lu Y2x1ZGUgPGdydWIvbWlzYy5oPlxuIikKICAgICAgICAgICAgIGZ3LndyaXRlICgidm9pZCBjYW1l bGxpYV9zZXR1cDEyOChjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIGdydWJfdWludDMyX3QgKnN1 YmtleSk7XG4iKQpAQCAtMTMyLDcgKzE5OCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJf ZmlsZXM6CiAgICAgICAgICAgICBmdy53cml0ZSAoInZvaWQgY2FtZWxsaWFfZGVjcnlwdDI1Nihj b25zdCBncnViX3VpbnQzMl90ICpzdWJrZXksIGdydWJfdWludDMyX3QgKmlvKTtcbiIpICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIG1lbWNweSBn cnViX21lbWNweVxuIikKICAgICAgICAgIyBXaG9sZSBsaWJnY3J5cHQgaXMgZGlzdHJpYnV0ZWQg dW5kZXIgR1BMdjMrIG9yIGNvbXBhdGlibGUKLSAgICAgICAgaWYgaXNjOgorICAgICAgICBpZiBh ZGRfbGljZW5zZToKICAgICAgICAgICAgIGZ3LndyaXRlICgiR1JVQl9NT0RfTElDRU5TRSAoXCJH UEx2MytcIik7XG4iKQogCiAgICAgICAgIGNpcGhlcm5hbWVzID0gW10KQEAgLTE0OCwxNCArMjE0 LDEwIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgIGlzY2lwaGVy ID0gRmFsc2UKICAgICAgICAgaXNjcnlwdG9zdGFydCA9IEZhbHNlCiAgICAgICAgIGlzY29tbWEg PSBGYWxzZQotICAgICAgICBpc2dsdWUgPSBGYWxzZQogICAgICAgICBza2lwX3N0YXRlbWVudCA9 IEZhbHNlCisgICAgICAgIHNraXBfY29tbWEgPSBGYWxzZQogICAgICAgICBpZiBpc2M6Ci0gICAg ICAgICAgICBtb2RuYW1lID0gY2lwaGVyX2ZpbGUgWzA6bGVuKGNpcGhlcl9maWxlKSAtIDJdCi0g ICAgICAgICAgICBpZiByZS5tYXRjaCAoIi4qLWdsdWUkIiwgbW9kbmFtZSk6Ci0gICAgICAgICAg ICAgICAgbW9kbmFtZSA9IG1vZG5hbWUucmVwbGFjZSAoIi1nbHVlIiwgIiIpCi0gICAgICAgICAg ICAgICAgaXNnbHVlID0gVHJ1ZQotICAgICAgICAgICAgbW9kbmFtZSA9ICJnY3J5XyVzIiAlIG1v ZG5hbWUKKyAgICAgICAgICAgIG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSByZW1vdmVzdWZmaXgocmVt b3Zlc3VmZml4KGNpcGhlcl9maWxlLCAiLmMiKSwgIi1nbHVlIikucmVwbGFjZSgiLSIsICJfIikK ICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgIGxpbmUgPSBsaW5lCiAgICAgICAg ICAgICBpZiBza2lwX3N0YXRlbWVudDoKQEAgLTE3MSw3ICsyMzMsNyBAQCBmb3IgY2lwaGVyX2Zp bGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBza2lwMiA9IEZhbHNlCiAg ICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGlzY3J5cHRvc3RhcnQ6Ci0g ICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXpdKilcIiIsIGxp bmUpCisgICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXotXSop XCIiLCBsaW5lKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzIGlzIE5vbmU6CiAgICAgICAgICAg ICAgICAgICAgIHNnID0gcy5ncm91cHMoKVswXQogICAgICAgICAgICAgICAgICAgICBjcnlwdG9s aXN0LndyaXRlICgoIiVzOiAlc1xuIikgJSAoc2csIG1vZG5hbWUpKQpAQCAtMjAxLDcgKzI2Myw3 IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAg IGlzcGsgPSBGYWxzZQogICAgICAgICAgICAgICAgIGlzY29tbWEgPSBub3QgcmUuc2VhcmNoICgi LCQiLCBsaW5lKSBpcyBOb25lCiAgICAgICAgICAgICAjIFVzZWQgb25seSBmb3Igc2VsZnRlc3Rz LgotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNpZ25l ZCBjaGFyKSAod2Vha19rZXlzX2Noa3N1bSlcW1swLTldKlxdID0iLCBsaW5lKQorICAgICAgICAg ICAgbSA9IHJlLm1hdGNoIChyIihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcnxzdGF0 aWMgY29uc3QgZ2NyeV9tZF9zcGVjX3QgXCogY29uc3QpICh3ZWFrX2tleXNfY2hrc3VtfGRpZ2Vz dF9saXN0KVxbWzAtOV0qXF0gPSIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25l OgogICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgZm5hbWUgPSBtLmdy b3VwcyAoKVsxXQpAQCAtMjEyLDExICsyNzQsMTQgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhl cl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9n bmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiAobm90IGhvbGQpIGFuZCAocmUubWF0Y2ggKHIi WyBcdF0qKHJ1bl9zZWxmdGVzdHN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvKSw/IiwgbGlu ZSkgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgICAgIGlzY29tbWEgPSBUcnVlCisgICAgICAg ICAgICAgICAgbGluZSA9ICIiCiAgICAgICAgICAgICBpZiBob2xkOgogICAgICAgICAgICAgICAg IGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Igc2l6 ZSBhbmQgZXhjbHVkZSBhbnl0aGluZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICAgICAjIHJh bmRvbW5lc3MuCi0gICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKHJ1bl9zZWxmdGVz dHN8c2VsZnRlc3R8X2djcnlfYWVzX2MuLl8uLmN8X2djcnlfW2EtejAtOV0qX2hhc2hfYnVmZmVy fHRyaXBsZWRlc19zZXQya2V5c3xkb190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98X2djcnlfcm1k MTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5f a3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dl bmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlf cmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xw cm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGNvbXB1 dGVfa2V5Z3JpcHxlY2NfZ2V0X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xn ZW5feDkzMV9wYXJtX3hwfGdlbl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNh X2dlbmVyYXRlX2V4dHxyc2FfZ2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9ibGlu ZHxyc2FfdW5ibGluZHxleHRyYWN0X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29weXxw b2ludF9zZXQpIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRjaCAo IihfZ2NyeV9oYXNoX3NlbGZ0ZXN0X2NoZWNrX29uZXxidWxrX3NlbGZ0ZXN0X3NldGtleXxydW5f c2VsZnRlc3RzfGRvX3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mb3xzZWxmdGVzdHxzbTRfc2VsZnRl c3R8X2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnN8X2djcnlfc2hhMV9oYXNoX2J1ZmZlcnx0 cmlwbGVkZXNfc2V0MmtleXN8X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2Ff Z2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJh dGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVy YXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5 X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5l cmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGVjY19nZXRfcGFyYW18X2djcnlfcmVnaXN0ZXJfcGtfZHNh X3Byb2dyZXNzfGdlbl94OTMxX3Bhcm1feHB8Z2VuX3g5MzFfcGFybV94aXxyc2FfZGVjcnlwdHxy c2Ffc2lnbnxyc2FfZ2VuZXJhdGVfZXh0fHJzYV9nZW5lcmF0ZXxzZWNyZXR8Y2hlY2tfZXhwb25l bnR8cnNhX2JsaW5kfHJzYV91bmJsaW5kfGV4dHJhY3RfYV9mcm9tX3NleHB8Y3VydmVfZnJlZXxj dXJ2ZV9jb3B5fHBvaW50X3NldHxfZ2NyeV9kc2FfZ2VuX3JmYzY5Nzlfa3xiaXRzMm9jdGV0c3xp bnQyb2N0ZXRzfF9nY3J5X21kX2RlYnVnfF9nY3J5X21kX3NlbGZ0ZXN0fF9nY3J5X21kX2lzX2Vu YWJsZWR8X2djcnlfbWRfaXNfc2VjdXJlfF9nY3J5X21kX2luaXR8X2djcnlfbWRfaW5mb3xtZF9n ZXRfYWxnb3xtZF9leHRyYWN0fF9nY3J5X21kX2dldCB8X2djcnlfbWRfZ2V0X2FsZ28gfF9nY3J5 X21kX2V4dHJhY3R8X2djcnlfbWRfc2V0a2V5fG1kX3NldGtleXxwcmVwYXJlX21hY3BhZHN8X2dj cnlfbWRfYWxnb19uYW1lfHNlYXJjaF9vaWR8c3BlY19mcm9tX29pZHxzcGVjX2Zyb21fbmFtZXxz cGVjX2Zyb21fYWxnb3xtYXBfYWxnb3xjc2hha2VfaGFzaF9idWZmZXJzKSIsIGxpbmUpIGlzIG5v dCBOb25lOgogCiAgICAgICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAg ICAgIGlmIG5vdCByZS5tYXRjaCAoInNlbGZ0ZXN0IiwgbGluZSkgaXMgTm9uZSBhbmQgY2lwaGVy X2ZpbGUgPT0gImlkZWEuYyI6CkBAIC0yMjQsNiArMjg5LDExIEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgi c2VycGVudF90ZXN0IiwgbGluZSkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgIGZ3 LndyaXRlICgic3RhdGljIGNvbnN0IGNoYXIgKnNlcnBlbnRfdGVzdCAodm9pZCkgeyByZXR1cm4g MDsgfVxuIik7CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNtNF9zZWxm dGVzdCIsIGxpbmUpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAo InN0YXRpYyBjb25zdCBjaGFyICpzbTRfc2VsZnRlc3QgKHZvaWQpIHsgcmV0dXJuIDA7IH1cbiIp OworICAgICAgICAgICAgICAgICAgICBoYXNoX2J1ZiA9IHJlLm1hdGNoICgiKF9nY3J5X1thLXow LTlfXSpfaGFzaF9idWZmZXJzKSIsIGxpbmUpCisgICAgICAgICAgICAgICAgICAgIGlmIGhhc2hf YnVmIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVm aW5lICVzIDAiICUgKGhhc2hfYnVmLmdyb3VwKDApKSkKICAgICAgICAgICAgICAgICAgICAgaWYg bm90IHJlLm1hdGNoICgiZHNhX2dlbmVyYXRlIiwgbGluZSkgaXMgTm9uZToKICAgICAgICAgICAg ICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBkc2FfZ2VuZXJhdGUgMCIpOwogICAgICAg ICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJlY2NfZ2VuZXJhdGUiLCBsaW5lKSBpcyBO b25lOgpAQCAtMjM4LDYgKzMwOCwxMCBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVz OgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGRzYV9zaWduIDAi KTsKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiZWNjX3NpZ24iLCBsaW5l KSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGVj Y19zaWduIDAiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VhcmNo X29pZCIsIGxpbmUpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAo IiNkZWZpbmUgc2VhcmNoX29pZChhLGIpIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQoYSki KQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzcGVjX2Zyb21fbmFtZSIs IGxpbmUpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZp bmUgc3BlY19mcm9tX25hbWUgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUiKQogICAgICAg ICAgICAgICAgICAgICBmbmFtZSA9IHJlLm1hdGNoICgiW2EtekEtWjAtOV9dKiIsIGxpbmUpLmdy b3VwICgpCiAgICAgICAgICAgICAgICAgICAgIGNobXNnID0gIiglcyk6IFJlbW92ZWQuIiAlIGZu YW1lCiAgICAgICAgICAgICAgICAgICAgIGlmIG5jaDoKQEAgLTI1Nyw0NSArMzMxLDQ2IEBAIGZv ciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9n bmV3ID0gIiVzOiAlcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgICAgICBu Y2ggPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5t YXRjaCAoImdjcnlfY2lwaGVyX3NwZWNfdCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0 Y2ggKCIoY29uc3QgKT9nY3J5X2NpcGhlcl9zcGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYg aXNjIGFuZCBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQp CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3Nl cnQgKG5vdCBpc2NpcGhlcikKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0 YXJ0KQotICAgICAgICAgICAgICAgIGNpcGhlcm5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X2NpcGhl cl9zcGVjX3QiKTpdLnN0cmlwICgpCisgICAgICAgICAgICAgICAgY2lwaGVybmFtZSA9IHJlbW92 ZXByZWZpeChyZW1vdmVwcmVmaXgobGluZSwgImNvbnN0ICIpLCAiZ2NyeV9jaXBoZXJfc3BlY190 Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmUubWF0Y2goIlthLXpB LVowLTlfXSoiLGNpcGhlcm5hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAgY2lwaGVybmFt ZXMuYXBwZW5kIChjaXBoZXJuYW1lKQogICAgICAgICAgICAgICAgIGlzY2lwaGVyID0gVHJ1ZQog ICAgICAgICAgICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAgICAgICAgIG0gPSBy ZS5tYXRjaCAoImdjcnlfcGtfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj aCAoIihjb25zdCApP2djcnlfcGtfc3BlY190IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBh bmQgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAg ICAgICAgICAgICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChu b3QgaXNjaXBoZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkK LSAgICAgICAgICAgICAgICBwa25hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X3BrX3NwZWNfdCIpOl0u c3RyaXAgKCkKKyAgICAgICAgICAgICAgICBwa25hbWUgPSByZW1vdmVwcmVmaXgocmVtb3ZlcHJl Zml4KGxpbmUsICJjb25zdCAiKSwgImdjcnlfcGtfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAg ICAgICAgICBwa25hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIscGtuYW1lKS5ncm91cCAo KQogICAgICAgICAgICAgICAgIHBrbmFtZXMuYXBwZW5kIChwa25hbWUpCiAgICAgICAgICAgICAg ICAgaXNwayA9IFRydWUKICAgICAgICAgICAgICAgICBpc2NyeXB0b3N0YXJ0ID0gVHJ1ZQogCi0g ICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJnY3J5X21kX3NwZWNfdCIsIGxpbmUpCisgICAgICAg ICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3QgKT9nY3J5X21kX3NwZWNfdCIsIGxpbmUpCiAgICAg ICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0 IChub3QgaXNtZCkKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAg ICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVyKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90 IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAgICAgICAgbWRuYW1lID0gbGluZSBbbGVuICgiZ2Ny eV9tZF9zcGVjX3QiKTpdLnN0cmlwICgpCisgICAgICAgICAgICAgICAgbGluZSA9IHJlbW92ZXBy ZWZpeChsaW5lLCAiY29uc3QgIikKKyAgICAgICAgICAgICAgICBtZG5hbWUgPSByZW1vdmVwcmVm aXgocmVtb3ZlcHJlZml4KGxpbmUsICJjb25zdCAiKSwgImdjcnlfbWRfc3BlY190Iikuc3RyaXAg KCkKICAgICAgICAgICAgICAgICBtZG5hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIsbWRu YW1lKS5ncm91cCAoKQogICAgICAgICAgICAgICAgIG1kbmFtZXMuYXBwZW5kIChtZG5hbWUpCiAg ICAgICAgICAgICAgICAgaXNtZCA9IFRydWUKICAgICAgICAgICAgICAgICBtZGFyZyA9IDAKICAg ICAgICAgICAgICAgICBpc2NyeXB0b3N0YXJ0ID0gVHJ1ZQotICAgICAgICAgICAgbSA9IHJlLm1h dGNoICgic3RhdGljIGNvbnN0IGNoYXIgXCpzZWxmdGVzdC4qOyQiLCBsaW5lKQorICAgICAgICAg ICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyBjb25zdCBjaGFyIFwqc2VsZnRlc3QuKjskIiwgbGlu ZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgZm5hbWUg PSBsaW5lW2xlbiAoInN0YXRpYyBjb25zdCBjaGFyIFwqIik6XQorICAgICAgICAgICAgICAgIGZu YW1lID0gbGluZVtsZW4gKHIic3RhdGljIGNvbnN0IGNoYXIgXCoiKTpdCiAgICAgICAgICAgICAg ICAgZm5hbWUgPSByZS5tYXRjaCAoIlthLXpBLVowLTlfXSoiLCBmbmFtZSkuZ3JvdXAgKCkKICAg ICAgICAgICAgICAgICBjaG1zZyA9ICIoJXMpOiBSZW1vdmVkIGRlY2xhcmF0aW9uLiIgJSBmbmFt ZQogICAgICAgICAgICAgICAgIGlmIG5jaDoKQEAgLTMzMSw3ICs0MDYsNyBAQCBmb3IgY2lwaGVy X2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIl cyAlcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVl CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0 YXRpYyB2b2lkIFwoXCpwcm9ncmVzc19jYlwpLio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0g cmUubWF0Y2ggKHIic3RhdGljIHZvaWQgXChcKnByb2dyZXNzX2NiXCkuKjskIiwgbGluZSkKICAg ICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY2htc2cgPSAiKHBy b2dyZXNzX2NiKTogUmVtb3ZlZCBkZWNsYXJhdGlvbi4iCiAgICAgICAgICAgICAgICAgaWYgbmNo OgpAQCAtMzQwLDcgKzQxNSw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAg ICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzICVzIiAlIChjaGxvZ25ldywgY2htc2cp CiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51 ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIHZvaWQgXCpwcm9ncmVzc19jYl9k YXRhLio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIHZvaWQg XCpwcm9ncmVzc19jYl9kYXRhLio7JCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBO b25lOgogICAgICAgICAgICAgICAgIGNobXNnID0gIihwcm9ncmVzc19jYik6IFJlbW92ZWQgZGVj bGFyYXRpb24uIgogICAgICAgICAgICAgICAgIGlmIG5jaDoKQEAgLTM1MCwyMiArNDI1LDIyIEBA IGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIG5j aCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBtID0gcmUu bWF0Y2ggKCIoc3RhdGljIGNvbnN0IGNoYXIoIHwpXCp8c3RhdGljIGdwZ19lcnJfY29kZV90fHZv aWR8c3RhdGljIGludHxzdGF0aWMgZ2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90fHN0 YXRpYyB2b2lkfHZvaWR8c3RhdGljIGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkKKyAgICAg ICAgICAgIG0gPSByZS5tYXRjaCAociIoKHN0YXRpYyApP2NvbnN0IGNoYXIoIHwpXCp8c3RhdGlj IGNvbnN0IGdjcnlfbWRfc3BlY190IFwqfChzdGF0aWMgKT9ncGdfZXJyX2NvZGVfdHxncGdfZXJy b3JfdHx2b2lkfChzdGF0aWMgKT9pbnR8KHN0YXRpYyApP3Vuc2lnbmVkIGludHwoc3RhdGljICk/ Z2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90fHN0YXRpYyB2b2lkfHZvaWR8c3RhdGlj IGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5v bmU6CiAgICAgICAgICAgICAgICAgaG9sZCA9IFRydWUKICAgICAgICAgICAgICAgICBob2xkbGlu ZSA9IGxpbmUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1h dGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCisgICAg ICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCgu KlwpOyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBs ZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAo ciJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkKICAgICAgICAg ICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg ICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDJrZXlzIFwoIiwgbGlu ZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQy a2V5cyBcKCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAg ICAgICAgIHNraXBfc3RhdGVtZW50ID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g ICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBc KCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVk ZXNfc2V0M2tleXMgXCgiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAg ICAgICAgICAgICAgICBza2lwX3N0YXRlbWVudCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250 aW51ZQpAQCAtNDIxLDExICs0OTYsOSBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVz OgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBmdy53cml0ZSAobGluZSkK ICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1lcykgPiAwIG9y IGxlbiAocGtuYW1lcykgPiAwOgotICAgICAgICAgICAgaWYgaXNnbHVlOgotICAgICAgICAgICAg ICAgIG1vZGZpbGVzID0gImxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXMgbGliL2xpYmdjcnlw dC1ncnViL2NpcGhlci8lcyIgXAotICAgICAgICAgICAgICAgICAgICAlIChjaXBoZXJfZmlsZSwg Y2lwaGVyX2ZpbGUucmVwbGFjZSAoIi1nbHVlLmMiLCAiLmMiKSkKLSAgICAgICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICAgICAgbW9kZmlsZXMgPSAibGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8l cyIgJSBjaXBoZXJfZmlsZQorICAgICAgICAgICAgbW9kZmlsZXMgPSBbY2lwaGVyX2ZpbGVdCisg ICAgICAgICAgICBpZiBtb2RuYW1lIGluIGV4dHJhX2ZpbGVzLmtleXMoKToKKyAgICAgICAgICAg ICAgICBtb2RmaWxlcyArPSBleHRyYV9maWxlc1ttb2RuYW1lXQogICAgICAgICAgICAgaWYgbGVu IChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1lcykgPiAwOgogICAgICAgICAgICAgICAg IG1vZHVsZXNfc3ltX21kLmFwcGVuZCAobW9kbmFtZSkKICAgICAgICAgICAgIGNobXNnID0gIihH UlVCX01PRF9JTklUKCVzKSk6IE5ldyBmdW5jdGlvblxuIiAlIG1vZG5hbWUKQEAgLTQ0Nyw3ICs1 MjAsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAg IGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAg ICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF9yZWdpc3RlciAoJiVzKTtcbiIgJSBtZG5hbWUpCiAgICAg ICAgICAgICBmb3IgcGtuYW1lIGluIHBrbmFtZXM6Ci0gICAgICAgICAgICAgICAgY2htc2cgPSAi UmVnaXN0ZXIgcGsgJXMiICUgbWRuYW1lCisgICAgICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0 ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIg JSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiICBncnViX2Ny eXB0b19wa18lcyA9ICYlcztcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAocGtuYW1l LnJlcGxhY2UgKCJfZ2NyeV9wdWJrZXlfc3BlY18iLCAiIiksIHBrbmFtZSkpCkBAIC00NjUsMTcg KzUzOCwxNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAg ICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAg ICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF91bnJlZ2lzdGVyICgmJXMpO1xuIiAlIG1kbmFtZSkK ICAgICAgICAgICAgIGZvciBwa25hbWUgaW4gcGtuYW1lczoKLSAgICAgICAgICAgICAgICBjaG1z ZyA9ICJVbnJlZ2lzdGVyIHBrICVzIiAlIG1kbmFtZQorICAgICAgICAgICAgICAgIGNobXNnID0g IlVucmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAi JXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgi ICBncnViX2NyeXB0b19wa18lcyA9IDA7XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICUg KHBrbmFtZS5yZXBsYWNlICgiX2djcnlfcHVia2V5X3NwZWNfIiwgIiIpKSkKICAgICAgICAgICAg IGZ3LndyaXRlICgifVxuIikKICAgICAgICAgICAgIGNvbmYud3JpdGUgKCJtb2R1bGUgPSB7XG4i KQogICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgbmFtZSA9ICVzO1xuIiAlIG1vZG5hbWUpCi0g ICAgICAgICAgICBmb3Igc3JjIGluIG1vZGZpbGVzLnNwbGl0KCk6Ci0gICAgICAgICAgICAgICAg Y29uZi53cml0ZSAoIiAgY29tbW9uID0gJXM7XG4iICUgc3JjKQorICAgICAgICAgICAgZm9yIHNy YyBpbiBtb2RmaWxlczoKKyAgICAgICAgICAgICAgICBjb25mLndyaXRlICgiICBjb21tb24gPSBs aWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzO1xuIiAlIHNyYykKICAgICAgICAgICAgICAgICBp ZiBsZW4gKGNpcGhlcm5hbWVzKSA+IDAgb3IgbGVuIChtZG5hbWVzKSA+IDA6Ci0gICAgICAgICAg ICAgICAgICAgIGNvbmZ1dGlsLndyaXRlICgiICBjb21tb24gPSBncnViLWNvcmUvJXM7XG4iICUg c3JjKQorICAgICAgICAgICAgICAgICAgICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXM7XG4iICUgc3JjKQogICAgICAgICAg ICAgaWYgbW9kbmFtZSA9PSAiZ2NyeV9lY2MiOgogICAgICAgICAgICAgICAgIGNvbmYud3JpdGUg KCIgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvZWMuYztcbiIpCiAgICAgICAgICAg ICAgICAgY29uZi53cml0ZSAoIiAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5k YW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJztcbiIpCkBAIC00OTAsNyArNTYzLDcgQEAgZm9y IGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgIGZ3LmNsb3NlICgpCiAg ICAgICAgICAgICBpZiBuY2g6CiAgICAgICAgICAgICAgICAgY2hsb2cgPSAiJXMlc1xuIiAlIChj aGxvZywgY2hsb2duZXcpCi0gICAgICAgIGVsaWYgaXNjIGFuZCBjaXBoZXJfZmlsZSAhPSAiY2Ft ZWxsaWEuYyI6CisgICAgICAgIGVsaWYgaXNjIGFuZCBjaXBoZXJfZmlsZSBub3QgaW4gZXh0cmFf ZmlsZXNfbGlzdDoKICAgICAgICAgICAgIHByaW50ICgiV0FSTklORzogQyBmaWxlIGlzbid0IGEg bW9kdWxlOiAlcyIgJSBjaXBoZXJfZmlsZSkKICAgICAgICAgICAgIGYuY2xvc2UgKCkKICAgICAg ICAgICAgIGZ3LmNsb3NlICgpCkBAIC01MTIsNyArNTg1LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQg KG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogICAgICAgICAgICAg b3Igc3JjID09ICJsaWJnY3J5cHQudmVycyIgb3Igc3JjID09ICJNYWtlZmlsZS5hbSIgXAogICAg ICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgb3Igc3JjID09ICJtaXNjLmMiIFwKICAgICAg ICAgICAgIG9yIHNyYyA9PSAibWlzc2luZy1zdHJpbmcuYyIgb3Igc3JjID09ICJtb2R1bGUuYyIg XAotICAgICAgICAgICAgb3Igc3JjID09ICJzZWNtZW0uYyIgb3Igc3JjID09ICJzZXhwLmMiIFwK KyAgICAgICAgICAgIG9yIHNyYyA9PSAic2VjbWVtLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9 PSAic3RkbWVtLmMiIG9yIHNyYyA9PSAidmlzaWJpbGl0eS5jIjoKICAgICAgICAgY29udGludWUK ICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChiYXNlZGlyLCAic3JjIiwgc3JjKQpAQCAtNTM0 LDggKzYwNywxNyBAQCBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2lu IChpbmRpciwgInNyYyIpKSk6CiAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVl CiAKKyAgICBpZiBzcmMgPT0gImNpcGhlci1wcm90by5oIjoKKyAgICAgICAgZncud3JpdGUoIiNp bmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAgICAgICAgZncud3JpdGUoInR5cGVkZWYgZ2Ny eV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3RfZnVuY190OyIpCisgICAgICAgIGYuY2xvc2UgKCkK KyAgICAgICAgZncuY2xvc2UgKCkKKyAgICAgICAgY29udGludWUKKwogICAgIGlmIHNyYyA9PSAi ZzEwbGliLmgiOgotICAgICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRm LGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpKQorICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUg PGNpcGhlcl93cmFwLmg+XG4iKQorICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGdydWIvY3J5 cHRvLmg+XG4iKQorICAgICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRm LGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpLnJlcGxhY2UgKCIjaW5jbHVkZSBcIi4uL2NvbXBh dC9saWJjb21wYXQuaFwiIiwgIiIpLnJlcGxhY2UoIiNkZWZpbmUgTl8oYSkgKGEpIiwgIiIpKQog ICAgICAgICBmLmNsb3NlICgpCiAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVl CkBAIC01NDYsNyArNjI4LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBh dGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogCiBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRp ciAob3MucGF0aC5qb2luIChpbmRpciwgIm1waSIpKSk6CiAgICAgaWYgc3JjID09ICJjb25maWcu bGlua3MiIG9yIHNyYyA9PSAiQ2hhbmdlTG9nLTIwMTEiIFwKLSAgICAgICAgICAgIG9yIHNyYyA9 PSAibXBpLXNjYW4uYyIgb3Igc3JjID09ICJNYW5pZmVzdCIgXAorICAgICAgICAgICAgb3Igc3Jj ID09ICJNYW5pZmVzdCIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJNYWtlZmlsZS5hbSI6CiAg ICAgICAgIGNvbnRpbnVlCiAgICAgaW5maWxlID0gb3MucGF0aC5qb2luIChpbmRpciwgIm1waSIs IHNyYykKQEAgLTU2OCwxNyArNjUwLDE3IEBAIGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGly IChvcy5wYXRoLmpvaW4gKGluZGlyLCAibXBpIikpKToKICAgICAgICAgICAgIGhvbGQgPSBGYWxz ZQogICAgICAgICAgICAgIyBXZSdyZSBvcHRpbWlzaW5nIGZvciBzaXplIGFuZCBleGNsdWRlIGFu eXRoaW5nIG5lZWRpbmcgZ29vZAogICAgICAgICAgICAgIyByYW5kb21uZXNzLgotICAgICAgICAg ICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlfbXBpX3Jh bmRvbWl6ZSkiLCBsaW5lKSBpcyBOb25lOgorICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgi KF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZXxfZ2NyeV9tcGlfcmFu ZG9taXplKSIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgc2tpcCA9IDEKICAgICAg ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBm dy53cml0ZSAoaG9sZGxpbmUpCi0gICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCBjaGFyKCB8 KVwqfHZvaWQpICokIiwgbGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNoIChyIihjb25zdCBjaGFy KCB8KVwqfHZvaWQpICokIiwgbGluZSkKICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAg ICAgICAgIGhvbGQgPSBUcnVlCiAgICAgICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAgICAg ICAgIGNvbnRpbnVlCi0gICAgICAgIG0gPSByZS5tYXRjaCAoIiNpbmNsdWRlIFwibW9kLXNvdXJj ZS1pbmZvXC5oXCIiLCBsaW5lKQorICAgICAgICBtID0gcmUubWF0Y2ggKHIiI2luY2x1ZGUgXCJt b2Qtc291cmNlLWluZm9cLmhcIiIsIGxpbmUpCiAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAg ICAgICAgICAgICBjb250aW51ZQogICAgICAgICBmdy53cml0ZSAobGluZSkKQEAgLTYxMiw5ICs2 OTQsNiBAQCBmdy53cml0ZSAoIiNpbmNsdWRlIDxjaXBoZXJfd3JhcC5oPlxuIikKIGNobG9nID0g IiVzCSogZzEwbGliLmg6IExpa2V3aXNlLlxuIiAlIGNobG9nCiBmdy5jbG9zZSAoKQogCi1pbmZp bGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sICJDaGFuZ2VMb2ciKQotb3V0ZmlsZSA9 IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ciKQotCiBjb25mLmNsb3Nl ICgpOwogCiBpbml0ZmlsZSA9IGNvZGVjcy5vcGVuIChvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJf b3V0LCAiaW5pdC5jIiksICJ3IiwgInV0Zi04IikKQEAgLTY0Myw3ICs3MjIsNyBAQCBjb25mdXRp bC53cml0ZSAoIn07XG4iKTsKIGNvbmZ1dGlsLmNsb3NlICgpOwogCiAKLWY9Y29kZWNzLm9wZW4g KGluZmlsZSwgInIiLCAidXRmLTgiKQorb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rp cl9vdXQsICJDaGFuZ2VMb2ciKQogZnc9Y29kZWNzLm9wZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04 IikKIGR0ID0gZGF0ZXRpbWUuZGF0ZS50b2RheSAoKQogZncud3JpdGUgKCIlMDRkLSUwMmQtJTAy ZCAgQXV0b21hdGljIGltcG9ydCB0b29sXG4iICUgXApAQCAtNjUzLDcgKzczMiw0IEBAIGZ3Lndy aXRlICgiCUltcG9ydGVkIGNpcGhlcnMgdG8gR1JVQlxuIikKIGZ3LndyaXRlICgiXG4iKQogZncu d3JpdGUgKGNobG9nKQogZncud3JpdGUgKCJcbiIpCi1mb3IgbGluZSBpbiBmOgotICAgIGZ3Lndy aXRlIChsaW5lKQotZi5jbG9zZSAoKQogZncuY2xvc2UgKCkKZGlmZiAtLWdpdCBhL3V0aWwvaW1w b3J0X2djcnlwdF9pbnRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmViZTkzNzFlZQotLS0gL2Rldi9udWxsCisr KyBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZApAQCAtMCwwICsxLDE3IEBACisvXiNASU5T RVJUX1NZU19TRUxFQ1RfSEAvIGQKKy9eQEZBTExCQUNLX1NPQ0tMRU5fVEAvIGQKKy9eIyAqaW5j bHVkZSA8c3RkbGliXC5oPi8gZAorL14jICppbmNsdWRlIDxzdHJpbmdcLmg+LyBkCisvXiMgKmlu Y2x1ZGUgPHdpbnNvY2syXC5oPi8gZAorL14jICppbmNsdWRlIDx3czJ0Y3BpcFwuaD4vIGQKKy9e IyAqaW5jbHVkZSA8dGltZVwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8c3lzXC9zb2NrZXRcLmg+LyBk CisvXiMgKmluY2x1ZGUgPHN5c1wvdGltZVwuaD4vIGQKKy9eICB0eXBlZGVmIGxvbmcgc3NpemVf dDsvIGQKKy9eICB0eXBlZGVmIGludCAgcGlkX3Q7LyBkCisvXiMgKmluY2x1ZGUgPGdwZy1lcnJv clwuaD4vIHMsI2luY2x1ZGUgPGdwZy1lcnJvci5oPiwjaW5jbHVkZSA8Z3J1Yi9nY3J5cHQvZ3Bn LWVycm9yLmg+LAorL150eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJyb3JfdDsvIGQKKy9edHlw ZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2RlX3Q7LyBkCisvXnR5cGVkZWYgc3RydWN0 IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKKy9eI2Vycm9yICBnY3J5cHQuaCBhbHJlYWR5IGlu Y2x1ZGVkLyBkCitwCmRpZmYgLS1naXQgYS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZCBiL3V0aWwv aW1wb3J0X2djcnlwdGguc2VkCmluZGV4IGZlNmQxYTA3Mi4uNTAzYjRiNTQ3IDEwMDY0NAotLS0g YS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZAorKysgYi91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZApA QCAtMTMsNiArMTMsNCBAQAogL150eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJyb3JfdDsvIGQK IC9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2RlX3Q7LyBkCiAvXnR5cGVkZWYg c3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKLS9ec3RydWN0IGdjcnlfdGhyZWFkX2Ni cy8gZAotcyxfZ2NyeV9tcGlfaW52bSxnY3J5X21waV9pbnZtLGcKIHAKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCi0tIAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5v cmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=