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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 BE4A3EA4E18 for ; Mon, 2 Mar 2026 15:00:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:MIME-Version: Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lqE0LUYKlefzZ2WrK/GYmc2gv4x44JqzhZM2SCC3vGM=; b=AkjmPaGhXHJXLOI02PeTIcTcFZ QqkseRlsaUe7+aXXwzFZZGdeapfrcmYdV00xX3XyrRS7Jln0ILGdqkW/1CV4pSyq4TcA2Tgh319Gk q0GNC+2EwXC86moOygbRX6Z9SaZY20PQ1lOnogZZAJQSTEbLMaNvgeRJ0s75tBSCCDqCnzEzbFPLo MaTklHVO7EjbRVYC1OafYl2tOCRrd+uMQbJ1iw7QFMQ7ozwy1pxoYGNjhIpakp+y9/MC/HoVXcoB4 Sq4eQyeJb/jW3sDnDHKu3utQ91aEehvFdPLT1q/4tIe5eofqwiVYResj1D0KtRTzlIyQDOYWij0fN 8u5eqg7Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vx4lD-0000000DI0P-2q7D; Mon, 02 Mar 2026 15:00:39 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vx4lB-0000000DHyb-3ZJ4; Mon, 02 Mar 2026 15:00:38 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id ABF6860008; Mon, 2 Mar 2026 15:00:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA09CC19423; Mon, 2 Mar 2026 15:00:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772463636; bh=/dXsG+Gxy5JBRVKTXL1t4+H7LplNFkPtMtazuyb9Z4c=; h=Date:Subject:To:References:From:In-Reply-To:From; b=t/XuPEjcr8X3uOYACZYvZgA4b7BKLVsffoI8URupZIUL6wLyHfy6eTrtyHXwVZZ0Q udDxWmHLcZp8fTMKZfUDeE4Abyqh2gq+CLhN6251JXI52CsOe6TRIeK0ndgpOmJmok Lvbs6IIeFWInCAK61GWP+T8Fpwh05W9L17QFZr3Hv2B5XQCYfFoFjgn5MBEMErSCXY s1h7gHcYeanRH4K9WSyuHv7d2ZTdsE2Js2YEiB2tJ3IiIej1cyMOYeOddVucVmUC5p M9sFcDuHaLau+k1KYKqoYeWPxp2cTakZI1/KYUEcutf2V23P0pV6hejtdZi6mgi3I4 WtpYhZ2wOqJuQ== Message-ID: Date: Mon, 2 Mar 2026 16:00:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 4/5] uaccess: Disable -Wshadow in __scoped_user_access() To: david.laight.linux@gmail.com, Alexander Viro , Andre Almeida , Andrew Cooper , Christian Borntraeger , Christian Brauner , Darren Hart , Davidlohr Bueso , Heiko Carstens , Jan Kara , Julia Lawall , Linus Torvalds , linux-arm-kernel@lists.infradead.org, linux-fsdevel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, LKML , Madhavan Srinivasan , Mathieu Desnoyers , Michael Ellerman , Nicholas Piggin , Nicolas Palix , Palmer Dabbelt , Paul Walmsley , Peter Zijlstra , Russell King , Sven Schnelle , Thomas Gleixner , x86@kernel.org, Kees Cook , akpm@linux-foundation.org References: <20260302132755.1475451-1-david.laight.linux@gmail.com> <20260302132755.1475451-5-david.laight.linux@gmail.com> Content-Language: fr-FR From: "Christophe Leroy (CS GROUP)" In-Reply-To: <20260302132755.1475451-5-david.laight.linux@gmail.com> X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org CgpMZSAwMi8wMy8yMDI2IMOgIDE0OjI3LCBkYXZpZC5sYWlnaHQubGludXhAZ21haWwuY29tIGEg w6ljcml0wqA6Cj4gRnJvbTogRGF2aWQgTGFpZ2h0IDxkYXZpZC5sYWlnaHQubGludXhAZ21haWwu Y29tPgo+IAo+IC1Xc2hhZG93IGlzIGVuYWJsZWQgYnkgVz0yIGJ1aWxkcyBhbmQgX19zY29wZWRf dXNlcl9hY2Nlc3MoKSBxdWl0ZQo+IGRlbGliZXJhdGVseSBjcmVhdGVzIGEgJ2NvbnN0JyBzaGFk b3cgb2YgdGhlICd1c2VyJyBhZGRyZXNzIHRoYXQKPiByZWZlcmVuY2VzIGEgJ2d1YXJkIHBhZ2Un IHdoZW4gdGhlIGFwcGxpY2F0aW9uIHBhc3NlcyBhIGtlcm5lbCBwb2ludGVyLgo+IAo+IFNpZ25l ZC1vZmYtYnk6IERhdmlkIExhaWdodCA8ZGF2aWQubGFpZ2h0LmxpbnV4QGdtYWlsLmNvbT4KClRo ZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoaXMgcGF0Y2g6CgogICBERVNDRU5EIG9ianRvb2wKICAg SU5TVEFMTCBsaWJzdWJjbWRfaGVhZGVycwogICBDQUxMICAgIHNjcmlwdHMvY2hlY2tzeXNjYWxs cy5zaAogICBDQyAgICAgIGtlcm5lbC9mdXRleC9jb3JlLm8KSW4gZmlsZSBpbmNsdWRlZCBmcm9t IC4vaW5jbHVkZS9hc20tZ2VuZXJpYy9kaXY2NC5oOjI3LAogICAgICAgICAgICAgICAgICBmcm9t IC4vYXJjaC9wb3dlcnBjL2luY2x1ZGUvZ2VuZXJhdGVkL2FzbS9kaXY2NC5oOjEsCiAgICAgICAg ICAgICAgICAgIGZyb20gLi9pbmNsdWRlL2xpbnV4L21hdGguaDo2LAogICAgICAgICAgICAgICAg ICBmcm9tIC4vaW5jbHVkZS9saW51eC9tYXRoNjQuaDo2LAogICAgICAgICAgICAgICAgICBmcm9t IC4vaW5jbHVkZS9saW51eC90aW1lLmg6NiwKICAgICAgICAgICAgICAgICAgZnJvbSAuL2luY2x1 ZGUvbGludXgvY29tcGF0Lmg6MTAsCiAgICAgICAgICAgICAgICAgIGZyb20ga2VybmVsL2Z1dGV4 L2NvcmUuYzozNDoKa2VybmVsL2Z1dGV4L2Z1dGV4Lmg6IEluIGZ1bmN0aW9uICdmdXRleF9nZXRf dmFsdWVfbG9ja2VkJzoKLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3NDA6MjA6IHdhcm5pbmc6 IHVudXNlZCB2YXJpYWJsZSAnX3RtcHB0cicgClstV3VudXNlZC12YXJpYWJsZV0KICAgNzQwIHwg ICAgICAgICB3aXRoIChhdXRvIF90bXBwdHIgPSBfX3Njb3BlZF91c2VyX2FjY2Vzc19iZWdpbiht b2RlLCAKdXB0ciwgc2l6ZSwgZWxibCkpICAgICAgICBcCiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICBefn5+fn5+Ci4vaW5jbHVkZS9saW51eC9jb21waWxlci5oOjM5NjoxNDogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyAnYW5kX3dpdGgnCiAgIDM5NiB8ICAgICAgICAgZm9yIChkZWNs YXJhdGlvbjsgIV93aXRoX2RvbmU7IF93aXRoX2RvbmUgPSB0cnVlKQogICAgICAgfCAgICAgICAg ICAgICAgXn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3NDA6OTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvICd3aXRoJwogICA3NDAgfCAgICAgICAgIHdpdGggKGF1dG8g X3RtcHB0ciA9IF9fc2NvcGVkX3VzZXJfYWNjZXNzX2JlZ2luKG1vZGUsIAp1cHRyLCBzaXplLCBl bGJsKSkgICAgICAgIFwKICAgICAgIHwgICAgICAgICBefn5+Ci4vaW5jbHVkZS9saW51eC91YWNj ZXNzLmg6NzU1Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJf YWNjZXNzJwogICA3NTUgfCAgICAgICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMs IHNpemUsIGVsYmwpCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNs dWRlL2xpbnV4L3VhY2Nlc3MuaDo3Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAon c2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNl cl9yZWFkX2FjY2Vzc19zaXplKHVzcmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNj ZXNzLmg6ODMxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3Jl YWRfYWNjZXNzJwogICA4MzEgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBz cmMsIGVmYXVsdCkgICAgICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Cmtlcm5lbC9mdXRleC9mdXRleC5oOjI4ODoxNjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvICdnZXRfdXNlcl9pbmxpbmUnCiAgIDI4OCB8ICAgICAgICAgcmV0dXJuIGdl dF91c2VyX2lubGluZSgqZGVzdCwgZnJvbSk7CiAgICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6OTogd2FybmluZzogdGhp cyAnZm9yJyBjbGF1c2UgZG9lcyBub3QgCmd1YXJkLi4uIFstV21pc2xlYWRpbmctaW5kZW50YXRp b25dCiAgIDM5NiB8ICAgICAgICAgZm9yIChkZWNsYXJhdGlvbjsgIV93aXRoX2RvbmU7IF93aXRo X2RvbmUgPSB0cnVlKQogICAgICAgfCAgICAgICAgIF5+fgouL2luY2x1ZGUvbGludXgvY29tcGls ZXIuaDozOTQ6MTc6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnYW5kX3dpdGgnCiAgIDM5 NCB8ICAgICAgICAgICAgICAgICBhbmRfd2l0aCAoZGVjbGFyYXRpb24pCiAgICAgICB8ICAgICAg ICAgICAgICAgICBefn5+fn5+fgouL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5oOjc0MDo5OiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ3dpdGgnCiAgIDc0MCB8ICAgICAgICAgd2l0aCAoYXV0 byBfdG1wcHRyID0gX19zY29wZWRfdXNlcl9hY2Nlc3NfYmVnaW4obW9kZSwgCnVwdHIsIHNpemUs IGVsYmwpKSAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn4KLi9pbmNsdWRlL2xpbnV4L3Vh Y2Nlc3MuaDo3NTU6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonX19zY29wZWRfdXNl cl9hY2Nlc3MnCiAgIDc1NSB8ICAgICAgICAgX19zY29wZWRfdXNlcl9hY2Nlc3MocmVhZCwgdXNy Yywgc2l6ZSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgouL2lu Y2x1ZGUvbGludXgvdWFjY2Vzcy5oOjc2Nzo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g CidzY29wZWRfdXNlcl9yZWFkX2FjY2Vzc19zaXplJwogICA3NjcgfCAgICAgICAgIHNjb3BlZF91 c2VyX3JlYWRfYWNjZXNzX3NpemUodXNyYywgc2l6ZW9mKCoodXNyYykpLCBlbGJsKQogICAgICAg fCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3Vh Y2Nlc3MuaDo4MzE6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJf cmVhZF9hY2Nlc3MnCiAgIDgzMSB8ICAgICAgICAgc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3MoX3Rt cHNyYywgZWZhdWx0KSAgICAgICAgICAgICAgICBcCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4Ka2VybmVsL2Z1dGV4L2Z1dGV4Lmg6Mjg4OjE2OiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8gJ2dldF91c2VyX2lubGluZScKICAgMjg4IHwgICAgICAgICByZXR1cm4g Z2V0X3VzZXJfaW5saW5lKCpkZXN0LCBmcm9tKTsKICAgICAgIHwgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLy4vaW5jbHVkZS9saW51eC9jb21w aWxlcl90eXBlcy5oOjE3MywKICAgICAgICAgICAgICAgICAgZnJvbSA8Y29tbWFuZC1saW5lPjoK Li9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYy5oOjExODozMzogbm90ZTogLi4udGhpcyBzdGF0 ZW1lbnQsIGJ1dCB0aGUgCmxhdHRlciBpcyBtaXNsZWFkaW5nbHkgaW5kZW50ZWQgYXMgaWYgaXQg d2VyZSBndWFyZGVkIGJ5IHRoZSAnZm9yJwogICAxMTggfCAjZGVmaW5lIF9fZGlhZyhzKSAgICAg ICAgICAgICAgIF9QcmFnbWEoX19kaWFnX3N0cihHQ0MgCmRpYWdub3N0aWMgcykpCiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgouL2luY2x1ZGUvbGludXgv Y29tcGlsZXItZ2NjLmg6MTI5Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnX19kaWFn JwogICAxMjkgfCAgICAgICAgIF9fZGlhZyhfX2RpYWdfR0NDX2lnbm9yZSBvcHRpb24pCiAgICAg ICB8ICAgICAgICAgXn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzQyOjMxOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidfX2RpYWdfaWdub3JlX2FsbCcKICAgNzQyIHwgICAg ICAgICAgICAgICAgIF9fZGlhZ19wdXNoKCkgX19kaWFnX2lnbm9yZV9hbGwoIi1Xc2hhZG93Iiwg CiJ1cHRyIGlzIHJlYWRvbmx5IGNvcHkiKSAgICBcCiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6 NzU1Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNjZXNz JwogICA3NTUgfCAgICAgICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNpemUs IGVsYmwpCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xp bnV4L3VhY2Nlc3MuaDo3Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVk X3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9yZWFk X2FjY2Vzc19zaXplKHVzcmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6 ODMxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRfYWNj ZXNzJwogICA4MzEgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMsIGVm YXVsdCkgICAgICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Cmtlcm5lbC9mdXRleC9mdXRleC5oOjI4ODoxNjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvICdnZXRfdXNlcl9pbmxpbmUnCiAgIDI4OCB8ICAgICAgICAgcmV0dXJuIGdldF91c2Vy X2lubGluZSgqZGVzdCwgZnJvbSk7CiAgICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2FzbS1nZW5lcmljL2RpdjY0Lmg6 MjcsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9nZW5lcmF0 ZWQvYXNtL2RpdjY0Lmg6MSwKICAgICAgICAgICAgICAgICAgZnJvbSAuL2luY2x1ZGUvbGludXgv bWF0aC5oOjYsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5o OjYsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9pbmNsdWRlL2xpbnV4L3RpbWUuaDo2LAogICAg ICAgICAgICAgICAgICBmcm9tIC4vaW5jbHVkZS9saW51eC9jb21wYXQuaDoxMCwKICAgICAgICAg ICAgICAgICAgZnJvbSBrZXJuZWwvZnV0ZXgvY29yZS5jOjM0OgouL2luY2x1ZGUvbGludXgvdWFj Y2Vzcy5oOjc0Mzo5MDogZXJyb3I6ICdfdG1wcHRyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgCmlu IHRoaXMgZnVuY3Rpb24pCiAgIDc0MyB8ICAgICAgICAgICAgICAgICBhbmRfd2l0aCAoY29uc3Qg YXV0byB1cHRyIApfX2NsZWFudXAoX19zY29wZWRfdXNlcl8jI21vZGUjI19hY2Nlc3NfZW5kKSA9 IF90bXBwdHIpIFwKICAgICAgIHwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgou L2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6MTQ6IG5vdGU6IGluIGRlZmluaXRpb24gb2Yg bWFjcm8gJ2FuZF93aXRoJwogICAzOTYgfCAgICAgICAgIGZvciAoZGVjbGFyYXRpb247ICFfd2l0 aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAgICAgIHwgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzU1Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNjZXNzJwogICA3NTUgfCAgICAgICAgIF9fc2NvcGVk X3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNpemUsIGVsYmwpCiAgICAgICB8ICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3Njc6OTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZScKICAg NzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9yZWFkX2FjY2Vzc19zaXplKHVzcmMsIHNpemVvZigq KHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6ODMxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRfYWNjZXNzJwogICA4MzEgfCAgICAgICAgIHNjb3Bl ZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMsIGVmYXVsdCkgICAgICAgICAgICAgICAgXAogICAg ICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cmtlcm5lbC9mdXRleC9mdXRleC5o OjI4ODoxNjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdnZXRfdXNlcl9pbmxpbmUnCiAg IDI4OCB8ICAgICAgICAgcmV0dXJuIGdldF91c2VyX2lubGluZSgqZGVzdCwgZnJvbSk7CiAgICAg ICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgouL2luY2x1ZGUvbGludXgvdWFjY2Vz cy5oOjc0Mzo5MDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgCnJlcG9ydGVk IG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCiAgIDc0MyB8ICAgICAg ICAgICAgICAgICBhbmRfd2l0aCAoY29uc3QgYXV0byB1cHRyIApfX2NsZWFudXAoX19zY29wZWRf dXNlcl8jI21vZGUjI19hY2Nlc3NfZW5kKSA9IF90bXBwdHIpIFwKICAgICAgIHwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6 MTQ6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ2FuZF93aXRoJwogICAzOTYgfCAgICAg ICAgIGZvciAoZGVjbGFyYXRpb247ICFfd2l0aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAg ICAgIHwgICAgICAgICAgICAgIF5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6 NzU1Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNjZXNz JwogICA3NTUgfCAgICAgICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNpemUs IGVsYmwpCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xp bnV4L3VhY2Nlc3MuaDo3Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVk X3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9yZWFk X2FjY2Vzc19zaXplKHVzcmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6 ODMxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRfYWNj ZXNzJwogICA4MzEgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMsIGVm YXVsdCkgICAgICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Cmtlcm5lbC9mdXRleC9mdXRleC5oOjI4ODoxNjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvICdnZXRfdXNlcl9pbmxpbmUnCiAgIDI4OCB8ICAgICAgICAgcmV0dXJuIGdldF91c2Vy X2lubGluZSgqZGVzdCwgZnJvbSk7CiAgICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6Mjg6IGVycm9yOiAnX3dpdGhfZG9u ZScgdW5kZWNsYXJlZCAoZmlyc3QgCnVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAzOTYgfCAgICAg ICAgIGZvciAoZGVjbGFyYXRpb247ICFfd2l0aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgouL2luY2x1ZGUvbGlu dXgvdWFjY2Vzcy5oOjc0MzoxNzogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdhbmRfd2l0 aCcKICAgNzQzIHwgICAgICAgICAgICAgICAgIGFuZF93aXRoIChjb25zdCBhdXRvIHVwdHIgCl9f Y2xlYW51cChfX3Njb3BlZF91c2VyXyMjbW9kZSMjX2FjY2Vzc19lbmQpID0gX3RtcHB0cikgXAog ICAgICAgfCAgICAgICAgICAgICAgICAgXn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aDo3NTU6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonX19zY29wZWRfdXNlcl9hY2Nl c3MnCiAgIDc1NSB8ICAgICAgICAgX19zY29wZWRfdXNlcl9hY2Nlc3MocmVhZCwgdXNyYywgc2l6 ZSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgouL2luY2x1ZGUv bGludXgvdWFjY2Vzcy5oOjc2Nzo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidzY29w ZWRfdXNlcl9yZWFkX2FjY2Vzc19zaXplJwogICA3NjcgfCAgICAgICAgIHNjb3BlZF91c2VyX3Jl YWRfYWNjZXNzX3NpemUodXNyYywgc2l6ZW9mKCoodXNyYykpLCBlbGJsKQogICAgICAgfCAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aDo4MzE6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVhZF9h Y2Nlc3MnCiAgIDgzMSB8ICAgICAgICAgc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3MoX3RtcHNyYywg ZWZhdWx0KSAgICAgICAgICAgICAgICBcCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Ka2VybmVsL2Z1dGV4L2Z1dGV4Lmg6Mjg4OjE2OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8gJ2dldF91c2VyX2lubGluZScKICAgMjg4IHwgICAgICAgICByZXR1cm4gZ2V0X3Vz ZXJfaW5saW5lKCpkZXN0LCBmcm9tKTsKICAgICAgIHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+Cmtlcm5lbC9mdXRleC9jb3JlLmM6IEluIGZ1bmN0aW9uICdnZXRfZnV0ZXhfa2V5JzoK Li9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3NDA6MjA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJs ZSAnX3RtcHB0cicgClstV3VudXNlZC12YXJpYWJsZV0KICAgNzQwIHwgICAgICAgICB3aXRoIChh dXRvIF90bXBwdHIgPSBfX3Njb3BlZF91c2VyX2FjY2Vzc19iZWdpbihtb2RlLCAKdXB0ciwgc2l6 ZSwgZWxibCkpICAgICAgICBcCiAgICAgICB8ICAgICAgICAgICAgICAgICAgICBefn5+fn5+Ci4v aW5jbHVkZS9saW51eC9jb21waWxlci5oOjM5NjoxNDogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyAnYW5kX3dpdGgnCiAgIDM5NiB8ICAgICAgICAgZm9yIChkZWNsYXJhdGlvbjsgIV93aXRo X2RvbmU7IF93aXRoX2RvbmUgPSB0cnVlKQogICAgICAgfCAgICAgICAgICAgICAgXn5+fn5+fn5+ fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3NDA6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvICd3aXRoJwogICA3NDAgfCAgICAgICAgIHdpdGggKGF1dG8gX3RtcHB0ciA9IF9fc2Nv cGVkX3VzZXJfYWNjZXNzX2JlZ2luKG1vZGUsIAp1cHRyLCBzaXplLCBlbGJsKSkgICAgICAgIFwK ICAgICAgIHwgICAgICAgICBefn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzU1Ojk6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNjZXNzJwogICA3NTUg fCAgICAgICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNpemUsIGVsYmwpCiAg ICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nl c3MuaDo3Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVh ZF9hY2Nlc3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9yZWFkX2FjY2Vzc19z aXplKHVzcmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6ODMxOjk6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRfYWNjZXNzJwogICA4 MzEgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMsIGVmYXVsdCkgICAg ICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cmtl cm5lbC9mdXRleC9jb3JlLmM6NTg0OjIxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2dl dF91c2VyX2lubGluZScKICAgNTg0IHwgICAgICAgICAgICAgICAgIGlmIChnZXRfdXNlcl9pbmxp bmUobm9kZSwgbmFkZHIpKQogICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6OTogd2FybmluZzogdGhpcyAnZm9y JyBjbGF1c2UgZG9lcyBub3QgCmd1YXJkLi4uIFstV21pc2xlYWRpbmctaW5kZW50YXRpb25dCiAg IDM5NiB8ICAgICAgICAgZm9yIChkZWNsYXJhdGlvbjsgIV93aXRoX2RvbmU7IF93aXRoX2RvbmUg PSB0cnVlKQogICAgICAgfCAgICAgICAgIF5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDoz OTQ6MTc6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnYW5kX3dpdGgnCiAgIDM5NCB8ICAg ICAgICAgICAgICAgICBhbmRfd2l0aCAoZGVjbGFyYXRpb24pCiAgICAgICB8ICAgICAgICAgICAg ICAgICBefn5+fn5+fgouL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5oOjc0MDo5OiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8gJ3dpdGgnCiAgIDc0MCB8ICAgICAgICAgd2l0aCAoYXV0byBfdG1w cHRyID0gX19zY29wZWRfdXNlcl9hY2Nlc3NfYmVnaW4obW9kZSwgCnVwdHIsIHNpemUsIGVsYmwp KSAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aDo3NTU6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonX19zY29wZWRfdXNlcl9hY2Nl c3MnCiAgIDc1NSB8ICAgICAgICAgX19zY29wZWRfdXNlcl9hY2Nlc3MocmVhZCwgdXNyYywgc2l6 ZSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgouL2luY2x1ZGUv bGludXgvdWFjY2Vzcy5oOjc2Nzo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidzY29w ZWRfdXNlcl9yZWFkX2FjY2Vzc19zaXplJwogICA3NjcgfCAgICAgICAgIHNjb3BlZF91c2VyX3Jl YWRfYWNjZXNzX3NpemUodXNyYywgc2l6ZW9mKCoodXNyYykpLCBlbGJsKQogICAgICAgfCAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aDo4MzE6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVhZF9h Y2Nlc3MnCiAgIDgzMSB8ICAgICAgICAgc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3MoX3RtcHNyYywg ZWZhdWx0KSAgICAgICAgICAgICAgICBcCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Ka2VybmVsL2Z1dGV4L2NvcmUuYzo1ODQ6MjE6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAnZ2V0X3VzZXJfaW5saW5lJwogICA1ODQgfCAgICAgICAgICAgICAgICAgaWYgKGdl dF91c2VyX2lubGluZShub2RlLCBuYWRkcikpCiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLy4vaW5jbHVkZS9saW51eC9j b21waWxlcl90eXBlcy5oOjE3MywKICAgICAgICAgICAgICAgICAgZnJvbSA8Y29tbWFuZC1saW5l PjoKLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYy5oOjExODozMzogbm90ZTogLi4udGhpcyBz dGF0ZW1lbnQsIGJ1dCB0aGUgCmxhdHRlciBpcyBtaXNsZWFkaW5nbHkgaW5kZW50ZWQgYXMgaWYg aXQgd2VyZSBndWFyZGVkIGJ5IHRoZSAnZm9yJwogICAxMTggfCAjZGVmaW5lIF9fZGlhZyhzKSAg ICAgICAgICAgICAgIF9QcmFnbWEoX19kaWFnX3N0cihHQ0MgCmRpYWdub3N0aWMgcykpCiAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgouL2luY2x1ZGUvbGlu dXgvY29tcGlsZXItZ2NjLmg6MTI5Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnX19k aWFnJwogICAxMjkgfCAgICAgICAgIF9fZGlhZyhfX2RpYWdfR0NDX2lnbm9yZSBvcHRpb24pCiAg ICAgICB8ICAgICAgICAgXn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzQyOjMxOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidfX2RpYWdfaWdub3JlX2FsbCcKICAgNzQyIHwg ICAgICAgICAgICAgICAgIF9fZGlhZ19wdXNoKCkgX19kaWFnX2lnbm9yZV9hbGwoIi1Xc2hhZG93 IiwgCiJ1cHRyIGlzIHJlYWRvbmx5IGNvcHkiKSAgICBcCiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNz Lmg6NzU1Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNj ZXNzJwogICA3NTUgfCAgICAgICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNp emUsIGVsYmwpCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRl L2xpbnV4L3VhY2Nlc3MuaDo3Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2Nv cGVkX3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9y ZWFkX2FjY2Vzc19zaXplKHVzcmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNz Lmg6ODMxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRf YWNjZXNzJwogICA4MzEgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMs IGVmYXVsdCkgICAgICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Cmtlcm5lbC9mdXRleC9jb3JlLmM6NTg0OjIxOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8gJ2dldF91c2VyX2lubGluZScKICAgNTg0IHwgICAgICAgICAgICAgICAgIGlmIChn ZXRfdXNlcl9pbmxpbmUobm9kZSwgbmFkZHIpKQogICAgICAgfCAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9pbmNsdWRlL2FzbS1nZW5l cmljL2RpdjY0Lmg6MjcsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9hcmNoL3Bvd2VycGMvaW5j bHVkZS9nZW5lcmF0ZWQvYXNtL2RpdjY0Lmg6MSwKICAgICAgICAgICAgICAgICAgZnJvbSAuL2lu Y2x1ZGUvbGludXgvbWF0aC5oOjYsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9pbmNsdWRlL2xp bnV4L21hdGg2NC5oOjYsCiAgICAgICAgICAgICAgICAgIGZyb20gLi9pbmNsdWRlL2xpbnV4L3Rp bWUuaDo2LAogICAgICAgICAgICAgICAgICBmcm9tIC4vaW5jbHVkZS9saW51eC9jb21wYXQuaDox MCwKICAgICAgICAgICAgICAgICAgZnJvbSBrZXJuZWwvZnV0ZXgvY29yZS5jOjM0OgouL2luY2x1 ZGUvbGludXgvdWFjY2Vzcy5oOjc0Mzo5MDogZXJyb3I6ICdfdG1wcHRyJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgCmluIHRoaXMgZnVuY3Rpb24pCiAgIDc0MyB8ICAgICAgICAgICAgICAgICBhbmRf d2l0aCAoY29uc3QgYXV0byB1cHRyIApfX2NsZWFudXAoX19zY29wZWRfdXNlcl8jI21vZGUjI19h Y2Nlc3NfZW5kKSA9IF90bXBwdHIpIFwKICAgICAgIHwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6MTQ6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8gJ2FuZF93aXRoJwogICAzOTYgfCAgICAgICAgIGZvciAoZGVjbGFy YXRpb247ICFfd2l0aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAgICAgIHwgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzU1Ojk6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyAKJ19fc2NvcGVkX3VzZXJfYWNjZXNzJwogICA3NTUgfCAgICAg ICAgIF9fc2NvcGVkX3VzZXJfYWNjZXNzKHJlYWQsIHVzcmMsIHNpemUsIGVsYmwpCiAgICAgICB8 ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3 Njc6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVhZF9hY2Nl c3Nfc2l6ZScKICAgNzY3IHwgICAgICAgICBzY29wZWRfdXNlcl9yZWFkX2FjY2Vzc19zaXplKHVz cmMsIHNpemVvZigqKHVzcmMpKSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6ODMxOjk6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3JlYWRfYWNjZXNzJwogICA4MzEgfCAg ICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNjZXNzKF90bXBzcmMsIGVmYXVsdCkgICAgICAgICAg ICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cmtlcm5lbC9m dXRleC9jb3JlLmM6NTg0OjIxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2dldF91c2Vy X2lubGluZScKICAgNTg0IHwgICAgICAgICAgICAgICAgIGlmIChnZXRfdXNlcl9pbmxpbmUobm9k ZSwgbmFkZHIpKQogICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgou L2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6Mjg6IGVycm9yOiAnX3dpdGhfZG9uZScgdW5k ZWNsYXJlZCAoZmlyc3QgCnVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAzOTYgfCAgICAgICAgIGZv ciAoZGVjbGFyYXRpb247ICFfd2l0aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgouL2luY2x1ZGUvbGludXgvdWFj Y2Vzcy5oOjc0MzoxNzogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdhbmRfd2l0aCcKICAg NzQzIHwgICAgICAgICAgICAgICAgIGFuZF93aXRoIChjb25zdCBhdXRvIHVwdHIgCl9fY2xlYW51 cChfX3Njb3BlZF91c2VyXyMjbW9kZSMjX2FjY2Vzc19lbmQpID0gX3RtcHB0cikgXAogICAgICAg fCAgICAgICAgICAgICAgICAgXn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3NTU6 OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonX19zY29wZWRfdXNlcl9hY2Nlc3MnCiAg IDc1NSB8ICAgICAgICAgX19zY29wZWRfdXNlcl9hY2Nlc3MocmVhZCwgdXNyYywgc2l6ZSwgZWxi bCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgouL2luY2x1ZGUvbGludXgv dWFjY2Vzcy5oOjc2Nzo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidzY29wZWRfdXNl cl9yZWFkX2FjY2Vzc19zaXplJwogICA3NjcgfCAgICAgICAgIHNjb3BlZF91c2VyX3JlYWRfYWNj ZXNzX3NpemUodXNyYywgc2l6ZW9mKCoodXNyYykpLCBlbGJsKQogICAgICAgfCAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo4MzE6 OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3Mn CiAgIDgzMSB8ICAgICAgICAgc2NvcGVkX3VzZXJfcmVhZF9hY2Nlc3MoX3RtcHNyYywgZWZhdWx0 KSAgICAgICAgICAgICAgICBcCiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4Ka2VybmVsL2Z1dGV4L2NvcmUuYzo1ODQ6MjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byAnZ2V0X3VzZXJfaW5saW5lJwogICA1ODQgfCAgICAgICAgICAgICAgICAgaWYgKGdldF91c2Vy X2lubGluZShub2RlLCBuYWRkcikpCiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzQwOjIwOiB3YXJuaW5nOiB1bnVz ZWQgdmFyaWFibGUgJ190bXBwdHInIApbLVd1bnVzZWQtdmFyaWFibGVdCiAgIDc0MCB8ICAgICAg ICAgd2l0aCAoYXV0byBfdG1wcHRyID0gX19zY29wZWRfdXNlcl9hY2Nlc3NfYmVnaW4obW9kZSwg CnVwdHIsIHNpemUsIGVsYmwpKSAgICAgICAgXAogICAgICAgfCAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6MTQ6IG5vdGU6IGluIGRlZmlu aXRpb24gb2YgbWFjcm8gJ2FuZF93aXRoJwogICAzOTYgfCAgICAgICAgIGZvciAoZGVjbGFyYXRp b247ICFfd2l0aF9kb25lOyBfd2l0aF9kb25lID0gdHJ1ZSkKICAgICAgIHwgICAgICAgICAgICAg IF5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6NzQwOjk6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyAnd2l0aCcKICAgNzQwIHwgICAgICAgICB3aXRoIChhdXRvIF90bXBw dHIgPSBfX3Njb3BlZF91c2VyX2FjY2Vzc19iZWdpbihtb2RlLCAKdXB0ciwgc2l6ZSwgZWxibCkp ICAgICAgICBcCiAgICAgICB8ICAgICAgICAgXn5+fgouL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5o Ojc3ODo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidfX3Njb3BlZF91c2VyX2FjY2Vz cycKICAgNzc4IHwgICAgICAgICBfX3Njb3BlZF91c2VyX2FjY2Vzcyh3cml0ZSwgdWRzdCwgc2l6 ZSwgZWxibCkKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgouL2luY2x1ZGUv bGludXgvdWFjY2Vzcy5oOjc5MDo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gCidzY29w ZWRfdXNlcl93cml0ZV9hY2Nlc3Nfc2l6ZScKICAgNzkwIHwgICAgICAgICBzY29wZWRfdXNlcl93 cml0ZV9hY2Nlc3Nfc2l6ZSh1ZHN0LCBzaXplb2YoKih1ZHN0KSksIGVsYmwpCiAgICAgICB8ICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nl c3MuaDo4NTY6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfd3Jp dGVfYWNjZXNzJwogICA4NTYgfCAgICAgICAgIHNjb3BlZF91c2VyX3dyaXRlX2FjY2VzcyhfdG1w ZHN0LCBlZmF1bHQpICAgICAgICAgICAgICAgXAogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgprZXJuZWwvZnV0ZXgvY29yZS5jOjYwNDozNzogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvICdwdXRfdXNlcl9pbmxpbmUnCiAgIDYwNCB8ICAgICAgICAgICAgICAgICBp ZiAobm9kZV91cGRhdGVkICYmIHB1dF91c2VyX2lubGluZShub2RlLCBuYWRkcikpCiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgouL2lu Y2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTY6OTogd2FybmluZzogdGhpcyAnZm9yJyBjbGF1c2Ug ZG9lcyBub3QgCmd1YXJkLi4uIFstV21pc2xlYWRpbmctaW5kZW50YXRpb25dCiAgIDM5NiB8ICAg ICAgICAgZm9yIChkZWNsYXJhdGlvbjsgIV93aXRoX2RvbmU7IF93aXRoX2RvbmUgPSB0cnVlKQog ICAgICAgfCAgICAgICAgIF5+fgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaDozOTQ6MTc6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnYW5kX3dpdGgnCiAgIDM5NCB8ICAgICAgICAgICAg ICAgICBhbmRfd2l0aCAoZGVjbGFyYXRpb24pCiAgICAgICB8ICAgICAgICAgICAgICAgICBefn5+ fn5+fgouL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5oOjc0MDo5OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8gJ3dpdGgnCiAgIDc0MCB8ICAgICAgICAgd2l0aCAoYXV0byBfdG1wcHRyID0gX19z Y29wZWRfdXNlcl9hY2Nlc3NfYmVnaW4obW9kZSwgCnVwdHIsIHNpemUsIGVsYmwpKSAgICAgICAg XAogICAgICAgfCAgICAgICAgIF5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3Nzg6OTog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonX19zY29wZWRfdXNlcl9hY2Nlc3MnCiAgIDc3 OCB8ICAgICAgICAgX19zY29wZWRfdXNlcl9hY2Nlc3Mod3JpdGUsIHVkc3QsIHNpemUsIGVsYmwp CiAgICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3Vh Y2Nlc3MuaDo3OTA6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJf d3JpdGVfYWNjZXNzX3NpemUnCiAgIDc5MCB8ICAgICAgICAgc2NvcGVkX3VzZXJfd3JpdGVfYWNj ZXNzX3NpemUodWRzdCwgc2l6ZW9mKCoodWRzdCkpLCBlbGJsKQogICAgICAgfCAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6ODU2 Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3dyaXRlX2FjY2Vz cycKICAgODU2IHwgICAgICAgICBzY29wZWRfdXNlcl93cml0ZV9hY2Nlc3MoX3RtcGRzdCwgZWZh dWx0KSAgICAgICAgICAgICAgIFwKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4Ka2VybmVsL2Z1dGV4L2NvcmUuYzo2MDQ6Mzc6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyAncHV0X3VzZXJfaW5saW5lJwogICA2MDQgfCAgICAgICAgICAgICAgICAgaWYgKG5vZGVf dXBkYXRlZCAmJiBwdXRfdXNlcl9pbmxpbmUobm9kZSwgbmFkZHIpKQogICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNs dWRlZCBmcm9tIC4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmg6MTczLAogICAgICAg ICAgICAgICAgICBmcm9tIDxjb21tYW5kLWxpbmU+OgouL2luY2x1ZGUvbGludXgvY29tcGlsZXIt Z2NjLmg6MTE4OjMzOiBub3RlOiAuLi50aGlzIHN0YXRlbWVudCwgYnV0IHRoZSAKbGF0dGVyIGlz IG1pc2xlYWRpbmdseSBpbmRlbnRlZCBhcyBpZiBpdCB3ZXJlIGd1YXJkZWQgYnkgdGhlICdmb3In CiAgIDExOCB8ICNkZWZpbmUgX19kaWFnKHMpICAgICAgICAgICAgICAgX1ByYWdtYShfX2RpYWdf c3RyKEdDQyAKZGlhZ25vc3RpYyBzKSkKICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+Ci4vaW5jbHVkZS9saW51eC9jb21waWxlci1nY2MuaDoxMjk6OTogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdfX2RpYWcnCiAgIDEyOSB8ICAgICAgICAgX19kaWFn KF9fZGlhZ19HQ0NfaWdub3JlIG9wdGlvbikKICAgICAgIHwgICAgICAgICBefn5+fn4KLi9pbmNs dWRlL2xpbnV4L3VhY2Nlc3MuaDo3NDI6MzE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAK J19fZGlhZ19pZ25vcmVfYWxsJwogICA3NDIgfCAgICAgICAgICAgICAgICAgX19kaWFnX3B1c2go KSBfX2RpYWdfaWdub3JlX2FsbCgiLVdzaGFkb3ciLCAKInVwdHIgaXMgcmVhZG9ubHkgY29weSIp ICAgIFwKICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3Nzg6OTogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIAonX19zY29wZWRfdXNlcl9hY2Nlc3MnCiAgIDc3OCB8ICAgICAgICAgX19zY29w ZWRfdXNlcl9hY2Nlc3Mod3JpdGUsIHVkc3QsIHNpemUsIGVsYmwpCiAgICAgICB8ICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDo3OTA6OTogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIAonc2NvcGVkX3VzZXJfd3JpdGVfYWNjZXNzX3NpemUn CiAgIDc5MCB8ICAgICAgICAgc2NvcGVkX3VzZXJfd3JpdGVfYWNjZXNzX3NpemUodWRzdCwgc2l6 ZW9mKCoodWRzdCkpLCBlbGJsKQogICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Ci4vaW5jbHVkZS9saW51eC91YWNjZXNzLmg6ODU2Ojk6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyAKJ3Njb3BlZF91c2VyX3dyaXRlX2FjY2VzcycKICAgODU2IHwgICAgICAg ICBzY29wZWRfdXNlcl93cml0ZV9hY2Nlc3MoX3RtcGRzdCwgZWZhdWx0KSAgICAgICAgICAgICAg IFwKICAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Ka2VybmVsL2Z1dGV4 L2NvcmUuYzo2MDQ6Mzc6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAncHV0X3VzZXJfaW5s aW5lJwogICA2MDQgfCAgICAgICAgICAgICAgICAgaWYgKG5vZGVfdXBkYXRlZCAmJiBwdXRfdXNl cl9pbmxpbmUobm9kZSwgbmFkZHIpKQogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KbWFrZVs0XTogKioqIFtzY3JpcHRzL01ha2VmaWxl LmJ1aWxkOjI4OToga2VybmVsL2Z1dGV4L2NvcmUub10gRXJyb3IgMQptYWtlWzNdOiAqKiogW3Nj cmlwdHMvTWFrZWZpbGUuYnVpbGQ6NTQ2OiBrZXJuZWwvZnV0ZXhdIEVycm9yIDIKbWFrZVsyXTog KioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjU0Njoga2VybmVsXSBFcnJvciAyCm1ha2VbMV06 ICoqKiBbL2hvbWUvY2hsZXJveS9saW51eC1wb3dlcnBjL01ha2VmaWxlOjIxMDE6IC5dIEVycm9y IDIKbWFrZTogKioqIFtNYWtlZmlsZToyNDg6IF9fc3ViLW1ha2VdIEVycm9yIDIKCgo+IC0tLQo+ ICAgaW5jbHVkZS9saW51eC91YWNjZXNzLmggfCA0ICsrKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC91YWNjZXNzLmggYi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaAo+IGluZGV4IDY0YmMyNDky ZWI5OS4uNDQ1MzkxZWM1YTZkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvdWFjY2Vzcy5o Cj4gKysrIGIvaW5jbHVkZS9saW51eC91YWNjZXNzLmgKPiBAQCAtNzM5LDcgKzczOSw5IEBAIHN0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3Njb3BlZF91c2VyX3J3X2FjY2Vzc19lbmQoY29u c3Qgdm9pZCAqcCkKPiAgICNkZWZpbmUgX19zY29wZWRfdXNlcl9hY2Nlc3MobW9kZSwgdXB0ciwg c2l6ZSwgZWxibCkJCQkJCVwKPiAgIAl3aXRoIChhdXRvIF90bXBwdHIgPSBfX3Njb3BlZF91c2Vy X2FjY2Vzc19iZWdpbihtb2RlLCB1cHRyLCBzaXplLCBlbGJsKSkJXAo+ICAgCQkvKiBGb3JjZSBt b2RpZmllZCBwb2ludGVyIHVzYWdlIHdpdGhpbiB0aGUgc2NvcGUgKi8JCQlcCj4gLQkJYW5kX3dp dGggKGNvbnN0IGF1dG8gdXB0ciBfX2NsZWFudXAoX19zY29wZWRfdXNlcl8jI21vZGUjI19hY2Nl c3NfZW5kKSA9IF90bXBwdHIpCj4gKwkJX19kaWFnX3B1c2goKSBfX2RpYWdfaWdub3JlX2FsbCgi LVdzaGFkb3ciLCAidXB0ciBpcyByZWFkb25seSBjb3B5IikJXAo+ICsJCWFuZF93aXRoIChjb25z dCBhdXRvIHVwdHIgX19jbGVhbnVwKF9fc2NvcGVkX3VzZXJfIyNtb2RlIyNfYWNjZXNzX2VuZCkg PSBfdG1wcHRyKSBcCj4gKwkJX19kaWFnX3BvcCgpCj4gICAKPiAgIC8qKgo+ICAgICogc2NvcGVk X3VzZXJfcmVhZF9hY2Nlc3Nfc2l6ZSAtIFN0YXJ0IGEgc2NvcGVkIHVzZXIgcmVhZCBhY2Nlc3Mg d2l0aCBnaXZlbiBzaXplCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yaXNjdgo=