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 95D1AEE4982 for ; Wed, 11 Sep 2024 09:36:30 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1soJkY-0001WZ-Cw; Wed, 11 Sep 2024 05:34:58 -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 1soJkJ-00011X-JS for grub-devel@gnu.org; Wed, 11 Sep 2024 05:34:45 -0400 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1soJkB-0005Tn-Gt for grub-devel@gnu.org; Wed, 11 Sep 2024 05:34:42 -0400 Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-53653ee23adso6413204e87.3 for ; Wed, 11 Sep 2024 02:34:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726047272; x=1726652072; 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=NEBkzQYe7xsh/63U+4uKmxNL+5Tiap2zg3XMkxMi38o=; b=f4Rm6p6ESQnd+KCXYo+MnyuaxywQj3mK5vBgzKuFmV4hEWbQx1mAU08S1qikNJecpm YGUm4SO0inJKVnI9WCwDDVuUNKGS9BrqfoU7mpSlWJXwIog5H6kD4NGzX/QEQeXQOAjT NsExXc3xfP+2knLyAXBn1bjIZuRopicxrzO647zyCEePybwbJ0XCa/yV3ZI6fbpkTwOv jlCSVZXXLPv85ZR6svGevPsapXAKKv9P5+4PBvmv754QPmri2gqDcLdXFU9ar3xLFEXP f9AyZYOrtiqEvVZuYmVGMDsaLfYK7KlOA0K6qWPr1yfJ7UP8qvmss/ULLC4gDFRaoqeT N2RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726047272; x=1726652072; 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=NEBkzQYe7xsh/63U+4uKmxNL+5Tiap2zg3XMkxMi38o=; b=Wl2MjsVCkMKSLhXMht6SxEmZ+8kud2xyWzlPTiHDZHYH8gXqk3eRbctIhDfstQpaMg 7tkf+5XYg7ur2h4UbixvRg8JTzoPjbGAeyVhWqAB2A0QER8EYv/nEhjfC6pfZtNkKNpo 2oXA2ZNE/TiEpcwCmt0SYvPr9PFN6XDKGY/xUMYHYGwxURCLGaNBTVIy9DDO1yKvzjiv 9WV1JqGJYFJ21hHpHavXrvb9iX7dn/saU0hjiWu6ggfj4cL5d18HS9jIAoF65Ft5ZJmw WEgYO6DJU5CPANu41jd+fFR3HTiQcwH65f19S8JrTQc1AnX7+B4sTCMlKBuV1gdhZf1y q9lg== X-Gm-Message-State: AOJu0YwbE967/WbkAY5JLtYxML+sV692eqsg6lfBxhC/wCzLN1CMB8UH q5lRkZKwsNrCD6BXE46HOZPHDYsDWZOZYW5RSj8XKyxbCvEYPd0ORe6wBg== X-Google-Smtp-Source: AGHT+IFR1orn+5Si8fVL/pkShHv0pab8FqQlpLhKDXcShBE9zscNZx05OUZiUB49dnuWvLe9gHqhsQ== X-Received: by 2002:a05:6512:ac4:b0:535:69a2:5f9e with SMTP id 2adb3069b0e04-53658815bcbmr8899047e87.51.1726047271299; Wed, 11 Sep 2024 02:34:31 -0700 (PDT) Received: from localhost ([5.166.20.5]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5365f903bdfsm1481964e87.210.2024.09.11.02.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Sep 2024 02:34:30 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v6 3/6] Adjust import script, definitions and API users for libgcrypt 1.11 Date: Wed, 11 Sep 2024 12:34:18 +0300 Message-Id: <20240911093421.1600-3-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240911093421.1600-1-phcoder@gmail.com> References: <20240911093421.1600-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::132; envelope-from=phcoder@gmail.com; helo=mail-lf1-x132.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 U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+Ci0t LQogYXV0b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsK IGNvbmYvTWFrZWZpbGUuY29tbW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog Z3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICAgICAgICAgIHwgIDM2ICsrLQog Z3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBn cnViLWNvcmUvY29tbWFuZHMvbGVnYWN5Y2ZnLmMgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGdy dWItY29yZS9jb21tYW5kcy9wZ3AuYyAgICAgICAgICAgICAgICAgICAgICB8IDExNCArKystLS0t LQogZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMgICAgICAgICAgICAgICAgIHwgICAyICst CiBncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGdydWItY29yZS9pby9nemlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog Z3J1Yi1jb3JlL2lvL2x6b3Bpby5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBn cnViLWNvcmUvbGliL2FkbGVyMzIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjEgKy0KIGdy dWItY29yZS9saWIvY3JjNjQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArLQogZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQ1ICsrKysrKysr KysrKysrKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQucGF0Y2ggICB8 IDIwNyArKysrKysrKysrKysrKwogLi4uLzAzX2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoICAgICAg ICAgICAgICAgIHwgIDM0ICsrKwogLi4uL2xpYmdjcnlwdC1wYXRjaGVzLzA0X2FyaWFfc3RhdGlj LnBhdGNoICAgIHwgIDIyICsrCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWlu dC5oICAgICAgfCAgNTEgLS0tLQogZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJf d3JhcC5oICAgIHwgIDEzICstCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jICAg ICAgICAgICAgfCAgODMgKysrKystCiBncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVz LmggICAgICAgICAgfCAgIDQgKwogZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0u YyAgICAgICAgIHwgIDE4ICstCiBpbmNsdWRlL2dydWIvY3J5cHRvLmggICAgICAgICAgICAgICAg ICAgICAgICAgfCAyNjMgKysrKysrKysrKysrKysrLS0tCiBpbmNsdWRlL2dydWIvZ2NyeXB0L2dw Zy1lcnJvci5oICAgICAgICAgICAgICAgfCAgMjkgKysKIHV0aWwvZ3J1Yi1mc3Rlc3QuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdXRpbC9pbXBvcnRfZ2NyeS5weSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTkzICsrKysrKysrKy0tLS0KIHV0aWwvaW1wb3J0X2dj cnlwdF9pbnRoLnNlZCAgICAgICAgICAgICAgICAgICB8ICAxNyArKwogdXRpbC9pbXBvcnRfZ2Ny eXB0aC5zZWQgICAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIDI3IGZpbGVzIGNoYW5nZWQs IDExMjEgaW5zZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAzX2Rpc2FibGVfcnNhX3No YWtlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0 Y2hlcy8wNF9hcmlhX3N0YXRpYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHV0aWwvaW1wb3J0 X2djcnlwdF9pbnRoLnNlZAoKZGlmZiAtLWdpdCBhL2F1dG9nZW4uc2ggYi9hdXRvZ2VuLnNoCmlu ZGV4IDE5NWRhYTU0MS4uMDViYzliMmYwIDEwMDc1NQotLS0gYS9hdXRvZ2VuLnNoCisrKyBiL2F1 dG9nZW4uc2gKQEAgLTM1LDYgKzM1LDcgQEAgJHtQWVRIT059IHV0aWwvaW1wb3J0X3VuaWNvZGUu cHkgdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgdW5pY29kZS9CaWRpTWlycm9yaW5nLnQKIGVjaG8g IkltcG9ydGluZyBsaWJnY3J5cHQuLi4iCiAke1BZVEhPTn0gdXRpbC9pbXBvcnRfZ2NyeS5weSBn cnViLWNvcmUvbGliL2xpYmdjcnlwdC8gZ3J1Yi1jb3JlCiBzZWQgLW4gLWYgdXRpbC9pbXBvcnRf Z2NyeXB0aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LmguaW4gPiBp bmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCitzZWQgLW4gLWYgdXRpbC9pbXBvcnRfZ2NyeXB0 X2ludGguc2VkIDwgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCA+PiBp bmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCiBpZiBbIC1mIGluY2x1ZGUvZ3J1Yi9nY3J5cHQv ZzEwbGliLmggXTsgdGhlbgogICAgIHJtIGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZzEwbGliLmgKIGZp CkBAIC01MSw2ICs1MiwxMCBAQCBmb3IgeCBpbiBtcGktYXNtLWRlZnMuaCBtcGloLWFkZDEuYyBt cGloLXN1YjEuYyBtcGloLW11bDEuYyBtcGloLW11bDIuYyBtcGloLW11bAogICAgIGNwIGdydWIt Y29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpL2dlbmVyaWMvIiR4IiBncnViLWNvcmUvbGliL2xp YmdjcnlwdC1ncnViL21waS8iJHgiCiBkb25lCiAKK2ZvciB4IGluIGdydWItY29yZS9saWIvbGli Z2NyeXB0LXBhdGNoZXMvKi5wYXRjaDsgZG8KKyAgICBwYXRjaCAtaSAkeCAtcDEKK2RvbmUKKwog ZWNobyAiR2VuZXJhdGluZyBBdXRvbWFrZSBpbnB1dC4uLiIKIAogIyBBdXRvbWFrZSBkb2Vzbid0 IGxpa2UgaW5jbHVkaW5nIGZpbGVzIGZyb20gYSBwYXRoIG91dHNpZGUgdGhlIHByb2plY3QuCmRp ZmYgLS1naXQgYS9jb25mL01ha2VmaWxlLmNvbW1vbiBiL2NvbmYvTWFrZWZpbGUuY29tbW9uCmlu ZGV4IGM2MGY1NTM4Ni4uNWNhZGE0NTY4IDEwMDY0NAotLS0gYS9jb25mL01ha2VmaWxlLmNvbW1v bgorKysgYi9jb25mL01ha2VmaWxlLmNvbW1vbgpAQCAtODEsOCArODEsOCBAQCBDUFBGTEFHU19H TlVMSUIgPSAtSSQodG9wX2J1aWxkZGlyKS9ncnViLWNvcmUvbGliL2dudWxpYiAtSSQodG9wX3Ny Y2RpcikvZ3J1Yi1jbwogQ0ZMQUdTX1BPU0lYID0gLWZuby1idWlsdGluCiBDUFBGTEFHU19QT1NJ WCA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAKIAotQ0ZMQUdTX0dD UlkgPSAtV25vLWVycm9yIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1yZWR1 bmRhbnQtZGVjbHMgLVduby11bmRlZiAkKENGTEFHU19QT1NJWCkKLUNQUEZMQUdTX0dDUlkgPSAt SSQodG9wX3NyY2RpcikvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcCAkKENQUEZMQUdTX1BP U0lYKSAtRF9HQ1JZUFRfSU5fTElCR0NSWVBUPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1 Yi9nY3J5cHQKK0NGTEFHU19HQ1JZID0gLVduby1lcnJvcj1zaWduLWNvbXBhcmUgLVduby1taXNz aW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVmICQo Q0ZMQUdTX1BPU0lYKQorQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUv bGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJHQ1JZ UFQ9MSAtRF9HQ1JZUFRfQ09ORklHX0hfSU5DTFVERUQ9MSAtREhBVkVfU1RSVE9VTD0xIC1JJCh0 b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvZ2NyeXB0CiAKIENQUEZMQUdTX0VGSUVNVSA9IC1JJCh0 b3Bfc3JjZGlyKS9ncnViLWNvcmUvZWZpZW11L3J1bnRpbWUKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL01ha2VmaWxlLmNvcmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmluZGV4 IDcwNWQ3M2ZhYi4uNzk5ZTRkNDcxIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUuY29y ZS5kZWYKKysrIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC05NzUsOCArOTc1LDgg QEAgbW9kdWxlID0gewogbW9kdWxlID0gewogICBuYW1lID0gcGdwOwogICBjb21tb24gPSBjb21t YW5kcy9wZ3AuYzsKLSAgY2ZsYWdzID0gJyQoQ0ZMQUdTX1BPU0lYKSc7Ci0gIGNwcGZsYWdzID0g Jy1JJChzcmNkaXIpL2xpYi9wb3NpeF93cmFwJzsKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkp IC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3MgPSAn JChDUFBGTEFHU19HQ1JZKSc7CiB9OwogCiBtb2R1bGUgPSB7CkBAIC0yMTc1LDYgKzIxNzUsMjIg QEAgbW9kdWxlID0gewogICBjb21tb24gPSB0ZXN0cy9zZXRqbXBfdGVzdC5jOwogfTsKIAorbW9k dWxlID0geworICBuYW1lID0gZHNhX3NleHBfdGVzdDsKKyAgY29tbW9uID0gdGVzdHMvZHNhX3Nl eHBfdGVzdC5jOworCisgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1k ZWNscyAtV25vLXNpZ24tY29tcGFyZSc7CisgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSkn OworfTsKKworbW9kdWxlID0geworICBuYW1lID0gcnNhX3NleHBfdGVzdDsKKyAgY29tbW9uID0g dGVzdHMvcnNhX3NleHBfdGVzdC5jOworCisgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25v LXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29tcGFyZSc7CisgIGNwcGZsYWdzID0gJyQoQ1BQ RkxBR1NfR0NSWSknOworfTsKKwogbW9kdWxlID0gewogICBuYW1lID0gc2lnbmF0dXJlX3Rlc3Q7 CiAgIGNvbW1vbiA9IHRlc3RzL3NpZ25hdHVyZV90ZXN0LmM7CkBAIC0yNTI5LDcgKzI1NDUsMjMg QEAgbW9kdWxlID0gewogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waWNvZGVy LmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1yc2hpZnQuYzsKICAg Y29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktaW5saW5lLmM7CisgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1jb25zdC10aW1lLmM7CisgIGNvbW1vbiA9IGxp Yi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpLXNjYW4uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlw dC1ncnViL3NyYy9jb25zdC10aW1lLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHRfd3JhcC9t ZW0uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jOworCisgIGNm bGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29t cGFyZSAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlJzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBG TEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSBwdWJrZXk7CisgIGNvbW1v biA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvcHVia2V5LXV0aWwuYzsKKyAgY29tbW9uID0g bGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxpYi9s aWJnY3J5cHQtZ3J1Yi9jaXBoZXIvZHNhLWNvbW1vbi5jOworICBjb21tb24gPSBsaWIvbGliZ2Ny eXB0LWdydWIvc3JjL3NleHAuYzsKKyAgY29tbW9uID0gbGliL2I2NGRlYy5jOwogCiAgIGNmbGFn cyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29tcGFy ZSc7CiAgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2NvbW1hbmRzL2hhc2hzdW0uYyBiL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMKaW5k ZXggZDU2YjViMGJiLi5iNmY4ZTNkMWEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5kcy9o YXNoc3VtLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpAQCAtNzMsNyArNzMs NyBAQCBoYXNoX2ZpbGUgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGdjcnlfbWRfc3BlY190ICpo YXNoLCB2b2lkICpyZXN1bHQpCiAgIGlmICghcmVhZGJ1ZiB8fCAhY29udGV4dCkKICAgICBnb3Rv IGZhaWw7CiAKLSAgaGFzaC0+aW5pdCAoY29udGV4dCk7CisgIGhhc2gtPmluaXQgKGNvbnRleHQs IDApOwogICB3aGlsZSAoMSkKICAgICB7CiAgICAgICBncnViX3NzaXplX3QgcjsKZGlmZiAtLWdp dCBhL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYyBiL2dydWItY29yZS9jb21tYW5kcy9s ZWdhY3ljZmcuYwppbmRleCBlOWU5ZDk0ZWYuLjA1MmJiMTEwZCAxMDA2NDQKLS0tIGEvZ3J1Yi1j b3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3lj ZmcuYwpAQCAtNjI1LDcgKzYyNSw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBj aGFyICplbnRlcmVkLAogICBpZiAoIWN0eCkKICAgICByZXR1cm4gMDsKIAotICBHUlVCX01EX01E NS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAgIEdSVUJfTURf TUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9NRF9NRDUtPndy aXRlIChjdHgsIHB3LT5zYWx0ICsgMywgcHctPnNhbHRsZW4gLSAzKTsKICAgR1JVQl9NRF9NRDUt PndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwpAQCAtNjMzLDcgKzYzMyw3IEBAIGNo ZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICBHUlVCX01EX01E NS0+ZmluYWwgKGN0eCk7CiAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIE1ENV9I QVNITEVOKTsKIAotICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmlu aXQgKGN0eCwgMCk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVk bGVuKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIHB3LT5zYWx0LCBwdy0+c2FsdGxlbik7 IC8qIGluY2x1ZGUgdGhlICQxJCBoZWFkZXIgKi8KICAgZm9yIChpID0gZW50ZXJlZGxlbjsgaSA+ IDE2OyBpIC09IDE2KQpAQCAtNjQ5LDcgKzY0OSw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFs IChjb25zdCBjaGFyICplbnRlcmVkLAogICAgIHsKICAgICAgIGdydWJfbWVtY3B5IChhbHRfcmVz dWx0LCBkaWdlc3QsIDE2KTsKIAotICAgICAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7CisgICAg ICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgICAgIGlmICgoaSAmIDEpICE9IDApCiAJ R1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICAgICAgZWxz ZQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jIGIvZ3J1Yi1jb3JlL2NvbW1h bmRzL3BncC5jCmluZGV4IGM2NzY2ZjA0NC4uMjJlY2E5N2ZmIDEwMDY0NAotLS0gYS9ncnViLWNv cmUvY29tbWFuZHMvcGdwLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCkBAIC0xMzYs NDEgKzEzNiwyNyBAQCBzdHJ1Y3Qgc2lnbmF0dXJlX3Y0X2hlYWRlcgogICBncnViX3VpbnQxNl90 IGhhc2hlZF9zdWI7CiB9IEdSVUJfUEFDS0VEOwogCi1jb25zdCBjaGFyICpoYXNoZXNbXSA9IHsK LSAgWzB4MDFdID0gIm1kNSIsCi0gIFsweDAyXSA9ICJzaGExIiwKLSAgWzB4MDNdID0gInJpcGVt ZDE2MCIsCi0gIFsweDA4XSA9ICJzaGEyNTYiLAotICBbMHgwOV0gPSAic2hhMzg0IiwKLSAgWzB4 MGFdID0gInNoYTUxMiIsCi0gIFsweDBiXSA9ICJzaGEyMjQiCi19OwotCiBzdHJ1Y3QgZ2NyeV9w a19zcGVjICpncnViX2NyeXB0b19wa19kc2E7CiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnViX2Ny eXB0b19wa19lY2RzYTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX3JzYTsK IAotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpo dmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1 YmtleSAqc2spOwotc3RhdGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91 aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJf cHVibGljX3N1YmtleSAqc2spOwotCiBzdHJ1Y3QKIHsKICAgY29uc3QgY2hhciAqbmFtZTsKKyAg Y29uc3QgY2hhciAqc2lnc2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXNpZzsKKyAgY29uc3QgY2hh ciAqcHVic2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXB1YjsKICAgc3RydWN0IGdjcnlfcGtfc3Bl YyAqKmFsZ287Ci0gIGludCAoKnBhZCkgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAq aHZhbCwKLQkgICAgICBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVi bGljX3N1YmtleSAqc2spOworICBjb25zdCBjaGFyICpwYWRkaW5nOwogICBjb25zdCBjaGFyICpt b2R1bGU7CiB9IHBrYWxnb3NbXSA9CiAgIHsKLSAgICBbMV0gPSB7ICJyc2EiLCAxLCAyLCAmZ3J1 Yl9jcnlwdG9fcGtfcnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzNdID0geyAicnNh IiwgMSwgMiwgJmdydWJfY3J5cHRvX3BrX3JzYSwgcnNhX3BhZCwgImdjcnlfcnNhIiB9LAotICAg IFsxN10gPSB7ICJkc2EiLCAyLCA0LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCBkc2FfcGFkLCAiZ2Ny eV9kc2EiIH0sCisgICAgWzFdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSkiLCAx LCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9fcGtf cnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzNdID0geyAicnNhIiwgIihzaWctdmFs IChyc2EgKHMgJU0pKSkiLCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAy LCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzE3XSA9 IHsgImRzYSIsICIoc2lnLXZhbCAoZHNhIChyICVNKSAocyAlTSkpKSIsIDIsCisJICAgICAiKHB1 YmxpYy1rZXkgKGRzYSAocCAlTSkgKHEgJU0pIChnICVNKSAoeSAlTSkpKSIsCisJICAgICA0LCAm Z3J1Yl9jcnlwdG9fcGtfZHNhLCAicmF3IiwgImdjcnlfZHNhIiB9LAogICB9OwogCiBzdHJ1Y3Qg Z3J1Yl9wdWJsaWNfa2V5CkBAIC0xOTYsNyArMTgyLDcgQEAgZnJlZV9wayAoc3RydWN0IGdydWJf cHVibGljX2tleSAqcGspCiAgICAgICBncnViX3NpemVfdCBpOwogICAgICAgZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUgKHNrLT5tcGlzKTsgaSsrKQogCWlmIChzay0+bXBpc1tpXSkKLQkgIGdj cnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKKwkgIF9nY3J5X21waV9yZWxlYXNlIChzay0+ bXBpc1tpXSk7CiAgICAgICBuc2sgPSBzay0+bmV4dDsKICAgICAgIGdydWJfZnJlZSAoc2spOwog ICAgIH0KQEAgLTMwMyw3ICsyODksNyBAQCBncnViX2xvYWRfcHVibGljX2tleSAoZ3J1Yl9maWxl X3QgZikKIAlnb3RvIGZhaWw7CiAKICAgICAgIGdydWJfbWVtc2V0IChmaW5nZXJwcmludF9jb250 ZXh0LCAwLCBHUlVCX01EX1NIQTEtPmNvbnRleHRzaXplKTsKLSAgICAgIEdSVUJfTURfU0hBMS0+ aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCk7CisgICAgICBHUlVCX01EX1NIQTEtPmluaXQgKGZp bmdlcnByaW50X2NvbnRleHQsIDApOwogICAgICAgR1JVQl9NRF9TSEExLT53cml0ZSAoZmluZ2Vy cHJpbnRfY29udGV4dCwgIlx4OTkiLCAxKTsKICAgICAgIGxlbl9iZSA9IGdydWJfY3B1X3RvX2Jl MTYgKGxlbik7CiAgICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250ZXh0 LCAmbGVuX2JlLCBzaXplb2YgKGxlbl9iZSkpOwpAQCAtMzM2LDcgKzMyMiw3IEBAIGdydWJfbG9h ZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCiAJICBHUlVCX01EX1NIQTEtPndyaXRlIChm aW5nZXJwcmludF9jb250ZXh0LCBidWZmZXIsIGxiICsgc2l6ZW9mIChncnViX3VpbnQxNl90KSk7 CiAKLQkgIGlmIChnY3J5X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwK KwkgIGlmIChfZ2NyeV9tcGlfc2NhbiAoJnNrLT5tcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1AsCiAJ CQkgICAgIGJ1ZmZlciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAkgICAgewog CSAgICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0 dXJlIikpOwpAQCAtMzk0LDUxICszODAsNiBAQCBncnViX2NyeXB0b19wa19sb2NhdGVfc3Via2V5 X2luX3RydXN0ZGIgKGdydWJfdWludDY0X3Qga2V5aWQpCiAgIHJldHVybiAwOwogfQogCi0KLXN0 YXRpYyBpbnQKLWRzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZhbCwK LQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJrZXkg KnNrKQotewotICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1waXNb MV0pOwotICBncnViX2RwcmludGYgKCJjcnlwdCIsICJtdXN0IGJlICV1IGJpdHMgZ290ICVkIGJp dHNcbiIsIG5iaXRzLAotCQkoaW50KSg4ICogaGFzaC0+bWRsZW4pKTsKLSAgcmV0dXJuIGdjcnlf bXBpX3NjYW4gKGhtcGksIEdDUllNUElfRk1UX1VTRywgaHZhbCwKLQkJCW5iaXRzIC8gOCA8ICh1 bnNpZ25lZCkgaGFzaC0+bWRsZW4gPyBuYml0cyAvIDgKLQkJCTogKHVuc2lnbmVkKSBoYXNoLT5t ZGxlbiwgMCk7Ci19Ci0KLXN0YXRpYyBpbnQKLXJzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdy dWJfdWludDhfdCAqaHZhbCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBn cnViX3B1YmxpY19zdWJrZXkgKnNrKQotewotICBncnViX3NpemVfdCB0bGVuLCBlbWxlbiwgZmZs ZW47Ci0gIGdydWJfdWludDhfdCAqZW0sICplbXB0cjsKLSAgdW5zaWduZWQgbmJpdHMgPSBnY3J5 X21waV9nZXRfbmJpdHMgKHNrLT5tcGlzWzBdKTsKLSAgaW50IHJldDsKLSAgdGxlbiA9IGhhc2gt Pm1kbGVuICsgaGFzaC0+YXNubGVuOwotICBlbWxlbiA9IChuYml0cyArIDcpIC8gODsKLSAgaWYg KGVtbGVuIDwgdGxlbiArIDExKQotICAgIHJldHVybiAxOwotCi0gIGVtID0gZ3J1Yl9tYWxsb2Mg KGVtbGVuKTsKLSAgaWYgKCFlbSkKLSAgICByZXR1cm4gMTsKLQotICBlbVswXSA9IDB4MDA7Ci0g IGVtWzFdID0gMHgwMTsKLSAgZmZsZW4gPSBlbWxlbiAtIHRsZW4gLSAzOwotICBmb3IgKGVtcHRy ID0gZW0gKyAyOyBlbXB0ciA8IGVtICsgMiArIGZmbGVuOyBlbXB0cisrKQotICAgICplbXB0ciA9 IDB4ZmY7Ci0gICplbXB0cisrID0gMHgwMDsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBoYXNoLT5h c25vaWQsIGhhc2gtPmFzbmxlbik7Ci0gIGVtcHRyICs9IGhhc2gtPmFzbmxlbjsKLSAgZ3J1Yl9t ZW1jcHkgKGVtcHRyLCBodmFsLCBoYXNoLT5tZGxlbik7Ci0KLSAgcmV0ID0gZ2NyeV9tcGlfc2Nh biAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBlbSwgZW1sZW4sIDApOwotICBncnViX2ZyZWUgKGVt KTsKLSAgcmV0dXJuIHJldDsKLX0KLQogc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQKIHsKICAg Z3J1Yl9maWxlX3Qgc2lnOwpAQCAtNDgzLDE1ICs0MjQsMTIgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0 dXJlX2luaXQgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBz aWcpCiAgIGlmICh0ICE9IDApCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9T SUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGlmIChoID49IEFSUkFZX1NJWkUg KGhhc2hlcykgfHwgaGFzaGVzW2hdID09IE5VTEwpCi0gICAgcmV0dXJuIGdydWJfZXJyb3IgKEdS VUJfRVJSX0JBRF9TSUdOQVRVUkUsICJ1bmtub3duIGhhc2giKTsKLQogICBpZiAocGsgPj0gQVJS QVlfU0laRSAocGthbGdvcykgfHwgcGthbGdvc1twa10ubmFtZSA9PSBOVUxMKQogICAgIHJldHVy biBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCBOXygiYmFkIHNpZ25hdHVyZSIp KTsKIAotICBjdHh0LT5oYXNoID0gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGhhc2hl c1toXSk7CisgIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAoaCk7 CiAgIGlmICghY3R4dC0+aGFzaCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFE X1NJR05BVFVSRSwgImhhc2ggYCVzJyBub3QgbG9hZGVkIiwgaGFzaGVzW2hdKTsKKyAgICByZXR1 cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhhc2ggYCVkJyBub3QgbG9h ZGVkIiwgaCk7CiAKICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCkBAIC00 OTksNyArNDM3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVjdCBncnViX3B1 YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICghY3R4dC0+aGFzaF9j b250ZXh0KQogICAgIHJldHVybiBncnViX2Vycm5vOwogCi0gIGN0eHQtPmhhc2gtPmluaXQgKGN0 eHQtPmhhc2hfY29udGV4dCk7CisgIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29udGV4 dCwgMCk7CiAgIGN0eHQtPnNpZyA9IHNpZzsKIAogICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKQEAg LTUyOCw3ICs0NjYsNiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdydWJf cHVia2V5X2NvbnRleHQgKmN0eHQsCiAgIGdydWJfdWludDE2X3QgdW5oYXNoZWRfc3ViOwogICBn cnViX3NzaXplX3QgcjsKICAgZ3J1Yl91aW50OF90IGhhc2hfc3RhcnRbMl07Ci0gIGdjcnlfbXBp X3QgaG1waTsKICAgZ3J1Yl91aW50NjRfdCBrZXlpZCA9IDA7CiAgIHN0cnVjdCBncnViX3B1Ymxp Y19zdWJrZXkgKnNrOwogCkBAIC02MjAsNyArNTU3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJl X3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ3J1Yl9tZW1j cHkgKHJlYWRidWYsICZsLCBzaXplb2YgKGwpKTsKICAgICAgIGdydWJfZHByaW50ZiAoImNyeXB0 IiwgImFsaXZlXG4iKTsKIAotICAgICAgaWYgKGdjcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZ TVBJX0ZNVF9QR1AsCisgICAgICBpZiAoX2djcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZTVBJ X0ZNVF9QR1AsCiAJCQkgcmVhZGJ1ZiwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkK IAlnb3RvIGZhaWw7CiAgICAgICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7CkBA IC02MzgsOCArNTc1LDYgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBncnVi X3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICBpZiAo cGthbGdvc1twa10ucGFkICgmaG1waSwgaHZhbCwgY3R4dC0+aGFzaCwgc2spKQotICAgIGdvdG8g ZmFpbDsKICAgaWYgKCEqcGthbGdvc1twa10uYWxnbykKICAgICB7CiAgICAgICBncnViX2RsX2xv YWQgKHBrYWxnb3NbcGtdLm1vZHVsZSk7CkBAIC02NTIsNyArNTg3LDI0IEBAIGdydWJfdmVyaWZ5 X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKIAkJICBw a2FsZ29zW3BrXS5tb2R1bGUpOwogICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgaWYgKCgqcGth bGdvc1twa10uYWxnbyktPnZlcmlmeSAoMCwgaG1waSwgbXBpcywgc2stPm1waXMsIDAsIDApKQor CisgIGdjcnlfc2V4cF90IGhzZXhwLCBwdWJrZXksIHNpZzsKKyAgZ3J1Yl9zaXplX3QgZXJyb2Y7 CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmaHNleHAsICZlcnJvZiwgIihkYXRhIChmbGFncyAl cykgKGhhc2ggJXMgJWIpKSIsIHBrYWxnb3NbcGtdLnBhZGRpbmcsIGN0eHQtPmhhc2gtPm5hbWUs IGN0eHQtPmhhc2gtPm1kbGVuLCBodmFsKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2djcnlf c2V4cF9idWlsZCgmcHVia2V5LCAmZXJyb2YsIHBrYWxnb3NbcGtdLnB1YnNleHAsIHNrLT5tcGlz WzBdLCBzay0+bXBpc1sxXSwgc2stPm1waXNbMl0sIHNrLT5tcGlzWzNdKSkKKyAgICBnb3RvIGZh aWw7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmc2lnLCAmZXJyb2YsIHBrYWxnb3NbcGtdLnNp Z3NleHAsIG1waXNbMF0sIG1waXNbMV0pKQorICAgIGdvdG8gZmFpbDsKKworICBfZ2NyeV9zZXhw X2R1bXAoc2lnKTsKKyAgX2djcnlfc2V4cF9kdW1wKGhzZXhwKTsKKyAgX2djcnlfc2V4cF9kdW1w KHB1YmtleSk7CisKKyAgaWYgKCgqcGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoc2lnLCBoc2V4 cCwgcHVia2V5KSkKICAgICBnb3RvIGZhaWw7CiAKICAgZ3J1Yl9mcmVlIChyZWFkYnVmKTsKZGlm ZiAtLWdpdCBhL2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jIGIvZ3J1Yi1jb3JlL2NvbW1h bmRzL3hudV91dWlkLmMKaW5kZXggYWU0YjNhNDE1Li4xNDA2YzQzZjUgMTAwNjQ0Ci0tLSBhL2dy dWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy94bnVf dXVpZC5jCkBAIC02OCw3ICs2OCw3IEBAIGdydWJfY21kX3hudV91dWlkIChncnViX2NvbW1hbmRf dCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICBjdHggPSBncnViX3phbGxvYyAoR1JV Ql9NRF9NRDUtPmNvbnRleHRzaXplKTsKICAgaWYgKCFjdHgpCiAgICAgcmV0dXJuIGdydWJfZXJy bm87Ci0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAoY3R4 LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGhhc2hfcHJlZml4LCBzaXplb2YgKGhh c2hfcHJlZml4KSk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCAmc2VyaWFsLCBzaXplb2Yg KHNlcmlhbCkpOwogICBHUlVCX01EX01ENS0+ZmluYWwgKGN0eCk7CmRpZmYgLS1naXQgYS9ncnVi LWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKaW5k ZXggNWUxZWIyNzQzLi5lNTJhN2ViYjUgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2NyeXB0 b2Rpc2suYworKysgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKQEAgLTI5Nyw3ICsyOTcs NyBAQCBncnViX2NyeXB0b2Rpc2tfZW5kZWNyeXB0IChzdHJ1Y3QgZ3J1Yl9jcnlwdG9kaXNrICpk ZXYsCiAJICAgICAgcmV0dXJuIEdQR19FUlJfT1VUX09GX01FTU9SWTsKIAogCSAgICB0bXAgPSBn cnViX2NwdV90b19sZTY0IChzZWN0b3IgPDwgbG9nX3NlY3Rvcl9zaXplKTsKLQkgICAgZGV2LT5p dl9oYXNoLT5pbml0IChjdHgpOworCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCwgMCk7CiAJ ICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgZGV2LT5pdl9wcmVmaXgsIGRldi0+aXZfcHJl Zml4X2xlbik7CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgJnRtcCwgc2l6ZW9mICh0 bXApKTsKIAkgICAgZGV2LT5pdl9oYXNoLT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9pby9nemlvLmMgYi9ncnViLWNvcmUvaW8vZ3ppby5jCmluZGV4IGNiN2ViMWZlMy4uZmE5 ZDk0MmIyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vZ3ppby5jCisrKyBiL2dydWItY29yZS9p by9nemlvLmMKQEAgLTEyMDEsNyArMTIwMSw3IEBAIGluaXRpYWxpemVfdGFibGVzIChncnViX2d6 aW9fdCBnemlvKQogICBnemlvLT50ZCA9IE5VTEw7CiAKICAgaWYgKGd6aW8tPmhjb250ZXh0KQot ICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0KTsKKyAgICBnemlvLT5oZGVzYy0+ aW5pdChnemlvLT5oY29udGV4dCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2lv L2x6b3Bpby5jIGIvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jCmluZGV4IGE3ZDQ0MjU0My4uY2VhOTQy MzA4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMKKysrIGIvZ3J1Yi1jb3JlL2lv L2x6b3Bpby5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdGVzdF9oZWFkZXIgKGdydWJfZmlsZV90IGZp bGUpCiAgICAgaWYgKCEgY29udGV4dCkKICAgICAgIHJldHVybiAwOwogCi0gICAgaGNoZWNrLT5p bml0KGNvbnRleHQpOworICAgIGhjaGVjay0+aW5pdChjb250ZXh0LCAwKTsKIAogICAgIC8qIE1B R0lDIGlzIG5vdCBpbmNsdWRlZCBpbiBjaGVjayBjYWxjdWxhdGlvbi4gICovCiAgICAgaGNoZWNr LT53cml0ZShjb250ZXh0LCAmaGVhZGVyLmx6b3BfdmVyc2lvbiwgc2l6ZW9mKGhlYWRlciktIExa T1BfTUFHSUNfU0laRSk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYyBiL2dy dWItY29yZS9saWIvYWRsZXIzMi5jCmluZGV4IDQzYjY4YWY2Mi4uZjg0OWNjZWU2IDEwMDY0NAot LS0gYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYworKysgYi9ncnViLWNvcmUvbGliL2FkbGVyMzIu YwpAQCAtMjksMTAgKzI5LDEyIEBAIHN0cnVjdCBhZGxlcjMyX2NvbnRleHQKIH07CiAKIHN0YXRp YyB2b2lkCi1hZGxlcjMyX2luaXQgKHZvaWQgKmNvbnRleHQpCithZGxlcjMyX2luaXQgKHZvaWQg KmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgc3RydWN0IGFkbGVyMzJfY29udGV4 dCAqY3R4ID0gY29udGV4dDsKIAorICAodm9pZCkgZmxhZ3M7CisKICAgY3R4LT5hID0gMTsKICAg Y3R4LT5iID0gMDsKIH0KQEAgLTgxLDEzICs4MywyMiBAQCBhZGxlcjMyX3JlYWQgKHZvaWQgKmNv bnRleHQpCiAKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCBzcGVjX2FkbGVyMzIgPQogICB7Ci0gICAg IkFETEVSMzIiLCAwLCAwLCAwLCA0LAotICAgIGFkbGVyMzJfaW5pdCwgYWRsZXIzMl93cml0ZSwg YWRsZXIzMl9maW5hbCwgYWRsZXIzMl9yZWFkLAotICAgIHNpemVvZiAoc3RydWN0IGFkbGVyMzJf Y29udGV4dCksCisgICAgLmFsZ28gPSBHQ1JZX01EX0FETEVSMzIsCisgICAgLmZsYWdzID0gey5k aXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAgLm5hbWUgPSAiQURMRVIzMiIsCisgICAgLmFz bm9pZCA9IE5VTEwsCisgICAgLmFzbmxlbiA9IDAsCisgICAgLm9pZHMgPSBOVUxMLAorICAgIC5t ZGxlbiA9IDQsCisgICAgLmluaXQgPSBhZGxlcjMyX2luaXQsCisgICAgLndyaXRlID0gYWRsZXIz Ml93cml0ZSwKKyAgICAuZmluYWwgPSBhZGxlcjMyX2ZpbmFsLAorICAgIC5yZWFkID0gYWRsZXIz Ml9yZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29udGV4 dCksCisgICAgLmJsb2Nrc2l6ZSA9IDY0LAogI2lmZGVmIEdSVUJfVVRJTAogICAgIC5tb2RuYW1l ID0gImFkbGVyMzIiLAogI2VuZGlmCi0gICAgLmJsb2Nrc2l6ZSA9IDY0CiAgIH07CiAKIApkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCmlu ZGV4IDQ5NjBmM2Y4OS4uYzIzMWZhOTdjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2NyYzY0 LmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCkBAIC02MSw4ICs2MSwxMCBAQCBpbml0X2Ny YzY0X3RhYmxlICh2b2lkKQogfQogCiBzdGF0aWMgdm9pZAotY3JjNjRfaW5pdCAodm9pZCAqY29u dGV4dCkKK2NyYzY0X2luaXQgKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsK KyAgKHZvaWQpIGZsYWdzOworCiAgIGlmICghIGNyYzY0X3RhYmxlWzFdKQogICAgIGluaXRfY3Jj NjRfdGFibGUgKCk7CiAgICooZ3J1Yl91aW50NjRfdCAqKSBjb250ZXh0ID0gMDsKQEAgLTk3LDEw ICs5OSwyMiBAQCBjcmM2NF9maW5hbCAodm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fICgodW51 c2VkKSkpCiAKIGdjcnlfbWRfc3BlY190IF9nY3J5X2RpZ2VzdF9zcGVjX2NyYzY0ID0KICAgewot ICAgICJDUkM2NCIsIDAsIDAsIDAsIDgsCi0gICAgY3JjNjRfaW5pdCwgY3JjNjRfd3JpdGUsIGNy YzY0X2ZpbmFsLCBjcmM2NF9yZWFkLAotICAgIHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCi0gICAg LmJsb2Nrc2l6ZSA9IDY0CisgICAgLmFsZ28gPSBHQ1JZX01EX0NSQzY0LAorICAgIC5mbGFncyA9 IHsuZGlzYWJsZWQgPSAwLCAuZmlwcyA9IDB9LAorICAgIC5uYW1lID0gIkNSQzY0IiwKKyAgICAu YXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisgICAg Lm1kbGVuID0gOCwKKyAgICAuaW5pdCA9IGNyYzY0X2luaXQsCisgICAgLndyaXRlID0gY3JjNjRf d3JpdGUsCisgICAgLmZpbmFsID0gY3JjNjRfZmluYWwsCisgICAgLnJlYWQgPSBjcmM2NF9yZWFk LAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCisgICAgLmJsb2Nr c2l6ZSA9IDY0LAorI2lmZGVmIEdSVUJfVVRJTAorICAgIC5tb2RuYW1lID0gImNyYzY0IiwKKyNl bmRpZgogICB9OwogCiBHUlVCX01PRF9JTklUKGNyYzY0KQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2xpYi9jcnlwdG8uYyBiL2dydWItY29yZS9saWIvY3J5cHRvLmMKaW5kZXggMzk2Zjc2NDEwLi5k ZDYwZGQ0YWMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3J5cHRvLmMKKysrIGIvZ3J1Yi1j b3JlL2xpYi9jcnlwdG8uYwpAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1h Y19oYW5kbGUKIHN0YXRpYyBnY3J5X2NpcGhlcl9zcGVjX3QgKmdydWJfY2lwaGVycyA9IE5VTEw7 CiBzdGF0aWMgZ2NyeV9tZF9zcGVjX3QgKmdydWJfZGlnZXN0cyA9IE5VTEw7CiAKK2ludCBfZ2Ny eV9ub19maXBzX21vZGVfcmVxdWlyZWQgPSAxOworCiB2b2lkICgqZ3J1Yl9jcnlwdG9fYXV0b2xv YWRfaG9vaykgKGNvbnN0IGNoYXIgKm5hbWUpID0gTlVMTDsKIAogLyogQmFzZWQgb24gbGliZ2Ny eXB0LTEuNC40L3NyYy9taXNjLmMuICAqLwpAQCAtNTYsNiArNTgsMTcgQEAgX2djcnlfYnVybl9z dGFjayAoaW50IHNpemUpCiAgIGdydWJfYnVybl9zdGFjayAoc2l6ZSk7CiB9CiAKK3ZvaWQKK19f Z2NyeV9idXJuX3N0YWNrICh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKyAgZ3J1Yl9idXJuX3N0YWNr IChzaXplKTsKK30KKwordm9pZAorX19nY3J5X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpCit7Cit9 CisKIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSkKIF9nY3J5X2Fzc2VydF9mYWlsZWQg KGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCQkgICAgIGNv bnN0IGNoYXIgKmZ1bmMpCkBAIC02NCw2ICs3NywxMiBAQCBfZ2NyeV9hc3NlcnRfZmFpbGVkIChj b25zdCBjaGFyICpleHByLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgZ3J1Yl9mYXRh bCAoImFzc2VydGlvbiAlcyBhdCAlczolZCAoJXMpIGZhaWxlZFxuIiwgZXhwciwgZmlsZSwgbGlu ZSwgZnVuYyk7CiB9CiAKK3ZvaWQKK19nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50IGxp bmUsIGNvbnN0IGNoYXIgKmZ1bmMgKQoreworICAgIGdydWJfZmF0YWwgKCIuLi4gdGhpcyBpcyBh IGJ1ZyAoJXM6JWQ6JXMpXG4iLCBmaWxlLCBsaW5lLCBmdW5jKTsKK30KKwogCiB2b2lkIF9nY3J5 X2xvZ19lcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CkBAIC04Myw2ICsxMDIsMzYgQEAg dm9pZCBfZ2NyeV9sb2dfZXJyb3IgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0KIAor dm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xpc3Qg YXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQgKCJkZWJ1ZyIpOworCisg IGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1Zywg ImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkKKyAgICB7CisgICAgICBn cnViX3ByaW50ZiAoImdjcnlwdCBpbmZvOiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQp OworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdzKTsK KyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lw ZW1lbW9yeTIgKHZvaWQgKnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBncnVi X21lbXNldChwdHIsIHNldCwgbGVuKTsKK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5 ICh2b2lkICpwdHIsIGdydWJfc2l6ZV90IGxlbikKK3sKKyAgZ3J1Yl9tZW1zZXQocHRyLCAwLCBs ZW4pOworfQorCiB2b2lkCiBncnViX2NpcGhlcl9yZWdpc3RlciAoZ2NyeV9jaXBoZXJfc3BlY190 ICpjaXBoZXIpCiB7CkBAIC0xMjksNyArMTc4LDcgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29uc3Qg Z2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAKICAgaWYg KGhhc2gtPmNvbnRleHRzaXplID4gc2l6ZW9mIChjdHgpKQogICAgIGdydWJfZmF0YWwgKCJUb28g bGFyZ2UgbWQgY29udGV4dCIpOwotICBoYXNoLT5pbml0ICgmY3R4KTsKKyAgaGFzaC0+aW5pdCAo JmN0eCwgMCk7CiAgIGhhc2gtPndyaXRlICgmY3R4LCBpbiwgaW5sZW4pOwogICBoYXNoLT5maW5h bCAoJmN0eCk7CiAgIGdydWJfbWVtY3B5IChvdXQsIGhhc2gtPnJlYWQgKCZjdHgpLCBoYXNoLT5t ZGxlbik7CkBAIC0xNTMsNiArMjAyLDkxIEBAIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9uYW1l IChjb25zdCBjaGFyICpuYW1lKQogICAgIH0KIH0KIAorY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgor Z3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZCAoY29uc3QgY2hhciAqb2lkKQoreworICBjb25z dCBnY3J5X21kX3NwZWNfdCAqbWQ7CisKKyAgaWYgKCFvaWQpCisgICAgcmV0dXJuIE5VTEw7CisK KyAgaWYgKGdydWJfc3RybmNtcCAob2lkLCAib2lkLiIsIDQpID09IDAgfHwgZ3J1Yl9zdHJuY21w IChvaWQsICJPSUQuIiwgNCkgPT0gMCkKKyAgICBvaWQgKz0gNDsKKworCisgIGZvciAobWQgPSBn cnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorICAgIHsKKyAgICAgIGNvbnN0IGdjcnlf bWRfb2lkX3NwZWNfdCAqb2lkX3NwZWNzID0gbWQtPm9pZHM7CisgICAgICBpZiAob2lkX3NwZWNz KQorICAgICAgICB7CisgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IG9pZF9zcGVjc1tqXS5vaWRz dHJpbmc7IGorKykKKyAgICAgICAgICAgIGlmIChncnViX3N0cmNhc2VjbXAgKG9pZCwgb2lkX3Nw ZWNzW2pdLm9pZHN0cmluZykgPT0gMCkKKyAgICAgICAgICAgICAgcmV0dXJuIG1kOworICAgICAg ICB9CisgICAgfQorCisgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqbWRf YWxnb3NbXSA9IHsKKyAgICBbMV0gPSAiTUQ1IiwKKyAgICBbMl0gPSAiU0hBMSIsCisgICAgWzNd ID0gIlJJUEVNRDE2MCIsCisgICAgWzZdID0gIlRJR0VSIiwKKyAgICBbOF0gPSAiU0hBMjU2IiwK KyAgICBbOV0gPSAiU0hBMzg0IiwKKyAgICBbMTBdID0gIlNIQTUxMiIsCisgICAgWzExXSA9ICJT SEEyMjQiLAorCisgICAgWzMwMV0gPSAiTUQ0IiwKKyAgICBbMzAyXSA9ICJDUkMzMiIsCisgICAg WzMwM10gPSAiQ1JDMzJSRkMxNTEwIiwKKyAgICBbMzA0XSA9ICJDUkMyNFJGQzI0NDAiLAorICAg IFszMDVdID0gIldISVJMUE9PTCIsCisgICAgWzMwNl0gPSAiVElHRVIxIiwKKyAgICBbMzA3XSA9 ICJUSUdFUjIiLAorICAgIFszMDhdID0gIkdPU1RSMzQxMV85NCIsCisgICAgWzMwOV0gPSAiU1RS SUJPRzI1NiIsCisgICAgWzMxMF0gPSAiU1RSSUJPRzUxMiIsCisgICAgWzMxMV0gPSAiR09TVFIz NDExX0NQIiwKKyAgICBbMzEyXSA9ICJTSEEzLTIyNCIsCisgICAgWzMxM10gPSAiU0hBMy0yNTYi LAorICAgIFszMTRdID0gIlNIQTMtMzg0IiwKKyAgICBbMzE1XSA9ICJTSEEzLTUxMiIsCisgICAg WzMxNl0gPSAiU0hBS0UxMjgiLAorICAgIFszMTddID0gIlNIQUtFMjU2IiwKKyAgICBbMzE4XSA9 ICJCTEFLRTJCXzUxMiIsCisgICAgWzMxOV0gPSAiQkxBS0UyQl8zODQiLAorICAgIFszMjBdID0g IkJMQUtFMkJfMjU2IiwKKyAgICBbMzIxXSA9ICJCTEFLRTJCXzE2MCIsCisgICAgWzMyMl0gPSAi QkxBS0UyU18yNTYiLAorICAgIFszMjNdID0gIkJMQUtFMlNfMjI0IiwKKyAgICBbMzI0XSA9ICJC TEFLRTJTXzE2MCIsCisgICAgWzMyNV0gPSAiQkxBS0UyU18xMjgiLAorICAgIFszMjZdID0gIlNN MyIsCisgICAgWzMyN10gPSAiU0hBNTEyXzI1NiIsCisgICAgWzMyOF0gPSAiU0hBNTEyXzIyNCIs Cit9OworCisKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9i eV9hbGdvIChpbnQgYWxnbykKK3sKKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKm1kOworICBpbnQg Zmlyc3QgPSAxOworICB3aGlsZSAoMSkKKyAgICB7CisgICAgICBmb3IgKG1kID0gZ3J1Yl9kaWdl c3RzOyBtZDsgbWQgPSBtZC0+bmV4dCkKKwlpZiAoYWxnbyA9PSBtZC0+YWxnbykKKwkgIHJldHVy biBtZDsKKyAgICAgIGlmIChncnViX2NyeXB0b19hdXRvbG9hZF9ob29rICYmIGZpcnN0ICYmIGFs Z28gPiAwICYmIGFsZ28gPCAoaW50KUFSUkFZX1NJWkUobWRfYWxnb3MpICYmIG1kX2FsZ29zW2Fs Z29dKSB7CisJZ3J1Yl9jcnlwdG9fYXV0b2xvYWRfaG9vayAobWRfYWxnb3NbYWxnb10pOworICAg ICAgfSBlbHNlCisJcmV0dXJuIE5VTEw7CisgICAgICBmaXJzdCA9IDA7CisgICAgfQorfQorCiBj b25zdCBnY3J5X2NpcGhlcl9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX2NpcGhlcl9ieV9u YW1lIChjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMTk2LDcgKzMzMCw5IEBAIGdydWJfY3J5cHRv X2NpcGhlcl9zZXRfa2V5IChncnViX2NyeXB0b19jaXBoZXJfaGFuZGxlX3QgY2lwaGVyLAogCQkJ ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKIAkJCSAgICB1bnNpZ25lZCBrZXlsZW4pCiB7 Ci0gIHJldHVybiBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBrZXls ZW4pOworICAvKiBUT0RPOiBGaXggdGhpcy4gSXQncyB1Z2x5IGFzIGhlbGwuICAqLworICB2b2lk ICpidWxrX29wc1sxMDBdOworICByZXR1cm4gY2lwaGVyLT5jaXBoZXItPnNldGtleSAoY2lwaGVy LT5jdHgsIGtleSwga2V5bGVuLCAodm9pZCAqKSBidWxrX29wcyk7CiB9CiAKIGdjcnlfZXJyX2Nv ZGVfdApAQCAtMzQzLDcgKzQ3OSw3IEBAIGdydWJfY3J5cHRvX2htYWNfaW5pdCAoY29uc3Qgc3Ry dWN0IGdjcnlfbWRfc3BlYyAqbWQsCiAgIGdydWJfZnJlZSAoaGVscGtleSk7CiAgIGhlbHBrZXkg PSBOVUxMOwogCi0gIG1kLT5pbml0IChjdHgpOworICBtZC0+aW5pdCAoY3R4LCAwKTsKIAogICBt ZC0+d3JpdGUgKGN0eCwgaXBhZCwgbWQtPmJsb2Nrc2l6ZSk7IC8qIGlubmVyIHBhZCAqLwogICBn cnViX21lbXNldCAoaXBhZCwgMCwgbWQtPmJsb2Nrc2l6ZSk7CkBAIC0zOTAsNyArNTI2LDcgQEAg Z3J1Yl9jcnlwdG9faG1hY19maW5pIChzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUgKmhu ZCwgdm9pZCAqb3V0KQogICBobmQtPm1kLT5yZWFkIChobmQtPmN0eCk7CiAgIHAgPSBobmQtPm1k LT5yZWFkIChobmQtPmN0eCk7CiAKLSAgaG5kLT5tZC0+aW5pdCAoY3R4Mik7CisgIGhuZC0+bWQt PmluaXQgKGN0eDIsIDApOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgaG5kLT5vcGFkLCBobmQt Pm1kLT5ibG9ja3NpemUpOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgcCwgaG5kLT5tZC0+bWRs ZW4pOwogICBobmQtPm1kLT5maW5hbCAoY3R4Mik7CkBAIC00MzMsMTkgKzU2OSwxMDYgQEAgZ3J1 Yl9jcnlwdG9fZ2NyeV9lcnJvciAoZ2NyeV9lcnJfY29kZV90IGluKQogICByZXR1cm4gR1JVQl9B Q0NFU1NfREVOSUVEOwogfQogCisKKy8qCisgKiBDb21wYXJlIGJ5dGUgYXJyYXlzIG9mIGxlbmd0 aCBMRU4sIHJldHVybiAxIGlmIGl0J3Mgbm90IHNhbWUsCisgKiAwLCBvdGhlcndpc2UuCisgKi8K IGludAotZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBn cnViX3NpemVfdCBuKQorZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICpiMSwgY29uc3Qg dm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbikKIHsKLSAgcmVnaXN0ZXIgZ3J1Yl9zaXplX3QgY291 bnRlciA9IDA7Ci0gIGNvbnN0IGdydWJfdWludDhfdCAqcGEsICpwYjsKKyAgY29uc3QgZ3J1Yl91 aW50OF90ICphID0gYjE7CisgIGNvbnN0IGdydWJfdWludDhfdCAqYiA9IGIyOworICBpbnQgYWIs IGJhOworICBncnViX3NpemVfdCBpOwogCi0gIGZvciAocGEgPSBhLCBwYiA9IGI7IG47IHBhKyss IHBiKyssIG4tLSkKKyAgLyogQ29uc3RhbnQtdGltZSBjb21wYXJlLiAqLworICBmb3IgKGkgPSAw LCBhYiA9IDAsIGJhID0gMDsgaSA8IGxlbjsgaSsrKQogICAgIHsKLSAgICAgIGlmICgqcGEgIT0g KnBiKQotCWNvdW50ZXIrKzsKKyAgICAgIC8qIElmIGFbaV0gIT0gYltpXSwgZWl0aGVyIGFiIG9y IGJhIHdpbGwgYmUgbmVnYXRpdmUuICovCisgICAgICBhYiB8PSBhW2ldIC0gYltpXTsKKyAgICAg IGJhIHw9IGJbaV0gLSBhW2ldOwogICAgIH0KIAotICByZXR1cm4gISFjb3VudGVyOworICAvKiAn YWIgfCBiYScgaXMgbmVnYXRpdmUgd2hlbiBidWZmZXJzIGFyZSBub3QgZXF1YWwsIGV4dHJhY3Qg c2lnbiBiaXQuICAqLworICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpKGFiIHwgYmEpID4+IChzaXpl b2YodW5zaWduZWQgaW50KSAqIDggLSAxKSkgJiAxOworfQorCisKK3ZvaWQgKgorX2djcnlfbWFs bG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4pOwor fQorCit2b2lkICoKK19nY3J5X21hbGxvYyAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdy dWJfbWFsbG9jKG4pOworfQorCit2b2lkICoKK19nY3J5X3htYWxsb2MoZ3J1Yl9zaXplX3QgbikK K3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAg ICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQor Cit2b2lkICoKK19nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pCit7CisgIHZvaWQg KnJldCA9IGdydWJfbWFsbG9jKG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRh bCgiX2djcnlfeG1hbGxvY19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3Zv aWQgX2djcnlfZnJlZSAodm9pZCAqcCkKK3sKKyAgZ3J1Yl9mcmVlIChwKTsKK30KKwordm9pZCAq CitfZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAqcmV0 ID0gZ3J1Yl9yZWFsbG9jKGEsIG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRh bCgiX2djcnlfeHJlYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgKgor X2djcnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSkKK3sKKyAgdm9pZCAq cmV0ID0gZ3J1Yl9jYWxsb2MobiwgbSk7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2Zh dGFsKCJfZ2NyeV94Y2FsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lkICoK K19nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQorewor ICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQorICAg IGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2Nfc2VjdXJlIGZhaWxlZCIpOworICByZXR1cm4gcmV0 OworfQorCisKK2ludAorX2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lkICphKQoreworICAodm9p ZCkgYTsKKworICByZXR1cm4gMDsKK30KKwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAodm9p ZCkKK3sKKyAgZ3J1Yl9mYXRhbCgiZ2NyeXB0IGRpdmlzaW9uIGJ5IHplcm8iKTsKIH0KIAogI2lm bmRlZiBHUlVCX1VUSUwKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNo ZXMvMDFfbWQucGF0Y2ggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZGJiNDkzZGZjCi0tLSAv ZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5wYXRj aApAQCAtMCwwICsxLDIwNyBAQAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9j aXBoZXIvbWQuYyAyMDI0LTA1LTIxIDAxOjIyOjA0LjIyMjA4NDc3MyArMDMwMAorKysrIGIvZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvbWQuYyAyMDI0LTA1LTIxIDAxOjIyOjA3 LjM2ODA5OTk2MSArMDMwMAorQEAgLTIwLDExICsyMCwyNSBAQAorICAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgKiBM aWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgICovCisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNpbmNsdWRl IDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+Cisr I2luY2x1ZGUgPGVycm5vLmg+CisgCisgCisgI2luY2x1ZGUgImcxMGxpYi5oIgorICNpbmNsdWRl ICJjaXBoZXIuaCIKKyAKKysjZGVmaW5lIF9nY3J5X21kX3NlbGZ0ZXN0KGEsYixjKSAwCisrdHlw ZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9saXN0CisreworKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKnNw ZWM7CisrICBzdHJ1Y3QgZ2NyeV9tZF9saXN0ICpuZXh0OworKyAgc2l6ZV90IGFjdHVhbF9zdHJ1 Y3Rfc2l6ZTsgICAgIC8qIEFsbG9jYXRlZCBzaXplIG9mIHRoaXMgc3RydWN0dXJlLiAqLworKyAg UFJPUEVSTFlfQUxJR05FRF9UWVBFIGNvbnRleHRbMV07CisrfSBHY3J5RGlnZXN0RW50cnk7Cisr CisgCisgLyogVGhpcyBpcyB0aGUgbGlzdCBvZiB0aGUgZGlnZXN0IGltcGxlbWVudGF0aW9ucyBp bmNsdWRlZCBpbgorICAgIGxpYmdjcnlwdC4gICovCitAQCAtNTMsNyArNjcsNiBAQAorIHN0YXRp YyB2b2lkIG1kX2Nsb3NlIChnY3J5X21kX2hkX3QgYSk7Cisgc3RhdGljIHZvaWQgbWRfd3JpdGUg KGdjcnlfbWRfaGRfdCBhLCBjb25zdCB2b2lkICppbmJ1Ziwgc2l6ZV90IGlubGVuKTsKKyBzdGF0 aWMgYnl0ZSAqbWRfcmVhZCggZ2NyeV9tZF9oZF90IGEsIGludCBhbGdvICk7Cistc3RhdGljIGlu dCBtZF9nZXRfYWxnbyggZ2NyeV9tZF9oZF90IGEgKTsKKyBzdGF0aWMgaW50IG1kX2RpZ2VzdF9s ZW5ndGgoIGludCBhbGdvICk7Cisgc3RhdGljIHZvaWQgbWRfc3RhcnRfZGVidWcgKCBnY3J5X21k X2hkX3QgYSwgY29uc3QgY2hhciAqc3VmZml4ICk7Cisgc3RhdGljIHZvaWQgbWRfc3RvcF9kZWJ1 ZyAoIGdjcnlfbWRfaGRfdCBhICk7CitAQCAtMTg2LDkgKzE5OSw2IEBACisgCisgICBpZiAoISBl cnIpCisgICAgIHsKKy0gICAgICAvKiBIbW1tLCBzaG91bGQgd2UgcmVhbGx5IGRvIHRoYXQ/IC0g eWVzIFstd2tdICovCistICAgICAgX2djcnlfZmFzdF9yYW5kb21fcG9sbCAoKTsKKy0KKyAgICAg ICBpZiAoYWxnbykKKyAJeworIAkgIGVyciA9IG1kX2VuYWJsZSAoaGQsIGFsZ28pOworQEAgLTQz NywxNCArNDQ3LDYgQEAKKyB7CisgICBHY3J5RGlnZXN0RW50cnkgKnI7CisgCistICBpZiAoYS0+ Y3R4LT5kZWJ1ZykKKy0gICAgeworLSAgICAgIGlmIChhLT5idWZwb3MgJiYgZndyaXRlIChhLT5i dWYsIGEtPmJ1ZnBvcywgMSwgYS0+Y3R4LT5kZWJ1ZykgIT0gMSkKKy0JQlVHKCk7CistICAgICAg aWYgKGlubGVuICYmIGZ3cml0ZSAoaW5idWYsIGlubGVuLCAxLCBhLT5jdHgtPmRlYnVnKSAhPSAx KQorLQlCVUcoKTsKKy0gICAgfQorLQorICAgZm9yIChyID0gYS0+Y3R4LT5saXN0OyByOyByID0g ci0+bmV4dCkKKyAgICAgeworICAgICAgIGlmIChhLT5idWZwb3MpCitAQCAtNTIwLDU1ICs1MjIs NiBAQAorIAorIAorIAorLXN0YXRpYyBnY3J5X2Vycl9jb2RlX3QKKy1tZF9jdXN0b21pemUgKGdj cnlfbWRfaGRfdCBoLCB2b2lkICpidWZmZXIsIHNpemVfdCBidWZsZW4pCisteworLSAgZ2NyeV9l cnJfY29kZV90IHJjID0gMDsKKy0gIEdjcnlEaWdlc3RFbnRyeSAqcjsKKy0gIGludCBhbGdvX2hh ZF9jdXN0b21pemUgPSAwOworLQorLSAgaWYgKCFoLT5jdHgtPmxpc3QpCistICAgIHJldHVybiBH UEdfRVJSX0RJR0VTVF9BTEdPOyAvKiBNaWdodCBoYXBwZW4gaWYgbm8gYWxnbyBpcyBlbmFibGVk LiAgKi8KKy0KKy0gIGZvciAociA9IGgtPmN0eC0+bGlzdDsgcjsgciA9IHItPm5leHQpCistICAg IHsKKy0gICAgICBzd2l0Y2ggKHItPnNwZWMtPmFsZ28pCistICAgICAgICB7CistICAgICAgICBj YXNlIEdDUllfTURfQ1NIQUtFMTI4OgorLSAgICAgICAgY2FzZSBHQ1JZX01EX0NTSEFLRTI1NjoK Ky0gICAgICAgICAgYWxnb19oYWRfY3VzdG9taXplID0gMTsKKy0gICAgICAgICAgaWYgKGJ1Zmxl biAhPSBzaXplb2YgKHN0cnVjdCBnY3J5X2NzaGFrZV9jdXN0b21pemF0aW9uKSkKKy0gICAgICAg ICAgICByYyA9IEdQR19FUlJfSU5WX0FSRzsKKy0gICAgICAgICAgZWxzZQorLSAgICAgICAgICAg IHJjID0gX2djcnlfY3NoYWtlX2N1c3RvbWl6ZSAoci0+Y29udGV4dCwgYnVmZmVyKTsKKy0gICAg ICAgICAgYnJlYWs7CistICAgICAgICBkZWZhdWx0OgorLSAgICAgICAgICByYyA9IEdQR19FUlJf RElHRVNUX0FMR087CistICAgICAgICAgIGJyZWFrOworLSAgICAgICAgfQorLQorLSAgICAgIGlm IChyYykKKy0gICAgICAgIGJyZWFrOworLSAgICB9CistCistICBpZiAocmMgJiYgIWFsZ29faGFk X2N1c3RvbWl6ZSkKKy0gICAgeworLSAgICAgIC8qIE5vbmUgb2YgYWxnb3JpdGhtcyBoYWQgY3Vz dG9taXplIGltcGxlbWVudGF0aW9uLCBzbyBjb250ZXh0cyB3ZXJlIG5vdAorLSAgICAgICAqIG1v ZGlmaWVkLiBKdXN0IHJldHVybiBlcnJvci4gKi8KKy0gICAgICByZXR1cm4gcmM7CistICAgIH0K Ky0gIGVsc2UgaWYgKHJjICYmIGFsZ29faGFkX2N1c3RvbWl6ZSkKKy0gICAgeworLSAgICAgIC8q IFNvbWUgb2YgdGhlIGNvbnRleHRzIGhhdmUgYmVlbiBtb2RpZmllZCwgYnV0IGdvdCBlcnJvci4g UmVzZXQKKy0gICAgICAgKiBhbGwgY29udGV4dHMuICovCistICAgICAgX2djcnlfbWRfcmVzZXQg KGgpOworLSAgICAgIHJldHVybiByYzsKKy0gICAgfQorLQorLSAgcmV0dXJuIDA7CistfQorLQor LQorIGdjcnlfZXJyX2NvZGVfdAorIF9nY3J5X21kX2N0bCAoZ2NyeV9tZF9oZF90IGhkLCBpbnQg Y21kLCB2b2lkICpidWZmZXIsIHNpemVfdCBidWZsZW4pCisgeworQEAgLTU4Nyw5ICs1NDAsNiBA QAorICAgICBjYXNlIEdDUllDVExfU1RPUF9EVU1QOgorICAgICAgIG1kX3N0b3BfZGVidWcgKCBo ZCApOworICAgICAgIGJyZWFrOworLSAgICBjYXNlIEdDUllDVExfTURfQ1VTVE9NSVpFOgorLSAg ICAgIHJjID0gbWRfY3VzdG9taXplIChoZCwgYnVmZmVyLCBidWZsZW4pOworLSAgICAgIGJyZWFr OworICAgICBkZWZhdWx0OgorICAgICAgIHJjID0gR1BHX0VSUl9JTlZfT1A7CisgICAgIH0KK0BA IC02OTUsNiArNjQ1LDcgQEAKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAKKysjaWYgMAorICAg aWYgKHNwZWMtPmhhc2hfYnVmZmVycyAhPSBOVUxMKQorICAgICB7CisgICAgICAgZ2NyeV9idWZm ZXJfdCBpb3Y7CitAQCAtNzExLDYgKzY2Miw3IEBACisgICAgICAgc3BlYy0+aGFzaF9idWZmZXJz IChkaWdlc3QsIHNwZWMtPm1kbGVuLCAmaW92LCAxKTsKKyAgICAgfQorICAgZWxzZQorKyNlbmRp ZgorICAgICB7CisgICAgICAgLyogRm9yIHRoZSBvdGhlcnMgd2UgZG8gbm90IGhhdmUgYSBmYXN0 IGZ1bmN0aW9uLCBzbyB3ZSB1c2UgdGhlCisgICAgICAgICAgbm9ybWFsIGZ1bmN0aW9ucy4gKi8K K0BAIC03NDYsNyArNjk4LDcgQEAKKyAgICBESUdFU1RMRU4gbWF5IGFsc28gYmUgdGhlIGFwcHJv cHJpYXRlIGxlbmd0aCBvciwgaW4gY2FzZSBvZiBYT0YKKyAgICBhbGdvcml0aG1zLCBESUdFU1RM RU4gaW5kaWNhdGVzIG51bWJlciBieXRlcyB0byBleHRyYWN0IGZyb20gWE9GCisgICAgdG8gRElH RVNULiAgKi8KKy0jZGVmaW5lIF9nY3J5X21kX2hhc2hfYnVmZmVycyAwCisrCisgCisgLyogU2hv cnRjdXQgZnVuY3Rpb24gdG8gaGFzaCBtdWx0aXBsZSBidWZmZXJzIHdpdGggYSBnaXZlbiBhbGdv LiAgSW4KKyAgICBjb250cmFzdCB0byBnY3J5X21kX2hhc2hfYnVmZmVyLCB0aGlzIGZ1bmN0aW9u IHJldHVybnMgYW4gZXJyb3Igb24KK0BAIC03NjIsNyArNzE0LDYgQEAKKyAgICBPbiBzdWNjZXNz IDAgaXMgcmV0dXJuZWQgYW5kIHJlc3VsdGluZyBoYXNoIG9yIEhNQUMgaXMgc3RvcmVkIGF0Cisg ICAgRElHRVNUIHdoaWNoIG11c3QgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIgd2l0 aCBhbgorICAgIGFwcHJvcHJpYXRlIGxlbmd0aC4gICovCistI2RlZmluZSBfZ2NyeV9tZF9oYXNo X2J1ZmZlcnMgMAorIAorIAorIAorQEAgLTg5Myw0MyArODQ0LDE1IEBACisgc3RhdGljIHZvaWQK KyBtZF9zdGFydF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBtZCwgY29uc3QgY2hhciAqc3VmZml4ICkK KyB7CistICBzdGF0aWMgaW50IGlkeD0wOworLSAgY2hhciBidWZbNTBdOworLQorLSAgaWYgKGZp cHNfbW9kZSAoKSkKKy0gICAgcmV0dXJuOworLQorLSAgaWYgKCBtZC0+Y3R4LT5kZWJ1ZyApCist ICAgIHsKKy0gICAgICBsb2dfZGVidWcoIk9vcHM6IG1kIGRlYnVnIGFscmVhZHkgc3RhcnRlZFxu Iik7CistICAgICAgcmV0dXJuOworLSAgICB9CistICBpZHgrKzsKKy0gIHNucHJpbnRmIChidWYs IERJTShidWYpLTEsICJkYmdtZC0lMDVkLiUuMTBzIiwgaWR4LCBzdWZmaXggKTsKKy0gIG1kLT5j dHgtPmRlYnVnID0gZm9wZW4oYnVmLCAidyIpOworLSAgaWYgKCAhbWQtPmN0eC0+ZGVidWcgKQor LSAgICBsb2dfZGVidWcoIm1kIGRlYnVnOiBjYW4ndCBvcGVuICVzXG4iLCBidWYgKTsKKysgICh2 b2lkKSBtZDsKKysgICh2b2lkKSBzdWZmaXg7CisgfQorIAorIAorIHN0YXRpYyB2b2lkCisgbWRf c3RvcF9kZWJ1ZyggZ2NyeV9tZF9oZF90IG1kICkKKyB7CistICBpZiAoIG1kLT5jdHgtPmRlYnVn ICkKKy0gICAgeworLSAgICAgIGlmICggbWQtPmJ1ZnBvcyApCistICAgICAgICBtZF93cml0ZSAo IG1kLCBOVUxMLCAwICk7CistICAgICAgZmNsb3NlIChtZC0+Y3R4LT5kZWJ1Zyk7CistICAgICAg bWQtPmN0eC0+ZGVidWcgPSBOVUxMOworLSAgICB9CistCistICB7ICAvKiBhIGtsdWRnZSB0byBw dWxsIGluIHRoZSBfX211bGRpMyBmb3IgU29sYXJpcyAqLworLSAgICB2b2xhdGlsZSB1MzIgYSA9 ICh1MzIpKHVpbnRwdHJfdCltZDsKKy0gICAgdm9sYXRpbGUgdTY0IGIgPSA0MjsKKy0gICAgdm9s YXRpbGUgdTY0IGM7CistICAgIGMgPSBhICogYjsKKy0gICAgKHZvaWQpYzsKKy0gIH0KKysgICh2 b2lkKSBtZDsKKyB9CisgCisgCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1w YXRjaGVzLzAzX2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHQtcGF0Y2hlcy8wM19kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmNmNDNmMDQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29y ZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDNfZGlzYWJsZV9yc2Ffc2hha2UucGF0Y2gKQEAgLTAs MCArMSwzNCBAQAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvcnNh LWNvbW1vbi5jCTIwMjQtMDktMDggMTg6MDg6NDcuMDk1OTU2ODUyICswMzAwCisrKysgYi9ncnVi LWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmMJMjAyNC0wOS0wOCAx ODoxMDoyMy44NDk5NTk1OTEgKzAzMDAKK0BAIC05MTIsNiArOTEyLDcgQEAKKyAgIG1lbWNweSAo cCwgc2FsdCwgc2FsdGxlbik7CisgCisgICAvKiBTdGVwIDk6IGRibWFzayA9IE1HRihILCBlbWxl biAtIGhsZW4gLSAxKS4gICovCisrI2lmIDAgLy8gTm90IHN1cHBvcnRlZCB5ZXQKKyAgIGlmIChh bGdvID09IEdDUllfTURfU0hBS0UxMjggfHwgYWxnbyA9PSBHQ1JZX01EX1NIQUtFMjU2KQorICAg ICB7CisgICAgICAgZ2NyeV9idWZmZXJfdCBpb3Y7CitAQCAtOTI1LDYgKzkyNiw3IEBACisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEpOworICAgICB9CisgICBl bHNlCisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBobGVuIC0gMSwgaCwgaGxl biwgYWxnbyk7CisgCisgICAvKiBTdGVwIDEwOiBtYXNrZWREQiA9IERCIF4gZGJNYXNrICovCitA QCAtMTA4Niw2ICsxMDg4LDcgQEAKKyAgICAgfQorIAorICAgLyogU3RlcCA3OiBkYm1hc2sgPSBN R0YoSCwgZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwIC8vIE5vdCBzdXBwb3J0ZWQgeWV0 CisgICBpZiAoYWxnbyA9PSBHQ1JZX01EX1NIQUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFL RTI1NikKKyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTEwOTksNiArMTEw Miw3IEBACisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEpOwor ICAgICB9CisgICBlbHNlCisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBobGVu IC0gMSwgaCwgaGxlbiwgYWxnbyk7CisgCisgICAvKiBTdGVwIDg6IG1hc2tlZERCID0gREIgXiBk Yk1hc2suICAqLwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8w NF9hcmlhX3N0YXRpYy5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDRf YXJpYV9zdGF0aWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5i Y2E3ZTgwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRj aGVzLzA0X2FyaWFfc3RhdGljLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK01hcmsgYXJpYV9lbmNy eXB0IGFuZCBhcmlhX2RlY3J5cHQgYXMgc3RhdGljCisKKy0tLSBhL2dydWItY29yZS9saWIvbGli Z2NyeXB0LWdydWIvY2lwaGVyL2FyaWEuYwkyMDI0LTA5LTA4IDE4OjIwOjU3LjkyNjk3NzQ3OSAr MDMwMAorKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvYXJpYS5jCTIw MjQtMDktMDggMTg6MjE6MDkuNzMxOTc3ODEyICswMzAwCitAQCAtMTAxMyw3ICsxMDEzLDcgQEAK KyAgIHJldHVybiA0ICogc2l6ZW9mKHZvaWQgKikgKyA0ICogc2l6ZW9mKHUzMik7IC8qIHN0YWNr IGJ1cm4gZGVwdGggKi8KKyB9CisgCistdW5zaWduZWQgaW50Cisrc3RhdGljIHVuc2lnbmVkIGlu dAorIGFyaWFfZW5jcnlwdCh2b2lkICpjLCBieXRlICpvdXRidWYsIGNvbnN0IGJ5dGUgKmluYnVm KQorIHsKKyAgIEFSSUFfY29udGV4dCAqY3R4ID0gKEFSSUFfY29udGV4dCAqKWM7CitAQCAtMTAy Myw3ICsxMDIzLDcgQEAKKyAgIHJldHVybiBhcmlhX2NyeXB0IChjdHgsIG91dGJ1ZiwgaW5idWYs IGN0eC0+ZW5jX2tleSk7CisgfQorIAorLXVuc2lnbmVkIGludAorK3N0YXRpYyB1bnNpZ25lZCBp bnQKKyBhcmlhX2RlY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVmLCBjb25zdCBieXRlICppbmJ1 ZikKKyB7CisgICBBUklBX2NvbnRleHQgKmN0eCA9IChBUklBX2NvbnRleHQgKiljOwpkaWZmIC0t Z2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCBiL2dydWItY29y ZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50LmgKaW5kZXggMWI0NDkyODE4Li43MDEwODE2 ODAgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50LmgK KysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaApAQCAtMjk3LDU3 ICsyOTcsNiBAQCB2b2lkIF9nY3J5X3NldF9sb2dfaGFuZGxlciAoZ2NyeV9oYW5kbGVyX2xvZ190 IGYsIHZvaWQgKm9wYXF1ZSk7CiB2b2lkIF9nY3J5X3NldF9nZXR0ZXh0X2hhbmRsZXIgKGNvbnN0 IGNoYXIgKigqZikoY29uc3QgY2hhciopKTsKIHZvaWQgX2djcnlfc2V0X3Byb2dyZXNzX2hhbmRs ZXIgKGdjcnlfaGFuZGxlcl9wcm9ncmVzc190IGNiLCB2b2lkICpjYl9kYXRhKTsKIAotDAotLyog UmV0dXJuIGEgcG9pbnRlciB0byBhIHN0cmluZyBjb250YWluaW5nIGEgZGVzY3JpcHRpb24gb2Yg dGhlIGVycm9yCi0gICBjb2RlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlu bGluZSBjb25zdCBjaGFyICoKLV9nY3J5X3N0cmVycm9yIChnY3J5X2Vycm9yX3QgZXJyKQotewot ICByZXR1cm4gZ3BnX3N0cmVycm9yIChlcnIpOwotfQotCi0vKiBSZXR1cm4gYSBwb2ludGVyIHRv IGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAgIHNvdXJj ZSBpbiB0aGUgZXJyb3IgdmFsdWUgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAq Ci1fZ2NyeV9zdHJzb3VyY2UgKGdjcnlfZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdfc3Ry c291cmNlIChlcnIpOwotfQotCi0vKiBSZXRyaWV2ZSB0aGUgZXJyb3IgY29kZSBmb3IgdGhlIHN5 c3RlbSBlcnJvciBFUlIuICBUaGlzIHJldHVybnMKLSAgIEdQR19FUlJfVU5LTk9XTl9FUlJOTyBp ZiB0aGUgc3lzdGVtIGVycm9yIGlzIG5vdCBtYXBwZWQgKHJlcG9ydAotICAgdGhpcykuICAqLwot c3RhdGljIGlubGluZSBnY3J5X2Vycl9jb2RlX3QKLV9nY3J5X2Vycl9jb2RlX2Zyb21fZXJybm8g KGludCBlcnIpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoZXJyKTsKLX0K LQotLyogUmV0cmlldmUgdGhlIHN5c3RlbSBlcnJvciBmb3IgdGhlIGVycm9yIGNvZGUgQ09ERS4g IFRoaXMgcmV0dXJucyAwCi0gICBpZiBDT0RFIGlzIG5vdCBhIHN5c3RlbSBlcnJvciBjb2RlLiAg Ki8KLXN0YXRpYyBpbmxpbmUgaW50Ci1fZ2NyeV9lcnJfY29kZV90b19lcnJubyAoZ2NyeV9lcnJf Y29kZV90IGNvZGUpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfdG9fZXJybm8gKGNvZGUpOwot fQotCi0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgZXJyb3Igc291cmNlIFNPVVJD RSBhbmQgdGhlIHN5c3RlbQotICAgZXJyb3IgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgZ2NyeV9l cnJvcl90Ci1fZ2NyeV9lcnJfbWFrZV9mcm9tX2Vycm5vIChncGdfZXJyX3NvdXJjZV90IHNvdXJj ZSwgaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfbWFrZV9mcm9tX2Vycm5vIChzb3VyY2Us IGVycik7Ci19Ci0KLQotLyogUmV0dXJuIGFuIGVycm9yIHZhbHVlIHdpdGggdGhlIHN5c3RlbSBl cnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5X2Vycm9yX2Zy b21fZXJybm8gKGludCBlcnIpCi17Ci0gIHJldHVybiBncGdfZXJyb3IgKGdwZ19lcnJfY29kZV9m cm9tX2Vycm5vIChlcnIpKTsKLX0KLQotCiAMCiBncGdfZXJyX2NvZGVfdCBfZ2NyeV9zZXhwX25l dyAoZ2NyeV9zZXhwX3QgKnJldHNleHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHRfd3JhcC9jaXBoZXJfd3JhcC5oCmluZGV4IDQyODM1NDkzZC4uMDhlZmIzMGIzIDEwMDY0NAot LS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKKysrIGIvZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oCkBAIC0xOSw2ICsxOSw4IEBA CiAjaWZuZGVmIEdSVUJfR0NSWV9XUkFQX0hFQURFUgogI2RlZmluZSBHUlVCX0dDUllfV1JBUF9I RUFERVIgMQogCisjZGVmaW5lIFVTRV9TSEE1MTIgMQorCiAjaW5jbHVkZSA8Z3J1Yi90eXBlcy5o PgogI2luY2x1ZGUgPGdydWIvbW0uaD4KICNpbmNsdWRlIDxncnViL21pc2MuaD4KQEAgLTM1LDEw ICszNyw5IEBACiAjdW5kZWYgX19HTlVfTElCUkFSWV9fCiAjZGVmaW5lIF9fR05VX0xJQlJBUllf XyAxCiAKKyNkZWZpbmUgVUlOVDY0X0MoYykgKGMgIyMgVUxMKQogI2RlZmluZSBVNjRfQyhjKSAo YyAjIyBVTEwpCiAKLSNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9fQkxJTkRJTkcgICAgKDEgPDwgMCkK LQogI2RlZmluZSBDSVBIRVJfSU5GT19OT19XRUFLX0tFWSAgICAxCiAKICNkZWZpbmUgSEFWRV9V NjRfVFlQRURFRiAxCkBAIC03NCw0ICs3NSwxMiBAQCBfZ2NyeV9maXBzX21vZGUgKHZvaWQpCiAK ICNkZWZpbmUgZ2NyeV9tcGlfbW9kIF9nY3J5X21waV9tb2QKIAorI2RlZmluZSBzdHJ0b2wgZ3J1 Yl9zdHJ0b2wKKyNkZWZpbmUgc3RydG91bCBncnViX3N0cnRvdWwKKyNkZWZpbmUgYXRvaShucHRy KSAoc3RydG9sKChucHRyKSwgTlVMTCwgMTApKQorCisjZGVmaW5lIHN0cGNweSBncnViX3N0cGNw eQorCisjZGVmaW5lIHNwZWNfZnJvbV9hbGdvIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdv CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0u YyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMKaW5kZXggNzRjNmVhZmU1Li5l OTQ3ZGM5OTggMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMK KysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYwpAQCAtNDYsNiArNDYsMTUg QEAgZ2NyeV94Y2FsbG9jIChzaXplX3Qgbiwgc2l6ZV90IG0pCiAgIHJldHVybiByZXQ7CiB9CiAK K3ZvaWQgKgorX2djcnlfY2FsbG9jIChzaXplX3Qgbiwgc2l6ZV90IG0pCit7CisgIHNpemVfdCBz ejsKKyAgaWYgKGdydWJfbXVsIChuLCBtLCAmc3opKQorICAgIHJldHVybiBOVUxMOworICByZXR1 cm4gZ3J1Yl96YWxsb2MgKHN6KTsKK30KKwogdm9pZCAqCiBnY3J5X3htYWxsb2Nfc2VjdXJlIChz aXplX3QgbikKIHsKQEAgLTY5LDYgKzc4LDE1IEBAIGdjcnlfeGNhbGxvY19zZWN1cmUgKHNpemVf dCBuLCBzaXplX3QgbSkKICAgcmV0dXJuIHJldDsKIH0KIAordm9pZCAqCitfZ2NyeV9jYWxsb2Nf c2VjdXJlIChzaXplX3Qgbiwgc2l6ZV90IG0pCit7CisgIHNpemVfdCBzejsKKyAgaWYgKGdydWJf bXVsIChuLCBtLCAmc3opKQorICAgIHJldHVybiBOVUxMOworICByZXR1cm4gZ3J1Yl96YWxsb2Mg KHN6KTsKK30KKwogdm9pZCAqCiBnY3J5X3htYWxsb2MgKHNpemVfdCBuKQogewpAQCAtODksMTAg KzEwNywxMCBAQCBnY3J5X3hyZWFsbG9jICh2b2lkICphLCBzaXplX3QgbikKICAgcmV0dXJuIHJl dDsKIH0KIAotdm9pZAotX2djcnlfY2hlY2tfaGVhcCAoY29uc3Qgdm9pZCAqYSBfX2F0dHJpYnV0 ZV9fICgodW51c2VkKSkpCit2b2lkICoKK19nY3J5X3JlYWxsb2MgKHZvaWQgKmEsIHNpemVfdCBu KQogewotCisgIHJldHVybiBncnViX3JlYWxsb2MgKGEsIG4pOwogfQogCiB2b2lkIF9nY3J5X2xv Z19wcmludGYgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQpAQCAtMTEzLDYgKzEzMSwyNCBAQCB2b2lk IF9nY3J5X2xvZ19wcmludGYgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0KIAordm9p ZCBfZ2NyeV9sb2dfZGVidWcgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworICB2YV9saXN0IGFy Z3M7CisgIGNvbnN0IGNoYXIgKmRlYnVnID0gZ3J1Yl9lbnZfZ2V0ICgiZGVidWciKTsKKworICBp ZiAoISBkZWJ1ZykKKyAgICByZXR1cm47CisKKyAgaWYgKGdydWJfc3Ryd29yZCAoZGVidWcsICJh bGwiKSB8fCBncnViX3N0cndvcmQgKGRlYnVnLCAiZ2NyeXB0IikpCisgICAgeworICAgICAgZ3J1 Yl9wcmludGYgKCJnY3J5cHQ6ICIpOworICAgICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAg ICBncnViX3ZwcmludGYgKGZtdCwgYXJncyk7CisgICAgICB2YV9lbmQgKGFyZ3MpOworICAgICAg Z3J1Yl9yZWZyZXNoICgpOworICAgIH0KK30KKwogdm9pZCBfZ2NyeV9sb2dfYnVnIChjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKICAgdmFfbGlzdCBhcmdzOwpAQCAtMTI2LDkgKzE2Miw5IEBAIHZv aWQgX2djcnlfbG9nX2J1ZyAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB9CiAKIGdjcnlfZXJyX2Nv ZGVfdAotZ3BnX2Vycm9yX2Zyb21fc3lzZXJyb3IgKHZvaWQpCitncGdfZXJyX2NvZGVfZnJvbV9l cnJubyAoaW50IGVycikKIHsKLSAgc3dpdGNoIChncnViX2Vycm5vKQorICBzd2l0Y2ggKGVycikK ICAgICB7CiAgICAgY2FzZSBHUlVCX0VSUl9OT05FOgogICAgICAgcmV0dXJuIEdQR19FUlJfTk9f RVJST1I7CkBAIC0xMzgsMyArMTc0LDQwIEBAIGdwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2b2lk KQogICAgICAgcmV0dXJuIEdQR19FUlJfR0VORVJBTDsKICAgICB9CiB9CisKK2djcnlfZXJyX2Nv ZGVfdAorZ3BnX2Vycm9yX2Zyb21fc3lzZXJyb3IgKHZvaWQpCit7CisgIHJldHVybiBncGdfZXJy X2NvZGVfZnJvbV9lcnJubyhncnViX2Vycm5vKTsKK30KKworZ2NyeV9lcnJfY29kZV90CitncGdf ZXJyX2NvZGVfZnJvbV9zeXNlcnJvciAodm9pZCkKK3sKKyAgcmV0dXJuIGdwZ19lcnJvcl9mcm9t X3N5c2Vycm9yICgpOworfQorCit2b2lkIF9nY3J5X2ZhdGFsX2Vycm9yKGludCByYywgY29uc3Qg Y2hhciAqdGV4dCApCit7CisgIGdydWJfZmF0YWwoImdjcnkgZmF0YWwgJWQ6ICVzIiwgcmMsIHRl eHQpOworfQorCisKK3ZvaWQgX2djcnlfcmFuZG9taXplICh2b2lkICpidWZmZXIgX19hdHRyaWJ1 dGVfXygodW51c2VkKSksIHNpemVfdCBsZW5ndGggX19hdHRyaWJ1dGVfXygodW51c2VkKSksCisg ICAgICAgICAgICAgICAgICAgICAgZW51bSBnY3J5X3JhbmRvbV9sZXZlbCBsZXZlbCBfX2F0dHJp YnV0ZV9fKCh1bnVzZWQpKSkKK3sKKyAgZ3J1Yl9mYXRhbCgiQXR0ZW1wdCB0byBnZXQgc2VjdXJl IHJhbmRvbSBudW1iZXJzIik7Cit9CisKKwordm9pZCAqX2djcnlfcmFuZG9tX2J5dGVzX3NlY3Vy ZSAoc2l6ZV90IG5ieXRlcyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgZW51bSBnY3J5X3JhbmRv bV9sZXZlbCBsZXZlbCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKK3sKKyAgZ3J1Yl9mYXRhbCgi QXR0ZW1wdCB0byBnZXQgc2VjdXJlIHJhbmRvbSBudW1iZXJzIik7Cit9CisKK2NvbnN0IGNoYXIg KmdwZ19zdHJlcnJvciAoZ3BnX2Vycm9yX3QgZXJyKQoreworICBzdGF0aWMgY2hhciBidWZbMjU2 XTsKKyAgZ3J1Yl9zbnByaW50ZihidWYsIHNpemVvZihidWYpIC0gNSwgImdwZyBlcnJvciAlZFxu IiwgZXJyKTsKKyAgcmV0dXJuIGJ1ZjsKK30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvcG9z aXhfd3JhcC9zeXMvdHlwZXMuaCBiL2dydWItY29yZS9saWIvcG9zaXhfd3JhcC9zeXMvdHlwZXMu aAppbmRleCBlZWRhNTQzYzQuLjlmN2UyMjUzMSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9w b3NpeF93cmFwL3N5cy90eXBlcy5oCisrKyBiL2dydWItY29yZS9saWIvcG9zaXhfd3JhcC9zeXMv dHlwZXMuaApAQCAtMzksMTIgKzM5LDE2IEBAIHR5cGVkZWYgZ3J1Yl9pbnQzMl90IGludDMyX3Q7 CiB0eXBlZGVmIGdydWJfaW50NjRfdCBpbnQ2NF90OwogCiAjZGVmaW5lIEhBVkVfVTY0X1RZUEVE RUYgMQorI2RlZmluZSBIQVZFX1RZUEVfVTY0IDEKIHR5cGVkZWYgZ3J1Yl91aW50NjRfdCB1NjQ7 CiAjZGVmaW5lIEhBVkVfVTMyX1RZUEVERUYgMQorI2RlZmluZSBIQVZFX1RZUEVfVTMyIDEKIHR5 cGVkZWYgZ3J1Yl91aW50MzJfdCB1MzI7CiAjZGVmaW5lIEhBVkVfVTE2X1RZUEVERUYgMQorI2Rl ZmluZSBIQVZFX1RZUEVfVTE2IDEKIHR5cGVkZWYgZ3J1Yl91aW50MTZfdCB1MTY7CiAjZGVmaW5l IEhBVkVfQllURV9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX0JZVEUgMQogdHlwZWRlZiBn cnViX3VpbnQ4X3QgYnl0ZTsKIAogdHlwZWRlZiBncnViX2FkZHJfdCB1aW50cHRyX3Q7CmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jIGIvZ3J1Yi1jb3Jl L2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYwppbmRleCA4MzJkOGFmOWEuLmYyZGQ0MmRjMiAx MDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYworKysgYi9n cnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jCkBAIC00MjUsOSArNDI1LDkgQEAg c3RhdGljIGVudW0geHpfcmV0IGhhc2hfdmFsaWRhdGUoc3RydWN0IHh6X2RlYyAqcywgc3RydWN0 IHh6X2J1ZiAqYiwKIAogI2lmbmRlZiBHUlVCX0VNQkVEX0RFQ09NUFJFU1NPUgogCWlmIChzLT5o YXNoKQotCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7CisJCXMtPmhhc2gtPmluaXQo cy0+aGFzaF9jb250ZXh0LCAwKTsKIAlpZiAocy0+Y3JjMzIpCi0JCXMtPmNyYzMyLT5pbml0KHMt PmNyYzMyX2NvbnRleHQpOworCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0LCAwKTsK ICNlbmRpZgogCXMtPmhhdmVfaGFzaF92YWx1ZSA9IDA7CiAJcy0+cG9zID0gMDsKQEAgLTQ5Myw3 ICs0OTMsNyBAQCBzdGF0aWMgZW51bSB4el9yZXQgZGVjX3N0cmVhbV9oZWFkZXIoc3RydWN0IHh6 X2RlYyAqcykKIAkJcy0+Y3JjMzJfY29udGV4dCA9IGttYWxsb2Mocy0+Y3JjMzItPmNvbnRleHRz aXplLCBHRlBfS0VSTkVMKTsKIAkJaWYgKHMtPmNyYzMyX2NvbnRleHQgPT0gTlVMTCkKIAkJCXJl dHVybiBYWl9NRU1MSU1JVF9FUlJPUjsKLQkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4 dCk7CisJCXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRleHQsIDApOwogCX0KICNlbmRpZgog CkBAIC01MzEsOSArNTMxLDkgQEAgc3RhdGljIGVudW0geHpfcmV0IGRlY19zdHJlYW1faGVhZGVy KHN0cnVjdCB4el9kZWMgKnMpCiAJCQkJcmV0dXJuIFhaX01FTUxJTUlUX0VSUk9SOwogCQkJfQog Ci0JCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7Ci0JCQlzLT5oYXNoLT5pbml0KHMt PmluZGV4Lmhhc2guaGFzaF9jb250ZXh0KTsKLSAJCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhh c2guaGFzaF9jb250ZXh0KTsKKwkJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0LCAwKTsK KwkJCXMtPmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQsIDApOworIAkJCXMt Pmhhc2gtPmluaXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQsIDApOwogCQl9CiAjZW5kaWYK IAl9CkBAIC0xMDE0LDkgKzEwMTQsOSBAQCB2b2lkIHh6X2RlY19yZXNldChzdHJ1Y3QgeHpfZGVj ICpzKQogI2lmbmRlZiBHUlVCX0VNQkVEX0RFQ09NUFJFU1NPUgogCWlmIChzLT5oYXNoKQogCXsK LQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwotCQlzLT5oYXNoLT5pbml0KHMtPmlu ZGV4Lmhhc2guaGFzaF9jb250ZXh0KTsKLQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhh c2hfY29udGV4dCk7CisJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0LCAwKTsKKwkJcy0+ aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCwgMCk7CisJCXMtPmhhc2gtPmlu aXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQsIDApOwogCX0KICNlbmRpZgogCXMtPmhhdmVf aGFzaF92YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvY3J5cHRvLmggYi9pbmNs dWRlL2dydWIvY3J5cHRvLmgKaW5kZXggMzFjODdjMzAyLi5jMGI0MmE3MzUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaAorKysgYi9pbmNsdWRlL2dydWIvY3J5cHRvLmgKQEAgLTY1 LDcgKzY1LDMzIEBAIHR5cGVkZWYgZW51bQogICAgIEdQR19FUlJfV1JPTkdfUFVCS0VZX0FMR08s CiAgICAgR1BHX0VSUl9PVVRfT0ZfTUVNT1JZLAogICAgIEdQR19FUlJfVE9PX0xBUkdFLAotICAg IEdQR19FUlJfRU5PTUVNCisgICAgR1BHX0VSUl9FTk9NRU0sCisgICAgR1BHX0VSUl9DSEVDS1NV TSwKKyAgICBHUEdfRVJSX0lOVl9MRU5HVEgsCisgICAgR1BHX0VSUl9WQUxVRV9OT1RfRk9VTkQs CisgICAgR1BHX0VSUl9FUkFOR0UsCisgICAgR1BHX0VSUl9JTlZfREFUQSwKKyAgICBHUEdfRVJS X0VOQ09ESU5HX1BST0JMRU0sCisgICAgR1BHX0VSUl9CVUZGRVJfVE9PX1NIT1JULAorICAgIEdQ R19FUlJfU1lOVEFYLAorICAgIEdQR19FUlJfU0VYUF9JTlZfTEVOX1NQRUMsCisgICAgR1BHX0VS Ul9TRVhQX1VOTUFUQ0hFRF9ESCwKKyAgICBHUEdfRVJSX1NFWFBfVU5NQVRDSEVEX1BBUkVOLAor ICAgIEdQR19FUlJfU0VYUF9aRVJPX1BSRUZJWCwKKyAgICBHUEdfRVJSX1NFWFBfTkVTVEVEX0RI LAorICAgIEdQR19FUlJfU0VYUF9VTkVYUEVDVEVEX1BVTkMsCisgICAgR1BHX0VSUl9TRVhQX0JB RF9DSEFSQUNURVIsCisgICAgR1BHX0VSUl9TRVhQX05PVF9DQU5PTklDQUwsCisgICAgR1BHX0VS Ul9TRVhQX1NUUklOR19UT09fTE9ORywKKyAgICBHUEdfRVJSX1NFWFBfQkFEX1FVT1RBVElPTiwK KyAgICBHUEdfRVJSX1NFWFBfT0REX0hFWF9OVU1CRVJTLAorICAgIEdQR19FUlJfU0VYUF9CQURf SEVYX0NIQVIsCisgICAgR1BHX0VSUl9MSU1JVF9SRUFDSEVELAorICAgIEdQR19FUlJfRU9GLAor ICAgIEdQR19FUlJfQkFEX0RBVEEsCisgICAgR1BHX0VSUl9FSU5WQUwsCisgICAgR1BHX0VSUl9J TlZfU1RBVEUsCisgICAgR1BHX0VSUl9VTktOT1dOX0FMR09SSVRITSwKICAgfSBncGdfZXJyX2Nv ZGVfdDsKIHR5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgZ3BnX2Vycm9yX3Q7CiB0eXBlZGVmIGdwZ19l cnJvcl90IGdjcnlfZXJyb3JfdDsKQEAgLTg0LDM3ICsxMTAsNjAgQEAgZW51bSBnY3J5X2NpcGhl cl9tb2RlcwogICB9OwogI2VuZGlmCiAKKy8qIEV4dHJhIGFsZ28gSURzIG5vdCBjb21pbmcgZnJv bSBnY3J5cHQuICAqLworI2RlZmluZSBHQ1JZX01EX0FETEVSMzIgMTAzMDEKKyNkZWZpbmUgR0NS WV9NRF9DUkM2NCAxMDMwMgorCiAvKiBEb24ndCByZWx5IG9uIHRoaXMuIENoZWNrISAgKi8KICNk ZWZpbmUgR1JVQl9DUllQVE9fTUFYX01ETEVOIDY0CiAjZGVmaW5lIEdSVUJfQ1JZUFRPX01BWF9D SVBIRVJfQkxPQ0tTSVpFIDE2CiAjZGVmaW5lIEdSVUJfQ1JZUFRPX01BWF9NRF9DT05URVhUX1NJ WkUgMjU2CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc2V0a2V5IGZ1bmN0aW9uLiAgKi8KK3N0 cnVjdCBjaXBoZXJfYnVsa19vcHM7CisKIHR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9j aXBoZXJfc2V0a2V5X3QpICh2b2lkICpjLAogCQkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtl eSwKLQkJCQkJCSB1bnNpZ25lZCBrZXlsZW4pOworCQkJCQkJIHVuc2lnbmVkIGtleWxlbiwKKwkJ CQkJCSBzdHJ1Y3QgY2lwaGVyX2J1bGtfb3BzICpidWxrX29wcyk7CiAKIC8qIFR5cGUgZm9yIHRo ZSBjaXBoZXJfZW5jcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhl cl9lbmNyeXB0X3QpICh2b2lkICpjLAotCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYs Ci0JCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmKTsKK3R5cGVkZWYgdW5zaWdu ZWQgaW50ICgqZ2NyeV9jaXBoZXJfZW5jcnlwdF90KSAodm9pZCAqYywKKwkJCQkJICAgICAgIHVu c2lnbmVkIGNoYXIgKm91dGJ1ZiwKKwkJCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlu YnVmKTsKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9kZWNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5 cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRfdCkgKHZvaWQgKmMsCi0JCQkJICAgICAg IHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKLQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAq aW5idWYpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgKCpnY3J5X2NpcGhlcl9kZWNyeXB0X3QpICh2 b2lkICpjLAorCQkJCQkgICAgICAgdW5zaWduZWQgY2hhciAqb3V0YnVmLAorCQkJCQkgICAgICAg Y29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX3N0 ZW5jcnlwdCBmdW5jdGlvbi4gICovCiB0eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhlcl9zdGVuY3J5 cHRfdCkgKHZvaWQgKmMsCiAJCQkJCSB1bnNpZ25lZCBjaGFyICpvdXRidWYsCiAJCQkJCSBjb25z dCB1bnNpZ25lZCBjaGFyICppbmJ1ZiwKLQkJCQkJIHVuc2lnbmVkIGludCBuKTsKKwkJCQkJIGdy dWJfc2l6ZV90IG4pOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX3N0ZGVjcnlwdCBmdW5jdGlv bi4gICovCiB0eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhlcl9zdGRlY3J5cHRfdCkgKHZvaWQgKmMs CiAJCQkJCSB1bnNpZ25lZCBjaGFyICpvdXRidWYsCiAJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFy ICppbmJ1ZiwKLQkJCQkJIHVuc2lnbmVkIGludCBuKTsKKwkJCQkJIGdydWJfc2l6ZV90IG4pOwor Cit0eXBlZGVmIHZvaWQgKCpzZWxmdGVzdF9yZXBvcnRfZnVuY190KShjb25zdCBjaGFyICpkb21h aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWxnbywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKndoYXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJkZXNj KTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBjb252ZXkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0 byBhIGNpcGhlci4gICovCit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9jaXBoZXJfc2V0 X2V4dHJhX2luZm9fdCkKKyAgICAgKHZvaWQgKmMsIGludCB3aGF0LCBjb25zdCB2b2lkICpidWZm ZXIsIGdydWJfc2l6ZV90IGJ1Zmxlbik7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gc2V0IGFuIElW IGRpcmVjdGx5IGluIHRoZSBhbGdvcml0aG0gbW9kdWxlLiAgKi8KK3R5cGVkZWYgdm9pZCAoKmdj cnlfY2lwaGVyX3NldGl2X2Z1bmNfdCkodm9pZCAqYywgY29uc3QgZ3J1Yl91aW50OF90ICppdiwg Z3J1Yl9zaXplX3QgaXZsZW4pOworCisvKiBEZWZpbml0aW9uIG9mIHRoZSBzZWxmdGVzdCBmdW5j dGlvbnMuICAqLwordHlwZWRlZiBncGdfZXJyX2NvZGVfdCAoKmdjcnlfc2VsZnRlc3RfZnVuY190 KQorICAgICAoaW50IGFsZ28sIGludCBleHRlbmRlZCwgc2VsZnRlc3RfcmVwb3J0X2Z1bmNfdCBy ZXBvcnQpOwogCiB0eXBlZGVmIHN0cnVjdCBnY3J5X2NpcGhlcl9vaWRfc3BlYwogewpAQCAtMTI1 LDkgKzE3NCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X2NpcGhlcl9vaWRfc3BlYwogLyogTW9k dWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBjaXBoZXJzLiAgKi8KIHR5cGVkZWYgc3Ry dWN0IGdjcnlfY2lwaGVyX3NwZWMKIHsKKyAgaW50IGFsZ287CisgIHN0cnVjdCB7CisgICAgdW5z aWduZWQgaW50IGRpc2FibGVkOjE7CisgICAgdW5zaWduZWQgaW50IGZpcHM6MTsKKyAgfSBmbGFn czsKICAgY29uc3QgY2hhciAqbmFtZTsKICAgY29uc3QgY2hhciAqKmFsaWFzZXM7Ci0gIGdjcnlf Y2lwaGVyX29pZF9zcGVjX3QgKm9pZHM7CisgIGNvbnN0IGdjcnlfY2lwaGVyX29pZF9zcGVjX3Qg Km9pZHM7CiAgIGdydWJfc2l6ZV90IGJsb2Nrc2l6ZTsKICAgZ3J1Yl9zaXplX3Qga2V5bGVuOwog ICBncnViX3NpemVfdCBjb250ZXh0c2l6ZTsKQEAgLTEzNiw2ICsxOTAsMTAgQEAgdHlwZWRlZiBz dHJ1Y3QgZ2NyeV9jaXBoZXJfc3BlYwogICBnY3J5X2NpcGhlcl9kZWNyeXB0X3QgZGVjcnlwdDsK ICAgZ2NyeV9jaXBoZXJfc3RlbmNyeXB0X3Qgc3RlbmNyeXB0OwogICBnY3J5X2NpcGhlcl9zdGRl Y3J5cHRfdCBzdGRlY3J5cHQ7CisgIGdjcnlfc2VsZnRlc3RfZnVuY190IHNlbGZ0ZXN0OworICBn Y3J5X2NpcGhlcl9zZXRfZXh0cmFfaW5mb190IHNldF9leHRyYV9pbmZvOworICBnY3J5X2NpcGhl cl9zZXRpdl9mdW5jX3Qgc2V0aXY7CisKICNpZmRlZiBHUlVCX1VUSUwKICAgY29uc3QgY2hhciAq bW9kbmFtZTsKICNlbmRpZgpAQCAtMTQzLDcgKzIwMSw3IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlf Y2lwaGVyX3NwZWMKIH0gZ2NyeV9jaXBoZXJfc3BlY190OwogCiAvKiBUeXBlIGZvciB0aGUgbWRf aW5pdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQg KmMpOwordHlwZWRlZiB2b2lkICgqZ2NyeV9tZF9pbml0X3QpICh2b2lkICpjLCB1bnNpZ25lZCBp bnQgZmxhZ3MpOwogCiAvKiBUeXBlIGZvciB0aGUgbWRfd3JpdGUgZnVuY3Rpb24uICAqLwogdHlw ZWRlZiB2b2lkICgqZ2NyeV9tZF93cml0ZV90KSAodm9pZCAqYywgY29uc3Qgdm9pZCAqYnVmLCBn cnViX3NpemVfdCBuYnl0ZXMpOwpAQCAtMTYyLDE2ICsyMjAsMjQgQEAgdHlwZWRlZiBzdHJ1Y3Qg Z2NyeV9tZF9vaWRfc3BlYwogLyogTW9kdWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBt ZXNzYWdlIGRpZ2VzdHMuICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiB7CisgIGlu dCBhbGdvOworICBzdHJ1Y3QgeworICAgIHVuc2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVu c2lnbmVkIGludCBmaXBzOjE7CisgIH0gZmxhZ3M7CiAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gIHVu c2lnbmVkIGNoYXIgKmFzbm9pZDsKKyAgY29uc3QgdW5zaWduZWQgY2hhciAqYXNub2lkOwogICBp bnQgYXNubGVuOwotICBnY3J5X21kX29pZF9zcGVjX3QgKm9pZHM7CisgIGNvbnN0IGdjcnlfbWRf b2lkX3NwZWNfdCAqb2lkczsKICAgZ3J1Yl9zaXplX3QgbWRsZW47CiAgIGdjcnlfbWRfaW5pdF90 IGluaXQ7CiAgIGdjcnlfbWRfd3JpdGVfdCB3cml0ZTsKICAgZ2NyeV9tZF9maW5hbF90IGZpbmFs OwogICBnY3J5X21kX3JlYWRfdCByZWFkOworICB2b2lkICpleHRyYWN0OworICB2b2lkICpoYXNo X2J1ZmZlcnM7CiAgIGdydWJfc2l6ZV90IGNvbnRleHRzaXplOyAvKiBhbGxvY2F0ZSB0aGlzIGFt b3VudCBvZiBjb250ZXh0ICovCisKICAgLyogQmxvY2sgc2l6ZSwgbmVlZGVkIGZvciBITUFDLiAg Ki8KICAgZ3J1Yl9zaXplX3QgYmxvY2tzaXplOwogI2lmZGVmIEdSVUJfVVRJTApAQCAtMTgwLDU0 ICsyNDYsMTIzIEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfbWRfc3BlYwogICBzdHJ1Y3QgZ2NyeV9t ZF9zcGVjICpuZXh0OwogfSBnY3J5X21kX3NwZWNfdDsKIAordHlwZWRlZiBzdHJ1Y3QgZ2NyeV9t ZF9oYW5kbGUqZ2NyeV9tZF9oZF90OworCiBzdHJ1Y3QgZ2NyeV9tcGk7CiB0eXBlZGVmIHN0cnVj dCBnY3J5X21waSAqZ2NyeV9tcGlfdDsKIAorc3RydWN0IGdjcnlfc2V4cDsKK3R5cGVkZWYgc3Ry dWN0IGdjcnlfc2V4cCAqZ2NyeV9zZXhwX3Q7CisKKworI2RlZmluZSBQVUJLRVlfRkxBR19OT19C TElORElORyAgICAoMSA8PCAwKQorI2RlZmluZSBQVUJLRVlfRkxBR19SRkM2OTc5ICAgICAgICAo MSA8PCAxKQorI2RlZmluZSBQVUJLRVlfRkxBR19GSVhFRExFTiAgICAgICAoMSA8PCAyKQorI2Rl ZmluZSBQVUJLRVlfRkxBR19MRUdBQ1lSRVNVTFQgICAoMSA8PCAzKQorI2RlZmluZSBQVUJLRVlf RkxBR19SQVdfRkxBRyAgICAgICAoMSA8PCA0KQorI2RlZmluZSBQVUJLRVlfRkxBR19UUkFOU0lF TlRfS0VZICAoMSA8PCA1KQorI2RlZmluZSBQVUJLRVlfRkxBR19VU0VfWDkzMSAgICAgICAoMSA8 PCA2KQorI2RlZmluZSBQVUJLRVlfRkxBR19VU0VfRklQUzE4NiAgICAoMSA8PCA3KQorI2RlZmlu ZSBQVUJLRVlfRkxBR19VU0VfRklQUzE4Nl8yICAoMSA8PCA4KQorI2RlZmluZSBQVUJLRVlfRkxB R19QQVJBTSAgICAgICAgICAoMSA8PCA5KQorI2RlZmluZSBQVUJLRVlfRkxBR19DT01QICAgICAg ICAgICAoMSA8PCAxMCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9DT01QICAgICAgICAgKDEgPDwg MTEpCisjZGVmaW5lIFBVQktFWV9GTEFHX0VERFNBICAgICAgICAgICgxIDw8IDEyKQorI2RlZmlu ZSBQVUJLRVlfRkxBR19HT1NUICAgICAgICAgICAoMSA8PCAxMykKKyNkZWZpbmUgUFVCS0VZX0ZM QUdfTk9fS0VZVEVTVCAgICAgKDEgPDwgMTQpCisjZGVmaW5lIFBVQktFWV9GTEFHX0RKQl9UV0VB SyAgICAgICgxIDw8IDE1KQorI2RlZmluZSBQVUJLRVlfRkxBR19TTTIgICAgICAgICAgICAoMSA8 PCAxNikKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfUFJFSEFTSCAgICAgICAgKDEgPDwgMTcpCisKK2Vu dW0gcGtfb3BlcmF0aW9uCisgIHsKKyAgICBQVUJLRVlfT1BfRU5DUllQVCwKKyAgICBQVUJLRVlf T1BfREVDUllQVCwKKyAgICBQVUJLRVlfT1BfU0lHTiwKKyAgICBQVUJLRVlfT1BfVkVSSUZZCisg IH07CisKK2VudW0gcGtfZW5jb2RpbmcKKyAgeworICAgIFBVQktFWV9FTkNfUkFXLAorICAgIFBV QktFWV9FTkNfUEtDUzEsCisgICAgUFVCS0VZX0VOQ19QS0NTMV9SQVcsCisgICAgUFVCS0VZX0VO Q19PQUVQLAorICAgIFBVQktFWV9FTkNfUFNTLAorICAgIFBVQktFWV9FTkNfVU5LTk9XTgorICB9 OworCitzdHJ1Y3QgcGtfZW5jb2RpbmdfY3R4Cit7CisgIGVudW0gcGtfb3BlcmF0aW9uIG9wOwor ICB1bnNpZ25lZCBpbnQgbmJpdHM7CisKKyAgZW51bSBwa19lbmNvZGluZyBlbmNvZGluZzsKKyAg aW50IGZsYWdzOworCisgIGludCBoYXNoX2FsZ287CisKKyAgLyogZm9yIE9BRVAgKi8KKyAgdW5z aWduZWQgY2hhciAqbGFiZWw7CisgIGdydWJfc2l6ZV90IGxhYmVsbGVuOworCisgIC8qIGZvciBQ U1MgKi8KKyAgZ3J1Yl9zaXplX3Qgc2FsdGxlbjsKKworICBpbnQgKCogdmVyaWZ5X2NtcCkgKHZv aWQgKm9wYXF1ZSwgZ2NyeV9tcGlfdCB0bXApOworICB2b2lkICp2ZXJpZnlfYXJnOworfTsKKwog LyogVHlwZSBmb3IgdGhlIHBrX2dlbmVyYXRlIGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9l cnJfY29kZV90ICgqZ2NyeV9wa19nZW5lcmF0ZV90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgICB1 bnNpZ25lZCBpbnQgbmJpdHMsCi0JCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHVzZV9lLAotCQkJ CQkgICAgICAgZ2NyeV9tcGlfdCAqc2tleSwKLQkJCQkJICAgICAgIGdjcnlfbXBpX3QgKipyZXRm YWN0b3JzKTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19nZW5lcmF0ZV90KSAo Z2NyeV9zZXhwX3QgZ2VucGFybXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdjcnlfc2V4cF90ICpyX3NrZXkpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtf Y2hlY2tfc2VjcmV0X2tleSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAo KmdjcnlfcGtfY2hlY2tfc2VjcmV0X2tleV90KSAoaW50IGFsZ28sCi0JCQkJCQkgICAgICAgZ2Ny eV9tcGlfdCAqc2tleSk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfY2hlY2tf c2VjcmV0X2tleV90KSAoZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUg cGtfZW5jcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlf cGtfZW5jcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnJlc2FyciwK LQkJCQkJICAgICAgZ2NyeV9tcGlfdCBkYXRhLAotCQkJCQkgICAgICBnY3J5X21waV90ICpwa2V5 LAotCQkJCQkgICAgICBpbnQgZmxhZ3MpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5 X3BrX2VuY3J5cHRfdCkgKGdjcnlfc2V4cF90ICpyX2NpcGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1z KTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX2RlY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBn Y3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2RlY3J5cHRfdCkgKGludCBhbGdvLAotCQkJCQkgICAg ICBnY3J5X21waV90ICpyZXN1bHQsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKmRhdGEsCi0JCQkJ CSAgICAgIGdjcnlfbXBpX3QgKnNrZXksCi0JCQkJCSAgICAgIGludCBmbGFncyk7Cit0eXBlZGVm IGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoZ2NyeV9zZXhwX3QgKnJfcGxh aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9z ZXhwX3Qgc19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX3NpZ24gZnVu Y3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX3NpZ25fdCkgKGlu dCBhbGdvLAotCQkJCQkgICBnY3J5X21waV90ICpyZXNhcnIsCi0JCQkJCSAgIGdjcnlfbXBpX3Qg ZGF0YSwKLQkJCQkJICAgZ2NyeV9tcGlfdCAqc2tleSk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVf dCAoKmdjcnlfcGtfc2lnbl90KSAoZ2NyeV9zZXhwX3QgKnJfc2lnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBrZXlwYXJtcyk7 CiAKIC8qIFR5cGUgZm9yIHRoZSBwa192ZXJpZnkgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5 X2Vycl9jb2RlX3QgKCpnY3J5X3BrX3ZlcmlmeV90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgZ2Ny eV9tcGlfdCBoYXNoLAotCQkJCQkgICAgIGdjcnlfbXBpX3QgKmRhdGEsCi0JCQkJCSAgICAgZ2Ny eV9tcGlfdCAqcGtleSwKLQkJCQkJICAgICBpbnQgKCpjbXApICh2b2lkICosIGdjcnlfbXBpX3Qp LAotCQkJCQkgICAgIHZvaWQgKm9wYXF1ZXYpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpn Y3J5X3BrX3ZlcmlmeV90KSAoZ2NyeV9zZXhwX3Qgc19zaWcsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBrZXlwYXJtcyk7 CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19nZXRfbmJpdHMgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB1 bnNpZ25lZCAoKmdjcnlfcGtfZ2V0X25iaXRzX3QpIChpbnQgYWxnbywgZ2NyeV9tcGlfdCAqcGtl eSk7Cit0eXBlZGVmIHVuc2lnbmVkICgqZ2NyeV9wa19nZXRfbmJpdHNfdCkgKGdjcnlfc2V4cF90 IGtleXBhcm1zKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBjb21wdXRlIHRoZSBrZXlncmlwLiAg Ki8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpwa19jb21wX2tleWdyaXBfdCkgKGdjcnlfbWRf aGRfdCBtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdj cnlfc2V4cF90IGtleXBhcm0pOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIHF1ZXJ5IGFuIEVDQyBj dXJ2ZSBuYW1lLiAgKi8KK3R5cGVkZWYgY29uc3QgY2hhciAqKCpwa19nZXRfY3VydmVfdCkoZ2Ny eV9zZXhwX3Qga2V5cGFybXMsIGludCBpdGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpyX25iaXRzKTsKKworLyogVGhlIHR5cGUgdXNl ZCB0byBxdWVyeSBFQ0MgY3VydmUgcGFyYW1ldGVycyBieSBuYW1lLiAgKi8KK3R5cGVkZWYgZ2Ny eV9zZXhwX3QgKCpwa19nZXRfY3VydmVfcGFyYW1fdCkoY29uc3QgY2hhciAqbmFtZSk7CiAKIC8q IE1vZHVsZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSBmb3IgbWVzc2FnZSBkaWdlc3RzLiAgKi8K IHR5cGVkZWYgc3RydWN0IGdjcnlfcGtfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsK KyAgICB1bnNpZ25lZCBpbnQgZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOwor ICB9IGZsYWdzOworICBpbnQgdXNlOwogICBjb25zdCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFy ICoqYWxpYXNlczsKICAgY29uc3QgY2hhciAqZWxlbWVudHNfcGtleTsKQEAgLTIzNSw3ICszNzAs NiBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X3BrX3NwZWMKICAgY29uc3QgY2hhciAqZWxlbWVudHNf ZW5jOwogICBjb25zdCBjaGFyICplbGVtZW50c19zaWc7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRz X2dyaXA7Ci0gIGludCB1c2U7CiAgIGdjcnlfcGtfZ2VuZXJhdGVfdCBnZW5lcmF0ZTsKICAgZ2Ny eV9wa19jaGVja19zZWNyZXRfa2V5X3QgY2hlY2tfc2VjcmV0X2tleTsKICAgZ2NyeV9wa19lbmNy eXB0X3QgZW5jcnlwdDsKQEAgLTI0Myw2ICszNzcsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9w a19zcGVjCiAgIGdjcnlfcGtfc2lnbl90IHNpZ247CiAgIGdjcnlfcGtfdmVyaWZ5X3QgdmVyaWZ5 OwogICBnY3J5X3BrX2dldF9uYml0c190IGdldF9uYml0czsKKyAgcGtfY29tcF9rZXlncmlwX3Qg Y29tcF9rZXlncmlwOworICBwa19nZXRfY3VydmVfdCBnZXRfY3VydmU7CisgIHBrX2dldF9jdXJ2 ZV9wYXJhbV90IGdldF9jdXJ2ZV9wYXJhbTsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBj aGFyICptb2RuYW1lOwogI2VuZGlmCkBAIC0zNDUsNiArNDgzLDEwIEBAIGdydWJfY3J5cHRvX2hh c2ggKGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNoLCB2b2lkICpvdXQsIGNvbnN0IHZvaWQgKmlu LAogCQkgIGdydWJfc2l6ZV90IGlubGVuKTsKIGNvbnN0IGdjcnlfbWRfc3BlY190ICoKIGdydWJf Y3J5cHRvX2xvb2t1cF9tZF9ieV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKK2NvbnN0IGdjcnlf bWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvIChpbnQgYWxnbyk7Citj b25zdCBnY3J5X21kX3NwZWNfdCAqCitncnViX2NyeXB0b19sb29rdXBfbWRfYnlfb2lkIChjb25z dCBjaGFyICpvaWQpOwogCiBncnViX2Vycl90CiBncnViX2NyeXB0b19nY3J5X2Vycm9yIChnY3J5 X2Vycl9jb2RlX3QgaW4pOwpAQCAtNDA4LDcgKzU1MCwzNSBAQCB2b2lkIF9nY3J5X2Fzc2VydF9m YWlsZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCiB2 b2lkIF9nY3J5X2J1cm5fc3RhY2sgKGludCBieXRlcyk7CiB2b2lkIF9nY3J5X2xvZ19lcnJvcigg Y29uc3QgY2hhciAqZm10LCAuLi4gKSAgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAoX19wcmludGZf XywgMSwgMikpKTsKK3ZvaWQgX2djcnlfbG9nX2luZm8gKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsK K3ZvaWQgX19nY3J5X2J1cm5fc3RhY2sgKHVuc2lnbmVkIGludCBzaXplKTsKK3ZvaWQgX19nY3J5 X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpOwordm9pZCBfZ2NyeV9idWcoIGNvbnN0IGNoYXIgKmZp bGUsIGludCBsaW5lLCBjb25zdCBjaGFyICpmdW5jICk7Cit2b2lkCitfZ2NyeV9mYXN0X3dpcGVt ZW1vcnkgKHZvaWQgKnB0ciwgZ3J1Yl9zaXplX3QgbGVuKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lw ZW1lbW9yeTIgKHZvaWQgKnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKTsKK3Vuc2lnbmVk IGludAorX2djcnlfY3RfbWVtZXF1YWwgKGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwg Z3J1Yl9zaXplX3QgbGVuKTsKK3Vuc2lnbmVkIGludAorX2djcnlfY3Rfbm90X21lbWVxdWFsIChj b25zdCB2b2lkICpiMSwgY29uc3Qgdm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbik7CisKKworc3Rh dGljIGlubGluZSB1bnNpZ25lZCBpbnQgX2djcnlfZ2V0X2h3X2ZlYXR1cmVzKHZvaWQpCit7Cisg IHJldHVybiAwOworfQogCit2b2lkICpfZ2NyeV9tYWxsb2MoZ3J1Yl9zaXplX3Qgbik7Cit2b2lk ICpfZ2NyeV9tYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxv YyhncnViX3NpemVfdCBuKTsKK3ZvaWQgKl9nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90 IG4pOwordm9pZCBfZ2NyeV9mcmVlICh2b2lkICpwKTsKK3ZvaWQgKl9nY3J5X3hyZWFsbG9jICh2 b2lkICphLCBncnViX3NpemVfdCBuKTsKK2ludCBfZ2NyeV9pc19zZWN1cmUgKGNvbnN0IHZvaWQg KmEpOwordm9pZCAqX2djcnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSk7 Cit2b2lkICpfZ2NyeV94Y2FsbG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3Qg bSk7Cit2b2lkIF9nY3J5X2RpdmlkZV9ieV96ZXJvICh2b2lkKTsKIAogI2lmZGVmIEdSVUJfVVRJ TAogdm9pZCBncnViX2djcnlfaW5pdF9hbGwgKHZvaWQpOwpAQCAtNDE5LDQgKzU4OSwxMSBAQCBn cnViX2dldF9yYW5kb20gKHZvaWQgKm91dCwgZ3J1Yl9zaXplX3QgbGVuKTsKIAogI2VuZGlmCiAK K3R5cGVkZWYgc3RydWN0IF9ncGdydF9iNjRzdGF0ZSAqZ3BncnRfYjY0c3RhdGVfdDsKK2dwZ3J0 X2I2NHN0YXRlX3QgZ3BncnRfYjY0ZGVjX3N0YXJ0IChjb25zdCBjaGFyICp0aXRsZSk7CitncGdf ZXJyb3JfdCAgICAgIGdwZ3J0X2I2NGRlY19wcm9jIChncGdydF9iNjRzdGF0ZV90IHN0YXRlLAor CQkJCSAgICB2b2lkICpidWZmZXIsIGdydWJfc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdydWJfc2l6ZV90ICpyX25ieXRlcyk7CitncGdfZXJyb3Jf dCAgICAgIGdwZ3J0X2I2NGRlY19maW5pc2ggKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUpOworY29u c3QgY2hhciAqZ3BnX3N0cmVycm9yIChncGdfZXJyb3JfdCBlcnIpOwogI2VuZGlmCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oIGIvaW5jbHVkZS9ncnViL2djcnlw dC9ncGctZXJyb3IuaAppbmRleCAxZTQyNTAyODQuLjk2NmViZjgyZCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9ncnViL2djcnlwdC9ncGctZXJyb3IuaAorKysgYi9pbmNsdWRlL2dydWIvZ2NyeXB0L2dw Zy1lcnJvci5oCkBAIC0yOSw0ICsyOSwzMyBAQCBncGdfZXJyX3NvdXJjZSAoZ3BnX2Vycm9yX3Qg ZXJyIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKIGdjcnlfZXJyX2NvZGVfdAogZ3BnX2Vycm9y X2Zyb21fc3lzZXJyb3IgKHZvaWQpOwogCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJfY29kZV9m cm9tX3N5c2Vycm9yICh2b2lkKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyb3JfZnJvbV9l cnJubyAoaW50IGVycik7CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fZXJy bm8gKGludCBlcnIpOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKgorZ3BnX3N0cnNvdXJj ZSAoZ2NyeV9lcnJvcl90IGVyciBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCit7CisgIHJldHVy biBOVUxMOworfQorCitzdGF0aWMgaW5saW5lIGludAorZ3BnX2Vycl9jb2RlX3RvX2Vycm5vIChn Y3J5X2Vycl9jb2RlX3QgY29kZSkKK3sKKyAgcmV0dXJuIGNvZGUgPyAxIDogMDsKK30KKworc3Rh dGljIGlubGluZSBnY3J5X2Vycm9yX3QKK2dwZ19lcnJfbWFrZV9mcm9tX2Vycm5vIChncGdfZXJy X3NvdXJjZV90IHNvdXJjZSBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGludCBlcnIpCit7Cisg IHJldHVybiBncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoZXJyKTsKK30KKworI2RlZmluZSBncGdf ZXJyb3IoeCkgKHgpCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWZzdGVzdC5jIGIv dXRpbC9ncnViLWZzdGVzdC5jCmluZGV4IDdmZjkwMzdiOC4uMjRiMjBhYjkxIDEwMDY0NAotLS0g YS91dGlsL2dydWItZnN0ZXN0LmMKKysrIGIvdXRpbC9ncnViLWZzdGVzdC5jCkBAIC0zNjUsNyAr MzY1LDcgQEAgc3RhdGljIHZvaWQKIGNtZF9jcmMgKGNoYXIgKnBhdGhuYW1lKQogewogICBncnVi X3VpbnQ4X3QgKmNyYzMyX2NvbnRleHQgPSB4bWFsbG9jIChHUlVCX01EX0NSQzMyLT5jb250ZXh0 c2l6ZSk7Ci0gIEdSVUJfTURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCk7CisgIEdSVUJfTURf Q1JDMzItPmluaXQoY3JjMzJfY29udGV4dCwgMCk7CiAKICAgcmVhZF9maWxlIChwYXRobmFtZSwg Y3JjX2hvb2ssIGNyYzMyX2NvbnRleHQpOwogICBHUlVCX01EX0NSQzMyLT5maW5hbChjcmMzMl9j b250ZXh0KTsKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnkucHkgYi91dGlsL2ltcG9ydF9n Y3J5LnB5CmluZGV4IDJiMzMyMmQzYS4uZTNmNmQ2NWExIDEwMDY0NAotLS0gYS91dGlsL2ltcG9y dF9nY3J5LnB5CisrKyBiL3V0aWwvaW1wb3J0X2djcnkucHkKQEAgLTIyLDYgKzIyLDIzIEBAIGlt cG9ydCBvcwogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgY29kZWNzCiAKK2RlZiByZW1vdmVzdWZm aXgoYmFzZTogc3RyLCBzdWZmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBg cmVtb3Zlc3VmZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJh c2UuZW5kc3dpdGgoc3VmZml4KToKKyAgICAgICAgcmV0dXJuIGJhc2VbOi1sZW4oc3VmZml4KV0K KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYmFzZQorCisKK2RlZiByZW1vdmVwcmVmaXgoYmFz ZTogc3RyLCBwcmVmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3Zl cHJlZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2Uuc3Rh cnRzd2l0aChwcmVmaXgpOgorICAgICAgICByZXR1cm4gYmFzZVtsZW4ocHJlZml4KTpdCisgICAg ZWxzZToKKyAgICAgICAgcmV0dXJuIGJhc2UKKwogaWYgbGVuIChzeXMuYXJndikgPCAzOgogICAg IHByaW50ICgiVXNhZ2U6ICVzIFNPVVJDRSBERVNUSU5BVElPTiIgJSBzeXMuYXJndlswXSkKICAg ICBleGl0ICgwKQpAQCAtNjIsNiArNzksMTIgQEAgY29uZnV0aWwud3JpdGUgKCIgIGNmbGFncyA9 ICckKENGTEFHU19HQ1JZKSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBjcHBmbGFncyA9ICck KENQUEZMQUdTX0dDUlkpJztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3QgPSBn cnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNvbmZ1 dGlsLndyaXRlICgiXG4iKTsKKworZm9yIHNyYyBpbiBbJ3NyYy9jb25zdC10aW1lLmMnXToKKyAg ICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1 Yi8lcztcbiIgJSBzcmMpCisKK2NvbmZ1dGlsLndyaXRlICgiXG4iKTsKKwogY2hsb2cgPSAiIgog bW9kdWxlc19zeW1fbWQgPSBbXQogCkBAIC03MSw2ICs5NCw4IEBAIG1vZHVsZXNfc3ltX21kID0g W10KIG1kYmxvY2tzaXplcyA9IHsiX2djcnlfZGlnZXN0X3NwZWNfY3JjMzIiIDogNjQsCiAgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2NyYzMyX3JmYzE1MTAiIDogNjQsCiAgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2NyYzI0X3JmYzI0NDAiIDogNjQsCisgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2NzaGFrZTEyOCI6IDY0LAorICAgICAgICAg ICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19jc2hha2UyNTYiOiA2NCwKICAgICAgICAgICAgICAg ICAiX2djcnlfZGlnZXN0X3NwZWNfbWQ0IiA6IDY0LAogICAgICAgICAgICAgICAgICJfZ2NyeV9k aWdlc3Rfc3BlY19tZDUiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVj X3JtZDE2MCIgOiA2NCwKQEAgLTc5LDEwICsxMDQsMjMgQEAgbWRibG9ja3NpemVzID0geyJfZ2Ny eV9kaWdlc3Rfc3BlY19jcmMzMiIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfc2hhMjU2IiA6IDY0LAogICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19z aGEzODQiIDogMTI4LAogICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGE1MTIi IDogMTI4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGE1MTJfMjU2Ijog MTI4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGE1MTJfMjI0IjogMTI4 LAogICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY190aWdlciIgOiA2NCwKICAgICAg ICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIxIiA6IDY0LAogICAgICAgICAgICAg ICAgICJfZ2NyeV9kaWdlc3Rfc3BlY190aWdlcjIiIDogNjQsCi0gICAgICAgICAgICAgICAgIl9n Y3J5X2RpZ2VzdF9zcGVjX3doaXJscG9vbCIgOiA2NH0KKyAgICAgICAgICAgICAgICAiX2djcnlf ZGlnZXN0X3NwZWNfd2hpcmxwb29sIiA6IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdl c3Rfc3BlY19zaGFrZTEyOCI6IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3Bl Y19zaGFrZTI1NiI6IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zbTMi OiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc3RyaWJvZ18yNTYiOiA2 NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc3RyaWJvZ181MTIiOiA2NCwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM18yMjQiOiAxMTUyIC8gOCwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM18yNTYiOiAxMDg4IC8gOCwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM18zODQiOiA4MzIgLyA4LAor ICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzUxMiI6IDU3NiAvIDgsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2dvc3QzNDExXzk0IjogMzIsCisgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2dvc3QzNDExX2NwIjogMzJ9CiAKIGNyeXB0 b2xpc3QgPSBjb2RlY3Mub3BlbiAob3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgImNyeXB0 by5sc3QiKSwgInciLCAidXRmLTgiKQogCkBAIC05OSwyNiArMTM3LDYwIEBAIGNyeXB0b2xpc3Qu d3JpdGUgKCJBRVMtMjU2OiBnY3J5X3Jpam5kYWVsXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJB RExFUjMyOiBhZGxlcjMyXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJDUkM2NDogY3JjNjRcbiIp OwogCitleHRyYV9maWxlcyA9IHsKKyAgICAiZ2NyeV9jYW1lbGxpYSI6IFsiY2FtZWxsaWEuYyJd LCAjIE1haW4gZmlsZSBpcyBjYW1lbGxpYS1nbHVlLmMKKyAgICAiZ2NyeV9zaGE1MTIiICA6IFsi aGFzaC1jb21tb24uYyJdLAorfQorZXh0cmFfZmlsZXNfbGlzdCA9IFt4IGZvciB4cyBpbiBleHRy YV9maWxlcy52YWx1ZXMoKSBmb3IgeCBpbiB4c10gKyBbInB1YmtleS11dGlsLmMiLCAicnNhLWNv bW1vbi5jIiwgImRzYS1jb21tb24uYyIsICJtZC5jIl0KKwogZm9yIGNpcGhlcl9maWxlIGluIGNp cGhlcl9maWxlczoKICAgICBpbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sIGNp cGhlcl9maWxlKQogICAgIG91dGZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCBj aXBoZXJfZmlsZSkKICAgICBpZiBjaXBoZXJfZmlsZSA9PSAiQ2hhbmdlTG9nIiBvciBjaXBoZXJf ZmlsZSA9PSAiQ2hhbmdlTG9nLTIwMTEiOgogICAgICAgICBjb250aW51ZQogICAgIGNobG9nbmV3 ID0gIgkqICVzIiAlIGNpcGhlcl9maWxlCi0gICAgaWYgcmUubWF0Y2ggKCIoTWFuaWZlc3R8TWFr ZWZpbGVcLmFtfGFjXC5jfGNpcGhlclwuY3xoYXNoLWNvbW1vblwuY3xobWFjLXRlc3RzXC5jfG1k XC5jfHB1YmtleVwuYykkIiwgY2lwaGVyX2ZpbGUpIG9yIGNpcGhlcl9maWxlID09ICJrZGYuYyIg b3IgY2lwaGVyX2ZpbGUgPT0gImVsZ2FtYWwuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInByaW1lZ2Vu LmMiIG9yIGNpcGhlcl9maWxlID09ICJlY2MuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInRlc3QtZ2V0 cnVzYWdlLmMiOgorICAgICMgVW51c2VkIGdlbmVyaWMgc3VwcG9ydCBmaWxlcworICAgIGlmIHJl Lm1hdGNoIChyIihNYWtlZmlsZVwuYW18Y2lwaGVyXC5jfGNpcGhlci0uKlwuY3xtYWMtLipcLmN8 bWFjXC5jfHB1YmtleVwuY3xwcmltZWdlblwuYykkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBj aGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29u dGludWUKKyAgICAjIFRPRE86IFN1cHBvcnQgS0RGCisgICAgaWYgcmUubWF0Y2ggKHIiKGtkZlwu Y3xzY3J5cHRcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVt b3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBUT0RP OiBTdXBwb3J0IGNoYWNoYTIwIGFuZCBwb2x5MTMwNQorICAgIGlmIGNpcGhlcl9maWxlIGluIFsi Y2hhY2hhMjAuYyIsICJwb2x5MTMwNS5jIl06CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92 ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZQorICAgICMgVE9ETzog U3VwcG9ydCBibGFrZTIKKyAgICBpZiBjaXBoZXJfZmlsZSA9PSAiYmxha2UyLmMiOgorICAgICAg ICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAg Y29udGludWUgICAgICAgIAorCisgICAgIyBUT0RPOiBVc2Ugb3B0aW1pemVkIHZlcnNpb25zCisg ICAgaWYgcmUubWF0Y2ggKHIiKC4qXC5bc1NdfC4qLWFhcmNoNjQtY2UuY3wuKi1pbnRlbC1zaGFl eHRcLmN8Liotc3NzZTMtaTM4NlwuY3wuKi1wcGNcLmN8Liotc3NzZTMtYW1kNjRcLmN8LiotczM5 MHhcLmN8cmlqbmRhZWwtYWVzbmlcLmN8Y3JjLWludGVsLXBjbG11bFwuY3wuKi1hcm12OC1jZVwu Y3wuKi1wMTBsZVwuY3xyaWpuZGFlbC1wYWRsb2NrLmN8LiotcHBjOGxlLmN8LiotcHBjOWxlLmN8 cmlqbmRhZWwtdmFlc1wuY3wuKi12YWVzLWkzODZcLmN8LiotYXZ4NTEyLXg4NlwuYykkIiwgY2lw aGVyX2ZpbGUpOgorICAgICAgICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBj aGxvZ25ldykKKyAgICAgICAgY29udGludWUKKyAgICAjIFRPRE86IFN1cHBvcnQgRUNDLCBFbGdh bWFsIGFuZCBwb3N0LXF1YW50dW0KKyAgICBpZiByZS5tYXRjaCAociJeKGVjYy0uKlwuY3xlY2Nc LmN8ZWxnYW1hbFwuY3xrZW1cLmN8a2VtLWVjY1wuY3xzbnRydXA3NjFcLmN8bWNlbGllY2U2Njg4 MTI4ZlwuY3xreWJlclwuY3xreWJlci0uKlwuYykkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBj aGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29u dGludWUKKyAgICAjIE5vdCBwYXJ0IG9mIHRoZSBjb2RlCisgICAgaWYgY2lwaGVyX2ZpbGUgaW4g WyJnb3N0LXMtYm94LmMiXToKICAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChj aGxvZywgY2hsb2duZXcpCiAgICAgICAgIGNvbnRpbnVlCiAgICAgIyBBdXRvZ2VuZXJhdGVkIGZp bGVzLiBOb3QgZXZlbiB3b3J0aCBtZW50aW9ubmluZyBpbiBDaGFuZ2VMb2cKLSAgICBpZiByZS5t YXRjaCAoIk1ha2VmaWxlXC5pbiQiLCBjaXBoZXJfZmlsZSk6CisgICAgaWYgcmUubWF0Y2ggKHIi TWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKICAgICAgICAgY29udGludWUKICAgICBuY2gg PSBGYWxzZQotICAgIGlmIHJlLm1hdGNoICgiLipcLltjaF0kIiwgY2lwaGVyX2ZpbGUpOgotICAg ICAgICBpc2MgPSByZS5tYXRjaCAoIi4qXC5jJCIsIGNpcGhlcl9maWxlKQorICAgIGlmIHJlLm1h dGNoIChyIi4qXC5bY2hdJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgaXNjID0gcmUubWF0Y2gg KHIiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCiAgICAgICAgIGYgPSBjb2RlY3Mub3BlbiAoaW5maWxl LCAiciIsICJ1dGYtOCIpCiAgICAgICAgIGZ3ID0gY29kZWNzLm9wZW4gKG91dGZpbGUsICJ3Iiwg InV0Zi04IikKICAgICAgICAgZncud3JpdGUgKCIvKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2Fs bHkgaW1wb3J0ZWQgd2l0aCBcbiIpCiAgICAgICAgIGZ3LndyaXRlICgiICAgaW1wb3J0X2djcnku cHkuIFBsZWFzZSBkb24ndCBtb2RpZnkgaXQgKi9cbiIpCi0gICAgICAgIGZ3LndyaXRlICgiI2lu Y2x1ZGUgPGdydWIvZGwuaD5cbiIpCisgICAgICAgIGFkZF9saWNlbnNlID0gY2lwaGVyX2ZpbGUg PT0gInB1YmtleS11dGlsLmMiIG9yIChpc2MgYW5kIG5vdCBjaXBoZXJfZmlsZSBpbiBleHRyYV9m aWxlc19saXN0KQorICAgICAgICBpZiBhZGRfbGljZW5zZToKKyAgICAgICAgICAgIGZ3LndyaXRl ICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCiAgICAgICAgIGlmIGNpcGhlcl9maWxlID09ICJj YW1lbGxpYS5oIjoKICAgICAgICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvbWlzYy5o PlxuIikKICAgICAgICAgICAgIGZ3LndyaXRlICgidm9pZCBjYW1lbGxpYV9zZXR1cDEyOChjb25z dCB1bnNpZ25lZCBjaGFyICprZXksIGdydWJfdWludDMyX3QgKnN1YmtleSk7XG4iKQpAQCAtMTMy LDcgKzIwNCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAg ICBmdy53cml0ZSAoInZvaWQgY2FtZWxsaWFfZGVjcnlwdDI1Nihjb25zdCBncnViX3VpbnQzMl90 ICpzdWJrZXksIGdydWJfdWludDMyX3QgKmlvKTtcbiIpICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIG1lbWNweSBncnViX21lbWNweVxuIikKICAg ICAgICAgIyBXaG9sZSBsaWJnY3J5cHQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgR1BMdjMrIG9yIGNv bXBhdGlibGUKLSAgICAgICAgaWYgaXNjOgorICAgICAgICBpZiBhZGRfbGljZW5zZToKICAgICAg ICAgICAgIGZ3LndyaXRlICgiR1JVQl9NT0RfTElDRU5TRSAoXCJHUEx2MytcIik7XG4iKQogCiAg ICAgICAgIGNpcGhlcm5hbWVzID0gW10KQEAgLTE0OCwxNCArMjIwLDEwIEBAIGZvciBjaXBoZXJf ZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgIGlzY2lwaGVyID0gRmFsc2UKICAgICAgICAg aXNjcnlwdG9zdGFydCA9IEZhbHNlCiAgICAgICAgIGlzY29tbWEgPSBGYWxzZQotICAgICAgICBp c2dsdWUgPSBGYWxzZQogICAgICAgICBza2lwX3N0YXRlbWVudCA9IEZhbHNlCisgICAgICAgIHNr aXBfY29tbWEgPSBGYWxzZQogICAgICAgICBpZiBpc2M6Ci0gICAgICAgICAgICBtb2RuYW1lID0g Y2lwaGVyX2ZpbGUgWzA6bGVuKGNpcGhlcl9maWxlKSAtIDJdCi0gICAgICAgICAgICBpZiByZS5t YXRjaCAoIi4qLWdsdWUkIiwgbW9kbmFtZSk6Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9IG1v ZG5hbWUucmVwbGFjZSAoIi1nbHVlIiwgIiIpCi0gICAgICAgICAgICAgICAgaXNnbHVlID0gVHJ1 ZQotICAgICAgICAgICAgbW9kbmFtZSA9ICJnY3J5XyVzIiAlIG1vZG5hbWUKKyAgICAgICAgICAg IG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSByZW1vdmVzdWZmaXgocmVtb3Zlc3VmZml4KGNpcGhlcl9m aWxlLCAiLmMiKSwgIi1nbHVlIikucmVwbGFjZSgiLSIsICJfIikKICAgICAgICAgZm9yIGxpbmUg aW4gZjoKICAgICAgICAgICAgIGxpbmUgPSBsaW5lCiAgICAgICAgICAgICBpZiBza2lwX3N0YXRl bWVudDoKQEAgLTE3MSw3ICsyMzksNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVz OgogICAgICAgICAgICAgICAgICAgICBza2lwMiA9IEZhbHNlCiAgICAgICAgICAgICAgICAgY29u dGludWUKICAgICAgICAgICAgIGlmIGlzY3J5cHRvc3RhcnQ6Ci0gICAgICAgICAgICAgICAgcyA9 IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXpdKilcIiIsIGxpbmUpCisgICAgICAgICAgICAg ICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXotXSopXCIiLCBsaW5lKQogICAgICAg ICAgICAgICAgIGlmIG5vdCBzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNnID0gcy5n cm91cHMoKVswXQogICAgICAgICAgICAgICAgICAgICBjcnlwdG9saXN0LndyaXRlICgoIiVzOiAl c1xuIikgJSAoc2csIG1vZG5hbWUpKQpAQCAtMjAxLDcgKzI2OSw3IEBAIGZvciBjaXBoZXJfZmls ZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGlzcGsgPSBGYWxzZQogICAg ICAgICAgICAgICAgIGlzY29tbWEgPSBub3QgcmUuc2VhcmNoICgiLCQiLCBsaW5lKSBpcyBOb25l CiAgICAgICAgICAgICAjIFVzZWQgb25seSBmb3Igc2VsZnRlc3RzLgotICAgICAgICAgICAgbSA9 IHJlLm1hdGNoICgiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNpZ25lZCBjaGFyKSAod2Vha19rZXlz X2Noa3N1bSlcW1swLTldKlxdID0iLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChy IihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcnxzdGF0aWMgY29uc3QgZ2NyeV9tZF9z cGVjX3QgXCogY29uc3QpICh3ZWFrX2tleXNfY2hrc3VtfGRpZ2VzdF9saXN0KVxbWzAtOV0qXF0g PSIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAg IHNraXAgPSAxCiAgICAgICAgICAgICAgICAgZm5hbWUgPSBtLmdyb3VwcyAoKVsxXQpAQCAtMjEy LDExICsyODAsMTUgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAg ICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAg ICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg ICAgICAgICBpZiAobm90IGhvbGQpIGFuZCAocmUubWF0Y2ggKHIiWyBcdF0qKHJ1bl9zZWxmdGVz dHN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvKSw/IiwgbGluZSkgaXMgbm90IE5vbmUpOgor ICAgICAgICAgICAgICAgIGlzY29tbWEgPSBUcnVlCisgICAgICAgICAgICAgICAgbGluZSA9ICIi CiAgICAgICAgICAgICBpZiBob2xkOgogICAgICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAg ICAgICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Igc2l6ZSBhbmQgZXhjbHVkZSBhbnl0 aGluZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICAgICAjIHJhbmRvbW5lc3MuCi0gICAgICAg ICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKHJ1bl9zZWxmdGVzdHN8c2VsZnRlc3R8X2djcnlf YWVzX2MuLl8uLmN8X2djcnlfW2EtejAtOV0qX2hhc2hfYnVmZmVyfHRyaXBsZWRlc19zZXQya2V5 c3xkb190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBl bnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bh cm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVj Y19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3By b2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVj Mm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGNvbXB1dGVfa2V5Z3JpcHxlY2NfZ2V0 X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xnZW5feDkzMV9wYXJtX3hwfGdl bl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNhX2dlbmVyYXRlX2V4dHxyc2Ff Z2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9ibGluZHxyc2FfdW5ibGluZHxleHRy YWN0X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29weXxwb2ludF9zZXQpIiwgbGluZSkg aXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIFRPRE86IFN1cHBvcnQgc2hha2UyK3JzYSAoTmVl ZHMgbWRfZXh0cmFjdCkKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRjaCAoIihfZ2NyeV9oYXNo X3NlbGZ0ZXN0X2NoZWNrX29uZXxidWxrX3NlbGZ0ZXN0X3NldGtleXxydW5fc2VsZnRlc3RzfGRv X3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mb3xzZWxmdGVzdHxzbTRfc2VsZnRlc3R8Y3NoYWtlX2hh c2hfYnVmZmVyc3xfZ2NyeV9bYS16MC05X10qX2hhc2hfYnVmZmVyc3xfZ2NyeV9zaGExX2hhc2hf YnVmZmVyfHRyaXBsZWRlc19zZXQya2V5c3xfZ2NyeV9ybWQxNjBfbWl4YmxvY2t8c2VycGVudF90 ZXN0fGRzYV9nZW5lcmF0ZV9leHR8dGVzdF9rZXlzfGdlbl9rfHNpZ258Z2VuX3g5MzFfcGFybV94 cHxnZW5lcmF0ZV94OTMxfGdlbmVyYXRlX2tleXxkc2FfZ2VuZXJhdGV8ZHNhX3NpZ258ZWNjX3Np Z258Z2VuZXJhdGV8Z2VuZXJhdGVfZmlwczE4NnxfZ2NyeV9yZWdpc3Rlcl9wa19kc2FfcHJvZ3Jl c3N8X2djcnlfcmVnaXN0ZXJfcGtfZWNjX3Byb2dyZXNzfHByb2dyZXNzfHNjYW52YWx8ZWMyb3N8 ZWNjX2dlbmVyYXRlX2V4dHxlY2NfZ2VuZXJhdGV8ZWNjX2dldF9wYXJhbXxfZ2NyeV9yZWdpc3Rl cl9wa19kc2FfcHJvZ3Jlc3N8Z2VuX3g5MzFfcGFybV94cHxnZW5feDkzMV9wYXJtX3hpfHJzYV9k ZWNyeXB0fHJzYV9zaWdufHJzYV9nZW5lcmF0ZV9leHR8cnNhX2dlbmVyYXRlfHNlY3JldHxjaGVj a19leHBvbmVudHxyc2FfYmxpbmR8cnNhX3VuYmxpbmR8ZXh0cmFjdF9hX2Zyb21fc2V4cHxjdXJ2 ZV9mcmVlfGN1cnZlX2NvcHl8cG9pbnRfc2V0fF9nY3J5X2RzYV9nZW5fcmZjNjk3OV9rfGJpdHMy b2N0ZXRzfGludDJvY3RldHN8bWRfZXh0cmFjdHxfZ2NyeV9tZF9kZWJ1Z3xfZ2NyeV9tZF9zZWxm dGVzdHxfZ2NyeV9tZF9pc19lbmFibGVkfF9nY3J5X21kX2lzX3NlY3VyZXxfZ2NyeV9tZF9pbml0 fF9nY3J5X21kX2luZm98X2djcnlfbWRfZ2V0X2FsZ28gfG1kX2dldF9hbGdvIHxfZ2NyeV9tZF9n ZXQgfF9nY3J5X21kX2V4dHJhY3R8X2djcnlfbWRfc2V0a2V5fG1kX3NldGtleXxwcmVwYXJlX21h Y3BhZHN8X2djcnlfbWRfYWxnb19uYW1lfHNlYXJjaF9vaWR8c3BlY19mcm9tX29pZHxzcGVjX2Zy b21fbmFtZXxzcGVjX2Zyb21fYWxnb3xtYXBfYWxnb3xfZ2NyeV9jc2hha2VfY3VzdG9taXplfGNz aGFrZV9pbnB1dF9bc25dKSIsIGxpbmUpIGlzIG5vdCBOb25lOgogCiAgICAgICAgICAgICAgICAg ICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNlbGZ0 ZXN0IiwgbGluZSkgaXMgTm9uZSBhbmQgY2lwaGVyX2ZpbGUgPT0gImlkZWEuYyI6CkBAIC0yMjQs NiArMjk2LDExIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAKICAgICAgICAg ICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VycGVudF90ZXN0IiwgbGluZSkgaXMgTm9u ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgic3RhdGljIGNvbnN0IGNoYXIg KnNlcnBlbnRfdGVzdCAodm9pZCkgeyByZXR1cm4gMDsgfVxuIik7CisgICAgICAgICAgICAgICAg ICAgIGlmIG5vdCByZS5tYXRjaCAoInNtNF9zZWxmdGVzdCIsIGxpbmUpIGlzIE5vbmU6CisgICAg ICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoInN0YXRpYyBjb25zdCBjaGFyICpzbTRfc2Vs ZnRlc3QgKHZvaWQpIHsgcmV0dXJuIDA7IH1cbiIpOworICAgICAgICAgICAgICAgICAgICBoYXNo X2J1ZiA9IHJlLm1hdGNoICgiKF9nY3J5X1thLXowLTlfXSpfaGFzaF9idWZmZXJzKSIsIGxpbmUp CisgICAgICAgICAgICAgICAgICAgIGlmIGhhc2hfYnVmIGlzIG5vdCBOb25lOgorICAgICAgICAg ICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lICVzIDAiICUgKGhhc2hfYnVmLmdyb3Vw KDApKSkKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiZHNhX2dlbmVyYXRl IiwgbGluZSkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2Rl ZmluZSBkc2FfZ2VuZXJhdGUgMCIpOwogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0 Y2ggKCJlY2NfZ2VuZXJhdGUiLCBsaW5lKSBpcyBOb25lOgpAQCAtMjM4LDYgKzMxNSwxMCBAQCBm b3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICAgICAg Zncud3JpdGUgKCIjZGVmaW5lIGRzYV9zaWduIDAiKTsKICAgICAgICAgICAgICAgICAgICAgaWYg bm90IHJlLm1hdGNoICgiZWNjX3NpZ24iLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAgICAg ICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGVjY19zaWduIDAiKTsKKyAgICAgICAgICAgICAg ICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VhcmNoX29pZCIsIGxpbmUpIGlzIE5vbmU6CisgICAg ICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgc2VhcmNoX29pZChhLGIpIGdy dWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQoYSkiKQorICAgICAgICAgICAgICAgICAgICBpZiBu b3QgcmUubWF0Y2ggKCJzcGVjX2Zyb21fbmFtZSIsIGxpbmUpIGlzIE5vbmU6CisgICAgICAgICAg ICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgc3BlY19mcm9tX25hbWUgZ3J1Yl9jcnlw dG9fbG9va3VwX21kX2J5X25hbWUiKQogICAgICAgICAgICAgICAgICAgICBmbmFtZSA9IHJlLm1h dGNoICgiW2EtekEtWjAtOV9dKiIsIGxpbmUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAgICAg IGNobXNnID0gIiglcyk6IFJlbW92ZWQuIiAlIGZuYW1lCiAgICAgICAgICAgICAgICAgICAgIGlm IG5jaDoKQEAgLTI1Nyw0NSArMzM4LDQ2IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmls ZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzOiAlcyIgJSAoY2hsb2duZXcs IGNobXNnKQogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAg Y29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoImdjcnlfY2lwaGVyX3NwZWNfdCIs IGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3QgKT9nY3J5X2NpcGhlcl9z cGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3QgbSBpcyBOb25lOgogICAg ICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChu b3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NpcGhlcikKICAgICAgICAg ICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAgICAgICAgICAgIGNpcGhl cm5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X2NpcGhlcl9zcGVjX3QiKTpdLnN0cmlwICgpCisgICAg ICAgICAgICAgICAgY2lwaGVybmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGluZSwg ImNvbnN0ICIpLCAiZ2NyeV9jaXBoZXJfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAg ICBjaXBoZXJuYW1lID0gcmUubWF0Y2goIlthLXpBLVowLTlfXSoiLGNpcGhlcm5hbWUpLmdyb3Vw ICgpCiAgICAgICAgICAgICAgICAgY2lwaGVybmFtZXMuYXBwZW5kIChjaXBoZXJuYW1lKQogICAg ICAgICAgICAgICAgIGlzY2lwaGVyID0gVHJ1ZQogICAgICAgICAgICAgICAgIGlzY3J5cHRvc3Rh cnQgPSBUcnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoImdjcnlfcGtfc3BlY190Iiwg bGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCApP2djcnlfcGtfc3BlY190 IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBhbmQgbm90IG0gaXMgTm9uZToKICAgICAgICAg ICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlz cGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjaXBoZXIpCiAgICAgICAgICAgICAg ICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkKLSAgICAgICAgICAgICAgICBwa25hbWUgPSBs aW5lIFtsZW4gKCJnY3J5X3BrX3NwZWNfdCIpOl0uc3RyaXAgKCkKKyAgICAgICAgICAgICAgICBw a25hbWUgPSByZW1vdmVwcmVmaXgocmVtb3ZlcHJlZml4KGxpbmUsICJjb25zdCAiKSwgImdjcnlf cGtfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAgICBwa25hbWUgPSByZS5tYXRjaCgi W2EtekEtWjAtOV9dKiIscGtuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAgICAgIHBrbmFtZXMu YXBwZW5kIChwa25hbWUpCiAgICAgICAgICAgICAgICAgaXNwayA9IFRydWUKICAgICAgICAgICAg ICAgICBpc2NyeXB0b3N0YXJ0ID0gVHJ1ZQogCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJn Y3J5X21kX3NwZWNfdCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3Qg KT9nY3J5X21kX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlz IE5vbmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAgICAgICAgICAgICAg ICBhc3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVy KQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAg ICAgICAgbWRuYW1lID0gbGluZSBbbGVuICgiZ2NyeV9tZF9zcGVjX3QiKTpdLnN0cmlwICgpCisg ICAgICAgICAgICAgICAgbGluZSA9IHJlbW92ZXByZWZpeChsaW5lLCAiY29uc3QgIikKKyAgICAg ICAgICAgICAgICBtZG5hbWUgPSByZW1vdmVwcmVmaXgocmVtb3ZlcHJlZml4KGxpbmUsICJjb25z dCAiKSwgImdjcnlfbWRfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAgICBtZG5hbWUg PSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIsbWRuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAg ICAgIG1kbmFtZXMuYXBwZW5kIChtZG5hbWUpCiAgICAgICAgICAgICAgICAgaXNtZCA9IFRydWUK ICAgICAgICAgICAgICAgICBtZGFyZyA9IDAKICAgICAgICAgICAgICAgICBpc2NyeXB0b3N0YXJ0 ID0gVHJ1ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGNvbnN0IGNoYXIgXCpz ZWxmdGVzdC4qOyQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyBj b25zdCBjaGFyIFwqc2VsZnRlc3QuKjskIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlz IE5vbmU6Ci0gICAgICAgICAgICAgICAgZm5hbWUgPSBsaW5lW2xlbiAoInN0YXRpYyBjb25zdCBj aGFyIFwqIik6XQorICAgICAgICAgICAgICAgIGZuYW1lID0gbGluZVtsZW4gKHIic3RhdGljIGNv bnN0IGNoYXIgXCoiKTpdCiAgICAgICAgICAgICAgICAgZm5hbWUgPSByZS5tYXRjaCAoIlthLXpB LVowLTlfXSoiLCBmbmFtZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBjaG1zZyA9ICIoJXMp OiBSZW1vdmVkIGRlY2xhcmF0aW9uLiIgJSBmbmFtZQogICAgICAgICAgICAgICAgIGlmIG5jaDoK QEAgLTMzMSw3ICs0MTMsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAg ICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlcyAlcyIgJSAoY2hsb2duZXcsIGNobXNnKQog ICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUK LSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyB2b2lkIFwoXCpwcm9ncmVzc19jYlwp Lio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIHZvaWQgXChc KnByb2dyZXNzX2NiXCkuKjskIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6 CiAgICAgICAgICAgICAgICAgY2htc2cgPSAiKHByb2dyZXNzX2NiKTogUmVtb3ZlZCBkZWNsYXJh dGlvbi4iCiAgICAgICAgICAgICAgICAgaWYgbmNoOgpAQCAtMzQwLDcgKzQyMiw3IEBAIGZvciBj aXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3 ID0gIiVzICVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9 IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNo ICgic3RhdGljIHZvaWQgXCpwcm9ncmVzc19jYl9kYXRhLio7JCIsIGxpbmUpCisgICAgICAgICAg ICBtID0gcmUubWF0Y2ggKHIic3RhdGljIHZvaWQgXCpwcm9ncmVzc19jYl9kYXRhLio7JCIsIGxp bmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNobXNn ID0gIihwcm9ncmVzc19jYik6IFJlbW92ZWQgZGVjbGFyYXRpb24uIgogICAgICAgICAgICAgICAg IGlmIG5jaDoKQEAgLTM1MCwyMiArNDMyLDIyIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJf ZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBj b250aW51ZQogCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoc3RhdGljIGNvbnN0IGNoYXIo IHwpXCp8c3RhdGljIGdwZ19lcnJfY29kZV90fHZvaWR8c3RhdGljIGludHxzdGF0aWMgZ2NyeV9l cnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90fHN0YXRpYyB2b2lkfHZvaWR8c3RhdGljIGVsbGlw dGljX2N1cnZlX3QpICokIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociIoKHN0 YXRpYyApP2NvbnN0IGNoYXIoIHwpXCp8c3RhdGljIGNvbnN0IGdjcnlfbWRfc3BlY190IFwqfChz dGF0aWMgKT9ncGdfZXJyX2NvZGVfdHxncGdfZXJyb3JfdHx2b2lkfChzdGF0aWMgKT8odW5zaWdu ZWQgKT9pbnR8KHN0YXRpYyApP2djcnlfZXJyX2NvZGVfdHxzdGF0aWMgZ2NyeV9tcGlfdHxzdGF0 aWMgdm9pZHx2b2lkfHN0YXRpYyBlbGxpcHRpY19jdXJ2ZV90KSAqJCIsIGxpbmUpCiAgICAgICAg ICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGhvbGQgPSBUcnVlCiAgICAg ICAgICAgICAgICAgaG9sZGxpbmUgPSBsaW5lCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAg ICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDJrZXlzIFwo LipcKTsiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyBpbnQgdHJp cGxlZGVzX3NldDJrZXlzIFwoLipcKTsiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMg Tm9uZToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNo ICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCguKlwpOyIsIGxpbmUpCisgICAgICAg ICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCguKlwp OyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAg IGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRl c19zZXQya2V5cyBcKCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGlj IGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCgiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0g aXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwX3N0YXRlbWVudCA9IFRydWUKICAgICAgICAg ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGludCB0 cmlwbGVkZXNfc2V0M2tleXMgXCgiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChy InN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDNrZXlzIFwoIiwgbGluZSkKICAgICAgICAgICAgIGlm IG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgc2tpcF9zdGF0ZW1lbnQgPSBUcnVlCiAg ICAgICAgICAgICAgICAgY29udGludWUKQEAgLTQyMSwxMSArNTAzLDkgQEAgZm9yIGNpcGhlcl9m aWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAg ICAgZncud3JpdGUgKGxpbmUpCiAgICAgICAgIGlmIGxlbiAoY2lwaGVybmFtZXMpID4gMCBvciBs ZW4gKG1kbmFtZXMpID4gMCBvciBsZW4gKHBrbmFtZXMpID4gMDoKLSAgICAgICAgICAgIGlmIGlz Z2x1ZToKLSAgICAgICAgICAgICAgICBtb2RmaWxlcyA9ICJsaWIvbGliZ2NyeXB0LWdydWIvY2lw aGVyLyVzIGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXMiIFwKLSAgICAgICAgICAgICAgICAg ICAgJSAoY2lwaGVyX2ZpbGUsIGNpcGhlcl9maWxlLnJlcGxhY2UgKCItZ2x1ZS5jIiwgIi5jIikp Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1vZGZpbGVzID0gImxpYi9saWJn Y3J5cHQtZ3J1Yi9jaXBoZXIvJXMiICUgY2lwaGVyX2ZpbGUKKyAgICAgICAgICAgIG1vZGZpbGVz ID0gW2NpcGhlcl9maWxlXQorICAgICAgICAgICAgaWYgbW9kbmFtZSBpbiBleHRyYV9maWxlcy5r ZXlzKCk6CisgICAgICAgICAgICAgICAgbW9kZmlsZXMgKz0gZXh0cmFfZmlsZXNbbW9kbmFtZV0K ICAgICAgICAgICAgIGlmIGxlbiAoY2lwaGVybmFtZXMpID4gMCBvciBsZW4gKG1kbmFtZXMpID4g MDoKICAgICAgICAgICAgICAgICBtb2R1bGVzX3N5bV9tZC5hcHBlbmQgKG1vZG5hbWUpCiAgICAg ICAgICAgICBjaG1zZyA9ICIoR1JVQl9NT0RfSU5JVCglcykpOiBOZXcgZnVuY3Rpb25cbiIgJSBt b2RuYW1lCkBAIC00NDcsNyArNTI3LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxl czoKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlc1xuCSVzIiAlIChjaGxvZ25ldywgY2ht c2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIgIGdydWJfbWRfcmVnaXN0ZXIgKCYlcyk7 XG4iICUgbWRuYW1lKQogICAgICAgICAgICAgZm9yIHBrbmFtZSBpbiBwa25hbWVzOgotICAgICAg ICAgICAgICAgIGNobXNnID0gIlJlZ2lzdGVyIHBrICVzIiAlIG1kbmFtZQorICAgICAgICAgICAg ICAgIGNobXNnID0gIlJlZ2lzdGVyIHBrICVzIiAlIHBrbmFtZQogICAgICAgICAgICAgICAgIGNo bG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBm dy53cml0ZSAoIiAgZ3J1Yl9jcnlwdG9fcGtfJXMgPSAmJXM7XG4iCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNlICgiX2djcnlfcHVia2V5X3NwZWNfIiwgIiIpLCBw a25hbWUpKQpAQCAtNDY1LDE3ICs1NDUsMTcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9m aWxlczoKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlc1xuCSVzIiAlIChjaGxvZ25ldywg Y2htc2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIgIGdydWJfbWRfdW5yZWdpc3RlciAo JiVzKTtcbiIgJSBtZG5hbWUpCiAgICAgICAgICAgICBmb3IgcGtuYW1lIGluIHBrbmFtZXM6Ci0g ICAgICAgICAgICAgICAgY2htc2cgPSAiVW5yZWdpc3RlciBwayAlcyIgJSBtZG5hbWUKKyAgICAg ICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVyIHBrICVzIiAlIHBrbmFtZQogICAgICAgICAg ICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAg ICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9jcnlwdG9fcGtfJXMgPSAwO1xuIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAlIChwa25hbWUucmVwbGFjZSAoIl9nY3J5X3B1YmtleV9zcGVjXyIs ICIiKSkpCiAgICAgICAgICAgICBmdy53cml0ZSAoIn1cbiIpCiAgICAgICAgICAgICBjb25mLndy aXRlICgibW9kdWxlID0ge1xuIikKICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIG5hbWUgPSAl cztcbiIgJSBtb2RuYW1lKQotICAgICAgICAgICAgZm9yIHNyYyBpbiBtb2RmaWxlcy5zcGxpdCgp OgotICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9ICVzO1xuIiAlIHNyYykK KyAgICAgICAgICAgIGZvciBzcmMgaW4gbW9kZmlsZXM6CisgICAgICAgICAgICAgICAgY29uZi53 cml0ZSAoIiAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcztcbiIgJSBzcmMp CiAgICAgICAgICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1l cykgPiAwOgotICAgICAgICAgICAgICAgICAgICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0g Z3J1Yi1jb3JlLyVzO1xuIiAlIHNyYykKKyAgICAgICAgICAgICAgICAgICAgY29uZnV0aWwud3Jp dGUgKCIgIGNvbW1vbiA9IGdydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzO1xu IiAlIHNyYykKICAgICAgICAgICAgIGlmIG1vZG5hbWUgPT0gImdjcnlfZWNjIjoKICAgICAgICAg ICAgICAgICBjb25mLndyaXRlICgiICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL2Vj LmM7XG4iKQogICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNmbGFncyA9ICckKENGTEFH U19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29tcGFyZSc7XG4iKQpAQCAt NDkwLDcgKzU3MCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAg ICAgICBmdy5jbG9zZSAoKQogICAgICAgICAgICAgaWYgbmNoOgogICAgICAgICAgICAgICAgIGNo bG9nID0gIiVzJXNcbiIgJSAoY2hsb2csIGNobG9nbmV3KQotICAgICAgICBlbGlmIGlzYyBhbmQg Y2lwaGVyX2ZpbGUgIT0gImNhbWVsbGlhLmMiOgorICAgICAgICBlbGlmIGlzYyBhbmQgY2lwaGVy X2ZpbGUgbm90IGluIGV4dHJhX2ZpbGVzX2xpc3Q6CiAgICAgICAgICAgICBwcmludCAoIldBUk5J Tkc6IEMgZmlsZSBpc24ndCBhIG1vZHVsZTogJXMiICUgY2lwaGVyX2ZpbGUpCiAgICAgICAgICAg ICBmLmNsb3NlICgpCiAgICAgICAgICAgICBmdy5jbG9zZSAoKQpAQCAtNTEyLDcgKzU5Miw3IEBA IGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAic3Jj IikpKToKICAgICAgICAgICAgIG9yIHNyYyA9PSAibGliZ2NyeXB0LnZlcnMiIG9yIHNyYyA9PSAi TWFrZWZpbGUuYW0iIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAiTWFuaWZlc3QiIG9yIHNyYyA9 PSAibWlzYy5jIiBcCiAgICAgICAgICAgICBvciBzcmMgPT0gIm1pc3Npbmctc3RyaW5nLmMiIG9y IHNyYyA9PSAibW9kdWxlLmMiIFwKLSAgICAgICAgICAgIG9yIHNyYyA9PSAic2VjbWVtLmMiIG9y IHNyYyA9PSAic2V4cC5jIiBcCisgICAgICAgICAgICBvciBzcmMgPT0gInNlY21lbS5jIiBcCiAg ICAgICAgICAgICBvciBzcmMgPT0gInN0ZG1lbS5jIiBvciBzcmMgPT0gInZpc2liaWxpdHkuYyI6 CiAgICAgICAgIGNvbnRpbnVlCiAgICAgb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoYmFzZWRpciwg InNyYyIsIHNyYykKQEAgLTUzNCw4ICs2MTQsMTcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxp c3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogICAgICAgICBmdy5jbG9zZSAo KQogICAgICAgICBjb250aW51ZQogCisgICAgaWYgc3JjID09ICJjaXBoZXItcHJvdG8uaCI6Cisg ICAgICAgIGZ3LndyaXRlKCIjaW5jbHVkZSA8Z3J1Yi9jcnlwdG8uaD5cbiIpCisgICAgICAgIGZ3 LndyaXRlKCJ0eXBlZGVmIGdjcnlfc2VsZnRlc3RfZnVuY190IHNlbGZ0ZXN0X2Z1bmNfdDsiKQor ICAgICAgICBmLmNsb3NlICgpCisgICAgICAgIGZ3LmNsb3NlICgpCisgICAgICAgIGNvbnRpbnVl CisKICAgICBpZiBzcmMgPT0gImcxMGxpYi5oIjoKLSAgICAgICAgZncud3JpdGUgKGYucmVhZCAo KS5yZXBsYWNlICgiKHByaW50ZixmLGEpIiwgIihfX3ByaW50Zl9fLGYsYSkiKSkKKyAgICAgICAg Zncud3JpdGUoIiNpbmNsdWRlIDxjaXBoZXJfd3JhcC5oPlxuIikKKyAgICAgICAgZncud3JpdGUo IiNpbmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAgICAgICAgZncud3JpdGUgKGYucmVhZCAo KS5yZXBsYWNlICgiKHByaW50ZixmLGEpIiwgIihfX3ByaW50Zl9fLGYsYSkiKS5yZXBsYWNlICgi I2luY2x1ZGUgXCIuLi9jb21wYXQvbGliY29tcGF0LmhcIiIsICIiKS5yZXBsYWNlKCIjZGVmaW5l IE5fKGEpIChhKSIsICIiKSkKICAgICAgICAgZi5jbG9zZSAoKQogICAgICAgICBmdy5jbG9zZSAo KQogICAgICAgICBjb250aW51ZQpAQCAtNTQ2LDcgKzYzNSw3IEBAIGZvciBzcmMgaW4gc29ydGVk IChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAic3JjIikpKToKIAogZm9yIHNyYyBp biBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJtcGkiKSkpOgogICAg IGlmIHNyYyA9PSAiY29uZmlnLmxpbmtzIiBvciBzcmMgPT0gIkNoYW5nZUxvZy0yMDExIiBcCi0g ICAgICAgICAgICBvciBzcmMgPT0gIm1waS1zY2FuLmMiIG9yIHNyYyA9PSAiTWFuaWZlc3QiIFwK KyAgICAgICAgICAgIG9yIHNyYyA9PSAiTWFuaWZlc3QiIFwKICAgICAgICAgICAgIG9yIHNyYyA9 PSAiTWFrZWZpbGUuYW0iOgogICAgICAgICBjb250aW51ZQogICAgIGluZmlsZSA9IG9zLnBhdGgu am9pbiAoaW5kaXIsICJtcGkiLCBzcmMpCkBAIC01NjgsMTcgKzY1NywxNyBAQCBmb3Igc3JjIGlu IHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgIm1waSIpKSk6CiAgICAg ICAgICAgICBob2xkID0gRmFsc2UKICAgICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Ig c2l6ZSBhbmQgZXhjbHVkZSBhbnl0aGluZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICMgcmFu ZG9tbmVzcy4KLSAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoIihfZ2NyeV9tcGlfZ2V0X2h3 X2NvbmZpZ3xnY3J5X21waV9yYW5kb21pemUpIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAg IGlmIG5vdCByZS5tYXRjaCAoIihfZ2NyeV9tcGlfZ2V0X2h3X2NvbmZpZ3xnY3J5X21waV9yYW5k b21pemV8X2djcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAg ICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGVsc2U6 CiAgICAgICAgICAgICAgICAgZncud3JpdGUgKGhvbGRsaW5lKQotICAgICAgICBtID0gcmUubWF0 Y2ggKCIoY29uc3QgY2hhciggfClcKnx2b2lkKSAqJCIsIGxpbmUpCisgICAgICAgIG0gPSByZS5t YXRjaCAociIoY29uc3QgY2hhciggfClcKnx2b2lkKSAqJCIsIGxpbmUpCiAgICAgICAgIGlmIG5v dCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBob2xkID0gVHJ1ZQogICAgICAgICAgICAgaG9sZGxp bmUgPSBsaW5lCiAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICBtID0gcmUubWF0Y2ggKCIj aW5jbHVkZSBcIm1vZC1zb3VyY2UtaW5mb1wuaFwiIiwgbGluZSkKKyAgICAgICAgbSA9IHJlLm1h dGNoIChyIiNpbmNsdWRlIFwibW9kLXNvdXJjZS1pbmZvXC5oXCIiLCBsaW5lKQogICAgICAgICBp ZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZncud3JpdGUg KGxpbmUpCkBAIC02MTIsOSArNzAxLDYgQEAgZncud3JpdGUgKCIjaW5jbHVkZSA8Y2lwaGVyX3dy YXAuaD5cbiIpCiBjaGxvZyA9ICIlcwkqIGcxMGxpYi5oOiBMaWtld2lzZS5cbiIgJSBjaGxvZwog ZncuY2xvc2UgKCkKIAotaW5maWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX2luLCAiQ2hh bmdlTG9nIikKLW91dGZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiQ2hhbmdl TG9nIikKLQogY29uZi5jbG9zZSAoKTsKIAogaW5pdGZpbGUgPSBjb2RlY3Mub3BlbiAob3MucGF0 aC5qb2luIChjaXBoZXJfZGlyX291dCwgImluaXQuYyIpLCAidyIsICJ1dGYtOCIpCkBAIC02NDMs NyArNzI5LDcgQEAgY29uZnV0aWwud3JpdGUgKCJ9O1xuIik7CiBjb25mdXRpbC5jbG9zZSAoKTsK IAogCi1mPWNvZGVjcy5vcGVuIChpbmZpbGUsICJyIiwgInV0Zi04IikKK291dGZpbGUgPSBvcy5w YXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiQ2hhbmdlTG9nIikKIGZ3PWNvZGVjcy5vcGVuIChv dXRmaWxlLCAidyIsICJ1dGYtOCIpCiBkdCA9IGRhdGV0aW1lLmRhdGUudG9kYXkgKCkKIGZ3Lndy aXRlICgiJTA0ZC0lMDJkLSUwMmQgIEF1dG9tYXRpYyBpbXBvcnQgdG9vbFxuIiAlIFwKQEAgLTY1 Myw3ICs3MzksNCBAQCBmdy53cml0ZSAoIglJbXBvcnRlZCBjaXBoZXJzIHRvIEdSVUJcbiIpCiBm dy53cml0ZSAoIlxuIikKIGZ3LndyaXRlIChjaGxvZykKIGZ3LndyaXRlICgiXG4iKQotZm9yIGxp bmUgaW4gZjoKLSAgICBmdy53cml0ZSAobGluZSkKLWYuY2xvc2UgKCkKIGZ3LmNsb3NlICgpCmRp ZmYgLS1naXQgYS91dGlsL2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgYi91dGlsL2ltcG9ydF9nY3J5 cHRfaW50aC5zZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lYmU5Mzcx ZWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsL2ltcG9ydF9nY3J5cHRfaW50aC5zZWQKQEAgLTAs MCArMSwxNyBAQAorL14jQElOU0VSVF9TWVNfU0VMRUNUX0hALyBkCisvXkBGQUxMQkFDS19TT0NL TEVOX1RALyBkCisvXiMgKmluY2x1ZGUgPHN0ZGxpYlwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8c3Ry aW5nXC5oPi8gZAorL14jICppbmNsdWRlIDx3aW5zb2NrMlwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8 d3MydGNwaXBcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHRpbWVcLmg+LyBkCisvXiMgKmluY2x1ZGUg PHN5c1wvc29ja2V0XC5oPi8gZAorL14jICppbmNsdWRlIDxzeXNcL3RpbWVcLmg+LyBkCisvXiAg dHlwZWRlZiBsb25nIHNzaXplX3Q7LyBkCisvXiAgdHlwZWRlZiBpbnQgIHBpZF90Oy8gZAorL14j ICppbmNsdWRlIDxncGctZXJyb3JcLmg+LyBzLCNpbmNsdWRlIDxncGctZXJyb3IuaD4sI2luY2x1 ZGUgPGdydWIvZ2NyeXB0L2dwZy1lcnJvci5oPiwKKy9edHlwZWRlZiBncGdfZXJyb3JfdCBnY3J5 X2Vycm9yX3Q7LyBkCisvXnR5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgZ2NyeV9lcnJfY29kZV90Oy8g ZAorL150eXBlZGVmIHN0cnVjdCBnY3J5X21waSBcKmdjcnlfbXBpX3Q7LyBkCisvXiNlcnJvciAg Z2NyeXB0LmggYWxyZWFkeSBpbmNsdWRlZC8gZAorcApkaWZmIC0tZ2l0IGEvdXRpbC9pbXBvcnRf Z2NyeXB0aC5zZWQgYi91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZAppbmRleCBmZTZkMWEwNzIuLjUw M2I0YjU0NyAxMDA2NDQKLS0tIGEvdXRpbC9pbXBvcnRfZ2NyeXB0aC5zZWQKKysrIGIvdXRpbC9p bXBvcnRfZ2NyeXB0aC5zZWQKQEAgLTEzLDYgKzEzLDQgQEAKIC9edHlwZWRlZiBncGdfZXJyb3Jf dCBnY3J5X2Vycm9yX3Q7LyBkCiAvXnR5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgZ2NyeV9lcnJfY29k ZV90Oy8gZAogL150eXBlZGVmIHN0cnVjdCBnY3J5X21waSBcKmdjcnlfbXBpX3Q7LyBkCi0vXnN0 cnVjdCBnY3J5X3RocmVhZF9jYnMvIGQKLXMsX2djcnlfbXBpX2ludm0sZ2NyeV9tcGlfaW52bSxn CiBwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi4zOS4yCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxp c3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2dydWItZGV2ZWwK