From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id oDoFOcX4C2Fj3AAAgWs5BA (envelope-from ) for ; Thu, 05 Aug 2021 16:42:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id CCSaNMX4C2EcTgAAbx9fmQ (envelope-from ) for ; Thu, 05 Aug 2021 14:42:13 +0000 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 aspmx1.migadu.com (Postfix) with ESMTPS id 04A032BFF8 for ; Thu, 5 Aug 2021 16:42:13 +0200 (CEST) Received: from localhost ([::1]:33554 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mBeZY-0000rs-4s for larch@yhetil.org; Thu, 05 Aug 2021 10:42:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mBeZP-0000p4-0b for guix-patches@gnu.org; Thu, 05 Aug 2021 10:42:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:36493) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mBeZO-0006cM-PJ for guix-patches@gnu.org; Thu, 05 Aug 2021 10:42:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mBeZO-0007tD-FR for guix-patches@gnu.org; Thu, 05 Aug 2021 10:42:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49828] [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 05 Aug 2021 14:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49828 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Leo Prikler , 49828@debbugs.gnu.org Received: via spool by 49828-submit@debbugs.gnu.org id=B49828.162817449630295 (code B ref 49828); Thu, 05 Aug 2021 14:42:02 +0000 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 14:41:36 +0000 Received: from localhost ([127.0.0.1]:48039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBeYu-0007sT-2p for submit@debbugs.gnu.org; Thu, 05 Aug 2021 10:41:35 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:39922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBeYq-0007sH-Ny for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 10:41:30 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id dqhG2500G0mfAB406qhSZW; Thu, 05 Aug 2021 16:41:27 +0200 Message-ID: From: Maxime Devos Date: Thu, 05 Aug 2021 16:41:09 +0200 In-Reply-To: <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-99xDlAMYebYRHe9CiaQ3" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628174487; bh=AJ9qOhW9EY2XcZxsENbiiURyjhqRMqZIQu247VoPoEk=; h=Subject:From:To:Date:In-Reply-To:References; b=r4wteKYoPfKJCzfPUlc/2PaBk8tfCC+2MZJmW2Rj0pghXxEnXJ6Y1DLcYeyrEdZ4y cwzqb/In7h2avQiw4HnDmdOYyMYKngYCdfmLDMu86kClojeUnV00R/OT+Lu0zKSNzs XOIC6k9OiZfYgycMAz5FSuJ8DGdfqbYd57zO6CT210FYz2I0yyPVGpbFRVxdbvI57F 7QxEBVynIq4VBq8Lvr8x1JX21mz81J8ZQr01hyNkAURSsoffearDwPhMYunhAEtNKY qR1zGy4ezqqE665SwwsWbG9T7ckIq0wWuiC8ceUFpcYlOmhECmTpeZV7+bYeeipiHV 79bp8t4Y6AuGQ== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1628174533; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=AJ9qOhW9EY2XcZxsENbiiURyjhqRMqZIQu247VoPoEk=; b=NoGopIENJ88+nZ7uVOyii4QTqo/mLRp+kq5zbM6GYVASl6l+T1268JXVeKZ4mDztSU1cK8 xBYfTpJDfWGy08pZRUtrvNDhJMSYeM3/33QXnRhghQ4NKCcl5CwPv/o8JI8DmgXV9tnQLt KtF9DubT7cAEMJsRF2iZYx2i5Bn+AvKnAba9oBSrC1vW9OBrqBI0zab8vyb1tr/AxqPKEI SAQalH+l2J86vcU07pGanWQpdxR3kCkSMbKZS6rdgPMr+z4moPR2OrrXAzEQ79nYT5my4P RYEKmlLj/8u/uY+w9R9wXipf2QRQ40UHy6I+qxTYSDQuoRnPVuusMh1AAg1CsQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1628174533; a=rsa-sha256; cv=none; b=nSa1madbKyw5WM7e92azIToqv5cQVmWI0Ke4yatWcjR7wZ9ZY6+XrQ+DvY/z0PQh2/yqZi dmWv00lsS8osQ9nXSuDBn1GDmPxUIeD2Rahx/gnYa8HQi/en9cv60ZXgd6s6NeoZChVk6W vM23QTH7V+lfwFY/c6Z9/rJA/fuutXj0m9Ijv0+sVb9yIduO5zETYgOByoeD0vw8XfXwv8 tjrHbC6PCl8N0H2X0u9n7I6HZAbUjC6ZP3A3GFROrIJxX9nisDWDm99bWOowbSbKRGvKnH HJmaPpbKvTng+pkDO6NdIjpfi43OCDcZAoCbzYpAgjwcKyxB7PsIFh7zldCp1A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=r4wteKYo; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -3.32 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=r4wteKYo; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 04A032BFF8 X-Spam-Score: -3.32 X-Migadu-Scanner: scn0.migadu.com X-TUID: uAoRjgnxfjie --=-99xDlAMYebYRHe9CiaQ3 Content-Type: multipart/mixed; boundary="=-6a6B7mvXfmg8Y5NMP0v2" --=-6a6B7mvXfmg8Y5NMP0v2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op do 05-08-2021 om 15:42 [+0200]: > Am Donnerstag, den 05.08.2021, 15:16 +0200 schrieb Maxime Devos: > > [...] > > > > +(define* (install #:key inputs #:allow-other-keys #:rest > > > > arguments) > > > > + (apply (@@ (guix build copy-build-system) install) > > > > + #:install-plan (mod-install-plan (apply guess-mod-name > > > > arguments)) > > > > + arguments)) > > > @@ is a code smell, as far as Guix is concerned. Rather import > > > copy-build-system with the copy: prefix. > >=20 > > 'copy-build-system' does not export 'install', so I have to use '@@' > > here. > > Modifying 'copy-build-system' to export 'install' would presumably > > entail > > a many rebuilds. > I think the thing that's usually done here is fetching through > %standard-phases. > I.e. (define copy:install (assoc-ref copy-build-system:%standard-phases= =20 > 'install)) Done. > > > > +(define png-file? > > > > + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) > > > Likewise import (guix build utils) directly. > >=20 > > Likewise. > In that case fine, but make a note to move the variable and procedure > over to (guix build utils). I made a note. > The new lower-mod mostly LGTM, but > > + ;; Mods are architecture-independent. > > + ((#:target target #f) #f) > should be `target' imho. What if the mod e.g. actually builds a shared > object and somehow uses Lua's very dynamic FFI to load it? (Even if > that's not currently possible, it might be in the future). Setting it > to #f by default OTOH sounds very reasonable to me. 'target' is set by 'make-bag' in (guix build-system), so if the code above is made ((#:target target #f) target) then #:target will always be set to some triplet. Mostly harmless, but a bit a waste of disk space since this leads to (slightly) different derivati= ons depending on the value of "target". I don't think any mods use Lua's FFI, but some mods use 'os.execute', which takes a file name referring to an executable, which might need to be absolutised in Guix, and therefore some mods are architecture-dependent. It dropped the ((#:target target #f) #f). I noticed "#:implicit-cross-inpu= ts?" wasn't set to #f. That has been corrected as well. Greetings, Maxime. --=-6a6B7mvXfmg8Y5NMP0v2 Content-Disposition: inline; filename="build-system-Add-minetest-mod-build-system.patch" Content-Type: text/x-patch; name="build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5M2FhOGUxOTc2ZTc2MmQzMGJlNzBhZWY2ZDVjNTBiMWQwNmNhNGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBi dWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1aXgvYnVp bGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21pbmV0ZXN0 LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVTKTogQWRk IHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA5OSArKysrKysrKysr KysKIGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSB8IDIyNSArKysrKysrKysr KysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KIGNyZWF0ZSBt b2RlIDEwMDY0NCBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1n aXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQ1ZWM5MDkyMTMuLmY0NDM5Y2U5 M2IgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0xNDEsNiAr MTQxLDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dvLnNjbQkJCVwK ICAgZ3VpeC9idWlsZC1zeXN0ZW0vbWVzb24uc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9t aW5pZnkuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20JCVwKICAgZ3Vp eC9idWlsZC1zeXN0ZW0vYXNkZi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2NvcHkuc2Nt CQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9nbGliLW9yLWd0ay5zY20JCVwKQEAgLTIwMyw2ICsy MDQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9nbnUtZGlzdC5zY20JCQlcCiAg IGd1aXgvYnVpbGQvZ3VpbGUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxkL21hdmVu LWJ1aWxkLXN5c3RlbS5zY20JCVwKKyAgZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0u c2NtCQlcCiAgIGd1aXgvYnVpbGQvbm9kZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVp bGQvcGVybC1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvcHl0aG9uLWJ1aWxkLXN5 c3RlbS5zY20JCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmlu ZGV4IGIzYzE2ZTY1MDcuLmQ0NGVjYzIwMDUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysr IGIvZG9jL2d1aXgudGV4aQpAQCAtNzg5NSw2ICs3ODk1LDE0IEBAIGRlY2xhcmF0aW9uLiAgSXRz IGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7KGRlZmF1bHQtbWF2ZW4tcGx1Z2lucyl9IHdoaWNoIGlz CiBhbHNvIGV4cG9ydGVkLgogQGVuZCBkZWZ2cgogCitAZGVmdnIge1NjaGVtZSBWYXJpYWJsZX0g bWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorVGhpcyB2YXJpYWJsZSBpcyBleHBvcnRlZCBieSBA Y29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3QpfS4gIEl0CitpbXBsZW1lbnRzIGEgYnVp bGQgcHJvY2VkdXJlIGZvciBAdXJlZntodHRwczovL3d3dy5taW5ldGVzdC5uZXQsIE1pbmV0ZXN0 fQorbW9kcywgd2hpY2ggY29uc2lzdHMgb2YgY29weWluZyBMdWEgY29kZSwgaW1hZ2VzIGFuZCBv dGhlciByZXNvdXJjZXMgdG8KK3RoZSBsb2NhdGlvbiBNaW5ldGVzdCBzZWFyY2hlcyBmb3IgbW9k cy4gIFRoZSBidWlsZCBzeXN0ZW0gYWxzbyBtaW5pbWlzZXMKK1BORyBpbWFnZXMgYW5kIHZlcmlm aWVzIHRoYXQgTWluZXRlc3QgY2FuIGxvYWQgdGhlIG1vZCB3aXRob3V0IGVycm9ycy4KK0BlbmQg ZGVmdnIKKwogQGRlZnZyIHtTY2hlbWUgVmFyaWFibGV9IG1pbmlmeS1idWlsZC1zeXN0ZW0KIFRo aXMgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgQGNvZGV7KGd1aXggYnVpbGQtc3lzdGVtIG1pbmlm eSl9LiAgSXQKIGltcGxlbWVudHMgYSBtaW5pZmljYXRpb24gcHJvY2VkdXJlIGZvciBzaW1wbGUg SmF2YVNjcmlwdCBwYWNrYWdlcy4KZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0 ZXN0LnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMzNlOTc1NTlkCi0tLSAvZGV2L251bGwKKysrIGIvZ3Vp eC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsOTkgQEAKKzs7OyBHTlUgR3Vp eCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENvcHlyaWdo dCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OworOzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3Qp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gY29weSkKKyAgIzp1c2UtbW9kdWxl IChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0 ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzpleHBvcnQgKG1pbmV0ZXN0LW1v ZC1idWlsZC1zeXN0ZW0pKQorCis7OworOzsgQnVpbGQgcHJvY2VkdXJlIGZvciBtaW5ldGVzdCBt b2RzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24KKzs7IG9mIOKAmGNvcHkt YnVpbGQtc3lzdGVt4oCZLgorOzsKKzs7IENvZGU6CisKKzs7IExhemlseSByZXNvbHZlIHRoZSBi aW5kaW5ncyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCisoZGVmaW5lIChkZWZhdWx0 LW9wdGlwbmcpCisgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2ly Y3VsYXIgZGVwZW5kZW5jeS4KKyAgKG1vZHVsZS1yZWYgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251 IHBhY2thZ2VzIGltYWdlKSkgJ29wdGlwbmcpKQorCisoZGVmaW5lIChkZWZhdWx0LW1pbmV0ZXN0 KQorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZ2FtZXMp KSAnbWluZXRlc3QpKQorCisoZGVmaW5lIChkZWZhdWx0LXh2ZmItcnVuKQorICAobW9kdWxlLXJl ZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgeG9yZykpICd4dmZiLXJ1bikpCisK KyhkZWZpbmUgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxkLXNpZGUg bW9kdWxlcyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIG1pbmV0ZXN0LWJ1 aWxkLXN5c3RlbSkKKyAgICAsQCVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKKworKGRlZmlu ZSAlZGVmYXVsdC1tb2R1bGVzCisgIDs7IE1vZHVsZXMgaW4gc2NvcGUgaW4gdGhlIGJ1aWxkLXNp ZGUgZW52aXJvbm1lbnQuCisgICcoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkKKyAgICAo Z3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQgdXRpbHMp KSkKKworKGRlZmluZSAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMpCisgICJSZXR1cm4gdGhl IGxpc3Qgb2YgKE5BTUUgUEFDS0FHRSBPVVRQVVQpIG9yIChOQU1FIFBBQ0tBR0UpIHR1cGxlcyBv Zgorc3RhbmRhcmQgcGFja2FnZXMgdXNlZCBhcyBpbXBsaWNpdCBpbnB1dHMgb2YgdGhlIE1pbmV0 ZXN0IGJ1aWxkIHN5c3RlbS4iCisgIGAoKCJ4dmZiLXJ1biIgLChkZWZhdWx0LXh2ZmItcnVuKSkK KyAgICAoIm9wdGlwbmciICwoZGVmYXVsdC1vcHRpcG5nKSkKKyAgICAoIm1pbmV0ZXN0IiAsKGRl ZmF1bHQtbWluZXRlc3QpKQorICAgICxAKGZpbHRlciAobGFtYmRhIChpbnB1dCkKKyAgICAgICAg ICAgICAgICAobWVtYmVyIChjYXIgaW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAgICAnKCJs aWJjIiAidGFyIiAiZ3ppcCIgImJ6aXAyIiAieHoiICJsb2NhbGVzIikpKQorICAgICAgICAgICAg ICAoc3RhbmRhcmQtcGFja2FnZXMpKSkpCisKKyhkZWZpbmUqIChsb3dlci1tb2QgbmFtZSAjOmtl eSAoaW1wbGljaXQtaW5wdXRzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAg ICAgICAgICM6cmVzdCBhcmd1bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5c3RlbS1s b3dlciBnbnUtYnVpbGQtc3lzdGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBuYW1lCisg ICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyBhcmd1bWVudHMKKyAgICAgICAg ICAgOzsgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSBhZGRzIGltcGxpY2l0IGlucHV0cyBieSBp dHNlbGYsCisgICAgICAgICAgIDs7IHNvIGRvbid0IGxldCBnbnUtYnVpbGQtc3lzdGVtIGFkZCBp dHMgb3duIGltcGxpY2l0IGlucHV0cworICAgICAgICAgICA7OyBhcyB3ZWxsLgorICAgICAgICAg ICAoKCM6aW1wbGljaXQtaW5wdXRzPyBpbXBsaWNpdC1pbnB1dHM/ICN0KQorICAgICAgICAgICAg I2YpCisgICAgICAgICAgICgoIzppbXBsaWNpdC1jcm9zcy1pbnB1dHM/IGltcGxpY2l0LWNyb3Nz LWlucHV0cz8gI3QpCisgICAgICAgICAgICAjZikKKyAgICAgICAgICAgKCgjOmltcG9ydGVkLW1v ZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcyAlbWluZXRlc3QtYnVpbGQtc3lzdGVtLW1vZHVsZXMpCisg ICAgICAgICAgICBpbXBvcnRlZC1tb2R1bGVzKQorICAgICAgICAgICAoKCM6bW9kdWxlcyBtb2R1 bGVzICVkZWZhdWx0LW1vZHVsZXMpCisgICAgICAgICAgICBtb2R1bGVzKQorICAgICAgICAgICAo KCM6cGhhc2VzIHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKKyAgICAgICAgICAgIHBoYXNlcykK KyAgICAgICAgICAgOzsgRW5zdXJlIG5vdGhpbmcgc25lYWtzIGludG8gdGhlIGNsb3N1cmUuCisg ICAgICAgICAgICgoIzphbGxvd2VkLXJlZmVyZW5jZXMgYWxsb3dlZC1yZWZlcmVuY2VzICcoKSkK KyAgICAgICAgICAgIGFsbG93ZWQtcmVmZXJlbmNlcykKKyAgICAgICAgICAgOzsgQWRkIHRoZSBp bXBsaWNpdCBpbnB1dHMuCisgICAgICAgICAgICgoIzpuYXRpdmUtaW5wdXRzIG5hdGl2ZS1pbnB1 dHMgJygpKQorICAgICAgICAgICAgKGlmIGltcGxpY2l0LWlucHV0cz8KKyAgICAgICAgICAgICAg ICAoYXBwZW5kIG5hdGl2ZS1pbnB1dHMgKHN0YW5kYXJkLW1pbmV0ZXN0LXBhY2thZ2VzKSkKKyAg ICAgICAgICAgICAgICBuYXRpdmUtaW5wdXRzKSkpKSkKKworKGRlZmluZSBtaW5ldGVzdC1tb2Qt YnVpbGQtc3lzdGVtCisgIChidWlsZC1zeXN0ZW0KKyAgICAobmFtZSAnbWluZXRlc3QtbW9kKQor ICAgIChkZXNjcmlwdGlvbiAiVGhlIGJ1aWxkIHN5c3RlbSBmb3IgbWluZXRlc3QgbW9kcyIpCisg ICAgKGxvd2VyIGxvd2VyLW1vZCkpKQorCis7OzsgbWluZXRlc3Quc2NtIGVuZHMgaGVyZQpkaWZm IC0tZ2l0IGEvZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWls ZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmIwNTFkOWMyODgKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL21pbmV0 ZXN0LWJ1aWxkLXN5c3RlbS5zY20KQEAgLTAsMCArMSwyMjUgQEAKKzs7OyBDb3B5cmlnaHQgwqkg MjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7OyBUaGlz IGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxv bmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWluZXRlc3QtYnVpbGQtc3lzdGVt KQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAoc3Jm aSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOnVzZS1tb2R1bGUg KGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJkZWxpbSkKKyAgIzp1c2UtbW9k dWxlIChpY2UtOSByZWNlaXZlKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQorICAjOnVz ZS1tb2R1bGUgKChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGdudTopCisg ICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgY29weS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGNv cHk6KQorICAjOmV4cG9ydCAoJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgICAgbW9kLWluc3Rh bGwtcGxhbiBtaW5pbWlzZS1wbmcgcmVhZC1tb2QtbmFtZSBjaGVjaykpCisKKzs7IChndWl4IGJ1 aWxkIGNvcHktYnVpbGQtc3lzdGVtKSBkb2VzIG5vdCBleHBvcnQgJ2luc3RhbGwnLgorKGRlZmlu ZSBjb3B5Omluc3RhbGwKKyAgKGFzc29jLXJlZiBjb3B5OiVzdGFuZGFyZC1waGFzZXMgJ2luc3Rh bGwpKQorCisoZGVmaW5lIChtb2QtaW5zdGFsbC1wbGFuIG1vZC1uYW1lKQorICBgKCgiLiIgLChz dHJpbmctYXBwZW5kICJzaGFyZS9taW5ldGVzdC9tb2RzLyIgbW9kLW5hbWUpCisgICAgIDs7IE9u bHkgaW5zdGFsbCBmaWxlcyB0aGF0IHdpbGwgYWN0dWFsbHkgYmUgdXNlZCBhdCBydW4gdGltZS4K KyAgICAgOzsgVGhpcyBjYW4gc2F2ZSBhIGxpdHRsZSBkaXNrIHNwYWNlLgorICAgICA7OworICAg ICA7OyBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC9taW5ldGVzdC9ibG9iL21hc3Rl ci9kb2MvbHVhX2FwaS50eHQ+CisgICAgIDs7IGZvciBhbiBpbmNvbXBsZSBsaXN0IG9mIGZpbGVz IHRoYXQgY2FuIGJlIGZvdW5kIGluIG1vZHMuCisgICAgICM6aW5jbHVkZSAoIm1vZC5jb25mIiAi bW9kcGFjay5jb25mIiAic2V0dGluZ3R5cGVzLnR4dCIgImRlcGVuZHMudHh0IgorICAgICAgICAg ICAgICAgICJkZXNjcmlwdGlvbi50eHQiKQorICAgICAjOmluY2x1ZGUtcmVnZXhwICgiLmx1YSQi ICIucG5nJCIgIi5vZ2ckIiAiLm9iaiQiICIuYjNkJCIgIi50ciQiCisgICAgICAgICAgICAgICAg ICAgICAgICIubXRzJCIpKSkpCisKKyhkZWZpbmUqIChndWVzcy1tb2QtbmFtZSAjOmtleSBpbnB1 dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiVHJ5IHRvIGRldGVybWluZSB0aGUgbmFtZSBvZiB0 aGUgbW9kIG9yIG1vZHBhY2sgdGhhdCBpcyBiZWluZyBidWlsdC4KK0lmIGl0IGlzIHVua25vd24s IG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIgorICA7OyBNaW5ldGVzdCBkb2Vzbid0IGNhcmUgYWJv dXQgdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiAic2hhcmUvbWluZXRlc3QvbW9kcyIKKyAgOzsgc28g dGhlcmUgaXMgbm8gdGVjaG5pY2FsIHByb2JsZW0gaWYgdGhlIGRpcmVjdG9yeSBuYW1lcyBkb24n dCBtYXRjaAorICA7OyB0aGUgbW9kIG5hbWVzLiAgVGhlIGRpcmVjdG9yeSBjYW4gYXBwZWFyIGlu IHRoZSBHVUkgaWYgdGhlIG1vZHBhY2sKKyAgOzsgZG9lc24ndCBoYXZlIHRoZSAnbmFtZScgc2V0 IHRob3VnaCwgc28gdHJ5IHRvIG1ha2UgdGhlIGd1ZXNzLgorICAoZGVmaW5lIChndWVzcykKKyAg ICAobGV0KiAoKHNvdXJjZSAoYXNzb2MtcmVmIGlucHV0cyAic291cmNlIikpCisgICAgICAgICAg IChmaWxlLW5hbWUgKGJhc2VuYW1lIHNvdXJjZSkpCisgICAgICAgICAgIDs7IFRoZSAibWluZXRl c3QtIiBwcmVmaXggaXMgbm90IGluZm9ybWF0aXZlLCBzbyBzdHJpcCBpdC4KKyAgICAgICAgICAg KGZpbGUtbmFtZSAoaWYgKHN0cmluZy1wcmVmaXg/ICJtaW5ldGVzdC0iIGZpbGUtbmFtZSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlLW5hbWUgKHN0cmluZy1sZW5n dGggIm1pbmV0ZXN0LSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5hbWUpKQor ICAgICAgICAgICA7OyBTdHJpcCAiLWNoZWNrb3V0IiBzdWZmaXhlcyBvZiBnaXQgY2hlY2tvdXRz LgorICAgICAgICAgICAoZmlsZS1uYW1lIChpZiAoc3RyaW5nLXN1ZmZpeD8gIi1jaGVja291dCIg ZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGUtbmFt ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoLSAoc3RyaW5nLWxlbmd0aCBmaWxlLW5hbWUpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGggIi1taW5l dGVzdCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS1uYW1lKSkKKyAgICAgICAg ICAgKGZpcnN0LWRvdCAoc3RyaW5nLWluZGV4IGZpbGUtbmFtZSAjXC4pKQorICAgICAgICAgICA7 OyBJZiB0aGUgc291cmNlIGNvZGUgaXMgaW4gYW4gYXJjaGl2ZSAoLnRhci5neiwgLnppcCwgLi4u KSwKKyAgICAgICAgICAgOzsgc3RyaXAgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgICAgKGZpbGUt bmFtZSAoaWYgZmlyc3QtZG90CisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcg ZmlsZS1uYW1lIDAgZmlyc3QtZG90KQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5h bWUpKSkKKyAgICAgIChmb3JtYXQgKGN1cnJlbnQtZXJyb3ItcG9ydCkKKyAgICAgICAgICAgICAg Indhcm5pbmc6IHRoZSBtb2RwYWNrIH5hIGRpZCBub3Qgc2V0ICduYW1lJyBpbiAnbW9kcGFjay5j b25mJ34lIgorICAgICAgICAgICAgICBmaWxlLW5hbWUpCisgICAgICBmaWxlLW5hbWUpKQorICAo Y29uZCAoKGZpbGUtZXhpc3RzPyAibW9kLmNvbmYiKQorICAgICAgICAgKHJlYWQtbW9kLW5hbWUg Im1vZC5jb25mIikpCisgICAgICAgICgoZmlsZS1leGlzdHM/ICJtb2RwYWNrLmNvbmYiKQorICAg ICAgICAgKHJlYWQtbW9kLW5hbWUgIm1vZHBhY2suY29uZiIgZ3Vlc3MpKQorICAgICAgICAoI3Qg KGd1ZXNzKSkpKQorCisoZGVmaW5lKiAoaW5zdGFsbCAjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhl ci1rZXlzICM6cmVzdCBhcmd1bWVudHMpCisgIChhcHBseSBjb3B5Omluc3RhbGwKKyAgICAgICAg ICM6aW5zdGFsbC1wbGFuIChtb2QtaW5zdGFsbC1wbGFuIChhcHBseSBndWVzcy1tb2QtbmFtZSBh cmd1bWVudHMpKQorICAgICAgICAgYXJndW1lbnRzKSkKKworKGRlZmluZSAlcG5nLW1hZ2ljLWJ5 dGVzCisgIDs7IE1hZ2ljIGJ5dGVzIG9mIFBORyBpbWFnZXMsIHNlZSDigJg1LjIgUE5HIHNpZ25h dHVyZXPigJkgaW4KKyAgOzsg4oCYUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBTcGVj aWZpY2F0aW9uIChTZWNvbmQgRWRpdGlvbinigJkKKyAgOzsgb24gPGh0dHBzOi8vd3d3LnczLm9y Zy9UUi9QTkcvPi4KKyAgI3Z1OCgxMzcgODAgNzggNzEgMTMgMTAgMjYgMTApKQorCisoZGVmaW5l IHBuZy1maWxlPworICAoKEBAIChndWl4IGJ1aWxkIHV0aWxzKSBmaWxlLWhlYWRlci1tYXRjaCkg JXBuZy1tYWdpYy1ieXRlcykpCisKKyhkZWZpbmUqIChtaW5pbWlzZS1wbmcgIzprZXkgaW5wdXRz IG5hdGl2ZS1pbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiTWluaW1pc2UgUE5HIGltYWdl cyBmb3VuZCBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnkuIgorICAoZGVmaW5lIG9wdGlwbmcgKHdo aWNoICJvcHRpcG5nIikpCisgIChkZWZpbmUgKG9wdGltaXNlIGltYWdlKQorICAgIChmb3JtYXQg I3QgIk9wdGltaXNpbmcgfmF+JSIgaW1hZ2UpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSAoZGly bmFtZSBpbWFnZSkpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSBpbWFnZSkKKyAgICAoZGVmaW5l IG9sZC1zaXplIChzdGF0OnNpemUgKHN0YXQgaW1hZ2UpKSkKKyAgICA7OyBUaGUgbW9kICJ0ZWNo bmljIiBoYXMgYSBmaWxlICJ0ZWNobmljX211c2ljX3BsYXllcl90b3AucG5nIiB0aGF0CisgICAg OzsgYWN0dWFsbHkgaXMgYSBKUEVHIGZpbGUsIHNlZQorICAgIDs7IDxodHRwczovL2dpdGh1Yi5j b20vbWluZXRlc3QtbW9kcy90ZWNobmljL2lzc3Vlcy81OTA+LgorICAgIChpZiAocG5nLWZpbGU/ IGltYWdlKQorICAgICAgICAoaW52b2tlIG9wdGlwbmcgIi1vNCIgIi1xdWlldCIgaW1hZ2UpCisg ICAgICAgIChmb3JtYXQgI3QgIndhcm5pbmc6IHNraXBwaW5nIH5hIGJlY2F1c2UgaXQncyBub3Qg YWN0dWFsbHkgYSBQTkcgaW1hZ2V+JSIKKyAgICAgICAgICAgICAgICBpbWFnZSkpCisgICAgKGRl ZmluZSBuZXctc2l6ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAgKHZhbHVlcyBvbGQt c2l6ZSBuZXctc2l6ZSkpCisgIChkZWZpbmUgZmlsZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIp KQorICAobGV0IGxvb3AgKCh0b3RhbC1vbGQtc2l6ZSAwKQorICAgICAgICAgICAgICh0b3RhbC1u ZXctc2l6ZSAwKQorICAgICAgICAgICAgIChpbWFnZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIp KSkKKyAgICAoY29uZCAoKHBhaXI/IGltYWdlcykKKyAgICAgICAgICAgKHJlY2VpdmUgKG9sZC1z aXplIG5ldy1zaXplKQorICAgICAgICAgICAgICAgKG9wdGltaXNlIChjYXIgaW1hZ2VzKSkKKyAg ICAgICAgICAgICAobG9vcCAoKyB0b3RhbC1vbGQtc2l6ZSBvbGQtc2l6ZSkKKyAgICAgICAgICAg ICAgICAgICAoKyB0b3RhbC1uZXctc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAo Y2RyIGltYWdlcykpKSkKKyAgICAgICAgICAoKD0gdG90YWwtb2xkLXNpemUgMCkKKyAgICAgICAg ICAgKGZvcm1hdCAjdCAiVGhlcmUgd2VyZSBubyBQTkcgaW1hZ2VzIHRvIG1pbmltaXNlLiIpKQor ICAgICAgICAgICgjdAorICAgICAgICAgICAoZm9ybWF0ICN0ICJNaW5pbWlzYXRpb24gcmVkdWNl ZCBzaXplIG9mIGltYWdlcyBieSB+LDJmJSAofiwyZiBNaUIgdG8gfiwyZiBNaUIpfiUiCisgICAg ICAgICAgICAgICAgICAgKCogMTAwLjAgKC0gMSAoLyB0b3RhbC1uZXctc2l6ZSB0b3RhbC1vbGQt c2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICgvIHRvdGFsLW9sZC1zaXplIChleHB0IDEwMjQg MikpCisgICAgICAgICAgICAgICAgICAgKC8gdG90YWwtbmV3LXNpemUgKGV4cHQgMTAyNCAyKSkp KSkpKQorCisoZGVmaW5lIG5hbWUtcmVnZXhwIChtYWtlLXJlZ2V4cCAiXm5hbWVbIF0qPSguKykk IikpCisKKyhkZWZpbmUqIChyZWFkLW1vZC1uYW1lIG1vZC5jb25mICM6b3B0aW9uYWwgbm90LWZv dW5kKQorICAiUmVhZCB0aGUgbmFtZSBvZiBhIG1vZCBmcm9tIE1PRC5DT05GLiAgSWYgTU9ELkNP TkYKK2RvZXMgbm90IGhhdmUgYSBuYW1lIGZpZWxkIGFuZCBOT1QtRk9VTkQgaXMgI2ZhbHNlLCBy YWlzZSBhbgorZXJyb3IuICBJZiBOT1QtRk9VTkQgaXMgVFJVRSwgY2FsbCBOT1QtRk9VTkQgaW5z dGVhZC4iCisgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSBtb2QuY29uZgorICAgIChsYW1iZGEgKHBv cnQpCisgICAgICAobGV0IGxvb3AgKCkKKyAgICAgICAgKGRlZmluZSBsaW5lIChyZWFkLWxpbmUg cG9ydCkpCisgICAgICAgIChpZiAoZW9mLW9iamVjdD8gbGluZSkKKyAgICAgICAgICAgIChpZiBu b3QtZm91bmQKKyAgICAgICAgICAgICAgICAobm90LWZvdW5kKQorICAgICAgICAgICAgICAgIChl cnJvciAifmEgZG9lcyBub3QgaGF2ZSBhICduYW1lJyBmaWVsZCIgbW9kLmNvbmYpKQorICAgICAg ICAgICAgKGxldCAoKG1hdGNoIChyZWdleHAtZXhlYyBuYW1lLXJlZ2V4cCBsaW5lKSkpCisgICAg ICAgICAgICAgIChpZiAocmVnZXhwLW1hdGNoPyBtYXRjaCkKKyAgICAgICAgICAgICAgICAgIChz dHJpbmctdHJpbS1ib3RoIChtYXRjaDpzdWJzdHJpbmcgbWF0Y2ggMSkgI1wgKQorICAgICAgICAg ICAgICAgICAgKGxvb3ApKSkpKSkpKQorCisoZGVmaW5lKiAoY2hlY2sgIzprZXkgb3V0cHV0cyB0 ZXN0cz8gIzphbGxvdy1vdGhlci1rZXlzKQorICAiVGVzdCB3aGV0aGVyIHRoZSBtb2QgbG9hZHMu ICBUaGUgbW9kIG11c3QgZmlyc3QgYmUgaW5zdGFsbGVkIGZpcnN0LiIKKyAgKGRlZmluZSAoYWxs LW1vZC1uYW1lcyBkaXJlY3RvcmllcykKKyAgICAoYXBwZW5kLW1hcAorICAgICAobGFtYmRhIChk aXJlY3RvcnkpCisgICAgICAgKG1hcCByZWFkLW1vZC1uYW1lIChmaW5kLWZpbGVzIGRpcmVjdG9y eSAibW9kLmNvbmYiKSkpCisgICAgIGRpcmVjdG9yaWVzKSkKKyAgKHdoZW4gdGVzdHM/CisgICAg KG1rZGlyICJndWl4X3Rlc3R3b3JsZCIpCisgICAgOzsgQWRkIHRoZSBtb2QgdG8gdGhlIG1vZCBz ZWFyY2ggcGF0aCwgc3VjaCB0aGF0IE1pbmV0ZXN0IGNhbiBmaW5kIGl0LgorICAgIChzZXRlbnYg Ik1JTkVURVNUX01PRF9QQVRIIgorICAgICAgICAgICAgKGxpc3QtPnNlYXJjaC1wYXRoLWFzLXN0 cmluZworICAgICAgICAgICAgIChjb25zCisgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kIChh c3NvYy1yZWYgb3V0cHV0cyAib3V0IikgIi9zaGFyZS9taW5ldGVzdC9tb2RzIikKKyAgICAgICAg ICAgICAgKHNlYXJjaC1wYXRoLWFzLXN0cmluZy0+bGlzdAorICAgICAgICAgICAgICAgKG9yIChn ZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIikgIiIpKSkKKyAgICAgICAgICAgICAiOiIpKQorICAg ICh3aXRoLWRpcmVjdG9yeS1leGN1cnNpb24gImd1aXhfdGVzdHdvcmxkIgorICAgICAgKHNldGVu diAiSE9NRSIgKGdldGN3ZCkpCisgICAgICA7OyBDcmVhdGUgYSB3b3JsZCBpbiB3aGljaCBhbGwg bW9kcyBhcmUgbG9hZGVkLgorICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSAid29ybGQubXQi CisgICAgICAgIChsYW1iZGEgKHBvcnQpCisgICAgICAgICAgKGRpc3BsYXkKKyAgICAgICAgICAg ImdhbWVpZCA9IG1pbmV0ZXN0Cit3b3JsZF9uYW1lID0gZ3VpeF90ZXN0d29ybGQKK2JhY2tlbmQg PSBzcWxpdGUzCitwbGF5ZXJfYmFja2VuZCA9IHNxbGl0ZTMKK2F1dGhfYmFja2VuZCA9IHNxbGl0 ZTMKKyIgcG9ydCkKKyAgICAgICAgICAoZm9yLWVhY2gKKyAgICAgICAgICAgKGxhbWJkYSAobW9k KQorICAgICAgICAgICAgIChmb3JtYXQgcG9ydCAibG9hZF9tb2RffmEgPSB0cnVlfiUiIG1vZCkp CisgICAgICAgICAgIChhbGwtbW9kLW5hbWVzIChzZWFyY2gtcGF0aC1hcy1zdHJpbmctPmxpc3QK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIikp KSkpKQorICAgICAgKHJlY2VpdmUgKHBvcnQgcGlkKQorICAgICAgICAgICgoQEAgKGd1aXggYnVp bGQgdXRpbHMpIG9wZW4tcGlwZS13aXRoLXN0ZGVycikKKyAgICAgICAgICAgInh2ZmItcnVuIiAi LS0iICJtaW5ldGVzdCIgIi0taW5mbyIgIi0td29ybGQiICIuIiAiLS1nbyIpCisgICAgICAgIChm b3JtYXQgI3QgIlN0YXJ0ZWQgTWluZXRlc3Qgd2l0aCBhbGwgbW9kcyBsb2FkZWQgZm9yIHRlc3Rp bmd+JSIpCisgICAgICAgIDs7IFNjYW4gdGhlIG91dHB1dCBmb3IgZXJyb3IgbWVzc2FnZXMuCisg ICAgICAgIDs7IFdoZW4gdGhlIHBsYXllciBoYXMgam9pbmVkIHRoZSBzZXJ2ZXIsIHN0b3AgbWlu ZXRlc3QuCisgICAgICAgIChkZWZpbmUgKGVycm9yPyBsaW5lKQorICAgICAgICAgIChhbmQgKHN0 cmluZz8gbGluZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMgbGluZSAiOiBFUlJP UlsiKSkpCisgICAgICAgIChkZWZpbmUgKHN0b3A/IGxpbmUpCisgICAgICAgICAgKGFuZCAoc3Ry aW5nPyBsaW5lKQorICAgICAgICAgICAgICAgKHN0cmluZy1jb250YWlucyBsaW5lICJBQ1RJT05b U2VydmVyXTogc2luZ2xlcGxheWVyIFsxMjcuMC4wLjFdIGpvaW5zIGdhbWUuIikpKQorICAgICAg ICAobGV0IGxvb3AgKCkKKyAgICAgICAgICAobWF0Y2ggKHJlYWQtbGluZSBwb3J0KQorICAgICAg ICAgICAgKCg/IGVycm9yPyBsaW5lKQorICAgICAgICAgICAgIChlcnJvciAibWluZXRlc3QgcmFp c2VkIGFuIGVycm9yOiB+YSIgbGluZSkpCisgICAgICAgICAgICAoKD8gc3RvcD8pCisgICAgICAg ICAgICAgKGtpbGwgcGlkIFNJR0lOVCkKKyAgICAgICAgICAgICAoY2xvc2UtcG9ydCBwb3J0KQor ICAgICAgICAgICAgICh3YWl0cGlkIHBpZCkpCisgICAgICAgICAgICAoKD8gc3RyaW5nPyBsaW5l KQorICAgICAgICAgICAgIChkaXNwbGF5IGxpbmUpCisgICAgICAgICAgICAgKG5ld2xpbmUpCisg ICAgICAgICAgICAgKGxvb3ApKQorICAgICAgICAgICAgKCg/IGVvZi1vYmplY3Q/KQorICAgICAg ICAgICAgIChlcnJvciAibWluZXRlc3QgZGlkbid0IHN0YXJ0IikpKSkpKSkpCisKKyhkZWZpbmUg JXN0YW5kYXJkLXBoYXNlcworICAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwor ICAgIChkZWxldGUgJ2Jvb3RzdHJhcCkKKyAgICAoZGVsZXRlICdjb25maWd1cmUpCisgICAgKGFk ZC1iZWZvcmUgJ2J1aWxkICdtaW5pbWlzZS1wbmcgbWluaW1pc2UtcG5nKQorICAgIChkZWxldGUg J2J1aWxkKQorICAgIChkZWxldGUgJ2NoZWNrKQorICAgIChyZXBsYWNlICdpbnN0YWxsIGluc3Rh bGwpCisgICAgOzsgVGhlICdjaGVjaycgcGhhc2UgcmVxdWlyZXMgdGhlIG1vZCB0byBiZSBpbnN0 YWxsZWQsCisgICAgOzsgc28gbW92ZSB0aGUgJ2NoZWNrJyBwaGFzZSBhZnRlciB0aGUgJ2luc3Rh bGwnIHBoYXNlLgorICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ2NoZWNrIGNoZWNrKSkpCisKKzs7 OyBtaW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVyZQotLSAKMi4zMi4wCgo= --=-6a6B7mvXfmg8Y5NMP0v2-- --=-99xDlAMYebYRHe9CiaQ3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQv4hRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7qirAP4y0BJ+gayUfa13V0P/UyMnd2LZ vpUoYbOnpIJEPrqFjAD/Q57U2qHY19AcYGpQxshSM5UxkPO1G9GA5qdifNDEoQA= =I2NP -----END PGP SIGNATURE----- --=-99xDlAMYebYRHe9CiaQ3--