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 CF5B4C8303C for ; Mon, 7 Jul 2025 15:24:51 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uYngy-0000JA-Gy; Mon, 07 Jul 2025 11:23:41 -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 1uYnFb-0008Gd-4e for grub-devel@gnu.org; Mon, 07 Jul 2025 10:55:23 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uYnFV-0007aP-GM for grub-devel@gnu.org; Mon, 07 Jul 2025 10:55:22 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-451d3f72391so33043585e9.3 for ; Mon, 07 Jul 2025 07:55:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751900115; x=1752504915; 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=EbHjsAZEMkR8GDA2qlRQxupNMe7kFWlbfFVJvM6cA5o=; b=deNsImNUYNb9z5YB6B29HwAA5FBPR00BR85CLIb3RknKS9Egt8Poko9VOP8iP8+Z9f 1xh0UbCNAbWAfJluadZ2qG7ZHSNay8YnhIOdV7EMEpCsB2iq4y7bDBU7/hUlzQvhT8Ld Yo9oLfW6XK4qmszBYZRzWWe7au1EKyN6lXuqD/ifTDiB3niN9pGrNOXio0Tbe5aBQXmW JVsvnak+Rlj2TLV0J4BwLHVhL7oanXGF83EA5EgHJxCDTV3Y0K8dFK0JF3/O2h8axO0F 3WtUgrY37jG48I1CzkUYHuT5B4U+w16PATAxiHuybAYLA0HjcRgKhdH6nwMNFuFxbguM tDiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751900115; x=1752504915; 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=EbHjsAZEMkR8GDA2qlRQxupNMe7kFWlbfFVJvM6cA5o=; b=kk4d0BXPxCKYWFGNR9bmXcdVK2ghEiMFpnIQA3q8o+wadxkiNJLI97VRANH0yMTwRZ eEJr78E1fNUTCO7gQ2faw92LvtxfevEBqfjEEXjdphKg7rXhnrHgLt9SZRhLE1rJZDOh IvIu2ymbxCIV0/HQjrqdluSAo603W0E5adnpooqSAgnHcGz1mL76Dhfi5auShIld5DCl ddl4GiKZKyNPq59SfL7hATxnPtC/uGtmGUFUnCILlB7PBqgeu0c9sGTW5eO79heHwgBA BkY2rKGcjclERhs/eCNQQXi3400rln9B19pUG8gx8Sg8U6X59Hy+dFMRALW+afWt2kqq wWvg== X-Gm-Message-State: AOJu0Yzetf5WD4sV6W4p0gpzzdlRqlmwLirh+8aQH3P1xW/Hp3XvpYna NnAG92y/0ejsS3fJ7xTHUS1U7IJSqMVQTzIwFe83XVmYuQbsPx2fnuL/tKVhd/UP X-Gm-Gg: ASbGncu/5w1vFwUjwWO0gkg6gL341Kih1IkqgeD9l1S8w4fYVD29LH37Nup+4RNggKS GKc5ARUVnKQexW5t+eAxDhNfS9wmelUNM3AAfLHyjQL/ZyA4eaYOMlDgaN2B2J7/2liRcrS8YDo iz949BZWIECN7VL8JhHvpv7zQmFkxAVuKqfqJxCxz9z5sLSf23kDH8K/t7BLX1qdQVzil59m9tG gNScdmsrO0ViwYOJ+3Oy9oxkKaseLAlxWCJ6n2aQuU3fXD72gcRUPUjIpyM7mBzMTkutO6TkTF+ sI5qBqgFZ1akuVp8dpveizkdRw99I4err24exGIvSmJy1ganR63ZsthWyuiosVl959u9NCeaEQp rQx9Px2NeEj1JgKD5fh6k97+BWyk1I/OhLdxe X-Google-Smtp-Source: AGHT+IHUL4xLTmWepliaWuR6rwkARMSZtJ0Tkme6oRg1LrplXL+tA+hT59tXTuMMIg/D5PQ92kNhEw== X-Received: by 2002:a05:6000:400a:b0:3a5:8d08:6239 with SMTP id ffacd0b85a97d-3b4964fed61mr10498005f8f.21.1751900114125; Mon, 07 Jul 2025 07:55:14 -0700 (PDT) Received: from localhost (92-184-98-90.mobile.fr.orangecustomers.net. [92.184.98.90]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b47030bd42sm10219670f8f.5.2025.07.07.07.55.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Jul 2025 07:55:13 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v14 04/15] Adjust import script, definitions and API users for libgcrypt 1.11 Date: Mon, 7 Jul 2025 14:52:10 +0000 Message-ID: <20250707145318.97596-5-phcoder@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250707145318.97596-1-phcoder@gmail.com> References: <20250707145318.97596-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=phcoder@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VGhpcyBwYXRjaGVzIG1vZGlmaWVzIHRoZSBHUlVCLWxpYmdjcnlwdCBBUEkgdG8gbWF0Y2ggbmV3 IGxpYmdjcnlwdCAxLjExCgpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBTZXJiaW5lbmtvIDxwaGNv ZGVyQGdtYWlsLmNvbT4KLS0tCiBhdXRvZ2VuLnNoICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDUgKwogY29uZi9NYWtlZmlsZS5jb21tb24gICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICAgICAgICAgICAg ICAgICAgfCAgMjAgKy0KIGdydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jICAgICAgICAgICAg ICAgIHwgICA2ICstCiBncnViLWNvcmUvY29tbWFuZHMvcGdwLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxMTQgKysrLS0tLS0KIGdydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jICAgICAgICAg ICAgICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2Rpc2svY3J5cHRvZGlzay5jICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBncnViLWNvcmUvaW8vZ3ppby5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9sem9waW8uYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIxICstCiBncnViLWNvcmUvbGliL2NyYzY0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjQgKy0KIGdydWItY29yZS9saWIvY3J5cHRvLmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDI0NSArKysrKysrKysrKysrKystCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzAxX21kLnBhdGNoICAgfCAxMjQgKysrKysrKysrCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1w YXRjaGVzLzA0X2FyaWEucGF0Y2ggfCAgMjIgKysKIC4uLi8wNV9kaXNhYmxlX3JzYV9zaGFrZS5w YXRjaCAgICAgICAgICAgICAgICB8ICAzNiArKysKIGdydWItY29yZS9saWIvbGliZ2NyeXB0L3Ny Yy9nY3J5cHQtaW50LmggICAgICB8ICA1MSAtLS0tCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdF93 cmFwL2NpcGhlcl93cmFwLmggICAgfCAgMjEgKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0X3dy YXAvbWVtLmMgICAgICAgICAgICB8ICA4MyArKysrKy0KIGdydWItY29yZS9saWIvcG9zaXhfd3Jh cC9zeXMvdHlwZXMuaCAgICAgICAgICB8ICAgNCArCiBncnViLWNvcmUvbGliL3h6ZW1iZWQveHpf ZGVjX3N0cmVhbS5jICAgICAgICAgfCAgMTggKy0KIGluY2x1ZGUvZ3J1Yi9jcnlwdG8uaCAgICAg ICAgICAgICAgICAgICAgICAgICB8IDI2MiArKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvZ3J1 Yi9nY3J5cHQvZ3BnLWVycm9yLmggICAgICAgICAgICAgICB8ICAgOSArCiB1dGlsL2dydWItZnN0 ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHV0aWwvaW1wb3J0X2dj cnkucHkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4NiArKysrKysrKystLS0tCiB1dGls L2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgICAgICAgICAgICAgICAgICAgfCAgMTcgKysKIHV0aWwv aW1wb3J0X2djcnlwdGguc2VkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAtCiAyNyBmaWxl cyBjaGFuZ2VkLCAxMDA0IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wNF9hcmlh LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hl cy8wNV9kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHV0aWwvaW1w b3J0X2djcnlwdF9pbnRoLnNlZAoKZGlmZiAtLWdpdCBhL2F1dG9nZW4uc2ggYi9hdXRvZ2VuLnNo CmluZGV4IGViZDYxNDc5Mi4uZmJkYjMzODc5IDEwMDc1NQotLS0gYS9hdXRvZ2VuLnNoCisrKyBi L2F1dG9nZW4uc2gKQEAgLTM1LDYgKzM1LDcgQEAgJHtQWVRIT059IHV0aWwvaW1wb3J0X3VuaWNv ZGUucHkgdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgdW5pY29kZS9CaWRpTWlycm9yaW5nLnQKIGVj aG8gIkltcG9ydGluZyBsaWJnY3J5cHQuLi4iCiAke1BZVEhPTn0gdXRpbC9pbXBvcnRfZ2NyeS5w eSBncnViLWNvcmUvbGliL2xpYmdjcnlwdC8gZ3J1Yi1jb3JlCiBzZWQgLW4gLWYgdXRpbC9pbXBv cnRfZ2NyeXB0aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LmguaW4g PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCitzZWQgLW4gLWYgdXRpbC9pbXBvcnRfZ2Ny eXB0X2ludGguc2VkIDwgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCA+ PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCiBpZiBbIC1mIGluY2x1ZGUvZ3J1Yi9nY3J5 cHQvZzEwbGliLmggXTsgdGhlbgogICAgIHJtIGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZzEwbGliLmgK IGZpCkBAIC01MSw2ICs1MiwxMCBAQCBmb3IgeCBpbiBtcGktYXNtLWRlZnMuaCBtcGloLWFkZDEu YyBtcGloLXN1YjEuYyBtcGloLW11bDEuYyBtcGloLW11bDIuYyBtcGloLW11bAogICAgIGNwIGdy dWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpL2dlbmVyaWMvIiR4IiBncnViLWNvcmUvbGli L2xpYmdjcnlwdC1ncnViL21waS8iJHgiCiBkb25lCiAKK2ZvciB4IGluIGdydWItY29yZS9saWIv bGliZ2NyeXB0LXBhdGNoZXMvKi5wYXRjaDsgZG8KKyAgICBwYXRjaCAtaSAkeCAtcDEKK2RvbmUK KwogZWNobyAiSW1wb3J0aW5nIGxpYnRhc24xLi4uIgogaWYgWyAtZCBncnViLWNvcmUvbGliL2xp YnRhc24xLWdydWIgXTsgdGhlbgogICBybSAtcmYgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1ncnVi CmRpZmYgLS1naXQgYS9jb25mL01ha2VmaWxlLmNvbW1vbiBiL2NvbmYvTWFrZWZpbGUuY29tbW9u CmluZGV4IGM2MGY1NTM4Ni4uNWNhZGE0NTY4IDEwMDY0NAotLS0gYS9jb25mL01ha2VmaWxlLmNv bW1vbgorKysgYi9jb25mL01ha2VmaWxlLmNvbW1vbgpAQCAtODEsOCArODEsOCBAQCBDUFBGTEFH U19HTlVMSUIgPSAtSSQodG9wX2J1aWxkZGlyKS9ncnViLWNvcmUvbGliL2dudWxpYiAtSSQodG9w X3NyY2RpcikvZ3J1Yi1jbwogQ0ZMQUdTX1BPU0lYID0gLWZuby1idWlsdGluCiBDUFBGTEFHU19Q T1NJWCA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAKIAotQ0ZMQUdT X0dDUlkgPSAtV25vLWVycm9yIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1y ZWR1bmRhbnQtZGVjbHMgLVduby11bmRlZiAkKENGTEFHU19QT1NJWCkKLUNQUEZMQUdTX0dDUlkg PSAtSSQodG9wX3NyY2RpcikvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcCAkKENQUEZMQUdT X1BPU0lYKSAtRF9HQ1JZUFRfSU5fTElCR0NSWVBUPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUv Z3J1Yi9nY3J5cHQKK0NGTEFHU19HQ1JZID0gLVduby1lcnJvcj1zaWduLWNvbXBhcmUgLVduby1t aXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVm ICQoQ0ZMQUdTX1BPU0lYKQorQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJH Q1JZUFQ9MSAtRF9HQ1JZUFRfQ09ORklHX0hfSU5DTFVERUQ9MSAtREhBVkVfU1RSVE9VTD0xIC1J JCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvZ2NyeXB0CiAKIENQUEZMQUdTX0VGSUVNVSA9IC1J JCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvZWZpZW11L3J1bnRpbWUKIApkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmlu ZGV4IDI0ZThjODQzNy4uMTBjMzA3ZjZjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUu Y29yZS5kZWYKKysrIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC05NzUsOCArOTc1 LDggQEAgbW9kdWxlID0gewogbW9kdWxlID0gewogICBuYW1lID0gcGdwOwogICBjb21tb24gPSBj b21tYW5kcy9wZ3AuYzsKLSAgY2ZsYWdzID0gJyQoQ0ZMQUdTX1BPU0lYKSc7Ci0gIGNwcGZsYWdz ID0gJy1JJChzcmNkaXIpL2xpYi9wb3NpeF93cmFwJzsKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dD UlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3Mg PSAnJChDUFBGTEFHU19HQ1JZKSc7CiB9OwogCiBtb2R1bGUgPSB7CkBAIC0yNTM5LDcgKzI1Mzks MjMgQEAgbW9kdWxlID0gewogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waWNv ZGVyLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1yc2hpZnQuYzsK ICAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktaW5saW5lLmM7CisgIGNvbW1v biA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1jb25zdC10aW1lLmM7CisgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpLXNjYW4uYzsKKyAgY29tbW9uID0gbGliL2xpYmdj cnlwdC1ncnViL3NyYy9jb25zdC10aW1lLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHRfd3Jh cC9tZW0uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jOworCisg IGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24t Y29tcGFyZSAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlJzsKKyAgY3BwZmxhZ3MgPSAnJChD UFBGTEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSBwdWJrZXk7CisgIGNv bW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvcHVia2V5LXV0aWwuYzsKKyAgY29tbW9u ID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxp Yi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvZHNhLWNvbW1vbi5jOworICBjb21tb24gPSBsaWIvbGli Z2NyeXB0LWdydWIvc3JjL3NleHAuYzsKKyAgY29tbW9uID0gbGliL2I2NGRlYy5jOwogCiAgIGNm bGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29t cGFyZSc7CiAgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYyBiL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMK aW5kZXggZDU2YjViMGJiLi5iNmY4ZTNkMWEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5k cy9oYXNoc3VtLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpAQCAtNzMsNyAr NzMsNyBAQCBoYXNoX2ZpbGUgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGdjcnlfbWRfc3BlY190 ICpoYXNoLCB2b2lkICpyZXN1bHQpCiAgIGlmICghcmVhZGJ1ZiB8fCAhY29udGV4dCkKICAgICBn b3RvIGZhaWw7CiAKLSAgaGFzaC0+aW5pdCAoY29udGV4dCk7CisgIGhhc2gtPmluaXQgKGNvbnRl eHQsIDApOwogICB3aGlsZSAoMSkKICAgICB7CiAgICAgICBncnViX3NzaXplX3QgcjsKZGlmZiAt LWdpdCBhL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYyBiL2dydWItY29yZS9jb21tYW5k cy9sZWdhY3ljZmcuYwppbmRleCAzYmY5ZmUyZTQuLmE3NjhmYTZlOCAxMDA2NDQKLS0tIGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdh Y3ljZmcuYwpAQCAtNjI0LDcgKzYyNCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25z dCBjaGFyICplbnRlcmVkLAogICBpZiAoIWN0eCkKICAgICByZXR1cm4gMDsKIAotICBHUlVCX01E X01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAgIEdSVUJf TURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9NRF9NRDUt PndyaXRlIChjdHgsIHB3LT5zYWx0ICsgMywgcHctPnNhbHRsZW4gLSAzKTsKICAgR1JVQl9NRF9N RDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwpAQCAtNjMyLDcgKzYzMiw3IEBA IGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICBHUlVCX01E X01ENS0+ZmluYWwgKGN0eCk7CiAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIE1E NV9IQVNITEVOKTsKIAotICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUt PmluaXQgKGN0eCwgMCk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRl cmVkbGVuKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIHB3LT5zYWx0LCBwdy0+c2FsdGxl bik7IC8qIGluY2x1ZGUgdGhlICQxJCBoZWFkZXIgKi8KICAgZm9yIChpID0gZW50ZXJlZGxlbjsg aSA+IDE2OyBpIC09IDE2KQpAQCAtNjQ4LDcgKzY0OCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9y ZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICAgIHsKICAgICAgIGdydWJfbWVtY3B5IChhbHRf cmVzdWx0LCBkaWdlc3QsIDE2KTsKIAotICAgICAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7Cisg ICAgICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgICAgIGlmICgoaSAmIDEpICE9IDAp CiAJR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICAgICAg ZWxzZQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3BncC5jCmluZGV4IDVmYWRjMzNjNC4uZTYxODg3ODYyIDEwMDY0NAotLS0gYS9ncnVi LWNvcmUvY29tbWFuZHMvcGdwLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCkBAIC0x MzYsNDEgKzEzNiwyNyBAQCBzdHJ1Y3Qgc2lnbmF0dXJlX3Y0X2hlYWRlcgogICBncnViX3VpbnQx Nl90IGhhc2hlZF9zdWI7CiB9IEdSVUJfUEFDS0VEOwogCi1jb25zdCBjaGFyICpoYXNoZXNbXSA9 IHsKLSAgWzB4MDFdID0gIm1kNSIsCi0gIFsweDAyXSA9ICJzaGExIiwKLSAgWzB4MDNdID0gInJp cGVtZDE2MCIsCi0gIFsweDA4XSA9ICJzaGEyNTYiLAotICBbMHgwOV0gPSAic2hhMzg0IiwKLSAg WzB4MGFdID0gInNoYTUxMiIsCi0gIFsweDBiXSA9ICJzaGEyMjQiCi19OwotCiBzdHJ1Y3QgZ2Ny eV9wa19zcGVjICpncnViX2NyeXB0b19wa19kc2E7CiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnVi X2NyeXB0b19wa19lY2RzYTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX3Jz YTsKIAotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90 ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGlj X3N1YmtleSAqc2spOwotc3RhdGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1 Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdy dWJfcHVibGljX3N1YmtleSAqc2spOwotCiBzdHJ1Y3QKIHsKICAgY29uc3QgY2hhciAqbmFtZTsK KyAgY29uc3QgY2hhciAqc2lnc2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXNpZzsKKyAgY29uc3Qg Y2hhciAqcHVic2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXB1YjsKICAgc3RydWN0IGdjcnlfcGtf c3BlYyAqKmFsZ287Ci0gIGludCAoKnBhZCkgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhf dCAqaHZhbCwKLQkgICAgICBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJf cHVibGljX3N1YmtleSAqc2spOworICBjb25zdCBjaGFyICpwYWRkaW5nOwogICBjb25zdCBjaGFy ICptb2R1bGU7CiB9IHBrYWxnb3NbXSA9CiAgIHsKLSAgICBbMV0gPSB7ICJyc2EiLCAxLCAyLCAm Z3J1Yl9jcnlwdG9fcGtfcnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzNdID0geyAi cnNhIiwgMSwgMiwgJmdydWJfY3J5cHRvX3BrX3JzYSwgcnNhX3BhZCwgImdjcnlfcnNhIiB9LAot ICAgIFsxN10gPSB7ICJkc2EiLCAyLCA0LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCBkc2FfcGFkLCAi Z2NyeV9kc2EiIH0sCisgICAgWzFdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSki LCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9f cGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzNdID0geyAicnNhIiwgIihzaWct dmFsIChyc2EgKHMgJU0pKSkiLCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSki LCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzE3 XSA9IHsgImRzYSIsICIoc2lnLXZhbCAoZHNhIChyICVNKSAocyAlTSkpKSIsIDIsCisJICAgICAi KHB1YmxpYy1rZXkgKGRzYSAocCAlTSkgKHEgJU0pIChnICVNKSAoeSAlTSkpKSIsCisJICAgICA0 LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCAicmF3IiwgImdjcnlfZHNhIiB9LAogICB9OwogCiBzdHJ1 Y3QgZ3J1Yl9wdWJsaWNfa2V5CkBAIC0xOTYsNyArMTgyLDcgQEAgZnJlZV9wayAoc3RydWN0IGdy dWJfcHVibGljX2tleSAqcGspCiAgICAgICBncnViX3NpemVfdCBpOwogICAgICAgZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUgKHNrLT5tcGlzKTsgaSsrKQogCWlmIChzay0+bXBpc1tpXSkKLQkg IGdjcnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKKwkgIF9nY3J5X21waV9yZWxlYXNlIChz ay0+bXBpc1tpXSk7CiAgICAgICBuc2sgPSBzay0+bmV4dDsKICAgICAgIGdydWJfZnJlZSAoc2sp OwogICAgIH0KQEAgLTMwMyw3ICsyODksNyBAQCBncnViX2xvYWRfcHVibGljX2tleSAoZ3J1Yl9m aWxlX3QgZikKIAlnb3RvIGZhaWw7CiAKICAgICAgIGdydWJfbWVtc2V0IChmaW5nZXJwcmludF9j b250ZXh0LCAwLCBHUlVCX01EX1NIQTEtPmNvbnRleHRzaXplKTsKLSAgICAgIEdSVUJfTURfU0hB MS0+aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCk7CisgICAgICBHUlVCX01EX1NIQTEtPmluaXQg KGZpbmdlcnByaW50X2NvbnRleHQsIDApOwogICAgICAgR1JVQl9NRF9TSEExLT53cml0ZSAoZmlu Z2VycHJpbnRfY29udGV4dCwgIlx4OTkiLCAxKTsKICAgICAgIGxlbl9iZSA9IGdydWJfY3B1X3Rv X2JlMTYgKGxlbik7CiAgICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250 ZXh0LCAmbGVuX2JlLCBzaXplb2YgKGxlbl9iZSkpOwpAQCAtMzM2LDcgKzMyMiw3IEBAIGdydWJf bG9hZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCiAJICBHUlVCX01EX1NIQTEtPndyaXRl IChmaW5nZXJwcmludF9jb250ZXh0LCBidWZmZXIsIGxiICsgc2l6ZW9mIChncnViX3VpbnQxNl90 KSk7CiAKLQkgIGlmIChnY3J5X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BH UCwKKwkgIGlmIChfZ2NyeV9tcGlfc2NhbiAoJnNrLT5tcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1As CiAJCQkgICAgIGJ1ZmZlciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAkgICAg ewogCSAgICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2ln bmF0dXJlIikpOwpAQCAtMzk0LDUxICszODAsNiBAQCBncnViX2NyeXB0b19wa19sb2NhdGVfc3Vi a2V5X2luX3RydXN0ZGIgKGdydWJfdWludDY0X3Qga2V5aWQpCiAgIHJldHVybiAwOwogfQogCi0K LXN0YXRpYyBpbnQKLWRzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZh bCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJr ZXkgKnNrKQotewotICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1w aXNbMV0pOwotICBncnViX2RwcmludGYgKCJjcnlwdCIsICJtdXN0IGJlICV1IGJpdHMgZ290ICVk IGJpdHNcbiIsIG5iaXRzLAotCQkoaW50KSg4ICogaGFzaC0+bWRsZW4pKTsKLSAgcmV0dXJuIGdj cnlfbXBpX3NjYW4gKGhtcGksIEdDUllNUElfRk1UX1VTRywgaHZhbCwKLQkJCW5iaXRzIC8gOCA8 ICh1bnNpZ25lZCkgaGFzaC0+bWRsZW4gPyBuYml0cyAvIDgKLQkJCTogKHVuc2lnbmVkKSBoYXNo LT5tZGxlbiwgMCk7Ci19Ci0KLXN0YXRpYyBpbnQKLXJzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGks IGdydWJfdWludDhfdCAqaHZhbCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVj dCBncnViX3B1YmxpY19zdWJrZXkgKnNrKQotewotICBncnViX3NpemVfdCB0bGVuLCBlbWxlbiwg ZmZsZW47Ci0gIGdydWJfdWludDhfdCAqZW0sICplbXB0cjsKLSAgdW5zaWduZWQgbmJpdHMgPSBn Y3J5X21waV9nZXRfbmJpdHMgKHNrLT5tcGlzWzBdKTsKLSAgaW50IHJldDsKLSAgdGxlbiA9IGhh c2gtPm1kbGVuICsgaGFzaC0+YXNubGVuOwotICBlbWxlbiA9IChuYml0cyArIDcpIC8gODsKLSAg aWYgKGVtbGVuIDwgdGxlbiArIDExKQotICAgIHJldHVybiAxOwotCi0gIGVtID0gZ3J1Yl9tYWxs b2MgKGVtbGVuKTsKLSAgaWYgKCFlbSkKLSAgICByZXR1cm4gMTsKLQotICBlbVswXSA9IDB4MDA7 Ci0gIGVtWzFdID0gMHgwMTsKLSAgZmZsZW4gPSBlbWxlbiAtIHRsZW4gLSAzOwotICBmb3IgKGVt cHRyID0gZW0gKyAyOyBlbXB0ciA8IGVtICsgMiArIGZmbGVuOyBlbXB0cisrKQotICAgICplbXB0 ciA9IDB4ZmY7Ci0gICplbXB0cisrID0gMHgwMDsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBoYXNo LT5hc25vaWQsIGhhc2gtPmFzbmxlbik7Ci0gIGVtcHRyICs9IGhhc2gtPmFzbmxlbjsKLSAgZ3J1 Yl9tZW1jcHkgKGVtcHRyLCBodmFsLCBoYXNoLT5tZGxlbik7Ci0KLSAgcmV0ID0gZ2NyeV9tcGlf c2NhbiAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBlbSwgZW1sZW4sIDApOwotICBncnViX2ZyZWUg KGVtKTsKLSAgcmV0dXJuIHJldDsKLX0KLQogc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQKIHsK ICAgZ3J1Yl9maWxlX3Qgc2lnOwpAQCAtNDgzLDE1ICs0MjQsMTIgQEAgZ3J1Yl92ZXJpZnlfc2ln bmF0dXJlX2luaXQgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVf dCBzaWcpCiAgIGlmICh0ICE9IDApCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JB RF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGlmIChoID49IEFSUkFZX1NJ WkUgKGhhc2hlcykgfHwgaGFzaGVzW2hdID09IE5VTEwpCi0gICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsICJ1bmtub3duIGhhc2giKTsKLQogICBpZiAocGsgPj0g QVJSQVlfU0laRSAocGthbGdvcykgfHwgcGthbGdvc1twa10ubmFtZSA9PSBOVUxMKQogICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCBOXygiYmFkIHNpZ25hdHVy ZSIpKTsKIAotICBjdHh0LT5oYXNoID0gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGhh c2hlc1toXSk7CisgIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAo aCk7CiAgIGlmICghY3R4dC0+aGFzaCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJf QkFEX1NJR05BVFVSRSwgImhhc2ggYCVzJyBub3QgbG9hZGVkIiwgaGFzaGVzW2hdKTsKKyAgICBy ZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhhc2ggYCVkJyBub3Qg bG9hZGVkIiwgaCk7CiAKICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCkBA IC00OTksNyArNDM3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVjdCBncnVi X3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICghY3R4dC0+aGFz aF9jb250ZXh0KQogICAgIHJldHVybiBncnViX2Vycm5vOwogCi0gIGN0eHQtPmhhc2gtPmluaXQg KGN0eHQtPmhhc2hfY29udGV4dCk7CisgIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29u dGV4dCwgMCk7CiAgIGN0eHQtPnNpZyA9IHNpZzsKIAogICByZXR1cm4gR1JVQl9FUlJfTk9ORTsK QEAgLTUyOCw3ICs0NjYsNiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdy dWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgIGdydWJfdWludDE2X3QgdW5oYXNoZWRfc3ViOwog ICBncnViX3NzaXplX3QgcjsKICAgZ3J1Yl91aW50OF90IGhhc2hfc3RhcnRbMl07Ci0gIGdjcnlf bXBpX3QgaG1waTsKICAgZ3J1Yl91aW50NjRfdCBrZXlpZCA9IDA7CiAgIHN0cnVjdCBncnViX3B1 YmxpY19zdWJrZXkgKnNrOwogCkBAIC02MjAsNyArNTU3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0 dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ3J1Yl9t ZW1jcHkgKHJlYWRidWYsICZsLCBzaXplb2YgKGwpKTsKICAgICAgIGdydWJfZHByaW50ZiAoImNy eXB0IiwgImFsaXZlXG4iKTsKIAotICAgICAgaWYgKGdjcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBH Q1JZTVBJX0ZNVF9QR1AsCisgICAgICBpZiAoX2djcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZ TVBJX0ZNVF9QR1AsCiAJCQkgcmVhZGJ1ZiwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAw KSkKIAlnb3RvIGZhaWw7CiAgICAgICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7 CkBAIC02MzgsOCArNTc1LDYgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBn cnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICBp ZiAocGthbGdvc1twa10ucGFkICgmaG1waSwgaHZhbCwgY3R4dC0+aGFzaCwgc2spKQotICAgIGdv dG8gZmFpbDsKICAgaWYgKCEqcGthbGdvc1twa10uYWxnbykKICAgICB7CiAgICAgICBncnViX2Rs X2xvYWQgKHBrYWxnb3NbcGtdLm1vZHVsZSk7CkBAIC02NTIsNyArNTg3LDI0IEBAIGdydWJfdmVy aWZ5X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKIAkJ ICBwa2FsZ29zW3BrXS5tb2R1bGUpOwogICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgaWYgKCgq cGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoMCwgaG1waSwgbXBpcywgc2stPm1waXMsIDAsIDAp KQorCisgIGdjcnlfc2V4cF90IGhzZXhwLCBwdWJrZXksIHNpZzsKKyAgZ3J1Yl9zaXplX3QgZXJy b2Y7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmaHNleHAsICZlcnJvZiwgIihkYXRhIChmbGFn cyAlcykgKGhhc2ggJXMgJWIpKSIsIHBrYWxnb3NbcGtdLnBhZGRpbmcsIGN0eHQtPmhhc2gtPm5h bWUsIGN0eHQtPmhhc2gtPm1kbGVuLCBodmFsKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2dj cnlfc2V4cF9idWlsZCgmcHVia2V5LCAmZXJyb2YsIHBrYWxnb3NbcGtdLnB1YnNleHAsIHNrLT5t cGlzWzBdLCBzay0+bXBpc1sxXSwgc2stPm1waXNbMl0sIHNrLT5tcGlzWzNdKSkKKyAgICBnb3Rv IGZhaWw7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmc2lnLCAmZXJyb2YsIHBrYWxnb3NbcGtd LnNpZ3NleHAsIG1waXNbMF0sIG1waXNbMV0pKQorICAgIGdvdG8gZmFpbDsKKworICBfZ2NyeV9z ZXhwX2R1bXAoc2lnKTsKKyAgX2djcnlfc2V4cF9kdW1wKGhzZXhwKTsKKyAgX2djcnlfc2V4cF9k dW1wKHB1YmtleSk7CisKKyAgaWYgKCgqcGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoc2lnLCBo c2V4cCwgcHVia2V5KSkKICAgICBnb3RvIGZhaWw7CiAKICAgZ3J1Yl9mcmVlIChyZWFkYnVmKTsK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3hudV91dWlkLmMKaW5kZXggYWU0YjNhNDE1Li4xNDA2YzQzZjUgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy94 bnVfdXVpZC5jCkBAIC02OCw3ICs2OCw3IEBAIGdydWJfY21kX3hudV91dWlkIChncnViX2NvbW1h bmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICBjdHggPSBncnViX3phbGxvYyAo R1JVQl9NRF9NRDUtPmNvbnRleHRzaXplKTsKICAgaWYgKCFjdHgpCiAgICAgcmV0dXJuIGdydWJf ZXJybm87Ci0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAo Y3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGhhc2hfcHJlZml4LCBzaXplb2Yg KGhhc2hfcHJlZml4KSk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCAmc2VyaWFsLCBzaXpl b2YgKHNlcmlhbCkpOwogICBHUlVCX01EX01ENS0+ZmluYWwgKGN0eCk7CmRpZmYgLS1naXQgYS9n cnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMK aW5kZXggNzA2NWJjZGNiLi45YWY2NjVkZjMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2Ny eXB0b2Rpc2suYworKysgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKQEAgLTMwMiw3ICsz MDIsNyBAQCBncnViX2NyeXB0b2Rpc2tfZW5kZWNyeXB0IChzdHJ1Y3QgZ3J1Yl9jcnlwdG9kaXNr ICpkZXYsCiAJICAgICAgcmV0dXJuIEdQR19FUlJfT1VUX09GX01FTU9SWTsKIAogCSAgICB0bXAg PSBncnViX2NwdV90b19sZTY0IChzZWN0b3IgPDwgbG9nX3NlY3Rvcl9zaXplKTsKLQkgICAgZGV2 LT5pdl9oYXNoLT5pbml0IChjdHgpOworCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCwgMCk7 CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgZGV2LT5pdl9wcmVmaXgsIGRldi0+aXZf cHJlZml4X2xlbik7CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgJnRtcCwgc2l6ZW9m ICh0bXApKTsKIAkgICAgZGV2LT5pdl9oYXNoLT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9pby9nemlvLmMgYi9ncnViLWNvcmUvaW8vZ3ppby5jCmluZGV4IGNiN2ViMWZlMy4u ZmE5ZDk0MmIyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vZ3ppby5jCisrKyBiL2dydWItY29y ZS9pby9nemlvLmMKQEAgLTEyMDEsNyArMTIwMSw3IEBAIGluaXRpYWxpemVfdGFibGVzIChncnVi X2d6aW9fdCBnemlvKQogICBnemlvLT50ZCA9IE5VTEw7CiAKICAgaWYgKGd6aW8tPmhjb250ZXh0 KQotICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0KTsKKyAgICBnemlvLT5oZGVz Yy0+aW5pdChnemlvLT5oY29udGV4dCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jIGIvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jCmluZGV4IGE3ZDQ0MjU0My4uY2Vh OTQyMzA4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMKKysrIGIvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdGVzdF9oZWFkZXIgKGdydWJfZmlsZV90 IGZpbGUpCiAgICAgaWYgKCEgY29udGV4dCkKICAgICAgIHJldHVybiAwOwogCi0gICAgaGNoZWNr LT5pbml0KGNvbnRleHQpOworICAgIGhjaGVjay0+aW5pdChjb250ZXh0LCAwKTsKIAogICAgIC8q IE1BR0lDIGlzIG5vdCBpbmNsdWRlZCBpbiBjaGVjayBjYWxjdWxhdGlvbi4gICovCiAgICAgaGNo ZWNrLT53cml0ZShjb250ZXh0LCAmaGVhZGVyLmx6b3BfdmVyc2lvbiwgc2l6ZW9mKGhlYWRlcikt IExaT1BfTUFHSUNfU0laRSk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYyBi L2dydWItY29yZS9saWIvYWRsZXIzMi5jCmluZGV4IDQzYjY4YWY2Mi4uZjg0OWNjZWU2IDEwMDY0 NAotLS0gYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYworKysgYi9ncnViLWNvcmUvbGliL2FkbGVy MzIuYwpAQCAtMjksMTAgKzI5LDEyIEBAIHN0cnVjdCBhZGxlcjMyX2NvbnRleHQKIH07CiAKIHN0 YXRpYyB2b2lkCi1hZGxlcjMyX2luaXQgKHZvaWQgKmNvbnRleHQpCithZGxlcjMyX2luaXQgKHZv aWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgc3RydWN0IGFkbGVyMzJfY29u dGV4dCAqY3R4ID0gY29udGV4dDsKIAorICAodm9pZCkgZmxhZ3M7CisKICAgY3R4LT5hID0gMTsK ICAgY3R4LT5iID0gMDsKIH0KQEAgLTgxLDEzICs4MywyMiBAQCBhZGxlcjMyX3JlYWQgKHZvaWQg KmNvbnRleHQpCiAKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCBzcGVjX2FkbGVyMzIgPQogICB7Ci0g ICAgIkFETEVSMzIiLCAwLCAwLCAwLCA0LAotICAgIGFkbGVyMzJfaW5pdCwgYWRsZXIzMl93cml0 ZSwgYWRsZXIzMl9maW5hbCwgYWRsZXIzMl9yZWFkLAotICAgIHNpemVvZiAoc3RydWN0IGFkbGVy MzJfY29udGV4dCksCisgICAgLmFsZ28gPSBHQ1JZX01EX0FETEVSMzIsCisgICAgLmZsYWdzID0g ey5kaXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAgLm5hbWUgPSAiQURMRVIzMiIsCisgICAg LmFzbm9pZCA9IE5VTEwsCisgICAgLmFzbmxlbiA9IDAsCisgICAgLm9pZHMgPSBOVUxMLAorICAg IC5tZGxlbiA9IDQsCisgICAgLmluaXQgPSBhZGxlcjMyX2luaXQsCisgICAgLndyaXRlID0gYWRs ZXIzMl93cml0ZSwKKyAgICAuZmluYWwgPSBhZGxlcjMyX2ZpbmFsLAorICAgIC5yZWFkID0gYWRs ZXIzMl9yZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29u dGV4dCksCisgICAgLmJsb2Nrc2l6ZSA9IDY0LAogI2lmZGVmIEdSVUJfVVRJTAogICAgIC5tb2Ru YW1lID0gImFkbGVyMzIiLAogI2VuZGlmCi0gICAgLmJsb2Nrc2l6ZSA9IDY0CiAgIH07CiAKIApk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5j CmluZGV4IDQ5NjBmM2Y4OS4uYzIzMWZhOTdjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2Ny YzY0LmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCkBAIC02MSw4ICs2MSwxMCBAQCBpbml0 X2NyYzY0X3RhYmxlICh2b2lkKQogfQogCiBzdGF0aWMgdm9pZAotY3JjNjRfaW5pdCAodm9pZCAq Y29udGV4dCkKK2NyYzY0X2luaXQgKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykK IHsKKyAgKHZvaWQpIGZsYWdzOworCiAgIGlmICghIGNyYzY0X3RhYmxlWzFdKQogICAgIGluaXRf Y3JjNjRfdGFibGUgKCk7CiAgICooZ3J1Yl91aW50NjRfdCAqKSBjb250ZXh0ID0gMDsKQEAgLTk3 LDEwICs5OSwyMiBAQCBjcmM2NF9maW5hbCAodm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fICgo dW51c2VkKSkpCiAKIGdjcnlfbWRfc3BlY190IF9nY3J5X2RpZ2VzdF9zcGVjX2NyYzY0ID0KICAg ewotICAgICJDUkM2NCIsIDAsIDAsIDAsIDgsCi0gICAgY3JjNjRfaW5pdCwgY3JjNjRfd3JpdGUs IGNyYzY0X2ZpbmFsLCBjcmM2NF9yZWFkLAotICAgIHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCi0g ICAgLmJsb2Nrc2l6ZSA9IDY0CisgICAgLmFsZ28gPSBHQ1JZX01EX0NSQzY0LAorICAgIC5mbGFn cyA9IHsuZGlzYWJsZWQgPSAwLCAuZmlwcyA9IDB9LAorICAgIC5uYW1lID0gIkNSQzY0IiwKKyAg ICAuYXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisg ICAgLm1kbGVuID0gOCwKKyAgICAuaW5pdCA9IGNyYzY0X2luaXQsCisgICAgLndyaXRlID0gY3Jj NjRfd3JpdGUsCisgICAgLmZpbmFsID0gY3JjNjRfZmluYWwsCisgICAgLnJlYWQgPSBjcmM2NF9y ZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCisgICAgLmJs b2Nrc2l6ZSA9IDY0LAorI2lmZGVmIEdSVUJfVVRJTAorICAgIC5tb2RuYW1lID0gImNyYzY0IiwK KyNlbmRpZgogICB9OwogCiBHUlVCX01PRF9JTklUKGNyYzY0KQpkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9jcnlwdG8uYyBiL2dydWItY29yZS9saWIvY3J5cHRvLmMKaW5kZXggMzk2Zjc2NDEw Li5kZDYwZGQ0YWMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3J5cHRvLmMKKysrIGIvZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYwpAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9jcnlwdG9f aG1hY19oYW5kbGUKIHN0YXRpYyBnY3J5X2NpcGhlcl9zcGVjX3QgKmdydWJfY2lwaGVycyA9IE5V TEw7CiBzdGF0aWMgZ2NyeV9tZF9zcGVjX3QgKmdydWJfZGlnZXN0cyA9IE5VTEw7CiAKK2ludCBf Z2NyeV9ub19maXBzX21vZGVfcmVxdWlyZWQgPSAxOworCiB2b2lkICgqZ3J1Yl9jcnlwdG9fYXV0 b2xvYWRfaG9vaykgKGNvbnN0IGNoYXIgKm5hbWUpID0gTlVMTDsKIAogLyogQmFzZWQgb24gbGli Z2NyeXB0LTEuNC40L3NyYy9taXNjLmMuICAqLwpAQCAtNTYsNiArNTgsMTcgQEAgX2djcnlfYnVy bl9zdGFjayAoaW50IHNpemUpCiAgIGdydWJfYnVybl9zdGFjayAoc2l6ZSk7CiB9CiAKK3ZvaWQK K19fZ2NyeV9idXJuX3N0YWNrICh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKyAgZ3J1Yl9idXJuX3N0 YWNrIChzaXplKTsKK30KKwordm9pZAorX19nY3J5X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpCit7 Cit9CisKIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSkKIF9nY3J5X2Fzc2VydF9mYWls ZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCQkgICAg IGNvbnN0IGNoYXIgKmZ1bmMpCkBAIC02NCw2ICs3NywxMiBAQCBfZ2NyeV9hc3NlcnRfZmFpbGVk IChjb25zdCBjaGFyICpleHByLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgZ3J1Yl9m YXRhbCAoImFzc2VydGlvbiAlcyBhdCAlczolZCAoJXMpIGZhaWxlZFxuIiwgZXhwciwgZmlsZSwg bGluZSwgZnVuYyk7CiB9CiAKK3ZvaWQKK19nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50 IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKQoreworICAgIGdydWJfZmF0YWwgKCIuLi4gdGhpcyBp cyBhIGJ1ZyAoJXM6JWQ6JXMpXG4iLCBmaWxlLCBsaW5lLCBmdW5jKTsKK30KKwogCiB2b2lkIF9n Y3J5X2xvZ19lcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CkBAIC04Myw2ICsxMDIsMzYg QEAgdm9pZCBfZ2NyeV9sb2dfZXJyb3IgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0K IAordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xp c3QgYXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQgKCJkZWJ1ZyIpOwor CisgIGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1 ZywgImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkKKyAgICB7CisgICAg ICBncnViX3ByaW50ZiAoImdjcnlwdCBpbmZvOiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBm bXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdz KTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKK3ZvaWQKK19nY3J5X2Zhc3Rf d2lwZW1lbW9yeTIgKHZvaWQgKnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBn cnViX21lbXNldChwdHIsIHNldCwgbGVuKTsKK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVt b3J5ICh2b2lkICpwdHIsIGdydWJfc2l6ZV90IGxlbikKK3sKKyAgZ3J1Yl9tZW1zZXQocHRyLCAw LCBsZW4pOworfQorCiB2b2lkCiBncnViX2NpcGhlcl9yZWdpc3RlciAoZ2NyeV9jaXBoZXJfc3Bl Y190ICpjaXBoZXIpCiB7CkBAIC0xMjksNyArMTc4LDcgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29u c3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAKICAg aWYgKGhhc2gtPmNvbnRleHRzaXplID4gc2l6ZW9mIChjdHgpKQogICAgIGdydWJfZmF0YWwgKCJU b28gbGFyZ2UgbWQgY29udGV4dCIpOwotICBoYXNoLT5pbml0ICgmY3R4KTsKKyAgaGFzaC0+aW5p dCAoJmN0eCwgMCk7CiAgIGhhc2gtPndyaXRlICgmY3R4LCBpbiwgaW5sZW4pOwogICBoYXNoLT5m aW5hbCAoJmN0eCk7CiAgIGdydWJfbWVtY3B5IChvdXQsIGhhc2gtPnJlYWQgKCZjdHgpLCBoYXNo LT5tZGxlbik7CkBAIC0xNTMsNiArMjAyLDkxIEBAIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9u YW1lIChjb25zdCBjaGFyICpuYW1lKQogICAgIH0KIH0KIAorY29uc3QgZ2NyeV9tZF9zcGVjX3Qg KgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZCAoY29uc3QgY2hhciAqb2lkKQoreworICBj b25zdCBnY3J5X21kX3NwZWNfdCAqbWQ7CisKKyAgaWYgKCFvaWQpCisgICAgcmV0dXJuIE5VTEw7 CisKKyAgaWYgKGdydWJfc3RybmNtcCAob2lkLCAib2lkLiIsIDQpID09IDAgfHwgZ3J1Yl9zdHJu Y21wIChvaWQsICJPSUQuIiwgNCkgPT0gMCkKKyAgICBvaWQgKz0gNDsKKworCisgIGZvciAobWQg PSBncnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorICAgIHsKKyAgICAgIGNvbnN0IGdj cnlfbWRfb2lkX3NwZWNfdCAqb2lkX3NwZWNzID0gbWQtPm9pZHM7CisgICAgICBpZiAob2lkX3Nw ZWNzKQorICAgICAgICB7CisgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IG9pZF9zcGVjc1tqXS5v aWRzdHJpbmc7IGorKykKKyAgICAgICAgICAgIGlmIChncnViX3N0cmNhc2VjbXAgKG9pZCwgb2lk X3NwZWNzW2pdLm9pZHN0cmluZykgPT0gMCkKKyAgICAgICAgICAgICAgcmV0dXJuIG1kOworICAg ICAgICB9CisgICAgfQorCisgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAq bWRfYWxnb3NbXSA9IHsKKyAgICBbMV0gPSAiTUQ1IiwKKyAgICBbMl0gPSAiU0hBMSIsCisgICAg WzNdID0gIlJJUEVNRDE2MCIsCisgICAgWzZdID0gIlRJR0VSIiwKKyAgICBbOF0gPSAiU0hBMjU2 IiwKKyAgICBbOV0gPSAiU0hBMzg0IiwKKyAgICBbMTBdID0gIlNIQTUxMiIsCisgICAgWzExXSA9 ICJTSEEyMjQiLAorCisgICAgWzMwMV0gPSAiTUQ0IiwKKyAgICBbMzAyXSA9ICJDUkMzMiIsCisg ICAgWzMwM10gPSAiQ1JDMzJSRkMxNTEwIiwKKyAgICBbMzA0XSA9ICJDUkMyNFJGQzI0NDAiLAor ICAgIFszMDVdID0gIldISVJMUE9PTCIsCisgICAgWzMwNl0gPSAiVElHRVIxIiwKKyAgICBbMzA3 XSA9ICJUSUdFUjIiLAorICAgIFszMDhdID0gIkdPU1RSMzQxMV85NCIsCisgICAgWzMwOV0gPSAi U1RSSUJPRzI1NiIsCisgICAgWzMxMF0gPSAiU1RSSUJPRzUxMiIsCisgICAgWzMxMV0gPSAiR09T VFIzNDExX0NQIiwKKyAgICBbMzEyXSA9ICJTSEEzLTIyNCIsCisgICAgWzMxM10gPSAiU0hBMy0y NTYiLAorICAgIFszMTRdID0gIlNIQTMtMzg0IiwKKyAgICBbMzE1XSA9ICJTSEEzLTUxMiIsCisg ICAgWzMxNl0gPSAiU0hBS0UxMjgiLAorICAgIFszMTddID0gIlNIQUtFMjU2IiwKKyAgICBbMzE4 XSA9ICJCTEFLRTJCXzUxMiIsCisgICAgWzMxOV0gPSAiQkxBS0UyQl8zODQiLAorICAgIFszMjBd ID0gIkJMQUtFMkJfMjU2IiwKKyAgICBbMzIxXSA9ICJCTEFLRTJCXzE2MCIsCisgICAgWzMyMl0g PSAiQkxBS0UyU18yNTYiLAorICAgIFszMjNdID0gIkJMQUtFMlNfMjI0IiwKKyAgICBbMzI0XSA9 ICJCTEFLRTJTXzE2MCIsCisgICAgWzMyNV0gPSAiQkxBS0UyU18xMjgiLAorICAgIFszMjZdID0g IlNNMyIsCisgICAgWzMyN10gPSAiU0hBNTEyXzI1NiIsCisgICAgWzMyOF0gPSAiU0hBNTEyXzIy NCIsCit9OworCisKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9t ZF9ieV9hbGdvIChpbnQgYWxnbykKK3sKKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKm1kOworICBp bnQgZmlyc3QgPSAxOworICB3aGlsZSAoMSkKKyAgICB7CisgICAgICBmb3IgKG1kID0gZ3J1Yl9k aWdlc3RzOyBtZDsgbWQgPSBtZC0+bmV4dCkKKwlpZiAoYWxnbyA9PSBtZC0+YWxnbykKKwkgIHJl dHVybiBtZDsKKyAgICAgIGlmIChncnViX2NyeXB0b19hdXRvbG9hZF9ob29rICYmIGZpcnN0ICYm IGFsZ28gPiAwICYmIGFsZ28gPCAoaW50KUFSUkFZX1NJWkUobWRfYWxnb3MpICYmIG1kX2FsZ29z W2FsZ29dKSB7CisJZ3J1Yl9jcnlwdG9fYXV0b2xvYWRfaG9vayAobWRfYWxnb3NbYWxnb10pOwor ICAgICAgfSBlbHNlCisJcmV0dXJuIE5VTEw7CisgICAgICBmaXJzdCA9IDA7CisgICAgfQorfQor CiBjb25zdCBnY3J5X2NpcGhlcl9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX2NpcGhlcl9i eV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMTk2LDcgKzMzMCw5IEBAIGdydWJfY3J5 cHRvX2NpcGhlcl9zZXRfa2V5IChncnViX2NyeXB0b19jaXBoZXJfaGFuZGxlX3QgY2lwaGVyLAog CQkJICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKIAkJCSAgICB1bnNpZ25lZCBrZXlsZW4p CiB7Ci0gIHJldHVybiBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBr ZXlsZW4pOworICAvKiBUT0RPOiBGaXggdGhpcy4gSXQncyB1Z2x5IGFzIGhlbGwuICAqLworICB2 b2lkICpidWxrX29wc1sxMDBdOworICByZXR1cm4gY2lwaGVyLT5jaXBoZXItPnNldGtleSAoY2lw aGVyLT5jdHgsIGtleSwga2V5bGVuLCAodm9pZCAqKSBidWxrX29wcyk7CiB9CiAKIGdjcnlfZXJy X2NvZGVfdApAQCAtMzQzLDcgKzQ3OSw3IEBAIGdydWJfY3J5cHRvX2htYWNfaW5pdCAoY29uc3Qg c3RydWN0IGdjcnlfbWRfc3BlYyAqbWQsCiAgIGdydWJfZnJlZSAoaGVscGtleSk7CiAgIGhlbHBr ZXkgPSBOVUxMOwogCi0gIG1kLT5pbml0IChjdHgpOworICBtZC0+aW5pdCAoY3R4LCAwKTsKIAog ICBtZC0+d3JpdGUgKGN0eCwgaXBhZCwgbWQtPmJsb2Nrc2l6ZSk7IC8qIGlubmVyIHBhZCAqLwog ICBncnViX21lbXNldCAoaXBhZCwgMCwgbWQtPmJsb2Nrc2l6ZSk7CkBAIC0zOTAsNyArNTI2LDcg QEAgZ3J1Yl9jcnlwdG9faG1hY19maW5pIChzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUg KmhuZCwgdm9pZCAqb3V0KQogICBobmQtPm1kLT5yZWFkIChobmQtPmN0eCk7CiAgIHAgPSBobmQt Pm1kLT5yZWFkIChobmQtPmN0eCk7CiAKLSAgaG5kLT5tZC0+aW5pdCAoY3R4Mik7CisgIGhuZC0+ bWQtPmluaXQgKGN0eDIsIDApOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgaG5kLT5vcGFkLCBo bmQtPm1kLT5ibG9ja3NpemUpOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgcCwgaG5kLT5tZC0+ bWRsZW4pOwogICBobmQtPm1kLT5maW5hbCAoY3R4Mik7CkBAIC00MzMsMTkgKzU2OSwxMDYgQEAg Z3J1Yl9jcnlwdG9fZ2NyeV9lcnJvciAoZ2NyeV9lcnJfY29kZV90IGluKQogICByZXR1cm4gR1JV Ql9BQ0NFU1NfREVOSUVEOwogfQogCisKKy8qCisgKiBDb21wYXJlIGJ5dGUgYXJyYXlzIG9mIGxl bmd0aCBMRU4sIHJldHVybiAxIGlmIGl0J3Mgbm90IHNhbWUsCisgKiAwLCBvdGhlcndpc2UuCisg Ki8KIGludAotZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi LCBncnViX3NpemVfdCBuKQorZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICpiMSwgY29u c3Qgdm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbikKIHsKLSAgcmVnaXN0ZXIgZ3J1Yl9zaXplX3Qg Y291bnRlciA9IDA7Ci0gIGNvbnN0IGdydWJfdWludDhfdCAqcGEsICpwYjsKKyAgY29uc3QgZ3J1 Yl91aW50OF90ICphID0gYjE7CisgIGNvbnN0IGdydWJfdWludDhfdCAqYiA9IGIyOworICBpbnQg YWIsIGJhOworICBncnViX3NpemVfdCBpOwogCi0gIGZvciAocGEgPSBhLCBwYiA9IGI7IG47IHBh KyssIHBiKyssIG4tLSkKKyAgLyogQ29uc3RhbnQtdGltZSBjb21wYXJlLiAqLworICBmb3IgKGkg PSAwLCBhYiA9IDAsIGJhID0gMDsgaSA8IGxlbjsgaSsrKQogICAgIHsKLSAgICAgIGlmICgqcGEg IT0gKnBiKQotCWNvdW50ZXIrKzsKKyAgICAgIC8qIElmIGFbaV0gIT0gYltpXSwgZWl0aGVyIGFi IG9yIGJhIHdpbGwgYmUgbmVnYXRpdmUuICovCisgICAgICBhYiB8PSBhW2ldIC0gYltpXTsKKyAg ICAgIGJhIHw9IGJbaV0gLSBhW2ldOwogICAgIH0KIAotICByZXR1cm4gISFjb3VudGVyOworICAv KiAnYWIgfCBiYScgaXMgbmVnYXRpdmUgd2hlbiBidWZmZXJzIGFyZSBub3QgZXF1YWwsIGV4dHJh Y3Qgc2lnbiBiaXQuICAqLworICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpKGFiIHwgYmEpID4+IChz aXplb2YodW5zaWduZWQgaW50KSAqIDggLSAxKSkgJiAxOworfQorCisKK3ZvaWQgKgorX2djcnlf bWFsbG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4p OworfQorCit2b2lkICoKK19nY3J5X21hbGxvYyAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJu IGdydWJfbWFsbG9jKG4pOworfQorCit2b2lkICoKK19nY3J5X3htYWxsb2MoZ3J1Yl9zaXplX3Qg bikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkK KyAgICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0Owor fQorCit2b2lkICoKK19nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pCit7CisgIHZv aWQgKnJldCA9IGdydWJfbWFsbG9jKG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeG1hbGxvY19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisK K3ZvaWQgX2djcnlfZnJlZSAodm9pZCAqcCkKK3sKKyAgZ3J1Yl9mcmVlIChwKTsKK30KKwordm9p ZCAqCitfZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAq cmV0ID0gZ3J1Yl9yZWFsbG9jKGEsIG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeHJlYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQg KgorX2djcnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSkKK3sKKyAgdm9p ZCAqcmV0ID0gZ3J1Yl9jYWxsb2MobiwgbSk7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnVi X2ZhdGFsKCJfZ2NyeV94Y2FsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lk ICoKK19nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQor eworICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQor ICAgIGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2Nfc2VjdXJlIGZhaWxlZCIpOworICByZXR1cm4g cmV0OworfQorCisKK2ludAorX2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lkICphKQoreworICAo dm9pZCkgYTsKKworICByZXR1cm4gMDsKK30KKwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAo dm9pZCkKK3sKKyAgZ3J1Yl9mYXRhbCgiZ2NyeXB0IGRpdmlzaW9uIGJ5IHplcm8iKTsKIH0KIAog I2lmbmRlZiBHUlVCX1VUSUwKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBh dGNoZXMvMDFfbWQucGF0Y2ggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21k LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNjU2OTU0NjhlCi0t LSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5w YXRjaApAQCAtMCwwICsxLDEyNCBAQAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1 Yi9jaXBoZXIvbWQuYworKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIv bWQuYworQEAgLTIwLDExICsyMCwyNSBAQAorICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisgICovCisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgor KyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGVy cm5vLmg+CisgCisgCisgI2luY2x1ZGUgImcxMGxpYi5oIgorICNpbmNsdWRlICJjaXBoZXIuaCIK KyAKKysjZGVmaW5lIF9nY3J5X21kX3NlbGZ0ZXN0KGEsYixjKSAwCisrdHlwZWRlZiBzdHJ1Y3Qg Z2NyeV9tZF9saXN0CisreworKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKnNwZWM7CisrICBzdHJ1 Y3QgZ2NyeV9tZF9saXN0ICpuZXh0OworKyAgc2l6ZV90IGFjdHVhbF9zdHJ1Y3Rfc2l6ZTsgICAg IC8qIEFsbG9jYXRlZCBzaXplIG9mIHRoaXMgc3RydWN0dXJlLiAqLworKyAgUFJPUEVSTFlfQUxJ R05FRF9UWVBFIGNvbnRleHRbMV07CisrfSBHY3J5RGlnZXN0RW50cnk7CisrCisgCisgLyogVGhp cyBpcyB0aGUgbGlzdCBvZiB0aGUgZGlnZXN0IGltcGxlbWVudGF0aW9ucyBpbmNsdWRlZCBpbgor ICAgIGxpYmdjcnlwdC4gICovCitAQCAtNTMsNyArNjcsNiBAQAorIHN0YXRpYyB2b2lkIG1kX2Ns b3NlIChnY3J5X21kX2hkX3QgYSk7Cisgc3RhdGljIHZvaWQgbWRfd3JpdGUgKGdjcnlfbWRfaGRf dCBhLCBjb25zdCB2b2lkICppbmJ1Ziwgc2l6ZV90IGlubGVuKTsKKyBzdGF0aWMgYnl0ZSAqbWRf cmVhZCggZ2NyeV9tZF9oZF90IGEsIGludCBhbGdvICk7Cistc3RhdGljIGludCBtZF9nZXRfYWxn byggZ2NyeV9tZF9oZF90IGEgKTsKKyBzdGF0aWMgaW50IG1kX2RpZ2VzdF9sZW5ndGgoIGludCBh bGdvICk7Cisgc3RhdGljIHZvaWQgbWRfc3RhcnRfZGVidWcgKCBnY3J5X21kX2hkX3QgYSwgY29u c3QgY2hhciAqc3VmZml4ICk7Cisgc3RhdGljIHZvaWQgbWRfc3RvcF9kZWJ1ZyAoIGdjcnlfbWRf aGRfdCBhICk7CitAQCAtMTg2LDkgKzE5OSw2IEBACisgCisgICBpZiAoISBlcnIpCisgICAgIHsK Ky0gICAgICAvKiBIbW1tLCBzaG91bGQgd2UgcmVhbGx5IGRvIHRoYXQ/IC0geWVzIFstd2tdICov CistICAgICAgX2djcnlfZmFzdF9yYW5kb21fcG9sbCAoKTsKKy0KKyAgICAgICBpZiAoYWxnbykK KyAJeworIAkgIGVyciA9IG1kX2VuYWJsZSAoaGQsIGFsZ28pOworQEAgLTQzNywxNCArNDQ3LDYg QEAKKyB7CisgICBHY3J5RGlnZXN0RW50cnkgKnI7CisgCistICBpZiAoYS0+Y3R4LT5kZWJ1ZykK Ky0gICAgeworLSAgICAgIGlmIChhLT5idWZwb3MgJiYgZndyaXRlIChhLT5idWYsIGEtPmJ1ZnBv cywgMSwgYS0+Y3R4LT5kZWJ1ZykgIT0gMSkKKy0JQlVHKCk7CistICAgICAgaWYgKGlubGVuICYm IGZ3cml0ZSAoaW5idWYsIGlubGVuLCAxLCBhLT5jdHgtPmRlYnVnKSAhPSAxKQorLQlCVUcoKTsK Ky0gICAgfQorLQorICAgZm9yIChyID0gYS0+Y3R4LT5saXN0OyByOyByID0gci0+bmV4dCkKKyAg ICAgeworICAgICAgIGlmIChhLT5idWZwb3MpCitAQCAtNjk1LDYgKzY5Nyw3IEBACisgICAgICAg cmV0dXJuOworICAgICB9CisgCisrI2lmIDAKKyAgIGlmIChzcGVjLT5oYXNoX2J1ZmZlcnMgIT0g TlVMTCkKKyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTcxMSw2ICs3MTQs NyBAQAorICAgICAgIHNwZWMtPmhhc2hfYnVmZmVycyAoZGlnZXN0LCBzcGVjLT5tZGxlbiwgJmlv diwgMSk7CisgICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgeworICAgICAgIC8qIEZvciB0 aGUgb3RoZXJzIHdlIGRvIG5vdCBoYXZlIGEgZmFzdCBmdW5jdGlvbiwgc28gd2UgdXNlIHRoZQor ICAgICAgICAgIG5vcm1hbCBmdW5jdGlvbnMuICovCitAQCAtODkzLDQzICs4OTcsMTUgQEAKKyBz dGF0aWMgdm9pZAorIG1kX3N0YXJ0X2RlYnVnICggZ2NyeV9tZF9oZF90IG1kLCBjb25zdCBjaGFy ICpzdWZmaXggKQorIHsKKy0gIHN0YXRpYyBpbnQgaWR4PTA7CistICBjaGFyIGJ1Zls1MF07Cist CistICBpZiAoZmlwc19tb2RlICgpKQorLSAgICByZXR1cm47CistCistICBpZiAoIG1kLT5jdHgt PmRlYnVnICkKKy0gICAgeworLSAgICAgIGxvZ19kZWJ1ZygiT29wczogbWQgZGVidWcgYWxyZWFk eSBzdGFydGVkXG4iKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0gIGlkeCsrOworLSAgc25w cmludGYgKGJ1ZiwgRElNKGJ1ZiktMSwgImRiZ21kLSUwNWQuJS4xMHMiLCBpZHgsIHN1ZmZpeCAp OworLSAgbWQtPmN0eC0+ZGVidWcgPSBmb3BlbihidWYsICJ3Iik7CistICBpZiAoICFtZC0+Y3R4 LT5kZWJ1ZyApCistICAgIGxvZ19kZWJ1ZygibWQgZGVidWc6IGNhbid0IG9wZW4gJXNcbiIsIGJ1 ZiApOworKyAgKHZvaWQpIG1kOworKyAgKHZvaWQpIHN1ZmZpeDsKKyB9CisgCisgCisgc3RhdGlj IHZvaWQKKyBtZF9zdG9wX2RlYnVnKCBnY3J5X21kX2hkX3QgbWQgKQorIHsKKy0gIGlmICggbWQt PmN0eC0+ZGVidWcgKQorLSAgICB7CistICAgICAgaWYgKCBtZC0+YnVmcG9zICkKKy0gICAgICAg IG1kX3dyaXRlICggbWQsIE5VTEwsIDAgKTsKKy0gICAgICBmY2xvc2UgKG1kLT5jdHgtPmRlYnVn KTsKKy0gICAgICBtZC0+Y3R4LT5kZWJ1ZyA9IE5VTEw7CistICAgIH0KKy0KKy0gIHsgIC8qIGEg a2x1ZGdlIHRvIHB1bGwgaW4gdGhlIF9fbXVsZGkzIGZvciBTb2xhcmlzICovCistICAgIHZvbGF0 aWxlIHUzMiBhID0gKHUzMikodWludHB0cl90KW1kOworLSAgICB2b2xhdGlsZSB1NjQgYiA9IDQy OworLSAgICB2b2xhdGlsZSB1NjQgYzsKKy0gICAgYyA9IGEgKiBiOworLSAgICAodm9pZCljOwor LSAgfQorKyAgKHZvaWQpIG1kOworIH0KKyAKKyAKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIv bGliZ2NyeXB0LXBhdGNoZXMvMDRfYXJpYS5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLmIyZjZlODg0ZgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApAQCAtMCwwICsxLDIyIEBACitkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHQvY2lwaGVyL2FyaWEuYyBiL2dydWItY29yZS9saWIvbGliZ2Ny eXB0L2NpcGhlci9hcmlhLmMKK2luZGV4IGJjMmQ0Mzg0MS4uY2ZjNWE3NGYyIDEwMDY0NAorLS0t IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvYXJpYS5jCisrKysgYi9ncnVi LWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9hcmlhLmMKK0BAIC0xMDEzLDcgKzEwMTMs NyBAQCBhcmlhX2NyeXB0KEFSSUFfY29udGV4dCAqY3R4LCBieXRlICpvdXQsIGNvbnN0IGJ5dGUg KmluLAorICAgcmV0dXJuIDQgKiBzaXplb2Yodm9pZCAqKSArIDQgKiBzaXplb2YodTMyKTsgLyog c3RhY2sgYnVybiBkZXB0aCAqLworIH0KKyAKKy11bnNpZ25lZCBpbnQKKytzdGF0aWMgdW5zaWdu ZWQgaW50CisgYXJpYV9lbmNyeXB0KHZvaWQgKmMsIGJ5dGUgKm91dGJ1ZiwgY29uc3QgYnl0ZSAq aW5idWYpCisgeworICAgQVJJQV9jb250ZXh0ICpjdHggPSAoQVJJQV9jb250ZXh0ICopYzsKK0BA IC0xMDIzLDcgKzEwMjMsNyBAQCBhcmlhX2VuY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVmLCBj b25zdCBieXRlICppbmJ1ZikKKyAgIHJldHVybiBhcmlhX2NyeXB0IChjdHgsIG91dGJ1ZiwgaW5i dWYsIGN0eC0+ZW5jX2tleSk7CisgfQorIAorLXVuc2lnbmVkIGludAorK3N0YXRpYyB1bnNpZ25l ZCBpbnQKKyBhcmlhX2RlY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVmLCBjb25zdCBieXRlICpp bmJ1ZikKKyB7CisgICBBUklBX2NvbnRleHQgKmN0eCA9IChBUklBX2NvbnRleHQgKiljOwpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wNV9kaXNhYmxlX3JzYV9z aGFrZS5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDVfZGlzYWJsZV9y c2Ffc2hha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41Y2Vi OTIzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzA1X2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK2RpZmYgLS1naXQg YS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9jaXBoZXIvcnNhLWNvbW1vbi5jIGIvZ3J1Yi1jb3Jl L2xpYi9saWJnY3J5cHQvY2lwaGVyL3JzYS1jb21tb24uYworaW5kZXggMTkyMGVlZGQ4Li5jNDgx OTIwOGIgMTAwNjQ0CistLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9y c2EtY29tbW9uLmMKKysrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL3Jz YS1jb21tb24uYworQEAgLTkxMiw2ICs5MTIsNyBAQCBfZ2NyeV9yc2FfcHNzX2VuY29kZSAoZ2Ny eV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywgaW50IGFsZ28sCisgICBtZW1j cHkgKHAsIHNhbHQsIHNhbHRsZW4pOworIAorICAgLyogU3RlcCA5OiBkYm1hc2sgPSBNR0YoSCwg ZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisgICBpZiAoYWxnbyA9PSBHQ1JZX01EX1NI QUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1NikKKyAgICAgeworICAgICAgIGdjcnlf YnVmZmVyX3QgaW92OworQEAgLTkyNSw2ICs5MjYsNyBAQCBfZ2NyeV9yc2FfcHNzX2VuY29kZSAo Z2NyeV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywgaW50IGFsZ28sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEpOworICAgICB9CisgICBl bHNlCisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBobGVuIC0gMSwgaCwgaGxl biwgYWxnbyk7CisgCisgICAvKiBTdGVwIDEwOiBtYXNrZWREQiA9IERCIF4gZGJNYXNrICovCitA QCAtMTA4Niw2ICsxMDg4LDcgQEAgX2djcnlfcnNhX3Bzc192ZXJpZnkgKGdjcnlfbXBpX3QgdmFs dWUsIGludCBoYXNoZWRfYWxyZWFkeSwKKyAgICAgfQorIAorICAgLyogU3RlcCA3OiBkYm1hc2sg PSBNR0YoSCwgZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisgICBpZiAoYWxnbyA9PSBH Q1JZX01EX1NIQUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1NikKKyAgICAgeworICAg ICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTEwOTksNiArMTEwMiw3IEBAIF9nY3J5X3JzYV9w c3NfdmVyaWZ5IChnY3J5X21waV90IHZhbHVlLCBpbnQgaGFzaGVkX2FscmVhZHksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEpOworICAgICB9CisgICBlbHNl CisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBobGVuIC0gMSwgaCwgaGxlbiwg YWxnbyk7CisgCisgICAvKiBTdGVwIDg6IG1hc2tlZERCID0gREIgXiBkYk1hc2suICAqLwpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCBiL2dydWIt Y29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50LmgKaW5kZXggMWI0NDkyODE4Li43MDEw ODE2ODAgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50 LmgKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaApAQCAtMjk3 LDU3ICsyOTcsNiBAQCB2b2lkIF9nY3J5X3NldF9sb2dfaGFuZGxlciAoZ2NyeV9oYW5kbGVyX2xv Z190IGYsIHZvaWQgKm9wYXF1ZSk7CiB2b2lkIF9nY3J5X3NldF9nZXR0ZXh0X2hhbmRsZXIgKGNv bnN0IGNoYXIgKigqZikoY29uc3QgY2hhciopKTsKIHZvaWQgX2djcnlfc2V0X3Byb2dyZXNzX2hh bmRsZXIgKGdjcnlfaGFuZGxlcl9wcm9ncmVzc190IGNiLCB2b2lkICpjYl9kYXRhKTsKIAotDAot LyogUmV0dXJuIGEgcG9pbnRlciB0byBhIHN0cmluZyBjb250YWluaW5nIGEgZGVzY3JpcHRpb24g b2YgdGhlIGVycm9yCi0gICBjb2RlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGlj IGlubGluZSBjb25zdCBjaGFyICoKLV9nY3J5X3N0cmVycm9yIChnY3J5X2Vycm9yX3QgZXJyKQot ewotICByZXR1cm4gZ3BnX3N0cmVycm9yIChlcnIpOwotfQotCi0vKiBSZXR1cm4gYSBwb2ludGVy IHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAgIHNv dXJjZSBpbiB0aGUgZXJyb3IgdmFsdWUgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hh ciAqCi1fZ2NyeV9zdHJzb3VyY2UgKGdjcnlfZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdf c3Ryc291cmNlIChlcnIpOwotfQotCi0vKiBSZXRyaWV2ZSB0aGUgZXJyb3IgY29kZSBmb3IgdGhl IHN5c3RlbSBlcnJvciBFUlIuICBUaGlzIHJldHVybnMKLSAgIEdQR19FUlJfVU5LTk9XTl9FUlJO TyBpZiB0aGUgc3lzdGVtIGVycm9yIGlzIG5vdCBtYXBwZWQgKHJlcG9ydAotICAgdGhpcykuICAq Lwotc3RhdGljIGlubGluZSBnY3J5X2Vycl9jb2RlX3QKLV9nY3J5X2Vycl9jb2RlX2Zyb21fZXJy bm8gKGludCBlcnIpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoZXJyKTsK LX0KLQotLyogUmV0cmlldmUgdGhlIHN5c3RlbSBlcnJvciBmb3IgdGhlIGVycm9yIGNvZGUgQ09E RS4gIFRoaXMgcmV0dXJucyAwCi0gICBpZiBDT0RFIGlzIG5vdCBhIHN5c3RlbSBlcnJvciBjb2Rl LiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50Ci1fZ2NyeV9lcnJfY29kZV90b19lcnJubyAoZ2NyeV9l cnJfY29kZV90IGNvZGUpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfdG9fZXJybm8gKGNvZGUp OwotfQotCi0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgZXJyb3Igc291cmNlIFNP VVJDRSBhbmQgdGhlIHN5c3RlbQotICAgZXJyb3IgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgZ2Ny eV9lcnJvcl90Ci1fZ2NyeV9lcnJfbWFrZV9mcm9tX2Vycm5vIChncGdfZXJyX3NvdXJjZV90IHNv dXJjZSwgaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfbWFrZV9mcm9tX2Vycm5vIChzb3Vy Y2UsIGVycik7Ci19Ci0KLQotLyogUmV0dXJuIGFuIGVycm9yIHZhbHVlIHdpdGggdGhlIHN5c3Rl bSBlcnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5X2Vycm9y X2Zyb21fZXJybm8gKGludCBlcnIpCi17Ci0gIHJldHVybiBncGdfZXJyb3IgKGdwZ19lcnJfY29k ZV9mcm9tX2Vycm5vIChlcnIpKTsKLX0KLQotCiAMCiBncGdfZXJyX2NvZGVfdCBfZ2NyeV9zZXhw X25ldyAoZ2NyeV9zZXhwX3QgKnJldHNleHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLApkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oCmluZGV4IDQyODM1NDkzZC4uMzBiYTY5ODFiIDEwMDY0 NAotLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKKysrIGIv Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oCkBAIC0xOSw2ICsxOSw4 IEBACiAjaWZuZGVmIEdSVUJfR0NSWV9XUkFQX0hFQURFUgogI2RlZmluZSBHUlVCX0dDUllfV1JB UF9IRUFERVIgMQogCisjZGVmaW5lIFVTRV9TSEE1MTIgMQorCiAjaW5jbHVkZSA8Z3J1Yi90eXBl cy5oPgogI2luY2x1ZGUgPGdydWIvbW0uaD4KICNpbmNsdWRlIDxncnViL21pc2MuaD4KQEAgLTM1 LDEwICszNywxMiBAQAogI3VuZGVmIF9fR05VX0xJQlJBUllfXwogI2RlZmluZSBfX0dOVV9MSUJS QVJZX18gMQogCisjdW5kZWYgSEFWRV9VNjQKKyN1bmRlZiBVNjRfQworI2RlZmluZSBIQVZFX1U2 NCAxCisjZGVmaW5lIFVJTlQ2NF9DKGMpIChjICMjIFVMTCkKICNkZWZpbmUgVTY0X0MoYykgKGMg IyMgVUxMKQogCi0jZGVmaW5lIFBVQktFWV9GTEFHX05PX0JMSU5ESU5HICAgICgxIDw8IDApCi0K ICNkZWZpbmUgQ0lQSEVSX0lORk9fTk9fV0VBS19LRVkgICAgMQogCiAjZGVmaW5lIEhBVkVfVTY0 X1RZUEVERUYgMQpAQCAtNzQsNCArNzgsMTcgQEAgX2djcnlfZmlwc19tb2RlICh2b2lkKQogCiAj ZGVmaW5lIGdjcnlfbXBpX21vZCBfZ2NyeV9tcGlfbW9kCiAKKyNkZWZpbmUgc3RydG9sIGdydWJf c3RydG9sCisjZGVmaW5lIHN0cnRvdWwgZ3J1Yl9zdHJ0b3VsCisjZGVmaW5lIGF0b2kobnB0cikg KHN0cnRvbCgobnB0ciksIE5VTEwsIDEwKSkKKworI2RlZmluZSBzdHBjcHkgZ3J1Yl9zdHBjcHkK KworI2RlZmluZSBzcGVjX2Zyb21fYWxnbyBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbwor CitzdHJ1Y3QgZ2NyeV9jc2hha2VfY3VzdG9taXphdGlvbjsKKworZ3BnX2Vycl9jb2RlX3QKK19n Y3J5X2NzaGFrZV9jdXN0b21pemUgKHZvaWQgKmNvbnRleHQsIHN0cnVjdCBnY3J5X2NzaGFrZV9j dXN0b21pemF0aW9uICpwKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xp YmdjcnlwdF93cmFwL21lbS5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYwpp bmRleCA3NGM2ZWFmZTUuLmU5NDdkYzk5OCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHRfd3JhcC9tZW0uYworKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5j CkBAIC00Niw2ICs0NiwxNSBAQCBnY3J5X3hjYWxsb2MgKHNpemVfdCBuLCBzaXplX3QgbSkKICAg cmV0dXJuIHJldDsKIH0KIAordm9pZCAqCitfZ2NyeV9jYWxsb2MgKHNpemVfdCBuLCBzaXplX3Qg bSkKK3sKKyAgc2l6ZV90IHN6OworICBpZiAoZ3J1Yl9tdWwgKG4sIG0sICZzeikpCisgICAgcmV0 dXJuIE5VTEw7CisgIHJldHVybiBncnViX3phbGxvYyAoc3opOworfQorCiB2b2lkICoKIGdjcnlf eG1hbGxvY19zZWN1cmUgKHNpemVfdCBuKQogewpAQCAtNjksNiArNzgsMTUgQEAgZ2NyeV94Y2Fs bG9jX3NlY3VyZSAoc2l6ZV90IG4sIHNpemVfdCBtKQogICByZXR1cm4gcmV0OwogfQogCit2b2lk ICoKK19nY3J5X2NhbGxvY19zZWN1cmUgKHNpemVfdCBuLCBzaXplX3QgbSkKK3sKKyAgc2l6ZV90 IHN6OworICBpZiAoZ3J1Yl9tdWwgKG4sIG0sICZzeikpCisgICAgcmV0dXJuIE5VTEw7CisgIHJl dHVybiBncnViX3phbGxvYyAoc3opOworfQorCiB2b2lkICoKIGdjcnlfeG1hbGxvYyAoc2l6ZV90 IG4pCiB7CkBAIC04OSwxMCArMTA3LDEwIEBAIGdjcnlfeHJlYWxsb2MgKHZvaWQgKmEsIHNpemVf dCBuKQogICByZXR1cm4gcmV0OwogfQogCi12b2lkCi1fZ2NyeV9jaGVja19oZWFwIChjb25zdCB2 b2lkICphIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKK3ZvaWQgKgorX2djcnlfcmVhbGxvYyAo dm9pZCAqYSwgc2l6ZV90IG4pCiB7Ci0KKyAgcmV0dXJuIGdydWJfcmVhbGxvYyAoYSwgbik7CiB9 CiAKIHZvaWQgX2djcnlfbG9nX3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCkBAIC0xMTMs NiArMTMxLDI0IEBAIHZvaWQgX2djcnlfbG9nX3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4p CiAgICAgfQogfQogCit2b2lkIF9nY3J5X2xvZ19kZWJ1ZyAoY29uc3QgY2hhciAqZm10LCAuLi4p Cit7CisgIHZhX2xpc3QgYXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQg KCJkZWJ1ZyIpOworCisgIGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9z dHJ3b3JkIChkZWJ1ZywgImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkK KyAgICB7CisgICAgICBncnViX3ByaW50ZiAoImdjcnlwdDogIik7CisgICAgICB2YV9zdGFydCAo YXJncywgZm10KTsKKyAgICAgIGdydWJfdnByaW50ZiAoZm10LCBhcmdzKTsKKyAgICAgIHZhX2Vu ZCAoYXJncyk7CisgICAgICBncnViX3JlZnJlc2ggKCk7CisgICAgfQorfQorCiB2b2lkIF9nY3J5 X2xvZ19idWcgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogICB2YV9saXN0IGFyZ3M7CkBAIC0x MjYsOSArMTYyLDkgQEAgdm9pZCBfZ2NyeV9sb2dfYnVnIChjb25zdCBjaGFyICpmbXQsIC4uLikK IH0KIAogZ2NyeV9lcnJfY29kZV90Ci1ncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCkKK2dw Z19lcnJfY29kZV9mcm9tX2Vycm5vIChpbnQgZXJyKQogewotICBzd2l0Y2ggKGdydWJfZXJybm8p CisgIHN3aXRjaCAoZXJyKQogICAgIHsKICAgICBjYXNlIEdSVUJfRVJSX05PTkU6CiAgICAgICBy ZXR1cm4gR1BHX0VSUl9OT19FUlJPUjsKQEAgLTEzOCwzICsxNzQsNDAgQEAgZ3BnX2Vycm9yX2Zy b21fc3lzZXJyb3IgKHZvaWQpCiAgICAgICByZXR1cm4gR1BHX0VSUl9HRU5FUkFMOwogICAgIH0K IH0KKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCkKK3sK KyAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vKGdydWJfZXJybm8pOworfQorCitnY3J5 X2Vycl9jb2RlX3QKK2dwZ19lcnJfY29kZV9mcm9tX3N5c2Vycm9yICh2b2lkKQoreworICByZXR1 cm4gZ3BnX2Vycm9yX2Zyb21fc3lzZXJyb3IgKCk7Cit9CisKK3ZvaWQgX2djcnlfZmF0YWxfZXJy b3IoaW50IHJjLCBjb25zdCBjaGFyICp0ZXh0ICkKK3sKKyAgZ3J1Yl9mYXRhbCgiZ2NyeSBmYXRh bCAlZDogJXMiLCByYywgdGV4dCk7Cit9CisKKwordm9pZCBfZ2NyeV9yYW5kb21pemUgKHZvaWQg KmJ1ZmZlciBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgc2l6ZV90IGxlbmd0aCBfX2F0dHJpYnV0 ZV9fKCh1bnVzZWQpKSwKKyAgICAgICAgICAgICAgICAgICAgICBlbnVtIGdjcnlfcmFuZG9tX2xl dmVsIGxldmVsIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQoreworICBncnViX2ZhdGFsKCJBdHRl bXB0IHRvIGdldCBzZWN1cmUgcmFuZG9tIG51bWJlcnMiKTsKK30KKworCit2b2lkICpfZ2NyeV9y YW5kb21fYnl0ZXNfc2VjdXJlIChzaXplX3QgbmJ5dGVzIF9fYXR0cmlidXRlX18oKHVudXNlZCkp LCBlbnVtIGdjcnlfcmFuZG9tX2xldmVsIGxldmVsIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQor eworICBncnViX2ZhdGFsKCJBdHRlbXB0IHRvIGdldCBzZWN1cmUgcmFuZG9tIG51bWJlcnMiKTsK K30KKworY29uc3QgY2hhciAqZ3BnX3N0cmVycm9yIChncGdfZXJyb3JfdCBlcnIpCit7CisgIHN0 YXRpYyBjaGFyIGJ1ZlsyNTZdOworICBncnViX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZikgLSA1 LCAiZ3BnIGVycm9yICVkXG4iLCBlcnIpOworICByZXR1cm4gYnVmOworfQpkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2xpYi9wb3NpeF93cmFwL3N5cy90eXBlcy5oIGIvZ3J1Yi1jb3JlL2xpYi9wb3Np eF93cmFwL3N5cy90eXBlcy5oCmluZGV4IDJmM2U4NjU0OS4uNzM3NzVjOWNhIDEwMDY0NAotLS0g YS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKKysrIGIvZ3J1Yi1jb3JlL2xp Yi9wb3NpeF93cmFwL3N5cy90eXBlcy5oCkBAIC0zOSwxMiArMzksMTYgQEAgdHlwZWRlZiBncnVi X2ludDMyX3QgaW50MzJfdDsKIHR5cGVkZWYgZ3J1Yl9pbnQ2NF90IGludDY0X3Q7CiAKICNkZWZp bmUgSEFWRV9VNjRfVFlQRURFRiAxCisjZGVmaW5lIEhBVkVfVFlQRV9VNjQgMQogdHlwZWRlZiBn cnViX3VpbnQ2NF90IHU2NDsKICNkZWZpbmUgSEFWRV9VMzJfVFlQRURFRiAxCisjZGVmaW5lIEhB VkVfVFlQRV9VMzIgMQogdHlwZWRlZiBncnViX3VpbnQzMl90IHUzMjsKICNkZWZpbmUgSEFWRV9V MTZfVFlQRURFRiAxCisjZGVmaW5lIEhBVkVfVFlQRV9VMTYgMQogdHlwZWRlZiBncnViX3VpbnQx Nl90IHUxNjsKICNkZWZpbmUgSEFWRV9CWVRFX1RZUEVERUYgMQorI2RlZmluZSBIQVZFX1RZUEVf QllURSAxCiB0eXBlZGVmIGdydWJfdWludDhfdCBieXRlOwogCiB0eXBlZGVmIGdydWJfYWRkcl90 IHVpbnRwdHJfdDsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3Ry ZWFtLmMgYi9ncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jCmluZGV4IDgzMmQ4 YWY5YS4uZjJkZDQyZGMyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVj X3N0cmVhbS5jCisrKyBiL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKQEAg LTQyNSw5ICs0MjUsOSBAQCBzdGF0aWMgZW51bSB4el9yZXQgaGFzaF92YWxpZGF0ZShzdHJ1Y3Qg eHpfZGVjICpzLCBzdHJ1Y3QgeHpfYnVmICpiLAogCiAjaWZuZGVmIEdSVUJfRU1CRURfREVDT01Q UkVTU09SCiAJaWYgKHMtPmhhc2gpCi0JCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsK KwkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQsIDApOwogCWlmIChzLT5jcmMzMikKLQkJ cy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4dCk7CisJCXMtPmNyYzMyLT5pbml0KHMtPmNy YzMyX2NvbnRleHQsIDApOwogI2VuZGlmCiAJcy0+aGF2ZV9oYXNoX3ZhbHVlID0gMDsKIAlzLT5w b3MgPSAwOwpAQCAtNDkzLDcgKzQ5Myw3IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBkZWNfc3RyZWFt X2hlYWRlcihzdHJ1Y3QgeHpfZGVjICpzKQogCQlzLT5jcmMzMl9jb250ZXh0ID0ga21hbGxvYyhz LT5jcmMzMi0+Y29udGV4dHNpemUsIEdGUF9LRVJORUwpOwogCQlpZiAocy0+Y3JjMzJfY29udGV4 dCA9PSBOVUxMKQogCQkJcmV0dXJuIFhaX01FTUxJTUlUX0VSUk9SOwotCQlzLT5jcmMzMi0+aW5p dChzLT5jcmMzMl9jb250ZXh0KTsKKwkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4dCwg MCk7CiAJfQogI2VuZGlmCiAKQEAgLTUzMSw5ICs1MzEsOSBAQCBzdGF0aWMgZW51bSB4el9yZXQg ZGVjX3N0cmVhbV9oZWFkZXIoc3RydWN0IHh6X2RlYyAqcykKIAkJCQlyZXR1cm4gWFpfTUVNTElN SVRfRVJST1I7CiAJCQl9CiAKLQkJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsKLQkJ CXMtPmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQpOwotIAkJCXMtPmhhc2gt PmluaXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQpOworCQkJcy0+aGFzaC0+aW5pdChzLT5o YXNoX2NvbnRleHQsIDApOworCQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29u dGV4dCwgMCk7CisgCQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCwg MCk7CiAJCX0KICNlbmRpZgogCX0KQEAgLTEwMTQsOSArMTAxNCw5IEBAIHZvaWQgeHpfZGVjX3Jl c2V0KHN0cnVjdCB4el9kZWMgKnMpCiAjaWZuZGVmIEdSVUJfRU1CRURfREVDT01QUkVTU09SCiAJ aWYgKHMtPmhhc2gpCiAJewotCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7Ci0JCXMt Pmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQpOwotCQlzLT5oYXNoLT5pbml0 KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0KTsKKwkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2Nv bnRleHQsIDApOworCQlzLT5oYXNoLT5pbml0KHMtPmluZGV4Lmhhc2guaGFzaF9jb250ZXh0LCAw KTsKKwkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCwgMCk7CiAJfQog I2VuZGlmCiAJcy0+aGF2ZV9oYXNoX3ZhbHVlID0gMDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1 Yi9jcnlwdG8uaCBiL2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaAppbmRleCAzMWM4N2MzMDIuLjI1YjEx ODg5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2NyeXB0by5oCisrKyBiL2luY2x1ZGUvZ3J1 Yi9jcnlwdG8uaApAQCAtNjUsNyArNjUsMzIgQEAgdHlwZWRlZiBlbnVtCiAgICAgR1BHX0VSUl9X Uk9OR19QVUJLRVlfQUxHTywKICAgICBHUEdfRVJSX09VVF9PRl9NRU1PUlksCiAgICAgR1BHX0VS Ul9UT09fTEFSR0UsCi0gICAgR1BHX0VSUl9FTk9NRU0KKyAgICBHUEdfRVJSX0VOT01FTSwKKyAg ICBHUEdfRVJSX0NIRUNLU1VNLAorICAgIEdQR19FUlJfSU5WX0xFTkdUSCwKKyAgICBHUEdfRVJS X1ZBTFVFX05PVF9GT1VORCwKKyAgICBHUEdfRVJSX0VSQU5HRSwKKyAgICBHUEdfRVJSX0lOVl9E QVRBLAorICAgIEdQR19FUlJfRU5DT0RJTkdfUFJPQkxFTSwKKyAgICBHUEdfRVJSX0JVRkZFUl9U T09fU0hPUlQsCisgICAgR1BHX0VSUl9TWU5UQVgsCisgICAgR1BHX0VSUl9TRVhQX0lOVl9MRU5f U1BFQywKKyAgICBHUEdfRVJSX1NFWFBfVU5NQVRDSEVEX0RILAorICAgIEdQR19FUlJfU0VYUF9V Tk1BVENIRURfUEFSRU4sCisgICAgR1BHX0VSUl9TRVhQX1pFUk9fUFJFRklYLAorICAgIEdQR19F UlJfU0VYUF9ORVNURURfREgsCisgICAgR1BHX0VSUl9TRVhQX1VORVhQRUNURURfUFVOQywKKyAg ICBHUEdfRVJSX1NFWFBfQkFEX0NIQVJBQ1RFUiwKKyAgICBHUEdfRVJSX1NFWFBfTk9UX0NBTk9O SUNBTCwKKyAgICBHUEdfRVJSX1NFWFBfU1RSSU5HX1RPT19MT05HLAorICAgIEdQR19FUlJfU0VY UF9CQURfUVVPVEFUSU9OLAorICAgIEdQR19FUlJfU0VYUF9PRERfSEVYX05VTUJFUlMsCisgICAg R1BHX0VSUl9TRVhQX0JBRF9IRVhfQ0hBUiwKKyAgICBHUEdfRVJSX0xJTUlUX1JFQUNIRUQsCisg ICAgR1BHX0VSUl9FT0YsCisgICAgR1BHX0VSUl9CQURfREFUQSwKKyAgICBHUEdfRVJSX0VJTlZB TCwKKyAgICBHUEdfRVJSX0lOVl9TVEFURSwKICAgfSBncGdfZXJyX2NvZGVfdDsKIHR5cGVkZWYg Z3BnX2Vycl9jb2RlX3QgZ3BnX2Vycm9yX3Q7CiB0eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJy b3JfdDsKQEAgLTg0LDM3ICsxMDksNjAgQEAgZW51bSBnY3J5X2NpcGhlcl9tb2RlcwogICB9Owog I2VuZGlmCiAKKy8qIEV4dHJhIGFsZ28gSURzIG5vdCBjb21pbmcgZnJvbSBnY3J5cHQuICAqLwor I2RlZmluZSBHQ1JZX01EX0FETEVSMzIgMTAzMDEKKyNkZWZpbmUgR0NSWV9NRF9DUkM2NCAxMDMw MgorCiAvKiBEb24ndCByZWx5IG9uIHRoaXMuIENoZWNrISAgKi8KICNkZWZpbmUgR1JVQl9DUllQ VE9fTUFYX01ETEVOIDY0CiAjZGVmaW5lIEdSVUJfQ1JZUFRPX01BWF9DSVBIRVJfQkxPQ0tTSVpF IDE2CiAjZGVmaW5lIEdSVUJfQ1JZUFRPX01BWF9NRF9DT05URVhUX1NJWkUgMjU2CiAKIC8qIFR5 cGUgZm9yIHRoZSBjaXBoZXJfc2V0a2V5IGZ1bmN0aW9uLiAgKi8KK3N0cnVjdCBjaXBoZXJfYnVs a19vcHM7CisKIHR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9jaXBoZXJfc2V0a2V5X3Qp ICh2b2lkICpjLAogCQkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLQkJCQkJCSB1bnNp Z25lZCBrZXlsZW4pOworCQkJCQkJIHVuc2lnbmVkIGtleWxlbiwKKwkJCQkJCSBzdHJ1Y3QgY2lw aGVyX2J1bGtfb3BzICpidWxrX29wcyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfZW5jcnlw dCBmdW5jdGlvbi4gICovCi10eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhlcl9lbmNyeXB0X3QpICh2 b2lkICpjLAotCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCi0JCQkJICAgICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmKTsKK3R5cGVkZWYgdW5zaWduZWQgaW50ICgqZ2NyeV9j aXBoZXJfZW5jcnlwdF90KSAodm9pZCAqYywKKwkJCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91 dGJ1ZiwKKwkJCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmKTsKIAogLyogVHlw ZSBmb3IgdGhlIGNpcGhlcl9kZWNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdj cnlfY2lwaGVyX2RlY3J5cHRfdCkgKHZvaWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIg Km91dGJ1ZiwKLQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRl ZiB1bnNpZ25lZCBpbnQgKCpnY3J5X2NpcGhlcl9kZWNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkg ICAgICAgdW5zaWduZWQgY2hhciAqb3V0YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQg Y2hhciAqaW5idWYpOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX3N0ZW5jcnlwdCBmdW5jdGlv bi4gICovCiB0eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhlcl9zdGVuY3J5cHRfdCkgKHZvaWQgKmMs CiAJCQkJCSB1bnNpZ25lZCBjaGFyICpvdXRidWYsCiAJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFy ICppbmJ1ZiwKLQkJCQkJIHVuc2lnbmVkIGludCBuKTsKKwkJCQkJIGdydWJfc2l6ZV90IG4pOwog CiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX3N0ZGVjcnlwdCBmdW5jdGlvbi4gICovCiB0eXBlZGVm IHZvaWQgKCpnY3J5X2NpcGhlcl9zdGRlY3J5cHRfdCkgKHZvaWQgKmMsCiAJCQkJCSB1bnNpZ25l ZCBjaGFyICpvdXRidWYsCiAJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1ZiwKLQkJCQkJ IHVuc2lnbmVkIGludCBuKTsKKwkJCQkJIGdydWJfc2l6ZV90IG4pOworCit0eXBlZGVmIHZvaWQg KCpzZWxmdGVzdF9yZXBvcnRfZnVuY190KShjb25zdCBjaGFyICpkb21haW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWxnbywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKndoYXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJkZXNjKTsKKworLyogVGhlIHR5 cGUgdXNlZCB0byBjb252ZXkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBhIGNpcGhlci4gICov Cit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9jaXBoZXJfc2V0X2V4dHJhX2luZm9fdCkK KyAgICAgKHZvaWQgKmMsIGludCB3aGF0LCBjb25zdCB2b2lkICpidWZmZXIsIGdydWJfc2l6ZV90 IGJ1Zmxlbik7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gc2V0IGFuIElWIGRpcmVjdGx5IGluIHRo ZSBhbGdvcml0aG0gbW9kdWxlLiAgKi8KK3R5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3NldGl2 X2Z1bmNfdCkodm9pZCAqYywgY29uc3QgZ3J1Yl91aW50OF90ICppdiwgZ3J1Yl9zaXplX3QgaXZs ZW4pOworCisvKiBEZWZpbml0aW9uIG9mIHRoZSBzZWxmdGVzdCBmdW5jdGlvbnMuICAqLwordHlw ZWRlZiBncGdfZXJyX2NvZGVfdCAoKmdjcnlfc2VsZnRlc3RfZnVuY190KQorICAgICAoaW50IGFs Z28sIGludCBleHRlbmRlZCwgc2VsZnRlc3RfcmVwb3J0X2Z1bmNfdCByZXBvcnQpOwogCiB0eXBl ZGVmIHN0cnVjdCBnY3J5X2NpcGhlcl9vaWRfc3BlYwogewpAQCAtMTI1LDkgKzE3MywxNCBAQCB0 eXBlZGVmIHN0cnVjdCBnY3J5X2NpcGhlcl9vaWRfc3BlYwogLyogTW9kdWxlIHNwZWNpZmljYXRp b24gc3RydWN0dXJlIGZvciBjaXBoZXJzLiAgKi8KIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVy X3NwZWMKIHsKKyAgaW50IGFsZ287CisgIHN0cnVjdCB7CisgICAgdW5zaWduZWQgaW50IGRpc2Fi bGVkOjE7CisgICAgdW5zaWduZWQgaW50IGZpcHM6MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hh ciAqbmFtZTsKICAgY29uc3QgY2hhciAqKmFsaWFzZXM7Ci0gIGdjcnlfY2lwaGVyX29pZF9zcGVj X3QgKm9pZHM7CisgIGNvbnN0IGdjcnlfY2lwaGVyX29pZF9zcGVjX3QgKm9pZHM7CiAgIGdydWJf c2l6ZV90IGJsb2Nrc2l6ZTsKICAgZ3J1Yl9zaXplX3Qga2V5bGVuOwogICBncnViX3NpemVfdCBj b250ZXh0c2l6ZTsKQEAgLTEzNiw2ICsxODksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBo ZXJfc3BlYwogICBnY3J5X2NpcGhlcl9kZWNyeXB0X3QgZGVjcnlwdDsKICAgZ2NyeV9jaXBoZXJf c3RlbmNyeXB0X3Qgc3RlbmNyeXB0OwogICBnY3J5X2NpcGhlcl9zdGRlY3J5cHRfdCBzdGRlY3J5 cHQ7CisgIGdjcnlfc2VsZnRlc3RfZnVuY190IHNlbGZ0ZXN0OworICBnY3J5X2NpcGhlcl9zZXRf ZXh0cmFfaW5mb190IHNldF9leHRyYV9pbmZvOworICBnY3J5X2NpcGhlcl9zZXRpdl9mdW5jX3Qg c2V0aXY7CisKICNpZmRlZiBHUlVCX1VUSUwKICAgY29uc3QgY2hhciAqbW9kbmFtZTsKICNlbmRp ZgpAQCAtMTQzLDcgKzIwMCw3IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX3NwZWMKIH0g Z2NyeV9jaXBoZXJfc3BlY190OwogCiAvKiBUeXBlIGZvciB0aGUgbWRfaW5pdCBmdW5jdGlvbi4g ICovCi10eXBlZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMpOwordHlwZWRlZiB2 b2lkICgqZ2NyeV9tZF9pbml0X3QpICh2b2lkICpjLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogCiAv KiBUeXBlIGZvciB0aGUgbWRfd3JpdGUgZnVuY3Rpb24uICAqLwogdHlwZWRlZiB2b2lkICgqZ2Ny eV9tZF93cml0ZV90KSAodm9pZCAqYywgY29uc3Qgdm9pZCAqYnVmLCBncnViX3NpemVfdCBuYnl0 ZXMpOwpAQCAtMTYyLDE2ICsyMTksMjQgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9vaWRfc3Bl YwogLyogTW9kdWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMu ICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1 Y3QgeworICAgIHVuc2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBz OjE7CisgIH0gZmxhZ3M7CiAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gIHVuc2lnbmVkIGNoYXIgKmFz bm9pZDsKKyAgY29uc3QgdW5zaWduZWQgY2hhciAqYXNub2lkOwogICBpbnQgYXNubGVuOwotICBn Y3J5X21kX29pZF9zcGVjX3QgKm9pZHM7CisgIGNvbnN0IGdjcnlfbWRfb2lkX3NwZWNfdCAqb2lk czsKICAgZ3J1Yl9zaXplX3QgbWRsZW47CiAgIGdjcnlfbWRfaW5pdF90IGluaXQ7CiAgIGdjcnlf bWRfd3JpdGVfdCB3cml0ZTsKICAgZ2NyeV9tZF9maW5hbF90IGZpbmFsOwogICBnY3J5X21kX3Jl YWRfdCByZWFkOworICB2b2lkICpleHRyYWN0OworICB2b2lkICpoYXNoX2J1ZmZlcnM7CiAgIGdy dWJfc2l6ZV90IGNvbnRleHRzaXplOyAvKiBhbGxvY2F0ZSB0aGlzIGFtb3VudCBvZiBjb250ZXh0 ICovCisKICAgLyogQmxvY2sgc2l6ZSwgbmVlZGVkIGZvciBITUFDLiAgKi8KICAgZ3J1Yl9zaXpl X3QgYmxvY2tzaXplOwogI2lmZGVmIEdSVUJfVVRJTApAQCAtMTgwLDU0ICsyNDUsMTIzIEBAIHR5 cGVkZWYgc3RydWN0IGdjcnlfbWRfc3BlYwogICBzdHJ1Y3QgZ2NyeV9tZF9zcGVjICpuZXh0Owog fSBnY3J5X21kX3NwZWNfdDsKIAordHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9oYW5kbGUqZ2NyeV9t ZF9oZF90OworCiBzdHJ1Y3QgZ2NyeV9tcGk7CiB0eXBlZGVmIHN0cnVjdCBnY3J5X21waSAqZ2Ny eV9tcGlfdDsKIAorc3RydWN0IGdjcnlfc2V4cDsKK3R5cGVkZWYgc3RydWN0IGdjcnlfc2V4cCAq Z2NyeV9zZXhwX3Q7CisKKworI2RlZmluZSBQVUJLRVlfRkxBR19OT19CTElORElORyAgICAoMSA8 PCAwKQorI2RlZmluZSBQVUJLRVlfRkxBR19SRkM2OTc5ICAgICAgICAoMSA8PCAxKQorI2RlZmlu ZSBQVUJLRVlfRkxBR19GSVhFRExFTiAgICAgICAoMSA8PCAyKQorI2RlZmluZSBQVUJLRVlfRkxB R19MRUdBQ1lSRVNVTFQgICAoMSA8PCAzKQorI2RlZmluZSBQVUJLRVlfRkxBR19SQVdfRkxBRyAg ICAgICAoMSA8PCA0KQorI2RlZmluZSBQVUJLRVlfRkxBR19UUkFOU0lFTlRfS0VZICAoMSA8PCA1 KQorI2RlZmluZSBQVUJLRVlfRkxBR19VU0VfWDkzMSAgICAgICAoMSA8PCA2KQorI2RlZmluZSBQ VUJLRVlfRkxBR19VU0VfRklQUzE4NiAgICAoMSA8PCA3KQorI2RlZmluZSBQVUJLRVlfRkxBR19V U0VfRklQUzE4Nl8yICAoMSA8PCA4KQorI2RlZmluZSBQVUJLRVlfRkxBR19QQVJBTSAgICAgICAg ICAoMSA8PCA5KQorI2RlZmluZSBQVUJLRVlfRkxBR19DT01QICAgICAgICAgICAoMSA8PCAxMCkK KyNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9DT01QICAgICAgICAgKDEgPDwgMTEpCisjZGVmaW5lIFBV QktFWV9GTEFHX0VERFNBICAgICAgICAgICgxIDw8IDEyKQorI2RlZmluZSBQVUJLRVlfRkxBR19H T1NUICAgICAgICAgICAoMSA8PCAxMykKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9fS0VZVEVTVCAg ICAgKDEgPDwgMTQpCisjZGVmaW5lIFBVQktFWV9GTEFHX0RKQl9UV0VBSyAgICAgICgxIDw8IDE1 KQorI2RlZmluZSBQVUJLRVlfRkxBR19TTTIgICAgICAgICAgICAoMSA8PCAxNikKKyNkZWZpbmUg UFVCS0VZX0ZMQUdfUFJFSEFTSCAgICAgICAgKDEgPDwgMTcpCisKK2VudW0gcGtfb3BlcmF0aW9u CisgIHsKKyAgICBQVUJLRVlfT1BfRU5DUllQVCwKKyAgICBQVUJLRVlfT1BfREVDUllQVCwKKyAg ICBQVUJLRVlfT1BfU0lHTiwKKyAgICBQVUJLRVlfT1BfVkVSSUZZCisgIH07CisKK2VudW0gcGtf ZW5jb2RpbmcKKyAgeworICAgIFBVQktFWV9FTkNfUkFXLAorICAgIFBVQktFWV9FTkNfUEtDUzEs CisgICAgUFVCS0VZX0VOQ19QS0NTMV9SQVcsCisgICAgUFVCS0VZX0VOQ19PQUVQLAorICAgIFBV QktFWV9FTkNfUFNTLAorICAgIFBVQktFWV9FTkNfVU5LTk9XTgorICB9OworCitzdHJ1Y3QgcGtf ZW5jb2RpbmdfY3R4Cit7CisgIGVudW0gcGtfb3BlcmF0aW9uIG9wOworICB1bnNpZ25lZCBpbnQg bmJpdHM7CisKKyAgZW51bSBwa19lbmNvZGluZyBlbmNvZGluZzsKKyAgaW50IGZsYWdzOworCisg IGludCBoYXNoX2FsZ287CisKKyAgLyogZm9yIE9BRVAgKi8KKyAgdW5zaWduZWQgY2hhciAqbGFi ZWw7CisgIGdydWJfc2l6ZV90IGxhYmVsbGVuOworCisgIC8qIGZvciBQU1MgKi8KKyAgZ3J1Yl9z aXplX3Qgc2FsdGxlbjsKKworICBpbnQgKCogdmVyaWZ5X2NtcCkgKHZvaWQgKm9wYXF1ZSwgZ2Ny eV9tcGlfdCB0bXApOworICB2b2lkICp2ZXJpZnlfYXJnOworfTsKKwogLyogVHlwZSBmb3IgdGhl IHBrX2dlbmVyYXRlIGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2Ny eV9wa19nZW5lcmF0ZV90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgbmJp dHMsCi0JCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHVzZV9lLAotCQkJCQkgICAgICAgZ2NyeV9t cGlfdCAqc2tleSwKLQkJCQkJICAgICAgIGdjcnlfbXBpX3QgKipyZXRmYWN0b3JzKTsKK3R5cGVk ZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19nZW5lcmF0ZV90KSAoZ2NyeV9zZXhwX3QgZ2Vu cGFybXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdj cnlfc2V4cF90ICpyX3NrZXkpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfY2hlY2tfc2VjcmV0X2tl eSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfY2hlY2tf c2VjcmV0X2tleV90KSAoaW50IGFsZ28sCi0JCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAqc2tleSk7 Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfY2hlY2tfc2VjcmV0X2tleV90KSAo Z2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfZW5jcnlwdCBmdW5j dGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZW5jcnlwdF90KSAo aW50IGFsZ28sCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgICAgZ2Ny eV9tcGlfdCBkYXRhLAotCQkJCQkgICAgICBnY3J5X21waV90ICpwa2V5LAotCQkJCQkgICAgICBp bnQgZmxhZ3MpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2VuY3J5cHRfdCkg KGdjcnlfc2V4cF90ICpyX2NpcGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlwZSBm b3IgdGhlIHBrX2RlY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3Qg KCpnY3J5X3BrX2RlY3J5cHRfdCkgKGludCBhbGdvLAotCQkJCQkgICAgICBnY3J5X21waV90ICpy ZXN1bHQsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKmRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBp X3QgKnNrZXksCi0JCQkJCSAgICAgIGludCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVf dCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoZ2NyeV9zZXhwX3QgKnJfcGxhaW4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90 IGtleXBhcm1zKTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX3NpZ24gZnVuY3Rpb24uICAqLwotdHlw ZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX3NpZ25fdCkgKGludCBhbGdvLAotCQkJCQkg ICBnY3J5X21waV90ICpyZXNhcnIsCi0JCQkJCSAgIGdjcnlfbXBpX3QgZGF0YSwKLQkJCQkJICAg Z2NyeV9tcGlfdCAqc2tleSk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2ln bl90KSAoZ2NyeV9zZXhwX3QgKnJfc2lnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9y IHRoZSBwa192ZXJpZnkgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpn Y3J5X3BrX3ZlcmlmeV90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCBoYXNoLAot CQkJCQkgICAgIGdjcnlfbXBpX3QgKmRhdGEsCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCAqcGtleSwK LQkJCQkJICAgICBpbnQgKCpjbXApICh2b2lkICosIGdjcnlfbXBpX3QpLAotCQkJCQkgICAgIHZv aWQgKm9wYXF1ZXYpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX3ZlcmlmeV90 KSAoZ2NyeV9zZXhwX3Qgc19zaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9y IHRoZSBwa19nZXRfbmJpdHMgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB1bnNpZ25lZCAoKmdjcnlf cGtfZ2V0X25iaXRzX3QpIChpbnQgYWxnbywgZ2NyeV9tcGlfdCAqcGtleSk7Cit0eXBlZGVmIHVu c2lnbmVkICgqZ2NyeV9wa19nZXRfbmJpdHNfdCkgKGdjcnlfc2V4cF90IGtleXBhcm1zKTsKKwor LyogVGhlIHR5cGUgdXNlZCB0byBjb21wdXRlIHRoZSBrZXlncmlwLiAgKi8KK3R5cGVkZWYgZ3Bn X2Vycl9jb2RlX3QgKCpwa19jb21wX2tleWdyaXBfdCkgKGdjcnlfbWRfaGRfdCBtZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBh cm0pOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIHF1ZXJ5IGFuIEVDQyBjdXJ2ZSBuYW1lLiAgKi8K K3R5cGVkZWYgY29uc3QgY2hhciAqKCpwa19nZXRfY3VydmVfdCkoZ2NyeV9zZXhwX3Qga2V5cGFy bXMsIGludCBpdGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50ICpyX25iaXRzKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBxdWVyeSBFQ0Mg Y3VydmUgcGFyYW1ldGVycyBieSBuYW1lLiAgKi8KK3R5cGVkZWYgZ2NyeV9zZXhwX3QgKCpwa19n ZXRfY3VydmVfcGFyYW1fdCkoY29uc3QgY2hhciAqbmFtZSk7CiAKIC8qIE1vZHVsZSBzcGVjaWZp Y2F0aW9uIHN0cnVjdHVyZSBmb3IgbWVzc2FnZSBkaWdlc3RzLiAgKi8KIHR5cGVkZWYgc3RydWN0 IGdjcnlfcGtfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1bnNpZ25lZCBp bnQgZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZsYWdzOworICBp bnQgdXNlOwogICBjb25zdCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKICAg Y29uc3QgY2hhciAqZWxlbWVudHNfcGtleTsKQEAgLTIzNSw3ICszNjksNiBAQCB0eXBlZGVmIHN0 cnVjdCBnY3J5X3BrX3NwZWMKICAgY29uc3QgY2hhciAqZWxlbWVudHNfZW5jOwogICBjb25zdCBj aGFyICplbGVtZW50c19zaWc7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRzX2dyaXA7Ci0gIGludCB1 c2U7CiAgIGdjcnlfcGtfZ2VuZXJhdGVfdCBnZW5lcmF0ZTsKICAgZ2NyeV9wa19jaGVja19zZWNy ZXRfa2V5X3QgY2hlY2tfc2VjcmV0X2tleTsKICAgZ2NyeV9wa19lbmNyeXB0X3QgZW5jcnlwdDsK QEAgLTI0Myw2ICszNzYsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9wa19zcGVjCiAgIGdjcnlf cGtfc2lnbl90IHNpZ247CiAgIGdjcnlfcGtfdmVyaWZ5X3QgdmVyaWZ5OwogICBnY3J5X3BrX2dl dF9uYml0c190IGdldF9uYml0czsKKyAgcGtfY29tcF9rZXlncmlwX3QgY29tcF9rZXlncmlwOwor ICBwa19nZXRfY3VydmVfdCBnZXRfY3VydmU7CisgIHBrX2dldF9jdXJ2ZV9wYXJhbV90IGdldF9j dXJ2ZV9wYXJhbTsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBjaGFyICptb2RuYW1lOwog I2VuZGlmCkBAIC0zNDUsNiArNDgyLDEwIEBAIGdydWJfY3J5cHRvX2hhc2ggKGNvbnN0IGdjcnlf bWRfc3BlY190ICpoYXNoLCB2b2lkICpvdXQsIGNvbnN0IHZvaWQgKmluLAogCQkgIGdydWJfc2l6 ZV90IGlubGVuKTsKIGNvbnN0IGdjcnlfbWRfc3BlY190ICoKIGdydWJfY3J5cHRvX2xvb2t1cF9t ZF9ieV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dy dWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvIChpbnQgYWxnbyk7Citjb25zdCBnY3J5X21kX3Nw ZWNfdCAqCitncnViX2NyeXB0b19sb29rdXBfbWRfYnlfb2lkIChjb25zdCBjaGFyICpvaWQpOwog CiBncnViX2Vycl90CiBncnViX2NyeXB0b19nY3J5X2Vycm9yIChnY3J5X2Vycl9jb2RlX3QgaW4p OwpAQCAtNDA4LDcgKzU0OSwzNSBAQCB2b2lkIF9nY3J5X2Fzc2VydF9mYWlsZWQgKGNvbnN0IGNo YXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCiB2b2lkIF9nY3J5X2J1cm5f c3RhY2sgKGludCBieXRlcyk7CiB2b2lkIF9nY3J5X2xvZ19lcnJvciggY29uc3QgY2hhciAqZm10 LCAuLi4gKSAgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAoX19wcmludGZfXywgMSwgMikpKTsKK3Zv aWQgX2djcnlfbG9nX2luZm8gKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK3ZvaWQgX19nY3J5X2J1 cm5fc3RhY2sgKHVuc2lnbmVkIGludCBzaXplKTsKK3ZvaWQgX19nY3J5X2J1cm5fc3RhY2tfZHVt bXkgKHZvaWQpOwordm9pZCBfZ2NyeV9idWcoIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBj b25zdCBjaGFyICpmdW5jICk7Cit2b2lkCitfZ2NyeV9mYXN0X3dpcGVtZW1vcnkgKHZvaWQgKnB0 ciwgZ3J1Yl9zaXplX3QgbGVuKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lwZW1lbW9yeTIgKHZvaWQg KnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKTsKK3Vuc2lnbmVkIGludAorX2djcnlfY3Rf bWVtZXF1YWwgKGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVu KTsKK3Vuc2lnbmVkIGludAorX2djcnlfY3Rfbm90X21lbWVxdWFsIChjb25zdCB2b2lkICpiMSwg Y29uc3Qgdm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbik7CisKKworc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgX2djcnlfZ2V0X2h3X2ZlYXR1cmVzKHZvaWQpCit7CisgIHJldHVybiAwOworfQog Cit2b2lkICpfZ2NyeV9tYWxsb2MoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV9tYWxsb2Nf c2VjdXJlKGdydWJfc2l6ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxvYyhncnViX3NpemVfdCBu KTsKK3ZvaWQgKl9nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pOwordm9pZCBfZ2Ny eV9mcmVlICh2b2lkICpwKTsKK3ZvaWQgKl9nY3J5X3hyZWFsbG9jICh2b2lkICphLCBncnViX3Np emVfdCBuKTsKK2ludCBfZ2NyeV9pc19zZWN1cmUgKGNvbnN0IHZvaWQgKmEpOwordm9pZCAqX2dj cnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSk7Cit2b2lkICpfZ2NyeV94 Y2FsbG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSk7Cit2b2lkIF9nY3J5 X2RpdmlkZV9ieV96ZXJvICh2b2lkKTsKIAogI2lmZGVmIEdSVUJfVVRJTAogdm9pZCBncnViX2dj cnlfaW5pdF9hbGwgKHZvaWQpOwpAQCAtNDE5LDQgKzU4OCwxMSBAQCBncnViX2dldF9yYW5kb20g KHZvaWQgKm91dCwgZ3J1Yl9zaXplX3QgbGVuKTsKIAogI2VuZGlmCiAKK3R5cGVkZWYgc3RydWN0 IF9ncGdydF9iNjRzdGF0ZSAqZ3BncnRfYjY0c3RhdGVfdDsKK2dwZ3J0X2I2NHN0YXRlX3QgZ3Bn cnRfYjY0ZGVjX3N0YXJ0IChjb25zdCBjaGFyICp0aXRsZSk7CitncGdfZXJyb3JfdCAgICAgIGdw Z3J0X2I2NGRlY19wcm9jIChncGdydF9iNjRzdGF0ZV90IHN0YXRlLAorCQkJCSAgICB2b2lkICpi dWZmZXIsIGdydWJfc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdydWJfc2l6ZV90ICpyX25ieXRlcyk7CitncGdfZXJyb3JfdCAgICAgIGdwZ3J0X2I2 NGRlY19maW5pc2ggKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUpOworY29uc3QgY2hhciAqZ3BnX3N0 cmVycm9yIChncGdfZXJyb3JfdCBlcnIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dy dWIvZ2NyeXB0L2dwZy1lcnJvci5oIGIvaW5jbHVkZS9ncnViL2djcnlwdC9ncGctZXJyb3IuaApp bmRleCAxZTQyNTAyODQuLjQ0NGJlZjIyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2djcnlw dC9ncGctZXJyb3IuaAorKysgYi9pbmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oCkBAIC0y OSw0ICsyOSwxMyBAQCBncGdfZXJyX3NvdXJjZSAoZ3BnX2Vycm9yX3QgZXJyIF9fYXR0cmlidXRl X18gKCh1bnVzZWQpKSkKIGdjcnlfZXJyX2NvZGVfdAogZ3BnX2Vycm9yX2Zyb21fc3lzZXJyb3Ig KHZvaWQpOwogCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJfY29kZV9mcm9tX3N5c2Vycm9yICh2 b2lkKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyb3JfZnJvbV9lcnJubyAoaW50IGVycik7 CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBlcnIpOwor CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwvZ3J1Yi1mc3Rlc3QuYyBiL3V0aWwvZ3J1Yi1mc3Rl c3QuYwppbmRleCA3ZmY5MDM3YjguLjI0YjIwYWI5MSAxMDA2NDQKLS0tIGEvdXRpbC9ncnViLWZz dGVzdC5jCisrKyBiL3V0aWwvZ3J1Yi1mc3Rlc3QuYwpAQCAtMzY1LDcgKzM2NSw3IEBAIHN0YXRp YyB2b2lkCiBjbWRfY3JjIChjaGFyICpwYXRobmFtZSkKIHsKICAgZ3J1Yl91aW50OF90ICpjcmMz Ml9jb250ZXh0ID0geG1hbGxvYyAoR1JVQl9NRF9DUkMzMi0+Y29udGV4dHNpemUpOwotICBHUlVC X01EX0NSQzMyLT5pbml0KGNyYzMyX2NvbnRleHQpOworICBHUlVCX01EX0NSQzMyLT5pbml0KGNy YzMyX2NvbnRleHQsIDApOwogCiAgIHJlYWRfZmlsZSAocGF0aG5hbWUsIGNyY19ob29rLCBjcmMz Ml9jb250ZXh0KTsKICAgR1JVQl9NRF9DUkMzMi0+ZmluYWwoY3JjMzJfY29udGV4dCk7CmRpZmYg LS1naXQgYS91dGlsL2ltcG9ydF9nY3J5LnB5IGIvdXRpbC9pbXBvcnRfZ2NyeS5weQppbmRleCAy YjMzMjJkM2EuLjQ4OTM1NmQzNyAxMDA2NDQKLS0tIGEvdXRpbC9pbXBvcnRfZ2NyeS5weQorKysg Yi91dGlsL2ltcG9ydF9nY3J5LnB5CkBAIC0yMiw2ICsyMiwyMyBAQCBpbXBvcnQgb3MKIGltcG9y dCBkYXRldGltZQogaW1wb3J0IGNvZGVjcwogCitkZWYgcmVtb3Zlc3VmZml4KGJhc2U6IHN0ciwg c3VmZml4OiBzdHIpIC0+IHN0cjoKKyAgICAiIiIgQmFja3BvcnQgb2YgYHJlbW92ZXN1ZmZpeGAg ZnJvbSBQRVAtNjE2IChQeXRob24gMy45KykgIiIiCisKKyAgICBpZiBiYXNlLmVuZHN3aXRoKHN1 ZmZpeCk6CisgICAgICAgIHJldHVybiBiYXNlWzotbGVuKHN1ZmZpeCldCisgICAgZWxzZToKKyAg ICAgICAgcmV0dXJuIGJhc2UKKworCitkZWYgcmVtb3ZlcHJlZml4KGJhc2U6IHN0ciwgcHJlZml4 OiBzdHIpIC0+IHN0cjoKKyAgICAiIiIgQmFja3BvcnQgb2YgYHJlbW92ZXByZWZpeGAgZnJvbSBQ RVAtNjE2IChQeXRob24gMy45KykgIiIiCisKKyAgICBpZiBiYXNlLnN0YXJ0c3dpdGgocHJlZml4 KToKKyAgICAgICAgcmV0dXJuIGJhc2VbbGVuKHByZWZpeCk6XQorICAgIGVsc2U6CisgICAgICAg IHJldHVybiBiYXNlCisKIGlmIGxlbiAoc3lzLmFyZ3YpIDwgMzoKICAgICBwcmludCAoIlVzYWdl OiAlcyBTT1VSQ0UgREVTVElOQVRJT04iICUgc3lzLmFyZ3ZbMF0pCiAgICAgZXhpdCAoMCkKQEAg LTYyLDYgKzc5LDEyIEBAIGNvbmZ1dGlsLndyaXRlICgiICBjZmxhZ3MgPSAnJChDRkxBR1NfR0NS WSknO1xuIik7CiBjb25mdXRpbC53cml0ZSAoIiAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZ KSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBleHRyYV9kaXN0ID0gZ3J1Yi1jb3JlL2xpYi9s aWJnY3J5cHQtZ3J1Yi9jaXBoZXIvQ2hhbmdlTG9nO1xuIik7CiBjb25mdXRpbC53cml0ZSAoIlxu Iik7CisKK2ZvciBzcmMgaW4gWydzcmMvY29uc3QtdGltZS5jJ106CisgICAgY29uZnV0aWwud3Jp dGUgKCIgIGNvbW1vbiA9IGdydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvJXM7XG4iICUgc3Jj KQorCitjb25mdXRpbC53cml0ZSAoIlxuIik7CisKIGNobG9nID0gIiIKIG1vZHVsZXNfc3ltX21k ID0gW10KIApAQCAtNzksMTAgKzEwMiwyNSBAQCBtZGJsb2Nrc2l6ZXMgPSB7Il9nY3J5X2RpZ2Vz dF9zcGVjX2NyYzMyIiA6IDY0LAogICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19z aGEyNTYiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTM4NCIg OiAxMjgsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMiIgOiAxMjgs CisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMl8yNTYiOiAxMjgsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMl8yMjQiOiAxMjgsCiAgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyIiA6IDY0LAogICAgICAgICAgICAg ICAgICJfZ2NyeV9kaWdlc3Rfc3BlY190aWdlcjEiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9n Y3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMiIgOiA2NCwKLSAgICAgICAgICAgICAgICAiX2djcnlfZGln ZXN0X3NwZWNfd2hpcmxwb29sIiA6IDY0fQorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rf c3BlY193aGlybHBvb2wiIDogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVj X3NoYWtlMTI4IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYWtl MjU2IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NtMyI6IDY0LAor ICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zdHJpYm9nXzI1NiI6IDY0LAorICAg ICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zdHJpYm9nXzUxMiI6IDY0LAorICAgICAg ICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzIyNCI6IDExNTIgLyA4LAorICAgICAg ICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzI1NiI6IDEwODggLyA4LAorICAgICAg ICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzM4NCI6IDgzMiAvIDgsCisgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfNTEyIjogNTc2IC8gOCwKKyAgICAgICAg ICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfZ29zdDM0MTFfOTQiOiAzMiwKKyAgICAgICAgICAg ICAgICAiX2djcnlfZGlnZXN0X3NwZWNfZ29zdDM0MTFfY3AiOiAzMiwKKyAgICAgICAgICAgICAg ICAiX2djcnlfZGlnZXN0X3NwZWNfY3NoYWtlMTI4IjogNjQsCisgICAgICAgICAgICAgICAgIl9n Y3J5X2RpZ2VzdF9zcGVjX2NzaGFrZTI1NiI6IDY0fQogCiBjcnlwdG9saXN0ID0gY29kZWNzLm9w ZW4gKG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJjcnlwdG8ubHN0IiksICJ3IiwgInV0 Zi04IikKIApAQCAtOTksMjYgKzEzNyw1NCBAQCBjcnlwdG9saXN0LndyaXRlICgiQUVTLTI1Njog Z2NyeV9yaWpuZGFlbFxuIik7CiBjcnlwdG9saXN0LndyaXRlICgiQURMRVIzMjogYWRsZXIzMlxu Iik7CiBjcnlwdG9saXN0LndyaXRlICgiQ1JDNjQ6IGNyYzY0XG4iKTsKIAorZXh0cmFfZmlsZXMg PSB7CisgICAgImdjcnlfY2FtZWxsaWEiOiBbImNhbWVsbGlhLmMiXSwgIyBNYWluIGZpbGUgaXMg Y2FtZWxsaWEtZ2x1ZS5jCisgICAgImdjcnlfc2hhNTEyIiAgOiBbImhhc2gtY29tbW9uLmMiXSwK K30KK2V4dHJhX2ZpbGVzX2xpc3QgPSBbeCBmb3IgeHMgaW4gZXh0cmFfZmlsZXMudmFsdWVzKCkg Zm9yIHggaW4geHNdICsgWyJwdWJrZXktdXRpbC5jIiwgInJzYS1jb21tb24uYyIsICJkc2EtY29t bW9uLmMiLCAibWQuYyJdCisKIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAg aW5maWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX2luLCBjaXBoZXJfZmlsZSkKICAgICBv dXRmaWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgY2lwaGVyX2ZpbGUpCiAgICAg aWYgY2lwaGVyX2ZpbGUgPT0gIkNoYW5nZUxvZyIgb3IgY2lwaGVyX2ZpbGUgPT0gIkNoYW5nZUxv Zy0yMDExIjoKICAgICAgICAgY29udGludWUKICAgICBjaGxvZ25ldyA9ICIJKiAlcyIgJSBjaXBo ZXJfZmlsZQotICAgIGlmIHJlLm1hdGNoICgiKE1hbmlmZXN0fE1ha2VmaWxlXC5hbXxhY1wuY3xj aXBoZXJcLmN8aGFzaC1jb21tb25cLmN8aG1hYy10ZXN0c1wuY3xtZFwuY3xwdWJrZXlcLmMpJCIs IGNpcGhlcl9maWxlKSBvciBjaXBoZXJfZmlsZSA9PSAia2RmLmMiIG9yIGNpcGhlcl9maWxlID09 ICJlbGdhbWFsLmMiIG9yIGNpcGhlcl9maWxlID09ICJwcmltZWdlbi5jIiBvciBjaXBoZXJfZmls ZSA9PSAiZWNjLmMiIG9yIGNpcGhlcl9maWxlID09ICJ0ZXN0LWdldHJ1c2FnZS5jIjoKKyAgICAj IFVudXNlZCBnZW5lcmljIHN1cHBvcnQgZmlsZXMKKyAgICBpZiByZS5tYXRjaCAociIoTWFrZWZp bGVcLmFtfHByaW1lZ2VuXC5jfGNpcGhlclwuY3xjaXBoZXItLipcLmN8bWFjLS4qXC5jfG1hY1wu Y3xwdWJrZXlcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVt b3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBUT0RP OiBTdXBwb3J0IEtERgorICAgIGlmIHJlLm1hdGNoIChyIihrZGZcLmN8c2NyeXB0XC5jKSQiLCBj aXBoZXJfZmlsZSk6CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hsb2cs IGNobG9nbmV3KQorICAgICAgICBjb250aW51ZQorICAgICMgVE9ETzogU3VwcG9ydCBjaGFjaGEy MCBhbmQgcG9seTEzMDUKKyAgICAjIFRPRE86IFN1cHBvcnQgRUNDCisgICAgIyBUT0RPOiBTdXBw b3J0IHF1YW50dW0tcmVzaXN0YW50CisgICAgaWYgY2lwaGVyX2ZpbGUgaW4gWyJwb2x5MTMwNS5j IiwgImNoYWNoYTIwLmMiLCAiZWNjLmMiLCAiZWxnYW1hbC5jIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgInNudHJ1cDc2MS5jIiwgIm1jZWxpZWNlNjY4ODEyOGYuYyIsICJreWJlci1jb21tb24u YyIsICJreWJlci5jIiwgImt5YmVyLWtkZXAuYyIsICJrZW0tZWNjLmMiLCAia2VtLmMiXSBvciBy ZS5tYXRjaCAociJeZWNjLS4qXC5jJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAi JXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisg ICAgIyBUT0RPOiBVc2Ugb3B0aW1pemVkIHZlcnNpb25zCisgICAgaWYgcmUubWF0Y2ggKHIiKC4q XC5bc1NdfC4qLWludGVsLXNoYWV4dFwuY3wuKi1zc3NlMy1pMzg2XC5jfC4qLXBwY1wuY3wuKi1z c3NlMy1hbWQ2NFwuY3wuKi1zMzkweFwuY3xyaWpuZGFlbC1hZXNuaVwuY3xjcmMtaW50ZWwtcGNs bXVsXC5jfC4qLWFybXY4LWNlLmN8LiotYWFyY2g2NC1jZVwuY3wuKi1wMTBsZVwuY3xyaWpuZGFl bC1wYWRsb2NrLmN8LiotcHBjWzg5XWxlLmN8cmlqbmRhZWwtdmFlcy5jfHJpam5kYWVsLXZhZXMt aTM4Ni5jfHNlcnBlbnQtYXZ4NTEyLXg4Ni5jKSQiLCBjaXBoZXJfZmlsZSk6CisgICAgICAgIGNo bG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAgICBjb250 aW51ZQorICAgICMgV2UgdXNlIHByZWdlbmVyYXRlZCB2ZXJzaW9uCisgICAgaWYgY2lwaGVyX2Zp bGUgPT0gImdvc3Qtcy1ib3guYyI6CiAgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIg JSAoY2hsb2csIGNobG9nbmV3KQogICAgICAgICBjb250aW51ZQogICAgICMgQXV0b2dlbmVyYXRl ZCBmaWxlcy4gTm90IGV2ZW4gd29ydGggbWVudGlvbm5pbmcgaW4gQ2hhbmdlTG9nCi0gICAgaWYg cmUubWF0Y2ggKCJNYWtlZmlsZVwuaW4kIiwgY2lwaGVyX2ZpbGUpOgorICAgIGlmIHJlLm1hdGNo IChyIk1ha2VmaWxlXC5pbiQiLCBjaXBoZXJfZmlsZSk6CiAgICAgICAgIGNvbnRpbnVlCiAgICAg bmNoID0gRmFsc2UKLSAgICBpZiByZS5tYXRjaCAoIi4qXC5bY2hdJCIsIGNpcGhlcl9maWxlKToK LSAgICAgICAgaXNjID0gcmUubWF0Y2ggKCIuKlwuYyQiLCBjaXBoZXJfZmlsZSkKKyAgICBpZiBy ZS5tYXRjaCAociIuKlwuW2NoXSQiLCBjaXBoZXJfZmlsZSk6CisgICAgICAgIGlzYyA9IHJlLm1h dGNoIChyIi4qXC5jJCIsIGNpcGhlcl9maWxlKQogICAgICAgICBmID0gY29kZWNzLm9wZW4gKGlu ZmlsZSwgInIiLCAidXRmLTgiKQogICAgICAgICBmdyA9IGNvZGVjcy5vcGVuIChvdXRmaWxlLCAi dyIsICJ1dGYtOCIpCiAgICAgICAgIGZ3LndyaXRlICgiLyogVGhpcyBmaWxlIHdhcyBhdXRvbWF0 aWNhbGx5IGltcG9ydGVkIHdpdGggXG4iKQogICAgICAgICBmdy53cml0ZSAoIiAgIGltcG9ydF9n Y3J5LnB5LiBQbGVhc2UgZG9uJ3QgbW9kaWZ5IGl0ICovXG4iKQotICAgICAgICBmdy53cml0ZSAo IiNpbmNsdWRlIDxncnViL2RsLmg+XG4iKQorICAgICAgICBhZGRfbGljZW5zZSA9IGNpcGhlcl9m aWxlID09ICJwdWJrZXktdXRpbC5jIiBvciAoaXNjIGFuZCBub3QgY2lwaGVyX2ZpbGUgaW4gZXh0 cmFfZmlsZXNfbGlzdCkKKyAgICAgICAgaWYgYWRkX2xpY2Vuc2U6CisgICAgICAgICAgICBmdy53 cml0ZSAoIiNpbmNsdWRlIDxncnViL2RsLmg+XG4iKQogICAgICAgICBpZiBjaXBoZXJfZmlsZSA9 PSAiY2FtZWxsaWEuaCI6CiAgICAgICAgICAgICBmdy53cml0ZSAoIiNpbmNsdWRlIDxncnViL21p c2MuaD5cbiIpCiAgICAgICAgICAgICBmdy53cml0ZSAoInZvaWQgY2FtZWxsaWFfc2V0dXAxMjgo Y29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBncnViX3VpbnQzMl90ICpzdWJrZXkpO1xuIikKQEAg LTEzMiw3ICsxOTgsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAg ICAgICAgZncud3JpdGUgKCJ2b2lkIGNhbWVsbGlhX2RlY3J5cHQyNTYoY29uc3QgZ3J1Yl91aW50 MzJfdCAqc3Via2V5LCBncnViX3VpbnQzMl90ICppbyk7XG4iKSAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBtZW1jcHkgZ3J1Yl9tZW1jcHlcbiIp CiAgICAgICAgICMgV2hvbGUgbGliZ2NyeXB0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIEdQTHYzKyBv ciBjb21wYXRpYmxlCi0gICAgICAgIGlmIGlzYzoKKyAgICAgICAgaWYgYWRkX2xpY2Vuc2U6CiAg ICAgICAgICAgICBmdy53cml0ZSAoIkdSVUJfTU9EX0xJQ0VOU0UgKFwiR1BMdjMrXCIpO1xuIikK IAogICAgICAgICBjaXBoZXJuYW1lcyA9IFtdCkBAIC0xNDgsMTQgKzIxNCwxMCBAQCBmb3IgY2lw aGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICBpc2NpcGhlciA9IEZhbHNlCiAgICAg ICAgIGlzY3J5cHRvc3RhcnQgPSBGYWxzZQogICAgICAgICBpc2NvbW1hID0gRmFsc2UKLSAgICAg ICAgaXNnbHVlID0gRmFsc2UKICAgICAgICAgc2tpcF9zdGF0ZW1lbnQgPSBGYWxzZQorICAgICAg ICBza2lwX2NvbW1hID0gRmFsc2UKICAgICAgICAgaWYgaXNjOgotICAgICAgICAgICAgbW9kbmFt ZSA9IGNpcGhlcl9maWxlIFswOmxlbihjaXBoZXJfZmlsZSkgLSAyXQotICAgICAgICAgICAgaWYg cmUubWF0Y2ggKCIuKi1nbHVlJCIsIG1vZG5hbWUpOgotICAgICAgICAgICAgICAgIG1vZG5hbWUg PSBtb2RuYW1lLnJlcGxhY2UgKCItZ2x1ZSIsICIiKQotICAgICAgICAgICAgICAgIGlzZ2x1ZSA9 IFRydWUKLSAgICAgICAgICAgIG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSBtb2RuYW1lCisgICAgICAg ICAgICBtb2RuYW1lID0gImdjcnlfJXMiICUgcmVtb3Zlc3VmZml4KHJlbW92ZXN1ZmZpeChjaXBo ZXJfZmlsZSwgIi5jIiksICItZ2x1ZSIpLnJlcGxhY2UoIi0iLCAiXyIpCiAgICAgICAgIGZvciBs aW5lIGluIGY6CiAgICAgICAgICAgICBsaW5lID0gbGluZQogICAgICAgICAgICAgaWYgc2tpcF9z dGF0ZW1lbnQ6CkBAIC0xNzEsNyArMjMzLDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9m aWxlczoKICAgICAgICAgICAgICAgICAgICAgc2tpcDIgPSBGYWxzZQogICAgICAgICAgICAgICAg IGNvbnRpbnVlCiAgICAgICAgICAgICBpZiBpc2NyeXB0b3N0YXJ0OgotICAgICAgICAgICAgICAg IHMgPSByZS5zZWFyY2ggKCIgKlwiKFtBLVowLTlfYS16XSopXCIiLCBsaW5lKQorICAgICAgICAg ICAgICAgIHMgPSByZS5zZWFyY2ggKCIgKlwiKFtBLVowLTlfYS16LV0qKVwiIiwgbGluZSkKICAg ICAgICAgICAgICAgICBpZiBub3QgcyBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICBzZyA9 IHMuZ3JvdXBzKClbMF0KICAgICAgICAgICAgICAgICAgICAgY3J5cHRvbGlzdC53cml0ZSAoKCIl czogJXNcbiIpICUgKHNnLCBtb2RuYW1lKSkKQEAgLTIwMSw3ICsyNjMsNyBAQCBmb3IgY2lwaGVy X2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBpc3BrID0gRmFsc2UK ICAgICAgICAgICAgICAgICBpc2NvbW1hID0gbm90IHJlLnNlYXJjaCAoIiwkIiwgbGluZSkgaXMg Tm9uZQogICAgICAgICAgICAgIyBVc2VkIG9ubHkgZm9yIHNlbGZ0ZXN0cy4KLSAgICAgICAgICAg IG0gPSByZS5tYXRjaCAoIihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcikgKHdlYWtf a2V5c19jaGtzdW0pXFtbMC05XSpcXSA9IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj aCAociIoc3RhdGljIGJ5dGV8c3RhdGljIHVuc2lnbmVkIGNoYXJ8c3RhdGljIGNvbnN0IGdjcnlf bWRfc3BlY190IFwqIGNvbnN0KSAod2Vha19rZXlzX2Noa3N1bXxkaWdlc3RfbGlzdClcW1swLTld KlxdID0iLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAg ICAgICBza2lwID0gMQogICAgICAgICAgICAgICAgIGZuYW1lID0gbS5ncm91cHMgKClbMV0KQEAg LTIxMiwxMSArMjc0LDE0IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAg ICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzICVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAg ICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQor ICAgICAgICAgICAgaWYgKG5vdCBob2xkKSBhbmQgKHJlLm1hdGNoIChyIlsgXHRdKihydW5fc2Vs ZnRlc3RzfGRvX3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mbyksPyIsIGxpbmUpIGlzIG5vdCBOb25l KToKKyAgICAgICAgICAgICAgICBpc2NvbW1hID0gVHJ1ZQorICAgICAgICAgICAgICAgIGxpbmUg PSAiIgogICAgICAgICAgICAgaWYgaG9sZDoKICAgICAgICAgICAgICAgICBob2xkID0gRmFsc2UK ICAgICAgICAgICAgICAgICAjIFdlJ3JlIG9wdGltaXNpbmcgZm9yIHNpemUgYW5kIGV4Y2x1ZGUg YW55dGhpbmcgbmVlZGluZyBnb29kCiAgICAgICAgICAgICAgICAgIyByYW5kb21uZXNzLgotICAg ICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoIihydW5fc2VsZnRlc3RzfHNlbGZ0ZXN0fF9n Y3J5X2Flc19jLi5fLi5jfF9nY3J5X1thLXowLTldKl9oYXNoX2J1ZmZlcnx0cmlwbGVkZXNfc2V0 MmtleXN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvfF9nY3J5X3JtZDE2MF9taXhibG9ja3xz ZXJwZW50X3Rlc3R8ZHNhX2dlbmVyYXRlX2V4dHx0ZXN0X2tleXN8Z2VuX2t8c2lnbnxnZW5feDkz MV9wYXJtX3hwfGdlbmVyYXRlX3g5MzF8Z2VuZXJhdGVfa2V5fGRzYV9nZW5lcmF0ZXxkc2Ffc2ln bnxlY2Nfc2lnbnxnZW5lcmF0ZXxnZW5lcmF0ZV9maXBzMTg2fF9nY3J5X3JlZ2lzdGVyX3BrX2Rz YV9wcm9ncmVzc3xfZ2NyeV9yZWdpc3Rlcl9wa19lY2NfcHJvZ3Jlc3N8cHJvZ3Jlc3N8c2NhbnZh bHxlYzJvc3xlY2NfZ2VuZXJhdGVfZXh0fGVjY19nZW5lcmF0ZXxjb21wdXRlX2tleWdyaXB8ZWNj X2dldF9wYXJhbXxfZ2NyeV9yZWdpc3Rlcl9wa19kc2FfcHJvZ3Jlc3N8Z2VuX3g5MzFfcGFybV94 cHxnZW5feDkzMV9wYXJtX3hpfHJzYV9kZWNyeXB0fHJzYV9zaWdufHJzYV9nZW5lcmF0ZV9leHR8 cnNhX2dlbmVyYXRlfHNlY3JldHxjaGVja19leHBvbmVudHxyc2FfYmxpbmR8cnNhX3VuYmxpbmR8 ZXh0cmFjdF9hX2Zyb21fc2V4cHxjdXJ2ZV9mcmVlfGN1cnZlX2NvcHl8cG9pbnRfc2V0KSIsIGxp bmUpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcmUubWF0Y2ggKCIoX2djcnlfaGFzaF9z ZWxmdGVzdF9jaGVja19vbmV8YnVsa19zZWxmdGVzdF9zZXRrZXl8cnVuX3NlbGZ0ZXN0c3xkb190 cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98c2VsZnRlc3R8c200X3NlbGZ0ZXN0fF9nY3J5X1thLXow LTlfXSpfaGFzaF9idWZmZXJzfF9nY3J5X3NoYTFfaGFzaF9idWZmZXJ8dHJpcGxlZGVzX3NldDJr ZXlzfF9nY3J5X3JtZDE2MF9taXhibG9ja3xzZXJwZW50X3Rlc3R8ZHNhX2dlbmVyYXRlX2V4dHx0 ZXN0X2tleXN8Z2VuX2t8c2lnbnxnZW5feDkzMV9wYXJtX3hwfGdlbmVyYXRlX3g5MzF8Z2VuZXJh dGVfa2V5fGRzYV9nZW5lcmF0ZXxkc2Ffc2lnbnxlY2Nfc2lnbnxnZW5lcmF0ZXxnZW5lcmF0ZV9m aXBzMTg2fF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xfZ2NyeV9yZWdpc3Rlcl9wa19l Y2NfcHJvZ3Jlc3N8cHJvZ3Jlc3N8c2NhbnZhbHxlYzJvc3xlY2NfZ2VuZXJhdGVfZXh0fGVjY19n ZW5lcmF0ZXxlY2NfZ2V0X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xnZW5f eDkzMV9wYXJtX3hwfGdlbl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNhX2dl bmVyYXRlX2V4dHxyc2FfZ2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9ibGluZHxy c2FfdW5ibGluZHxleHRyYWN0X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29weXxwb2lu dF9zZXR8X2djcnlfZHNhX2dlbl9yZmM2OTc5X2t8Yml0czJvY3RldHN8aW50Mm9jdGV0c3xfZ2Ny eV9tZF9kZWJ1Z3xfZ2NyeV9tZF9zZWxmdGVzdHxfZ2NyeV9tZF9pc19lbmFibGVkfF9nY3J5X21k X2lzX3NlY3VyZXxfZ2NyeV9tZF9pbml0fF9nY3J5X21kX2luZm98bWRfZ2V0X2FsZ298bWRfZXh0 cmFjdHxfZ2NyeV9tZF9nZXQgfF9nY3J5X21kX2dldF9hbGdvIHxfZ2NyeV9tZF9leHRyYWN0fF9n Y3J5X21kX3NldGtleXxtZF9zZXRrZXl8cHJlcGFyZV9tYWNwYWRzfF9nY3J5X21kX2FsZ29fbmFt ZXxzZWFyY2hfb2lkfHNwZWNfZnJvbV9vaWR8c3BlY19mcm9tX25hbWV8c3BlY19mcm9tX2FsZ298 bWFwX2FsZ298Y3NoYWtlX2hhc2hfYnVmZmVycykiLCBsaW5lKSBpcyBub3QgTm9uZToKIAogICAg ICAgICAgICAgICAgICAgICBza2lwID0gMQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUu bWF0Y2ggKCJzZWxmdGVzdCIsIGxpbmUpIGlzIE5vbmUgYW5kIGNpcGhlcl9maWxlID09ICJpZGVh LmMiOgpAQCAtMjI0LDYgKzI4OSwxMSBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVz OgogCiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNlcnBlbnRfdGVzdCIs IGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoInN0YXRp YyBjb25zdCBjaGFyICpzZXJwZW50X3Rlc3QgKHZvaWQpIHsgcmV0dXJuIDA7IH1cbiIpOworICAg ICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzbTRfc2VsZnRlc3QiLCBsaW5lKSBp cyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCJzdGF0aWMgY29uc3Qg Y2hhciAqc200X3NlbGZ0ZXN0ICh2b2lkKSB7IHJldHVybiAwOyB9XG4iKTsKKyAgICAgICAgICAg ICAgICAgICAgaGFzaF9idWYgPSByZS5tYXRjaCAoIihfZ2NyeV9bYS16MC05X10qX2hhc2hfYnVm ZmVycykiLCBsaW5lKQorICAgICAgICAgICAgICAgICAgICBpZiBoYXNoX2J1ZiBpcyBub3QgTm9u ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSAlcyAwIiAlICho YXNoX2J1Zi5ncm91cCgwKSkpCiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAo ImRzYV9nZW5lcmF0ZSIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBm dy53cml0ZSAoIiNkZWZpbmUgZHNhX2dlbmVyYXRlIDAiKTsKICAgICAgICAgICAgICAgICAgICAg aWYgbm90IHJlLm1hdGNoICgiZWNjX2dlbmVyYXRlIiwgbGluZSkgaXMgTm9uZToKQEAgLTIzOCw2 ICszMDgsMTAgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg ICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBkc2Ffc2lnbiAwIik7CiAgICAgICAgICAg ICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoImVjY19zaWduIiwgbGluZSkgaXMgTm9uZToKICAg ICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBlY2Nfc2lnbiAwIik7Cisg ICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNlYXJjaF9vaWQiLCBsaW5lKSBp cyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIHNlYXJj aF9vaWQoYSxiKSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfb2lkKGEpIikKKyAgICAgICAgICAg ICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic3BlY19mcm9tX25hbWUiLCBsaW5lKSBpcyBOb25l OgorICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIHNwZWNfZnJvbV9u YW1lIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9uYW1lIikKICAgICAgICAgICAgICAgICAgICAg Zm5hbWUgPSByZS5tYXRjaCAoIlthLXpBLVowLTlfXSoiLCBsaW5lKS5ncm91cCAoKQogICAgICAg ICAgICAgICAgICAgICBjaG1zZyA9ICIoJXMpOiBSZW1vdmVkLiIgJSBmbmFtZQogICAgICAgICAg ICAgICAgICAgICBpZiBuY2g6CkBAIC0yNTcsNDUgKzMzMSw0NiBAQCBmb3IgY2lwaGVyX2ZpbGUg aW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlczogJXMi ICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJnY3J5X2Np cGhlcl9zcGVjX3QiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNvbnN0ICk/ Z2NyeV9jaXBoZXJfc3BlY190IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBhbmQgbm90IG0g aXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAgICAgICAgICAg ICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjaXBo ZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkKLSAgICAgICAg ICAgICAgICBjaXBoZXJuYW1lID0gbGluZSBbbGVuICgiZ2NyeV9jaXBoZXJfc3BlY190Iik6XS5z dHJpcCAoKQorICAgICAgICAgICAgICAgIGNpcGhlcm5hbWUgPSByZW1vdmVwcmVmaXgocmVtb3Zl cHJlZml4KGxpbmUsICJjb25zdCAiKSwgImdjcnlfY2lwaGVyX3NwZWNfdCIpLnN0cmlwICgpCiAg ICAgICAgICAgICAgICAgY2lwaGVybmFtZSA9IHJlLm1hdGNoKCJbYS16QS1aMC05X10qIixjaXBo ZXJuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAgICAgIGNpcGhlcm5hbWVzLmFwcGVuZCAoY2lw aGVybmFtZSkKICAgICAgICAgICAgICAgICBpc2NpcGhlciA9IFRydWUKICAgICAgICAgICAgICAg ICBpc2NyeXB0b3N0YXJ0ID0gVHJ1ZQogCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJnY3J5 X3BrX3NwZWNfdCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3QgKT9n Y3J5X3BrX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlzIE5v bmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAgICAgICAgICAgICAgICBh c3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVyKQog ICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAgICAg ICAgcGtuYW1lID0gbGluZSBbbGVuICgiZ2NyeV9wa19zcGVjX3QiKTpdLnN0cmlwICgpCisgICAg ICAgICAgICAgICAgcGtuYW1lID0gcmVtb3ZlcHJlZml4KHJlbW92ZXByZWZpeChsaW5lLCAiY29u c3QgIiksICJnY3J5X3BrX3NwZWNfdCIpLnN0cmlwICgpCiAgICAgICAgICAgICAgICAgcGtuYW1l ID0gcmUubWF0Y2goIlthLXpBLVowLTlfXSoiLHBrbmFtZSkuZ3JvdXAgKCkKICAgICAgICAgICAg ICAgICBwa25hbWVzLmFwcGVuZCAocGtuYW1lKQogICAgICAgICAgICAgICAgIGlzcGsgPSBUcnVl CiAgICAgICAgICAgICAgICAgaXNjcnlwdG9zdGFydCA9IFRydWUKIAotICAgICAgICAgICAgbSA9 IHJlLm1hdGNoICgiZ2NyeV9tZF9zcGVjX3QiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1h dGNoICgiKGNvbnN0ICk/Z2NyeV9tZF9zcGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNj IGFuZCBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAg ICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQg KG5vdCBpc2NpcGhlcikKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0 KQotICAgICAgICAgICAgICAgIG1kbmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfbWRfc3BlY190Iik6 XS5zdHJpcCAoKQorICAgICAgICAgICAgICAgIGxpbmUgPSByZW1vdmVwcmVmaXgobGluZSwgImNv bnN0ICIpCisgICAgICAgICAgICAgICAgbWRuYW1lID0gcmVtb3ZlcHJlZml4KHJlbW92ZXByZWZp eChsaW5lLCAiY29uc3QgIiksICJnY3J5X21kX3NwZWNfdCIpLnN0cmlwICgpCiAgICAgICAgICAg ICAgICAgbWRuYW1lID0gcmUubWF0Y2goIlthLXpBLVowLTlfXSoiLG1kbmFtZSkuZ3JvdXAgKCkK ICAgICAgICAgICAgICAgICBtZG5hbWVzLmFwcGVuZCAobWRuYW1lKQogICAgICAgICAgICAgICAg IGlzbWQgPSBUcnVlCiAgICAgICAgICAgICAgICAgbWRhcmcgPSAwCiAgICAgICAgICAgICAgICAg aXNjcnlwdG9zdGFydCA9IFRydWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBj b25zdCBjaGFyIFwqc2VsZnRlc3QuKjskIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj aCAociJzdGF0aWMgY29uc3QgY2hhciBcKnNlbGZ0ZXN0Lio7JCIsIGxpbmUpCiAgICAgICAgICAg ICBpZiBub3QgbSBpcyBOb25lOgotICAgICAgICAgICAgICAgIGZuYW1lID0gbGluZVtsZW4gKCJz dGF0aWMgY29uc3QgY2hhciBcKiIpOl0KKyAgICAgICAgICAgICAgICBmbmFtZSA9IGxpbmVbbGVu IChyInN0YXRpYyBjb25zdCBjaGFyIFwqIik6XQogICAgICAgICAgICAgICAgIGZuYW1lID0gcmUu bWF0Y2ggKCJbYS16QS1aMC05X10qIiwgZm5hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAg Y2htc2cgPSAiKCVzKTogUmVtb3ZlZCBkZWNsYXJhdGlvbi4iICUgZm5hbWUKICAgICAgICAgICAg ICAgICBpZiBuY2g6CkBAIC0zMzEsNyArNDA2LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhl cl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9n bmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgdm9pZCBcKFwq cHJvZ3Jlc3NfY2JcKS4qOyQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0 YXRpYyB2b2lkIFwoXCpwcm9ncmVzc19jYlwpLio7JCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBu b3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNobXNnID0gIihwcm9ncmVzc19jYik6IFJl bW92ZWQgZGVjbGFyYXRpb24uIgogICAgICAgICAgICAgICAgIGlmIG5jaDoKQEAgLTM0MCw3ICs0 MTUsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAg ICAgICBjaGxvZ25ldyA9ICIlcyAlcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAg ICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg IG0gPSByZS5tYXRjaCAoInN0YXRpYyB2b2lkIFwqcHJvZ3Jlc3NfY2JfZGF0YS4qOyQiLCBsaW5l KQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyB2b2lkIFwqcHJvZ3Jlc3NfY2Jf ZGF0YS4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAg ICAgICAgICBjaG1zZyA9ICIocHJvZ3Jlc3NfY2IpOiBSZW1vdmVkIGRlY2xhcmF0aW9uLiIKICAg ICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0zNTAsMjIgKzQyNSwyMiBAQCBmb3IgY2lwaGVyX2Zp bGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAg ICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKHN0YXRp YyBjb25zdCBjaGFyKCB8KVwqfHN0YXRpYyBncGdfZXJyX2NvZGVfdHx2b2lkfHN0YXRpYyBpbnR8 c3RhdGljIGdjcnlfZXJyX2NvZGVfdHxzdGF0aWMgZ2NyeV9tcGlfdHxzdGF0aWMgdm9pZHx2b2lk fHN0YXRpYyBlbGxpcHRpY19jdXJ2ZV90KSAqJCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUu bWF0Y2ggKHIiKChzdGF0aWMgKT9jb25zdCBjaGFyKCB8KVwqfHN0YXRpYyBjb25zdCBnY3J5X21k X3NwZWNfdCBcKnwoc3RhdGljICk/Z3BnX2Vycl9jb2RlX3R8Z3BnX2Vycm9yX3R8dm9pZHwoc3Rh dGljICk/aW50fChzdGF0aWMgKT91bnNpZ25lZCBpbnR8KHN0YXRpYyApP2djcnlfZXJyX2NvZGVf dHxzdGF0aWMgZ2NyeV9tcGlfdHxzdGF0aWMgdm9pZHx2b2lkfHN0YXRpYyBlbGxpcHRpY19jdXJ2 ZV90KSAqJCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAg ICAgICAgIGhvbGQgPSBUcnVlCiAgICAgICAgICAgICAgICAgaG9sZGxpbmUgPSBsaW5lCiAgICAg ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBp bnQgdHJpcGxlZGVzX3NldDJrZXlzIFwoLipcKTsiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJl Lm1hdGNoIChyInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDJrZXlzIFwoLipcKTsiLCBsaW5lKQog ICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBjb250aW51ZQot ICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMg XCguKlwpOyIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0 cmlwbGVkZXNfc2V0M2tleXMgXCguKlwpOyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBp cyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0 Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQya2V5cyBcKCIsIGxpbmUpCisgICAgICAgICAg ICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCgiLCBsaW5l KQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwX3N0 YXRlbWVudCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9 IHJlLm1hdGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCgiLCBsaW5lKQorICAg ICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDNrZXlzIFwo IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAg c2tpcF9zdGF0ZW1lbnQgPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUKQEAgLTQyMSwx MSArNDk2LDkgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg ICAgICBjb250aW51ZQogICAgICAgICAgICAgZncud3JpdGUgKGxpbmUpCiAgICAgICAgIGlmIGxl biAoY2lwaGVybmFtZXMpID4gMCBvciBsZW4gKG1kbmFtZXMpID4gMCBvciBsZW4gKHBrbmFtZXMp ID4gMDoKLSAgICAgICAgICAgIGlmIGlzZ2x1ZToKLSAgICAgICAgICAgICAgICBtb2RmaWxlcyA9 ICJsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzIGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIv JXMiIFwKLSAgICAgICAgICAgICAgICAgICAgJSAoY2lwaGVyX2ZpbGUsIGNpcGhlcl9maWxlLnJl cGxhY2UgKCItZ2x1ZS5jIiwgIi5jIikpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg ICAgIG1vZGZpbGVzID0gImxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXMiICUgY2lwaGVyX2Zp bGUKKyAgICAgICAgICAgIG1vZGZpbGVzID0gW2NpcGhlcl9maWxlXQorICAgICAgICAgICAgaWYg bW9kbmFtZSBpbiBleHRyYV9maWxlcy5rZXlzKCk6CisgICAgICAgICAgICAgICAgbW9kZmlsZXMg Kz0gZXh0cmFfZmlsZXNbbW9kbmFtZV0KICAgICAgICAgICAgIGlmIGxlbiAoY2lwaGVybmFtZXMp ID4gMCBvciBsZW4gKG1kbmFtZXMpID4gMDoKICAgICAgICAgICAgICAgICBtb2R1bGVzX3N5bV9t ZC5hcHBlbmQgKG1vZG5hbWUpCiAgICAgICAgICAgICBjaG1zZyA9ICIoR1JVQl9NT0RfSU5JVCgl cykpOiBOZXcgZnVuY3Rpb25cbiIgJSBtb2RuYW1lCkBAIC00NDcsNyArNTIwLDcgQEAgZm9yIGNp cGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIl c1xuCSVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIg IGdydWJfbWRfcmVnaXN0ZXIgKCYlcyk7XG4iICUgbWRuYW1lKQogICAgICAgICAgICAgZm9yIHBr bmFtZSBpbiBwa25hbWVzOgotICAgICAgICAgICAgICAgIGNobXNnID0gIlJlZ2lzdGVyIHBrICVz IiAlIG1kbmFtZQorICAgICAgICAgICAgICAgIGNobXNnID0gIlJlZ2lzdGVyIHBrICVzIiAlIHBr bmFtZQogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBj aG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9jcnlwdG9fcGtfJXMgPSAm JXM7XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNlICgiX2dj cnlfcHVia2V5X3NwZWNfIiwgIiIpLCBwa25hbWUpKQpAQCAtNDY1LDE3ICs1MzgsMTcgQEAgZm9y IGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9 ICIlc1xuCSVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUg KCIgIGdydWJfbWRfdW5yZWdpc3RlciAoJiVzKTtcbiIgJSBtZG5hbWUpCiAgICAgICAgICAgICBm b3IgcGtuYW1lIGluIHBrbmFtZXM6Ci0gICAgICAgICAgICAgICAgY2htc2cgPSAiVW5yZWdpc3Rl ciBwayAlcyIgJSBtZG5hbWUKKyAgICAgICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVyIHBr ICVzIiAlIHBrbmFtZQogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNo bG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9jcnlwdG9f cGtfJXMgPSAwO1xuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAlIChwa25hbWUucmVwbGFj ZSAoIl9nY3J5X3B1YmtleV9zcGVjXyIsICIiKSkpCiAgICAgICAgICAgICBmdy53cml0ZSAoIn1c biIpCiAgICAgICAgICAgICBjb25mLndyaXRlICgibW9kdWxlID0ge1xuIikKICAgICAgICAgICAg IGNvbmYud3JpdGUgKCIgIG5hbWUgPSAlcztcbiIgJSBtb2RuYW1lKQotICAgICAgICAgICAgZm9y IHNyYyBpbiBtb2RmaWxlcy5zcGxpdCgpOgotICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIg IGNvbW1vbiA9ICVzO1xuIiAlIHNyYykKKyAgICAgICAgICAgIGZvciBzcmMgaW4gbW9kZmlsZXM6 CisgICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1n cnViL2NpcGhlci8lcztcbiIgJSBzcmMpCiAgICAgICAgICAgICAgICAgaWYgbGVuIChjaXBoZXJu YW1lcykgPiAwIG9yIGxlbiAobWRuYW1lcykgPiAwOgotICAgICAgICAgICAgICAgICAgICBjb25m dXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlLyVzO1xuIiAlIHNyYykKKyAgICAgICAg ICAgICAgICAgICAgY29uZnV0aWwud3JpdGUgKCIgIGNvbW1vbiA9IGdydWItY29yZS9saWIvbGli Z2NyeXB0LWdydWIvY2lwaGVyLyVzO1xuIiAlIHNyYykKICAgICAgICAgICAgIGlmIG1vZG5hbWUg PT0gImdjcnlfZWNjIjoKICAgICAgICAgICAgICAgICBjb25mLndyaXRlICgiICBjb21tb24gPSBs aWIvbGliZ2NyeXB0LWdydWIvbXBpL2VjLmM7XG4iKQogICAgICAgICAgICAgICAgIGNvbmYud3Jp dGUgKCIgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25v LXNpZ24tY29tcGFyZSc7XG4iKQpAQCAtNDkwLDcgKzU2Myw3IEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICBmdy5jbG9zZSAoKQogICAgICAgICAgICAgaWYg bmNoOgogICAgICAgICAgICAgICAgIGNobG9nID0gIiVzJXNcbiIgJSAoY2hsb2csIGNobG9nbmV3 KQotICAgICAgICBlbGlmIGlzYyBhbmQgY2lwaGVyX2ZpbGUgIT0gImNhbWVsbGlhLmMiOgorICAg ICAgICBlbGlmIGlzYyBhbmQgY2lwaGVyX2ZpbGUgbm90IGluIGV4dHJhX2ZpbGVzX2xpc3Q6CiAg ICAgICAgICAgICBwcmludCAoIldBUk5JTkc6IEMgZmlsZSBpc24ndCBhIG1vZHVsZTogJXMiICUg Y2lwaGVyX2ZpbGUpCiAgICAgICAgICAgICBmLmNsb3NlICgpCiAgICAgICAgICAgICBmdy5jbG9z ZSAoKQpAQCAtNTEyLDcgKzU4NSw3IEBAIGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChv cy5wYXRoLmpvaW4gKGluZGlyLCAic3JjIikpKToKICAgICAgICAgICAgIG9yIHNyYyA9PSAibGli Z2NyeXB0LnZlcnMiIG9yIHNyYyA9PSAiTWFrZWZpbGUuYW0iIFwKICAgICAgICAgICAgIG9yIHNy YyA9PSAiTWFuaWZlc3QiIG9yIHNyYyA9PSAibWlzYy5jIiBcCiAgICAgICAgICAgICBvciBzcmMg PT0gIm1pc3Npbmctc3RyaW5nLmMiIG9yIHNyYyA9PSAibW9kdWxlLmMiIFwKLSAgICAgICAgICAg IG9yIHNyYyA9PSAic2VjbWVtLmMiIG9yIHNyYyA9PSAic2V4cC5jIiBcCisgICAgICAgICAgICBv ciBzcmMgPT0gInNlY21lbS5jIiBcCiAgICAgICAgICAgICBvciBzcmMgPT0gInN0ZG1lbS5jIiBv ciBzcmMgPT0gInZpc2liaWxpdHkuYyI6CiAgICAgICAgIGNvbnRpbnVlCiAgICAgb3V0ZmlsZSA9 IG9zLnBhdGguam9pbiAoYmFzZWRpciwgInNyYyIsIHNyYykKQEAgLTUzNCw4ICs2MDcsMTcgQEAg Zm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMi KSkpOgogICAgICAgICBmdy5jbG9zZSAoKQogICAgICAgICBjb250aW51ZQogCisgICAgaWYgc3Jj ID09ICJjaXBoZXItcHJvdG8uaCI6CisgICAgICAgIGZ3LndyaXRlKCIjaW5jbHVkZSA8Z3J1Yi9j cnlwdG8uaD5cbiIpCisgICAgICAgIGZ3LndyaXRlKCJ0eXBlZGVmIGdjcnlfc2VsZnRlc3RfZnVu Y190IHNlbGZ0ZXN0X2Z1bmNfdDsiKQorICAgICAgICBmLmNsb3NlICgpCisgICAgICAgIGZ3LmNs b3NlICgpCisgICAgICAgIGNvbnRpbnVlCisKICAgICBpZiBzcmMgPT0gImcxMGxpYi5oIjoKLSAg ICAgICAgZncud3JpdGUgKGYucmVhZCAoKS5yZXBsYWNlICgiKHByaW50ZixmLGEpIiwgIihfX3By aW50Zl9fLGYsYSkiKSkKKyAgICAgICAgZncud3JpdGUoIiNpbmNsdWRlIDxjaXBoZXJfd3JhcC5o PlxuIikKKyAgICAgICAgZncud3JpdGUoIiNpbmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAg ICAgICAgZncud3JpdGUgKGYucmVhZCAoKS5yZXBsYWNlICgiKHByaW50ZixmLGEpIiwgIihfX3By aW50Zl9fLGYsYSkiKS5yZXBsYWNlICgiI2luY2x1ZGUgXCIuLi9jb21wYXQvbGliY29tcGF0Lmhc IiIsICIiKS5yZXBsYWNlKCIjZGVmaW5lIE5fKGEpIChhKSIsICIiKSkKICAgICAgICAgZi5jbG9z ZSAoKQogICAgICAgICBmdy5jbG9zZSAoKQogICAgICAgICBjb250aW51ZQpAQCAtNTQ2LDcgKzYy OCw3IEBAIGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGly LCAic3JjIikpKToKIAogZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9p biAoaW5kaXIsICJtcGkiKSkpOgogICAgIGlmIHNyYyA9PSAiY29uZmlnLmxpbmtzIiBvciBzcmMg PT0gIkNoYW5nZUxvZy0yMDExIiBcCi0gICAgICAgICAgICBvciBzcmMgPT0gIm1waS1zY2FuLmMi IG9yIHNyYyA9PSAiTWFuaWZlc3QiIFwKKyAgICAgICAgICAgIG9yIHNyYyA9PSAiTWFuaWZlc3Qi IFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAiTWFrZWZpbGUuYW0iOgogICAgICAgICBjb250aW51 ZQogICAgIGluZmlsZSA9IG9zLnBhdGguam9pbiAoaW5kaXIsICJtcGkiLCBzcmMpCkBAIC01Njgs MTcgKzY1MCwxNyBAQCBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2lu IChpbmRpciwgIm1waSIpKSk6CiAgICAgICAgICAgICBob2xkID0gRmFsc2UKICAgICAgICAgICAg ICMgV2UncmUgb3B0aW1pc2luZyBmb3Igc2l6ZSBhbmQgZXhjbHVkZSBhbnl0aGluZyBuZWVkaW5n IGdvb2QKICAgICAgICAgICAgICMgcmFuZG9tbmVzcy4KLSAgICAgICAgICAgIGlmIG5vdCByZS5t YXRjaCAoIihfZ2NyeV9tcGlfZ2V0X2h3X2NvbmZpZ3xnY3J5X21waV9yYW5kb21pemUpIiwgbGlu ZSkgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoIihfZ2NyeV9tcGlfZ2V0 X2h3X2NvbmZpZ3xnY3J5X21waV9yYW5kb21pemV8X2djcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5l KSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgY29u dGludWUKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZncud3JpdGUgKGhvbGRs aW5lKQotICAgICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3QgY2hhciggfClcKnx2b2lkKSAqJCIs IGxpbmUpCisgICAgICAgIG0gPSByZS5tYXRjaCAociIoY29uc3QgY2hhciggfClcKnx2b2lkKSAq JCIsIGxpbmUpCiAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBob2xkID0g VHJ1ZQogICAgICAgICAgICAgaG9sZGxpbmUgPSBsaW5lCiAgICAgICAgICAgICBjb250aW51ZQot ICAgICAgICBtID0gcmUubWF0Y2ggKCIjaW5jbHVkZSBcIm1vZC1zb3VyY2UtaW5mb1wuaFwiIiwg bGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNoIChyIiNpbmNsdWRlIFwibW9kLXNvdXJjZS1pbmZv XC5oXCIiLCBsaW5lKQogICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgY29u dGludWUKICAgICAgICAgZncud3JpdGUgKGxpbmUpCkBAIC02MTIsOSArNjk0LDYgQEAgZncud3Jp dGUgKCIjaW5jbHVkZSA8Y2lwaGVyX3dyYXAuaD5cbiIpCiBjaGxvZyA9ICIlcwkqIGcxMGxpYi5o OiBMaWtld2lzZS5cbiIgJSBjaGxvZwogZncuY2xvc2UgKCkKIAotaW5maWxlID0gb3MucGF0aC5q b2luIChjaXBoZXJfZGlyX2luLCAiQ2hhbmdlTG9nIikKLW91dGZpbGUgPSBvcy5wYXRoLmpvaW4g KGNpcGhlcl9kaXJfb3V0LCAiQ2hhbmdlTG9nIikKLQogY29uZi5jbG9zZSAoKTsKIAogaW5pdGZp bGUgPSBjb2RlY3Mub3BlbiAob3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgImluaXQuYyIp LCAidyIsICJ1dGYtOCIpCkBAIC02NDMsNyArNzIyLDcgQEAgY29uZnV0aWwud3JpdGUgKCJ9O1xu Iik7CiBjb25mdXRpbC5jbG9zZSAoKTsKIAogCi1mPWNvZGVjcy5vcGVuIChpbmZpbGUsICJyIiwg InV0Zi04IikKK291dGZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiQ2hhbmdl TG9nIikKIGZ3PWNvZGVjcy5vcGVuIChvdXRmaWxlLCAidyIsICJ1dGYtOCIpCiBkdCA9IGRhdGV0 aW1lLmRhdGUudG9kYXkgKCkKIGZ3LndyaXRlICgiJTA0ZC0lMDJkLSUwMmQgIEF1dG9tYXRpYyBp bXBvcnQgdG9vbFxuIiAlIFwKQEAgLTY1Myw3ICs3MzIsNCBAQCBmdy53cml0ZSAoIglJbXBvcnRl ZCBjaXBoZXJzIHRvIEdSVUJcbiIpCiBmdy53cml0ZSAoIlxuIikKIGZ3LndyaXRlIChjaGxvZykK IGZ3LndyaXRlICgiXG4iKQotZm9yIGxpbmUgaW4gZjoKLSAgICBmdy53cml0ZSAobGluZSkKLWYu Y2xvc2UgKCkKIGZ3LmNsb3NlICgpCmRpZmYgLS1naXQgYS91dGlsL2ltcG9ydF9nY3J5cHRfaW50 aC5zZWQgYi91dGlsL2ltcG9ydF9nY3J5cHRfaW50aC5zZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5lYmU5MzcxZWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsL2ltcG9y dF9nY3J5cHRfaW50aC5zZWQKQEAgLTAsMCArMSwxNyBAQAorL14jQElOU0VSVF9TWVNfU0VMRUNU X0hALyBkCisvXkBGQUxMQkFDS19TT0NLTEVOX1RALyBkCisvXiMgKmluY2x1ZGUgPHN0ZGxpYlwu aD4vIGQKKy9eIyAqaW5jbHVkZSA8c3RyaW5nXC5oPi8gZAorL14jICppbmNsdWRlIDx3aW5zb2Nr MlwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8d3MydGNwaXBcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHRp bWVcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHN5c1wvc29ja2V0XC5oPi8gZAorL14jICppbmNsdWRl IDxzeXNcL3RpbWVcLmg+LyBkCisvXiAgdHlwZWRlZiBsb25nIHNzaXplX3Q7LyBkCisvXiAgdHlw ZWRlZiBpbnQgIHBpZF90Oy8gZAorL14jICppbmNsdWRlIDxncGctZXJyb3JcLmg+LyBzLCNpbmNs dWRlIDxncGctZXJyb3IuaD4sI2luY2x1ZGUgPGdydWIvZ2NyeXB0L2dwZy1lcnJvci5oPiwKKy9e dHlwZWRlZiBncGdfZXJyb3JfdCBnY3J5X2Vycm9yX3Q7LyBkCisvXnR5cGVkZWYgZ3BnX2Vycl9j b2RlX3QgZ2NyeV9lcnJfY29kZV90Oy8gZAorL150eXBlZGVmIHN0cnVjdCBnY3J5X21waSBcKmdj cnlfbXBpX3Q7LyBkCisvXiNlcnJvciAgZ2NyeXB0LmggYWxyZWFkeSBpbmNsdWRlZC8gZAorcApk aWZmIC0tZ2l0IGEvdXRpbC9pbXBvcnRfZ2NyeXB0aC5zZWQgYi91dGlsL2ltcG9ydF9nY3J5cHRo LnNlZAppbmRleCBmZTZkMWEwNzIuLjUwM2I0YjU0NyAxMDA2NDQKLS0tIGEvdXRpbC9pbXBvcnRf Z2NyeXB0aC5zZWQKKysrIGIvdXRpbC9pbXBvcnRfZ2NyeXB0aC5zZWQKQEAgLTEzLDYgKzEzLDQg QEAKIC9edHlwZWRlZiBncGdfZXJyb3JfdCBnY3J5X2Vycm9yX3Q7LyBkCiAvXnR5cGVkZWYgZ3Bn X2Vycl9jb2RlX3QgZ2NyeV9lcnJfY29kZV90Oy8gZAogL150eXBlZGVmIHN0cnVjdCBnY3J5X21w aSBcKmdjcnlfbXBpX3Q7LyBkCi0vXnN0cnVjdCBnY3J5X3RocmVhZF9jYnMvIGQKLXMsX2djcnlf bXBpX2ludm0sZ2NyeV9tcGlfaW52bSxnCiBwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQot LSAKMi40OS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlz dHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK