Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x0u6B-004sO1-0w for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Aug 2026 04:58:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x0u68-00FbLg-1v for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Aug 2026 04:58:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x0u67-00FbLV-2e for pgsql-hackers@lists.postgresql.org; Mon, 31 Aug 2026 04:58:20 +0000 Received: from fout-b2-smtp.messagingengine.com ([202.12.124.145]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1x0u65-00000003FN6-1IID for pgsql-hackers@lists.postgresql.org; Mon, 31 Aug 2026 04:58:18 +0000 Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.stl.internal (Postfix) with ESMTP id C85821D000F6; Mon, 31 Aug 2026 00:58:15 -0400 (EDT) Received: from phl-imap-02 ([10.202.2.81]) by phl-compute-02.internal (MEProxy); Mon, 31 Aug 2026 00:58:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=burd.me; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1788152295; x=1788238695; bh=TAjg5fS3wj eMD4/v8eWJb++pzhUNc5dUscFtMtv8fSs=; b=k2mnc/WTqHrAGBcdh3wHeLQT5O M56oba9YS1k4z14lelrIXhjKL9l9C8ksgRrNFjsaUduIgnVwXJQtrqMRILLPoEyh Xi630NQTyhGX3vP/RxiWrYbnl+YjyJrq6Bu1L0LFIvhoyC5CiyZfAGFKa+flkbVK hghSwXX/ul17xZITSFkIiWf6BnbWYLagAvNveV7RA30w0VNWGDv0hGJxXMFiuBLL LwW+54esBNpH2jKTcvkidafr+IEIImnYVULYAn4S5ZaRl1hEX1iEN3LrB95pWqBu Jzf3l3pNaBOlfIa1N82JLzjhvLU5JX5LT8sw/x0D+ahas2d9n5LVfbLwWaRg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1788152295; x=1788238695; bh=TAjg5fS3wjeMD4/v8eWJb++pzhUNc5dUscF tMtv8fSs=; b=LedbT7g1nLkFzk2SXct1Dr//B3LMuEBCmupvhNa07GH+fgOoRC4 RcvtC8ynl45T4wH0XNYT+FAtsG/sI9kI6yozpXXUWZunmYZ1TFn89jTF1jMVGbP+ /H0sEDZWjwQjBA3m5CDdUhyTbdRzzofQRkwh/KOgIkvnbAiwYv+MGUeXlTHOzyIN dNJBsHuYqXeN/b3keG0QpAK0Qurl/yRV0Z72iSqn5PZqSk8Q/jX7pRzUBAHfmtAf dfcb4fRKs63fh/FRV1UkrogeWPJmlP+935XLcc/E2TGMykMRd/R5nczhvRmXBqan SjUvO2UeRwG7ffBbjxD0gz+DbRq5HxXyrVQ== X-ME-Sender: X-ME-Proxy-Cause: dmFkZTGUOfkJsrRsP/56MP+ipV068RiI+JjoFJxT0Te4Rq/1PnRCnp8MkfZqgQpRCdbJgv LhsWimhJ/7kCNA3VokrpBPpdUwDty7EXmQYaTRTVnLLWbCkKRQwnPHU7FhOR71xmkLvNnc JkQwOdNBFA7v4HeJuIuc8Slq+qpT1yALyWlTyicRXWHQXqNK9fnZ2w6807B50Vzutg6m8s CqIoTQnZQURSTh0wLbpO9PAZuLFSqPSRRZbDGzLSJ/zKLERFHb7mw8OOKNxLD2PmiRJQWV WnWMhqvPGFYRMGczhrYVRCdOwiOyCgzeOfl5sDhldesb8mcjv5oYxNvMeq9GoaP7RP8CVU Tvr/v7wnUmrTCcwbsOPaSlYbAh+lfaPXRZT3WrK4YpUAbZZlH5RIcmlqwTZdpSTP1Q76P1 ERzwg8rgZb4wKWYrSRl8DAz43mTWjjVZkKL3/psxu1MrqnbSMPdQawCg7kRcPw7vJExFjl o0lMeufNfy5WTCEXi7uozxfggcLqiw87LiCMxcbfstNqusLOOxPe+jQyVR9QG4qju56dQ2 noiagZePgARrWwJ2lqgwihbJ4Sk6AGSv0pvacgvUpjbkdrjlu78KDrTcMypDxMXb4K4F3Z sPXNU1rMgZEI7MLeZC5/9bWaA1yYFamFcI7WfP1CV5go0kclI/wOUe04QQ1Q X-ME-Proxy: Feedback-ID: i675e48f3:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 1F318700069; Mon, 31 Aug 2026 00:58:15 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: AV2wn8fFq74R Date: Mon, 31 Aug 2026 00:57:54 -0400 From: "Greg Burd" To: "Peter Eisentraut" Cc: "PostgreSQL Hackers" , "Tristan Partin" Message-Id: In-Reply-To: References: <7ee22a5d-3776-49d5-8309-98097ffb88b1@app.fastmail.com> Subject: Re: Add a Nix flake Content-Type: multipart/mixed; boundary=acaf76612720b426d63ed535c88bad061ac914f9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --acaf76612720b426d63ed535c88bad061ac914f9 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Tue Aug 26, 2026 at 1:28 PM CDT, Peter Eisentraut wrote: > I don't know. Over time, people made similar arguments about Homebrew, > Docker, and there will be more after this. People who are interested in > this can band together and maintain it among themselves. The Homebrew/Docker comparison is fair, those didn't go in-tree and so perhaps this shouldn't either. > A Nix configuration is probably of interest to on the order of 1% of > developers, whereas these other things are relevant to most developers, > and also importantly, changes can be verified easily by anyone, without > having to learn about some new platform or tool. I don't have numbers, and 1% is as plausible as anything I could claim. Also, the comparison with .editorconfig/CI wasn't fair, that file is near-universal and this isn't. The second half is the argument I take most seriously, and I think it's the real crux: a committer without Nix installed can't verify or fix a change to flake.nix, so it's a file most of the tree's maintainers can't touch. It puts the burden squarely on the people who want this to actually show up, and it means the tree would be carrying something its own committers can't independently check. So, let's let the thread decide. If more Nix-using contributors don't materialize I'm content to manage it out-of-tree. Separately, and regardless of where this ends up: Tristan, thanks, I took your docs suggestion. Since the Meson docs targets aren't built by default, I've enabled the docs feature by default, which brings the DocBook toolchain into the dev shell via the package itself and leaves just ccache in the shell's own list. v5 attached. best. -greg --acaf76612720b426d63ed535c88bad061ac914f9 Content-Disposition: attachment; filename*0="v5-0001-Add-a-Nix-flake-for-reproducible-builds-and-dev-s.pat"; filename*1="ch" Content-Type: text/x-patch; name="=?UTF-8?Q?v5-0001-Add-a-Nix-flake-for-reproducible-builds-and-dev-s.patc?= =?UTF-8?Q?h?=" Content-Transfer-Encoding: base64 RnJvbSA1ZDA2ZGRjMmFiMDYwMzRhMWJmNWRjN2VmOGE2N2VkZGIzYzNiM2UwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJ1cmQgPGdyZWdAYnVyZC5tZT4KRGF0ZTog VHVlLCAyNSBBdWcgMjAyNiAxNTozNDowNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjVdIEFk ZCBhIE5peCBmbGFrZSBmb3IgcmVwcm9kdWNpYmxlIGJ1aWxkcyBhbmQgZGV2IHNoZWxscwoK UHJvdmlkZSBhIGZsYWtlLm5peCBhdCB0aGUgcmVwb3NpdG9yeSByb290IHNvIGNvbnRyaWJ1 dG9ycyBvbiBOaXgtYmFzZWQKc3lzdGVtcyAoTGludXgsIG1hY09TLCBhbmQgdGhlICpCU0Rz KSBnZXQgYSBzaW5nbGUsIGluLXRyZWUgc3RhcnRpbmcgcG9pbnQKaW5zdGVhZCBvZiBtYWlu dGFpbmluZyBwcml2YXRlLCBkcmlmdGluZyBjb3BpZXMuCgpJdCBkb2Vzbid0IGFkZCBhIGJ1 aWxkIHN5c3RlbSBhbmQgbm90aGluZyBpbiB0aGUgbm9ybWFsIGJ1aWxkIGRlcGVuZHMgb24K aXQ6IGBuaXggZGV2ZWxvcGAgZHJvcHMgeW91IGludG8gYSBzaGVsbCB3aXRoIG1lc29uL25p bmphLCBiaXNvbiwgZmxleCwKcGVybCwgYW5kIHRoZSBvcHRpb25hbCBsaWJyYXJpZXMgb24g UEFUSCwgd2hlcmUgYG1lc29uIHNldHVwYCAodGhlIGRlZmF1bHQpCm9yIGAuL2NvbmZpZ3Vy ZWAganVzdCB3b3JrczsgYG5peCBidWlsZGAgcHJvZHVjZXMgYSBzZXJ2ZXIuCgpFdmVyeSBv cHRpb25hbCBjb25maWd1cmUvTWVzb24gZmVhdHVyZSBpcyBhIGJvb2xlYW4gdG9nZ2xlIHdp dGgKcGxhdGZvcm0tYXBwcm9wcmlhdGUgZGVmYXVsdHMgKGlvX3VyaW5nLCBsaWJudW1hLCBz eXN0ZW1kLCBQQU0gb24gTGludXg7CkJvbmpvdXIgb24gbWFjT1MpLCBzbyBpdCBpcyBhIHN0 YXJ0aW5nIHBvaW50LCBub3QgYSBwb2xpY3kuIFByZXNldHMgY292ZXIKZGVidWcsIG1pbmlt YWwsIGFuZCBhdXRvY29uZiBidWlsZHMuCgpUaGUgZmlsZSBjYXJyaWVzIGEgaGVhZGVyIGNv bW1lbnQgYWltZWQgYXQgcmVhZGVycyB3aG8gaGF2ZSBuZXZlciB1c2VkCk5peDogd2hhdCBp dCBpcywgaG93IHRvIHJ1biBpdCwgdGhlIHBlcnNvbmFsIH4vLmdpdC9pbmZvL2V4Y2x1ZGUg bGluZXMgdG8KYWRkIChmbGFrZS5sb2NrIGFuZCByZXN1bHQgc3ltbGlua3MgYXJlIGRlbGli ZXJhdGVseSBub3QgaW4gLmdpdGlnbm9yZSksCmFuZCBob3cgdGhlIGZpbGUgaXMgZXhwZWN0 ZWQgdG8gYmUga2VwdCBpbiBzeW5jIGFzIGNvbmZpZ3VyZS9tZXNvbiBnYWluCmRlcGVuZGVu Y2llcyAoYSBuZXcgb3B0aW9uYWwgZGVwZW5kZW5jeSBpcyBzaW1wbHkgbGVmdCBkaXNhYmxl ZCB1bnRpbCBhCnR3by1saW5lIHRvZ2dsZSBpcyBhZGRlZDsgdGhlIGZsYWtlIGtlZXBzIGJ1 aWxkaW5nIG1lYW53aGlsZSkuCgpObyBmbGFrZS5sb2NrIGlzIGNvbW1pdHRlZCBvbiBwdXJw b3NlOiBwaW5uaW5nIG5peHBrZ3Mgd291bGQgZnJlZXplCmNvbnRyaWJ1dG9ycyB0byBvbmUg ZGVwZW5kZW5jeSBzbmFwc2hvdC4gVGhlIGZsYWtlIGluc3RlYWQgdHJhY2tzIHdoYXRldmVy Cm5peHBrZ3MgdGhlIGRldmVsb3BlciBhbHJlYWR5IHJ1bnM7IGFueW9uZSBuZWVkaW5nIHJl cHJvZHVjaWJpbGl0eSBjYW4KZ2VuZXJhdGUgYSBsb2NrIGxvY2FsbHkuCi0tLQogZmxha2Uu bml4IHwgMjg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI4NSBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgZmxha2Uubml4CgpkaWZmIC0tZ2l0IGEvZmxha2Uubml4IGIvZmxha2Uu bml4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zYTk3YzM5MTQ5 YgotLS0gL2Rldi9udWxsCisrKyBiL2ZsYWtlLm5peApAQCAtMCwwICsxLDI4NSBAQAorIyBQ b3N0Z3JlU1FMIE5peCBmbGFrZS4KKyMKKyMgV2hhdCB0aGlzIGlzOiBOaXggKGh0dHBzOi8v bml4b3Mub3JnKSBpcyBhIHBhY2thZ2UgbWFuYWdlciwgYXZhaWxhYmxlIG9uCisjIExpbnV4 LCBtYWNPUywgYW5kIHRoZSAqQlNEcywgdGhhdCBjYW4gYXNzZW1ibGUgYW4gZXhhY3Qgc2V0 IG9mIGJ1aWxkCisjIGRlcGVuZGVuY2llcyB3aXRob3V0IGluc3RhbGxpbmcgdGhlbSBzeXN0 ZW0td2lkZS4gQSAiZmxha2UiIGlzIHRoZSBzbWFsbAorIyBtYW5pZmVzdCBiZWxvdyBkZXNj cmliaW5nIHRob3NlIGRlcGVuZGVuY2llcy4gWW91IGRvIE5PVCBuZWVkIE5peCB0byBidWls ZAorIyBQb3N0Z3JlU1FMOyB0aGUgdXN1YWwgYC4vY29uZmlndXJlYC9gbWVzb24gc2V0dXBg IGluc3RydWN0aW9ucyBhcmUKKyMgdW5jaGFuZ2VkLiBUaGlzIGZpbGUgb25seSBoZWxwcyBk ZXZlbG9wZXJzIHdobyBhbHJlYWR5IHVzZSBOaXguCisjCisjICAgbml4IGRldmVsb3AgICAg IC0tIGRyb3AgaW50byBhIHNoZWxsIHdpdGggdGhlIGZ1bGwgYnVpbGQgdG9vbGNoYWluCisj ICAgICAgICAgICAgICAgICAgICAgIChtZXNvbi9uaW5qYSwgYmlzb24sIGZsZXgsIHBlcmws IGFuZCB0aGUgb3B0aW9uYWwKKyMgICAgICAgICAgICAgICAgICAgICAgbGlicmFyaWVzKSBv biBQQVRIOyB0aGVuIGBtZXNvbiBzZXR1cCBidWlsZCAmJiBuaW5qYQorIyAgICAgICAgICAg ICAgICAgICAgICAtQyBidWlsZGAgb3IgYC4vY29uZmlndXJlICYmIG1ha2VgIGFzIHVzdWFs LgorIyAgIG5peCBidWlsZCAgICAgICAtLSBidWlsZCB0aGUgc2VydmVyIGRpcmVjdGx5Lgor IworIyBMb2NhbCBpZ25vcmVzOiBOaXggd3JpdGVzIGEgYGZsYWtlLmxvY2tgIGFuZCBgcmVz dWx0YCBzeW1saW5rcyBpbnRvIHRoZQorIyB3b3JraW5nIHRyZWUuIFRoZXNlIGFyZSBpbnRl bnRpb25hbGx5IE5PVCBhZGRlZCB0byAuZ2l0aWdub3JlICh0aGV5IGFyZQorIyBub3QgcmVs ZXZhbnQgdG8gbm9uLU5peCBkZXZlbG9wZXJzKS4gSWYgeW91IHVzZSBOaXgsIGFkZCB0aGVt IHRvIHlvdXIKKyMgcGVyc29uYWwsIG5vbi1jb21taXR0ZWQgaWdub3JlIGZpbGUgaW5zdGVh ZDoKKyMKKyMgICBwcmludGYgJy9mbGFrZS5sb2NrXG4vcmVzdWx0XG4vcmVzdWx0LSpcbicg Pj4gIiQoZ2l0IHJldi1wYXJzZSAtLWdpdC1kaXIpL2luZm8vZXhjbHVkZSIKKyMKKyMgS2Vl cGluZyB0aGlzIGN1cnJlbnQ6IHRoaXMgZmxha2UgZG9lcyBub3QgdHJhY2sgdXBzdHJlYW0g YXV0b21hdGljYWxseS4KKyMgV2hlbiBhIG5ldyBvcHRpb25hbCBkZXBlbmRlbmN5IGlzIGFk ZGVkIHRvIGNvbmZpZ3VyZS9tZXNvbiwgdGhpcyBmaWxlIHdpbGwKKyMgc2ltcGx5IG5vdCBl bmFibGUgaXQgKG1lc29uQXV0b0ZlYXR1cmVzIGlzICJkaXNhYmxlZCIpLCBzbyB0aGUgZmxh a2Uga2VlcHMKKyMgYnVpbGRpbmcsIGl0IGp1c3Qgd29uJ3QgZXhwb3NlIHRoZSBuZXcgZmVh dHVyZSB1bnRpbCBhIHRvZ2dsZSBpcyBhZGRlZAorIyBoZXJlLiBBZGRpbmcgb25lIGlzIGEg dHdvLWxpbmUgY2hhbmdlIChhIGJvb2xlYW4gcGx1cyBpdHMgYnVpbGRJbnB1dC9mbGFnKTsK KyMgcGF0Y2hlcyB0byBrZWVwIHRoaXMgZmlsZSBpbiBzeW5jIGFyZSB3ZWxjb21lIG9uIHBn c3FsLWhhY2tlcnMuIE5vdGhpbmcgaW4KKyMgdGhlIG5vcm1hbCBidWlsZCBkZXBlbmRzIG9u IHRoaXMgZmlsZSwgc28gaXQgZ29pbmcgYnJpZWZseSBzdGFsZSBicmVha3MKKyMgbm90aGlu Zy4KK3sKKyAgZGVzY3JpcHRpb24gPSAiUG9zdGdyZVNRTCwgYnVpbHQgZnJvbSB0aGlzIHNv dXJjZSB0cmVlIjsKKworICBpbnB1dHMubml4cGtncy51cmwgPSAiZ2l0aHViOk5peE9TL25p eHBrZ3Mvbml4b3MtdW5zdGFibGUiOworCisgIG91dHB1dHMgPQorICAgIHsgc2VsZiwgbml4 cGtncyB9OgorICAgIGxldAorICAgICAgc3lzdGVtcyA9IFsKKyAgICAgICAgIng4Nl82NC1s aW51eCIKKyAgICAgICAgImFhcmNoNjQtbGludXgiCisgICAgICAgICJ4ODZfNjQtZGFyd2lu IgorICAgICAgICAiYWFyY2g2NC1kYXJ3aW4iCisgICAgICBdOworICAgICAgZm9yQWxsU3lz dGVtcyA9IGY6IG5peHBrZ3MubGliLmdlbkF0dHJzIHN5c3RlbXMgKHN5c3RlbTogZiBuaXhw a2dzLmxlZ2FjeVBhY2thZ2VzLiR7c3lzdGVtfSk7CisKKyAgICAgICMgQSBzaW5nbGUgYnVp bGRlciBjb3ZlcmluZyBldmVyeSBvcHRpb25hbCBmZWF0dXJlIC4vY29uZmlndXJlIGFuZAor ICAgICAgIyBtZXNvbiBleHBvc2UuIEVhY2ggZmVhdHVyZSBpcyBhIGJvb2xlYW4gdG9nZ2xl IHdpcmVkIHRvIGl0cworICAgICAgIyBidWlsZElucHV0ICsgZmxhZzsgZmxpcCBhbnkgb2Yg dGhlbSB2aWEgLm92ZXJyaWRlIHsgLi4uIH0uCisgICAgICAjIFBsYXRmb3JtLXNwZWNpZmlj IGZlYXR1cmVzIGRlZmF1bHQgdG8gdGhlaXIgYXZhaWxhYmlsaXR5LgorICAgICAgcG9zdGdy ZXNxbEZvciA9CisgICAgICAgIHBrZ3M6CisgICAgICAgIGxldAorICAgICAgICAgIGluaGVy aXQgKHBrZ3MpIGxpYiBzdGRlbnY7CisgICAgICAgICAgb25MaW51eCA9IHN0ZGVudi5ob3N0 UGxhdGZvcm0uaXNMaW51eDsKKyAgICAgICAgICBvbkRhcndpbiA9IHN0ZGVudi5ob3N0UGxh dGZvcm0uaXNEYXJ3aW47CisgICAgICAgIGluCisgICAgICAgIGxpYi5tYWtlT3ZlcnJpZGFi bGUgKAorICAgICAgICAgIHsKKyAgICAgICAgICAgICMgQnVpbGQgc3lzdGVtOiAibWVzb24i IChuaW5qYSkgb3IgImF1dG9jb25mIiAoY29uZmlndXJlL21ha2UpLgorICAgICAgICAgICAg IyBNZXNvbiBpcyB0aGUgZGVmYXVsdDsgaXQgaXMgdGhlIHByb2plY3QncyBldmVudHVhbCBz b2xlIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAgICAgIGJ1aWxkU3lzdGVtID8gIm1lc29uIiwK KworICAgICAgICAgICAgIyBPcHRpb25hbCBsaWJyYXJ5IGZlYXR1cmVzIChidWlsZElucHV0 ICsgZmxhZykuCisgICAgICAgICAgICBpY3VTdXBwb3J0ID8gdHJ1ZSwKKyAgICAgICAgICAg IHJlYWRsaW5lU3VwcG9ydCA/IHRydWUsCisgICAgICAgICAgICB6bGliU3VwcG9ydCA/IHRy dWUsCisgICAgICAgICAgICBvcGVuc3NsU3VwcG9ydCA/IHRydWUsCisgICAgICAgICAgICBs aWJ4bWxTdXBwb3J0ID8gdHJ1ZSwKKyAgICAgICAgICAgIGxpYnhzbHRTdXBwb3J0ID8gdHJ1 ZSwKKyAgICAgICAgICAgIGx6NFN1cHBvcnQgPyB0cnVlLAorICAgICAgICAgICAgenN0ZFN1 cHBvcnQgPyB0cnVlLAorICAgICAgICAgICAgdXVpZFN1cHBvcnQgPyB0cnVlLAorICAgICAg ICAgICAgY3VybFN1cHBvcnQgPyB0cnVlLAorCisgICAgICAgICAgICAjIFByb2NlZHVyYWwg bGFuZ3VhZ2VzLgorICAgICAgICAgICAgcGVybFN1cHBvcnQgPyB0cnVlLAorICAgICAgICAg ICAgcHl0aG9uU3VwcG9ydCA/IHRydWUsCisgICAgICAgICAgICB0Y2xTdXBwb3J0ID8gdHJ1 ZSwKKworICAgICAgICAgICAgIyBQbGF0Zm9ybS1nYXRlZCBmZWF0dXJlcy4KKyAgICAgICAg ICAgIHN5c3RlbWRTdXBwb3J0ID8gb25MaW51eCwKKyAgICAgICAgICAgIHNlbGludXhTdXBw b3J0ID8gZmFsc2UsCisgICAgICAgICAgICBsaWJ1cmluZ1N1cHBvcnQgPyBvbkxpbnV4LAor ICAgICAgICAgICAgbnVtYVN1cHBvcnQgPyBvbkxpbnV4LAorICAgICAgICAgICAgZ3NzU3Vw cG9ydCA/IHRydWUsCisgICAgICAgICAgICBsZGFwU3VwcG9ydCA/IGZhbHNlLAorICAgICAg ICAgICAgcGFtU3VwcG9ydCA/IG9uTGludXgsCisgICAgICAgICAgICBib25qb3VyU3VwcG9y dCA/IG9uRGFyd2luLAorICAgICAgICAgICAgbGx2bVN1cHBvcnQgPyBmYWxzZSwKKworICAg ICAgICAgICAgIyBEZXZlbG9wZXIgLyBidWlsZC1zaGFwZSB0b2dnbGVzIChubyBleHRyYSBk ZXBzKS4KKyAgICAgICAgICAgIGNhc3NlcnQgPyBmYWxzZSwKKyAgICAgICAgICAgIGRlYnVn U3ltYm9scyA/IGZhbHNlLAorICAgICAgICAgICAgdGFwVGVzdHMgPyB0cnVlLAorICAgICAg ICAgICAgaW5qZWN0aW9uUG9pbnRzID8gZmFsc2UsCisKKyAgICAgICAgICAgICMgRG9jdW1l bnRhdGlvbiBidWlsZCAoU0dNTC9Eb2NCb29rIHRvb2xjaGFpbikuIEVuYWJsZWQgYnkKKyAg ICAgICAgICAgICMgZGVmYXVsdDsgdGhlIGRvY3MgdGFyZ2V0cyBhcmUgbm90IHBhcnQgb2Yg dGhlIGRlZmF1bHQgYnVpbGQKKyAgICAgICAgICAgICMgKG9ubHkgb2YgYHdvcmxkYC9gaW5z dGFsbC13b3JsZGApLCBzbyB0aGlzIGFkZHMgdGhlIHRvb2xjaGFpbgorICAgICAgICAgICAg IyB0byB0aGUgZW52aXJvbm1lbnQgd2l0aG91dCBzbG93aW5nIGRvd24gYSBwbGFpbiBgbml4 IGJ1aWxkYC4KKyAgICAgICAgICAgIGRvY3MgPyB0cnVlLAorICAgICAgICAgIH06CisgICAg ICAgICAgbGV0CisgICAgICAgICAgICB1c2VNZXNvbiA9IGJ1aWxkU3lzdGVtID09ICJtZXNv biI7CisKKyAgICAgICAgICAgICMgZmVhdHVyZSAtPiB7IGZsYWcgPSBjb25maWd1cmUgYXJn OyBkZXAgPSBidWlsZElucHV0IG9yIG51bGw7IH0KKyAgICAgICAgICAgIGZlYXR1cmVGbGFn ID0gY29uZDogZmxhZzogbGliLm9wdGlvbmFsIGNvbmQgZmxhZzsKKyAgICAgICAgICAgIGZl YXR1cmVEZXAgPSBjb25kOiBkZXA6IGxpYi5vcHRpb25hbCBjb25kIGRlcDsKKworICAgICAg ICAgICAgY29uZmlndXJlRmVhdHVyZXMgPSBsaWIuZmxhdHRlbiBbCisgICAgICAgICAgICAg IChmZWF0dXJlRmxhZyBpY3VTdXBwb3J0ICItLXdpdGgtaWN1IikKKyAgICAgICAgICAgICAg KGZlYXR1cmVGbGFnICghaWN1U3VwcG9ydCkgIi0td2l0aG91dC1pY3UiKQorICAgICAgICAg ICAgICAoZmVhdHVyZUZsYWcgKCFyZWFkbGluZVN1cHBvcnQpICItLXdpdGhvdXQtcmVhZGxp bmUiKQorICAgICAgICAgICAgICAoZmVhdHVyZUZsYWcgKCF6bGliU3VwcG9ydCkgIi0td2l0 aG91dC16bGliIikKKyAgICAgICAgICAgICAgKGZlYXR1cmVGbGFnIG9wZW5zc2xTdXBwb3J0 ICItLXdpdGgtc3NsPW9wZW5zc2wiKQorICAgICAgICAgICAgICAoZmVhdHVyZUZsYWcgbGli eG1sU3VwcG9ydCAiLS13aXRoLWxpYnhtbCIpCisgICAgICAgICAgICAgIChmZWF0dXJlRmxh ZyBsaWJ4c2x0U3VwcG9ydCAiLS13aXRoLWxpYnhzbHQiKQorICAgICAgICAgICAgICAoZmVh dHVyZUZsYWcgbHo0U3VwcG9ydCAiLS13aXRoLWx6NCIpCisgICAgICAgICAgICAgIChmZWF0 dXJlRmxhZyB6c3RkU3VwcG9ydCAiLS13aXRoLXpzdGQiKQorICAgICAgICAgICAgICAoZmVh dHVyZUZsYWcgdXVpZFN1cHBvcnQgIi0td2l0aC11dWlkPWUyZnMiKQorICAgICAgICAgICAg ICAoZmVhdHVyZUZsYWcgY3VybFN1cHBvcnQgIi0td2l0aC1saWJjdXJsIikKKyAgICAgICAg ICAgICAgKGZlYXR1cmVGbGFnIHBlcmxTdXBwb3J0ICItLXdpdGgtcGVybCIpCisgICAgICAg ICAgICAgIChmZWF0dXJlRmxhZyBweXRob25TdXBwb3J0ICItLXdpdGgtcHl0aG9uIikKKyAg ICAgICAgICAgICAgKGZlYXR1cmVGbGFnIHRjbFN1cHBvcnQgIi0td2l0aC10Y2wiKQorICAg ICAgICAgICAgICAoZmVhdHVyZUZsYWcgc3lzdGVtZFN1cHBvcnQgIi0td2l0aC1zeXN0ZW1k IikKKyAgICAgICAgICAgICAgKGZlYXR1cmVGbGFnIHNlbGludXhTdXBwb3J0ICItLXdpdGgt c2VsaW51eCIpCisgICAgICAgICAgICAgIChmZWF0dXJlRmxhZyBsaWJ1cmluZ1N1cHBvcnQg Ii0td2l0aC1saWJ1cmluZyIpCisgICAgICAgICAgICAgIChmZWF0dXJlRmxhZyBudW1hU3Vw cG9ydCAiLS13aXRoLWxpYm51bWEiKQorICAgICAgICAgICAgICAoZmVhdHVyZUZsYWcgZ3Nz U3VwcG9ydCAiLS13aXRoLWdzc2FwaSIpCisgICAgICAgICAgICAgIChmZWF0dXJlRmxhZyBs ZGFwU3VwcG9ydCAiLS13aXRoLWxkYXAiKQorICAgICAgICAgICAgICAoZmVhdHVyZUZsYWcg cGFtU3VwcG9ydCAiLS13aXRoLXBhbSIpCisgICAgICAgICAgICAgIChmZWF0dXJlRmxhZyBi b25qb3VyU3VwcG9ydCAiLS13aXRoLWJvbmpvdXIiKQorICAgICAgICAgICAgICAoZmVhdHVy ZUZsYWcgbGx2bVN1cHBvcnQgIi0td2l0aC1sbHZtIikKKyAgICAgICAgICAgICAgKGZlYXR1 cmVGbGFnIGNhc3NlcnQgIi0tZW5hYmxlLWNhc3NlcnQiKQorICAgICAgICAgICAgICAoZmVh dHVyZUZsYWcgZGVidWdTeW1ib2xzICItLWVuYWJsZS1kZWJ1ZyIpCisgICAgICAgICAgICAg IChmZWF0dXJlRmxhZyB0YXBUZXN0cyAiLS1lbmFibGUtdGFwLXRlc3RzIikKKyAgICAgICAg ICAgICAgKGZlYXR1cmVGbGFnIGluamVjdGlvblBvaW50cyAiLS1lbmFibGUtaW5qZWN0aW9u LXBvaW50cyIpCisgICAgICAgICAgICBdOworCisgICAgICAgICAgICAjIG1lc29uIHVzZXMg LURmZWF0dXJlPWVuYWJsZWQvZGlzYWJsZWQgaW5zdGVhZCBvZiAtLXdpdGgtKi4KKyAgICAg ICAgICAgIG1lc29uRmVhdHVyZXMgPSBsaWIuZmxhdHRlbiBbCisgICAgICAgICAgICAgIFsg Ii1EaWN1PSR7aWYgaWN1U3VwcG9ydCB0aGVuICJlbmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9 IiBdCisgICAgICAgICAgICAgIFsgIi1EcmVhZGxpbmU9JHtpZiByZWFkbGluZVN1cHBvcnQg dGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQifSIgXQorICAgICAgICAgICAgICBbICIt RHpsaWI9JHtpZiB6bGliU3VwcG9ydCB0aGVuICJlbmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9 IiBdCisgICAgICAgICAgICAgIFsgIi1Ec3NsPSR7aWYgb3BlbnNzbFN1cHBvcnQgdGhlbiAi b3BlbnNzbCIgZWxzZSAibm9uZSJ9IiBdCisgICAgICAgICAgICAgIFsgIi1EbGlieG1sPSR7 aWYgbGlieG1sU3VwcG9ydCB0aGVuICJlbmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9IiBdCisg ICAgICAgICAgICAgIFsgIi1EbGlieHNsdD0ke2lmIGxpYnhzbHRTdXBwb3J0IHRoZW4gImVu YWJsZWQiIGVsc2UgImRpc2FibGVkIn0iIF0KKyAgICAgICAgICAgICAgWyAiLURsejQ9JHtp ZiBsejRTdXBwb3J0IHRoZW4gImVuYWJsZWQiIGVsc2UgImRpc2FibGVkIn0iIF0KKyAgICAg ICAgICAgICAgWyAiLUR6c3RkPSR7aWYgenN0ZFN1cHBvcnQgdGhlbiAiZW5hYmxlZCIgZWxz ZSAiZGlzYWJsZWQifSIgXQorICAgICAgICAgICAgICBbICItRHV1aWQ9JHtpZiB1dWlkU3Vw cG9ydCB0aGVuICJlMmZzIiBlbHNlICJub25lIn0iIF0KKyAgICAgICAgICAgICAgWyAiLURs aWJjdXJsPSR7aWYgY3VybFN1cHBvcnQgdGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQi fSIgXQorICAgICAgICAgICAgICBbICItRHBscGVybD0ke2lmIHBlcmxTdXBwb3J0IHRoZW4g ImVuYWJsZWQiIGVsc2UgImRpc2FibGVkIn0iIF0KKyAgICAgICAgICAgICAgWyAiLURwbHB5 dGhvbj0ke2lmIHB5dGhvblN1cHBvcnQgdGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQi fSIgXQorICAgICAgICAgICAgICBbICItRHBsdGNsPSR7aWYgdGNsU3VwcG9ydCB0aGVuICJl bmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9IiBdCisgICAgICAgICAgICAgIFsgIi1Ec3lzdGVt ZD0ke2lmIHN5c3RlbWRTdXBwb3J0IHRoZW4gImVuYWJsZWQiIGVsc2UgImRpc2FibGVkIn0i IF0KKyAgICAgICAgICAgICAgWyAiLURzZWxpbnV4PSR7aWYgc2VsaW51eFN1cHBvcnQgdGhl biAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQifSIgXQorICAgICAgICAgICAgICBbICItRGxp YnVyaW5nPSR7aWYgbGlidXJpbmdTdXBwb3J0IHRoZW4gImVuYWJsZWQiIGVsc2UgImRpc2Fi bGVkIn0iIF0KKyAgICAgICAgICAgICAgWyAiLURsaWJudW1hPSR7aWYgbnVtYVN1cHBvcnQg dGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQifSIgXQorICAgICAgICAgICAgICBbICIt RGdzc2FwaT0ke2lmIGdzc1N1cHBvcnQgdGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQi fSIgXQorICAgICAgICAgICAgICBbICItRGxkYXA9JHtpZiBsZGFwU3VwcG9ydCB0aGVuICJl bmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9IiBdCisgICAgICAgICAgICAgIFsgIi1EcGFtPSR7 aWYgcGFtU3VwcG9ydCB0aGVuICJlbmFibGVkIiBlbHNlICJkaXNhYmxlZCJ9IiBdCisgICAg ICAgICAgICAgIFsgIi1EYm9uam91cj0ke2lmIGJvbmpvdXJTdXBwb3J0IHRoZW4gImVuYWJs ZWQiIGVsc2UgImRpc2FibGVkIn0iIF0KKyAgICAgICAgICAgICAgWyAiLURsbHZtPSR7aWYg bGx2bVN1cHBvcnQgdGhlbiAiZW5hYmxlZCIgZWxzZSAiZGlzYWJsZWQifSIgXQorICAgICAg ICAgICAgICBbICItRGNhc3NlcnQ9JHtsaWIuYm9vbFRvU3RyaW5nIGNhc3NlcnR9IiBdCisg ICAgICAgICAgICAgIFsgIi1EdGFwX3Rlc3RzPSR7aWYgdGFwVGVzdHMgdGhlbiAiZW5hYmxl ZCIgZWxzZSAiZGlzYWJsZWQifSIgXQorICAgICAgICAgICAgICBbICItRGluamVjdGlvbl9w b2ludHM9JHtsaWIuYm9vbFRvU3RyaW5nIGluamVjdGlvblBvaW50c30iIF0KKyAgICAgICAg ICAgIF07CisKKyAgICAgICAgICAgIGJ1aWxkSW5wdXRzID0gbGliLmZsYXR0ZW4gKHdpdGgg cGtnczsgWworICAgICAgICAgICAgICAoZmVhdHVyZURlcCBpY3VTdXBwb3J0IGljdSkKKyAg ICAgICAgICAgICAgKGZlYXR1cmVEZXAgcmVhZGxpbmVTdXBwb3J0IHJlYWRsaW5lKQorICAg ICAgICAgICAgICAoZmVhdHVyZURlcCB6bGliU3VwcG9ydCB6bGliKQorICAgICAgICAgICAg ICAoZmVhdHVyZURlcCBvcGVuc3NsU3VwcG9ydCBvcGVuc3NsKQorICAgICAgICAgICAgICAo ZmVhdHVyZURlcCBsaWJ4bWxTdXBwb3J0IGxpYnhtbDIpCisgICAgICAgICAgICAgIChmZWF0 dXJlRGVwIGxpYnhzbHRTdXBwb3J0IGxpYnhzbHQpCisgICAgICAgICAgICAgIChmZWF0dXJl RGVwIGx6NFN1cHBvcnQgbHo0KQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCB6c3RkU3Vw cG9ydCB6c3RkKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCB1dWlkU3VwcG9ydCBsaWJ1 dWlkKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBjdXJsU3VwcG9ydCBjdXJsKQorICAg ICAgICAgICAgICAoZmVhdHVyZURlcCBwZXJsU3VwcG9ydCBwZXJsKQorICAgICAgICAgICAg ICAoZmVhdHVyZURlcCBweXRob25TdXBwb3J0IHB5dGhvbjMpCisgICAgICAgICAgICAgIChm ZWF0dXJlRGVwIHRjbFN1cHBvcnQgdGNsKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBz eXN0ZW1kU3VwcG9ydCBzeXN0ZW1kTGlicykKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAg c2VsaW51eFN1cHBvcnQgbGlic2VsaW51eCkKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAg bGlidXJpbmdTdXBwb3J0IGxpYnVyaW5nKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBu dW1hU3VwcG9ydCBudW1hY3RsKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBnc3NTdXBw b3J0IGxpYmtyYjUpCisgICAgICAgICAgICAgIChmZWF0dXJlRGVwIGxkYXBTdXBwb3J0IG9w ZW5sZGFwKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBwYW1TdXBwb3J0IGxpbnV4LXBh bSkKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAgbGx2bVN1cHBvcnQgbGx2bVBhY2thZ2Vz Lmxsdm0pCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICBpbgorICAgICAgICAgIHN0ZGVu di5ta0Rlcml2YXRpb24geworICAgICAgICAgICAgcG5hbWUgPSAicG9zdGdyZXNxbCI7Cisg ICAgICAgICAgICB2ZXJzaW9uID0gIjIwZGV2ZWwiOworICAgICAgICAgICAgc3JjID0gc2Vs ZjsKKworICAgICAgICAgICAgc3RyaWN0RGVwcyA9IHRydWU7CisKKyAgICAgICAgICAgIG5h dGl2ZUJ1aWxkSW5wdXRzID0gbGliLmZsYXR0ZW4gKHdpdGggcGtnczsgWworICAgICAgICAg ICAgICBiaXNvbgorICAgICAgICAgICAgICBmbGV4CisgICAgICAgICAgICAgIHBlcmwKKyAg ICAgICAgICAgICAgcGtnLWNvbmZpZworICAgICAgICAgICAgICAoZmVhdHVyZURlcCB1c2VN ZXNvbiBtZXNvbikKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAgdXNlTWVzb24gbmluamEp CisgICAgICAgICAgICAgIChmZWF0dXJlRGVwIGxsdm1TdXBwb3J0IGxsdm1QYWNrYWdlcy5s bHZtLmRldikKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAgZG9jcyBkb2Nib29rLXhzbC1u b25zKQorICAgICAgICAgICAgICAoZmVhdHVyZURlcCBkb2NzIGRvY2Jvb2tfeG1sX2R0ZF80 NSkKKyAgICAgICAgICAgICAgKGZlYXR1cmVEZXAgZG9jcyBsaWJ4c2x0KQorICAgICAgICAg ICAgXSk7CisKKyAgICAgICAgICAgIGluaGVyaXQgYnVpbGRJbnB1dHM7CisKKyAgICAgICAg ICAgICMgLS0tLSBhdXRvY29uZiBwYXRoIC0tLS0KKyAgICAgICAgICAgIGNvbmZpZ3VyZUZs YWdzID0gbGliLm9wdGlvbmFscyAoIXVzZU1lc29uKSBjb25maWd1cmVGZWF0dXJlczsKKwor ICAgICAgICAgICAgIyAtLS0tIG1lc29uIHBhdGggLS0tLQorICAgICAgICAgICAgbWVzb25C dWlsZFR5cGUgPSAicmVsZWFzZSI7CisgICAgICAgICAgICBtZXNvbkZsYWdzID0gbGliLm9w dGlvbmFscyB1c2VNZXNvbiBtZXNvbkZlYXR1cmVzOworICAgICAgICAgICAgZG9udFVzZU1l c29uQ29uZmlndXJlID0gIXVzZU1lc29uOworICAgICAgICAgICAgbWVzb25BdXRvRmVhdHVy ZXMgPSAiZGlzYWJsZWQiOworCisgICAgICAgICAgICBlbmFibGVQYXJhbGxlbEJ1aWxkaW5n ID0gdHJ1ZTsKKyAgICAgICAgICAgIGRvQ2hlY2sgPSB0YXBUZXN0czsKKworICAgICAgICAg ICAgbWV0YSA9IHdpdGggbGliOyB7CisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIk9i amVjdC1yZWxhdGlvbmFsIGRhdGFiYXNlIG1hbmFnZW1lbnQgc3lzdGVtLCBidWlsdCBmcm9t IHNvdXJjZSI7CisgICAgICAgICAgICAgIGhvbWVwYWdlID0gImh0dHBzOi8vd3d3LnBvc3Rn cmVzcWwub3JnLyI7CisgICAgICAgICAgICAgIGxpY2Vuc2UgPSBsaWNlbnNlcy5wb3N0Z3Jl c3FsOworICAgICAgICAgICAgICBwbGF0Zm9ybXMgPSBwbGF0Zm9ybXMudW5peDsKKyAgICAg ICAgICAgICAgbWFpblByb2dyYW0gPSAicHNxbCI7CisgICAgICAgICAgICB9OworICAgICAg ICAgIH0KKyAgICAgICAgKQorICAgICAgICB7IH07CisgICAgaW4KKyAgICB7CisgICAgICBw YWNrYWdlcyA9IGZvckFsbFN5c3RlbXMgKHBrZ3M6IHJlYyB7CisgICAgICAgIHBvc3RncmVz cWwgPSBwb3N0Z3Jlc3FsRm9yIHBrZ3M7CisgICAgICAgICMgQ29tbW9uIHByZXNldHMgYnVp bHQgb24gdG9wIG9mIHRoZSBmdWxseS1wYXJhbWV0ZXJpemVkIGRlZmF1bHQuCisgICAgICAg IHBvc3RncmVzcWwtYXV0b2NvbmYgPSBwb3N0Z3Jlc3FsLm92ZXJyaWRlIHsgYnVpbGRTeXN0 ZW0gPSAiYXV0b2NvbmYiOyB9OworICAgICAgICBwb3N0Z3Jlc3FsLWRlYnVnID0gcG9zdGdy ZXNxbC5vdmVycmlkZSB7CisgICAgICAgICAgY2Fzc2VydCA9IHRydWU7CisgICAgICAgICAg ZGVidWdTeW1ib2xzID0gdHJ1ZTsKKyAgICAgICAgICBpbmplY3Rpb25Qb2ludHMgPSB0cnVl OworICAgICAgICB9OworICAgICAgICBwb3N0Z3Jlc3FsLW1pbmltYWwgPSBwb3N0Z3Jlc3Fs Lm92ZXJyaWRlIHsKKyAgICAgICAgICBpY3VTdXBwb3J0ID0gZmFsc2U7CisgICAgICAgICAg cmVhZGxpbmVTdXBwb3J0ID0gZmFsc2U7CisgICAgICAgICAgemxpYlN1cHBvcnQgPSBmYWxz ZTsKKyAgICAgICAgICBvcGVuc3NsU3VwcG9ydCA9IGZhbHNlOworICAgICAgICAgIGxpYnht bFN1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICBsaWJ4c2x0U3VwcG9ydCA9IGZhbHNlOwor ICAgICAgICAgIGx6NFN1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICB6c3RkU3VwcG9ydCA9 IGZhbHNlOworICAgICAgICAgIHV1aWRTdXBwb3J0ID0gZmFsc2U7CisgICAgICAgICAgY3Vy bFN1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICBwZXJsU3VwcG9ydCA9IGZhbHNlOworICAg ICAgICAgIHB5dGhvblN1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICB0Y2xTdXBwb3J0ID0g ZmFsc2U7CisgICAgICAgICAgc3lzdGVtZFN1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICBs aWJ1cmluZ1N1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICBudW1hU3VwcG9ydCA9IGZhbHNl OworICAgICAgICAgIGdzc1N1cHBvcnQgPSBmYWxzZTsKKyAgICAgICAgICBwYW1TdXBwb3J0 ID0gZmFsc2U7CisgICAgICAgIH07CisgICAgICAgIGRlZmF1bHQgPSBwb3N0Z3Jlc3FsOwor ICAgICAgfSk7CisKKyAgICAgICMgYG5peCBkZXZlbG9wYDogdGhlIHBvc3RncmVzcWwgcGFj a2FnZSBhbHJlYWR5IGJyaW5ncyBpbiB0aGUgZnVsbAorICAgICAgIyBidWlsZCB0b29sY2hh aW4gKG1lc29uLCBuaW5qYSwgYmlzb24sIGZsZXgsIHBlcmwsIHB5dGhvbjMsIHRjbCwgdGhl CisgICAgICAjIG9wdGlvbmFsIGxpYnJhcmllcywgYW5kLCBzaW5jZSBkb2NzIGFyZSBvbiBi eSBkZWZhdWx0LCB0aGUgRG9jQm9vaworICAgICAgIyB0b29sY2hhaW4pIHZpYSBpbnB1dHNG cm9tLiBXZSBhZGQgb25seSBjY2FjaGUgb24gdG9wLgorICAgICAgZGV2U2hlbGxzID0gZm9y QWxsU3lzdGVtcyAocGtnczogeworICAgICAgICBkZWZhdWx0ID0gcGtncy5ta1NoZWxsIHsK KyAgICAgICAgICBpbnB1dHNGcm9tID0gWyBzZWxmLnBhY2thZ2VzLiR7cGtncy5zdGRlbnYu aG9zdFBsYXRmb3JtLnN5c3RlbX0ucG9zdGdyZXNxbCBdOworICAgICAgICAgIHBhY2thZ2Vz ID0gWyBwa2dzLmNjYWNoZSBdOworICAgICAgICB9OworICAgICAgfSk7CisKKyAgICAgIGZv cm1hdHRlciA9IGZvckFsbFN5c3RlbXMgKHBrZ3M6IHBrZ3Mubml4Zm10KTsKKyAgICB9Owor fQotLSAKMi41NC4wCgo= --acaf76612720b426d63ed535c88bad061ac914f9--