From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 6A66413857A for ; Sat, 19 Jan 2013 22:12:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E53F021C008; Sat, 19 Jan 2013 22:12:57 +0000 (UTC) Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com [209.85.217.170]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6A77121C008 for ; Sat, 19 Jan 2013 22:12:56 +0000 (UTC) Received: by mail-lb0-f170.google.com with SMTP id gj10so222294lbb.29 for ; Sat, 19 Jan 2013 14:12:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=gmUCNm9szgF5ZeuQUGtqo7/xC9jqkWfwNO3tDw5uB7E=; b=lD/69OuECN0I3bprTiC6aqluDoo3Qkbv3gyt1E/Dn80Qhh/XDwVSVJiED1Xbysmt5s aiSJyG/7HJSfLJQ3fHJhSufXeN9sEO6pGzzkOfgXyQE7mQZWpBsnGlmhICfYmVnXRaK+ 9YZYe7/csyooiC5NjVQ9JFthhpjJTfmS3P9HQjWFFgiY/pMQnDRd9SXTLqQMNDlYKLYr X7gF3F8U8V7R/09KSsXLw8ctixcJxgNNdy/1ypnZDQbISxQQtiBPdpxLHPu81gXecO9Y Uxt9OF+Ir9kxGgZja1GOKmmTuN1quUcKzmdcc2lIGBdPeXNoHBsX6yJsHm3nDGigUd8H AVOw== X-Received: by 10.112.83.202 with SMTP id s10mr5691517lby.101.1358633574662; Sat, 19 Jan 2013 14:12:54 -0800 (PST) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-alt@lists.gentoo.org Reply-to: gentoo-alt@lists.gentoo.org MIME-Version: 1.0 Received: by 10.152.21.5 with HTTP; Sat, 19 Jan 2013 14:12:33 -0800 (PST) From: Linpeng Tang Date: Sat, 19 Jan 2013 17:12:33 -0500 Message-ID: Subject: [gentoo-alt] problems with bootstrapping in Gentoo-prefix To: gentoo-alt@lists.gentoo.org Content-Type: multipart/mixed; boundary=f46d04016cd59904a104d3ab873a X-Archives-Salt: cd08e22c-87b2-4649-9237-4569d4be000b X-Archives-Hash: 560b711e9dba113ce975c7fc94545e70 --f46d04016cd59904a104d3ab873a Content-Type: multipart/alternative; boundary=f46d04016cd599049004d3ab8738 --f46d04016cd599049004d3ab8738 Content-Type: text/plain; charset=ISO-8859-1 Hi, I am trying to install gentoo-prefix, and met some problems with the interactive installer at stage 3: make[1]: *** [Makefile] Error 1 make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract' Unsuccessful make(cpan/Archive-Extract): code=512 at make_ext.pl line 466. make: *** [cpan/Archive-Extract/pm_to_blib] Error 25 * ERROR: dev-lang/perl-5.16.1 failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-lang/perl-5.16.1'`, * the complete build log and the output of `emerge -pqv '=dev-lang/perl-5.16.1'`. * The complete build log is located at '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/build.log'. * The ebuild environment file is located at '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/environmen't. * Working directory: '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1' * S: '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1' Attached is the build log and build environment file. I don't know where the emerge executable is located, so I can't post the output of `emerge --info '=dev-lang/perl-5.16.1'` yet. Anyone has any idea how to fix this? Thanks in advance. -- ----------------------------------- Princeton University Computer Science Department Linpeng Tang --f46d04016cd599049004d3ab8738 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,

I am trying to install gentoo= -prefix, and met some problems with the interactive installer at stage 3:

make[1]: *** [Makefile] Error 1
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev= -lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
Unsu= ccessful make(cpan/Archive-Extract): code=3D512 at make_ext.pl line 466.
make: *** [cpan/Archive-Extract/pm_to_blib] Error 25
=A0* ER= ROR: dev-lang/perl-5.16.1 failed (compile phase):
=A0* =A0 emake = failed
=A0*
=A0* If you need support, post the output o= f `emerge --info '=3Ddev-lang/perl-5.16.1'`,
=A0* the complete build log and the output of `emerge -pqv '=3Ddev= -lang/perl-5.16.1'`.
=A0* The complete build log is located a= t '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/bui= ld.log'.
=A0* The ebuild environment file is located at '/memex/linpengt/ge= ntoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/environmen't.
= =A0* Working directory: '/memex/linpengt/gentoo/var/tmp/portage/dev-lan= g/perl-5.16.1/work/perl-5.16.1'
=A0* S: '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16= .1/work/perl-5.16.1'

Attached is the bui= ld log and build environment file.

I don't know where the emerge executable is located, so I can't pos= t the output of=A0`emerge --info '=3Ddev-lang/perl-5.16.1'` yet.

Anyone has any idea how to fix this?
<= div style>
Thanks in advance.
--
--= ---------------------------------
Princeton University
Computer Science Department
Linpeng Tang


=
--f46d04016cd599049004d3ab8738-- --f46d04016cd59904a104d3ab873a Content-Type: application/octet-stream; name="gentoo.build_env" Content-Disposition: attachment; filename="gentoo.build_env" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hc5bbve90 ZGVjbGFyZSAteCBBQkk9ImFtZDY0IgpkZWNsYXJlIC14IEFMU0FfQ0FSRFM9IiIKZGVjbGFyZSAt eCBBTFNBX1BDTV9QTFVHSU5TPSJhZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25v b3AgZW1wdHkgZXh0cGx1ZyBmaWxlIGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBs aW5lYXIgbWV0ZXIgbW1hcF9lbXVsIG11bGF3IG11bHRpIG51bGwgcGx1ZyByYXRlIHJvdXRlIHNo YXJlIHNobSBzb2Z0dm9sIgpkZWNsYXJlIC14IEFOVF9IT01FPSIvb3B0L3JvY2tzIgpkZWNsYXJl IC14IEFQQUNIRTJfTU9EVUxFUz0iYWN0aW9ucyBhbGlhcyBhdXRoX2Jhc2ljIGF1dGhuX2FsaWFz IGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhuX2RlZmF1bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0g YXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0aHpfaG9zdCBhdXRoel9vd25lciBhdXRo el91c2VyIGF1dG9pbmRleCBjYWNoZSBjZ2kgY2dpZCBkYXYgZGF2X2ZzIGRhdl9sb2NrIGRlZmxh dGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2ZpbHRlciBmaWxlX2NhY2hlIGZpbHRl ciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxvZ2lvIG1lbV9jYWNoZSBtaW1lIG1p bWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRlbnZpZiBzcGVsaW5nIHN0YXR1cyB1bmlx dWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiCmRlY2xhcmUgLXggQVJDSD0iYW1k NjQiCmRlY2xhcmUgLS0gQVJDSF9MSUI9Ii91c3IvbGliL3Blcmw1LzUuMTYuMS94ODZfNjQtbGlu dXgiCmRlY2xhcmUgLXggQkxPQ0tTSVpFPSJLIgpkZWNsYXJlIC14IEJPT1RTVFJBUF9VU0U9ImN4 eCB1bmljb2RlIG11bHRpbGliIG11bHRpbGliIgpkZWNsYXJlIC14IEJVSUxEX0JaSVAyPSIwIgpk ZWNsYXJlIC14IEJVSUxEX1pMSUI9IkZhbHNlIgpkZWNsYXJlIC14IEJaSVAyX0lOQ0xVREU9Ii9t ZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUiCmRlY2xhcmUgLXggQlpJUDJfTElCPSIv bWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9saWIiCmRlY2xhcmUgLXggQ0FMTElHUkFfRkVBVFVS RVM9ImtleGkgd29yZHMgZmxvdyBwbGFuIHNoZWV0cyBzdGFnZSB0YWJsZXMga3JpdGEga2FyYm9u IGJyYWluZHVtcCIKZGVjbGFyZSAteCBDQU1FUkFTPSJwdHAyIgpkZWNsYXJlIC14IENCVUlMRD0i eDg2XzY0LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDQ0FTRkxBR1M9IiIKZGVjbGFyZSAteCBD RkxBR1M9Ii1PMiAtcGlwZSIKZGVjbGFyZSAteCBDRkxBR1NfYW1kNjQ9Ii1tNjQiCmRlY2xhcmUg LXggQ0ZMQUdTX2RlZmF1bHQKZGVjbGFyZSAteCBDRkxBR1NfeDMyPSItbXgzMiIKZGVjbGFyZSAt eCBDRkxBR1NfeDg2PSItbTMyIgpkZWNsYXJlIC14IENIT1NUPSJ4ODZfNjQtcGMtbGludXgtZ251 IgpkZWNsYXJlIC14IENIT1NUX2FtZDY0PSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14 IENIT1NUX2RlZmF1bHQ9Ing4Nl82NC1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0hPU1RfeDMy PSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENIT1NUX3g4Nj0iaTY4Ni1wYy1saW51 eC1nbnUiCmRlY2xhcmUgLXggQ09MTEVDVERfUExVR0lOUz0iZGYgaW50ZXJmYWNlIGlycSBsb2Fk IG1lbW9yeSBycmR0b29sIHN3YXAgc3lzbG9nIgpkZWNsYXJlIC14IENPTkZJR1VSRV9FUFJFRklY PSIvbWVtZXgvbGlucGVuZ3QvZ2VudG9vIgpkZWNsYXJlIC14IENQUEZMQUdTPSItSS9tZW1leC9s aW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3RtcC91 c3IvaW5jbHVkZSIKZGVjbGFyZSAteCBDUk9TU0NPTVBJTEVfT1BUUz0iIgpkZWNsYXJlIC14IENU QVJHRVRfZGVmYXVsdD0ieDg2XzY0LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDWFhGTEFHUz0i LU8yIC1waXBlIgpkZWNsYXJlIC14IERFRkFVTFRfQUJJPSJkZWZhdWx0IgpkZWNsYXJlIC14IERF RklORURfUEhBU0VTPSIgY29uZmlndXJlIGluc3RhbGwgcG9zdGluc3QgcG9zdHJtIHByZXBhcmUg c2V0dXAgdGVzdCIKZGVjbGFyZSBERVBFTkQ9IgoJYmVya2RiPyAoIHN5cy1saWJzL2RiICkKCWdk Ym0/ICggPj1zeXMtbGlicy9nZGJtLTEuOC4zICkKCWFwcC1hcmNoL2J6aXAyCglzeXMtbGlicy96 bGliCgoJIXByZWZpeD8gKCBlbGliY19GcmVlQlNEPyAoIHN5cy1mcmVlYnNkL2ZyZWVic2QtbWst ZGVmcyApICkKICIKZGVjbGFyZSBERVNDUklQVElPTj0iTGFycnkgV2FsbCdzIFByYWN0aWNhbCBF eHRyYWN0aW9uIGFuZCBSZXBvcnQgTGFuZ3VhZ2UiCmRlY2xhcmUgLXggREVTVFRSRUU9Ii91c3Ii CmRlY2xhcmUgLXggRElST1BUSU9OUz0iLW0wNzU1IgpkZWNsYXJlIC14IEVBUEk9IjQiCmRlY2xh cmUgLXggRUxJQkM9ImdsaWJjIgpkZWNsYXJlIC14IEVNQUNTPSJ0IgpkZWNsYXJlIC14IEVOVj0i L21lbWV4L2xpbnBlbmd0Ly5zaHJjIgpkZWNsYXJlIC0tIEVQQVRDSF9DT01NT05fT1BUUz0iLWcw IC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIgpkZWNsYXJlIC0tIEVQQVRDSF9FWENMVURFPSIi CmRlY2xhcmUgLS0gRVBBVENIX0ZPUkNFPSJubyIKZGVjbGFyZSAtLSBFUEFUQ0hfTVVMVElfTVNH PSJBcHBseWluZyB2YXJpb3VzIHBhdGNoZXMgKGJ1Z2ZpeGVzL3VwZGF0ZXMpIC4uLiIKZGVjbGFy ZSAtLSBFUEFUQ0hfT1BUUz0iIC1wMSIKZGVjbGFyZSAtLSBFUEFUQ0hfU0lOR0xFX01TRz0iICBn ZW50b28vaW50ZXJpeC5kaWZmIC4uLiIKZGVjbGFyZSAtLSBFUEFUQ0hfU09VUkNFPSIvbWVtZXgv bGlucGVuZ3QvZ2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFuZy9wZXJsLTUuMTYuMS93b3Jr L3BhdGNoIgpkZWNsYXJlIC0tIEVQQVRDSF9TVUZGSVg9InBhdGNoLmJ6MiIKZGVjbGFyZSAteCBF WEVPUFRJT05TPSItbTA3NTUiCmRlY2xhcmUgLXggRkNGTEFHUz0iLU8yIC1waXBlIgpkZWNsYXJl IC14IEZFVENIQ09NTUFORF9TU0g9ImJhc2ggLWMgXCJ4PVxcXCR7MiNzc2g6Ly99IDsgaG9zdD1c XFwke3glJS8qfSA7IHBvcnQ9XFxcJHtob3N0IyMqOn0gOyBob3N0PVxcXCR7aG9zdCU6Kn0gOyBb WyBcXFwke2hvc3R9ID0gXFxcJHtwb3J0fSBdXSAmJiBwb3J0PTIyIDsgZXhlYyByc3luYyAtLXJz aD1cXFwic3NoIC1wXFxcJHtwb3J0fVxcXCIgLWF2UCBcXFwiXFxcJHtob3N0fTovXFxcJHt4Iyov fVxcXCIgXFxcIlxcXCQxXFxcIlwiIHJzeW5jIFwiXCR7RElTVERJUn0vXCR7RklMRX1cIiBcIlwk e1VSSX1cIiIKZGVjbGFyZSAteCBGRkxBR1M9Ii1PMiAtcGlwZSIKZGVjbGFyZSAteCBHQ0NfU1BF Q1M9IiIKZGVjbGFyZSAteCBHUFNEX1BST1RPQ09MUz0iYXNodGVjaCBhaXZkbSBlYXJ0aG1hdGUg ZXZlcm1vcmUgZnYxOCBnYXJtaW4gZ2FybWludHh0IGdwc2Nsb2NrIGl0cmF4IG10azMzMDEgbm1l YSBudHJpcCBuYXZjb20gb2NlYW5zZXJ2ZXIgb2xkc3R5bGUgb25jb3JlIHJ0Y20xMDR2MiBydGNt MTA0djMgc2lyZiBzdXBlcnN0YXIyIHRpbWluZyB0c2lwIHRyaXBtYXRlIHRudCB1YngiCmRlY2xh cmUgLXggR1JVQl9QTEFURk9STVM9IiIKZGVjbGFyZSAteCBHX0JST0tFTl9GSUxFTkFNRVM9IjEi CmRlY2xhcmUgLXggSEFET09QX0NPTkZfRElSPSIvaG9tZS9mdXNlL2hhZG9vcC1jb25mIgpkZWNs YXJlIC14IEhBRE9PUF9IT01FPSIvb3B0L2hhZG9vcCIKZGVjbGFyZSAteCBISVNUU0laRT0iMTAw MCIKZGVjbGFyZSAteCBIT0RfQ09ORl9ESVI9Ii9ob21lL2Z1c2UvaG9kLWNvbmYiCmRlY2xhcmUg LXggSE9EX0hPTUU9Ii9vcHQvaGFkb29wL2NvbnRyaWIvaG9kIgpkZWNsYXJlIEhPTUVQQUdFPSJo dHRwOi8vd3d3LnBlcmwub3JnLyIKZGVjbGFyZSAteCBJTkhFUklURUQ9IiBtdWx0aWxpYiBwcmVm aXggdG9vbGNoYWluLWZ1bmNzIHVzZXIgZXV0aWxzIGFsdGVybmF0aXZlcyBmbGFnLW8tbWF0aWMg bXVsdGlwcm9jZXNzaW5nIgpkZWNsYXJlIC14IElOUFVUUkM9Ii9ldGMvaW5wdXRyYyIKZGVjbGFy ZSAteCBJTlBVVF9ERVZJQ0VTPSJrZXlib2FyZCBtb3VzZSBldmRldiIKZGVjbGFyZSAteCBJTlNE RVNUVFJFRT0iIgpkZWNsYXJlIC14IElOU09QVElPTlM9Ii1tMDY0NCIKZGVjbGFyZSBJVVNFPSJi ZXJrZGIgZGVidWcgZG9jIGdkYm0gaXRocmVhZHMgIgpkZWNsYXJlIC14IEpBVkFfSE9NRT0iL3Vz ci9qYXZhL2xhdGVzdCIKZGVjbGFyZSAteCBKQk9TU19IT01FPSIvb3B0L2pib3NzIgpkZWNsYXJl IC14IEpCT1NTX1VTRVI9Impib3NzIgpkZWNsYXJlIC14IEtFUk5FTD0ibGludXgiCmRlY2xhcmUg LXggS0VSTkVMX0FCST0iZGVmYXVsdCIKZGVjbGFyZSAteCBLRVlXT1JEUz0ifmFscGhhIH5hbWQ2 NCB+YXJtIH5ocHBhIH5pYTY0IH5tNjhrIH5taXBzIH5wcGMgfnBwYzY0IH5zMzkwIH5zaCB+c3Bh cmMgfng4NiB+cHBjLWFpeCB+YW1kNjQtZmJzZCB+eDg2LWZic2Qgfng2NC1mcmVlYnNkIH54ODYt ZnJlZWJzZCB+aHBwYS1ocHV4IH5pYTY0LWhwdXggfng4Ni1pbnRlcml4IH5hbWQ2NC1saW51eCB+ aWE2NC1saW51eCB+eDg2LWxpbnV4IH5wcGMtbWFjb3Mgfng2NC1tYWNvcyB+eDg2LW1hY29zIH5t NjhrLW1pbnQgfnNwYXJjLXNvbGFyaXMgfnNwYXJjNjQtc29sYXJpcyB+eDY0LXNvbGFyaXMgfng4 Ni1zb2xhcmlzIgpkZWNsYXJlIC14IExBTkc9ImVuX1VTLmlzbzg4NTkxNSIKZGVjbGFyZSAteCBM Q0RfREVWSUNFUz0iIgpkZWNsYXJlIC14IExDX0FMTD0iQyIKZGVjbGFyZSAteCBMREZMQUdTPSIt TC9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiAtV2wsLXJwYXRoPS9tZW1leC9saW5wZW5n dC9nZW50b28vdXNyL2xpYiAtTC9tZW1leC9saW5wZW5ndC9nZW50b28vbGliIC1XbCwtcnBhdGg9 L21lbWV4L2xpbnBlbmd0L2dlbnRvby9saWIgLUwvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3RtcC91 c3IvbGliIC1XbCwtcnBhdGg9L21lbWV4L2xpbnBlbmd0L2dlbnRvby90bXAvdXNyL2xpYiIKZGVj bGFyZSAteCBMREZMQUdTX2FtZDY0PSItbSBlbGZfeDg2XzY0IgpkZWNsYXJlIC14IExERkxBR1Nf ZGVmYXVsdApkZWNsYXJlIC14IExERkxBR1NfeDMyPSItbSBlbGYzMl94ODZfNjQiCmRlY2xhcmUg LXggTERGTEFHU194ODY9Ii1tIGVsZl9pMzg2IgpkZWNsYXJlIC14IExJQkRJUl9hbWQ2ND0ibGli IgpkZWNsYXJlIC14IExJQkRJUl9hbWQ2NF9mYnNkPSJsaWI2NCIKZGVjbGFyZSAteCBMSUJESVJf ZGVmYXVsdD0ibGliIgpkZWNsYXJlIC14IExJQkRJUl9uMzI9ImxpYjMyIgpkZWNsYXJlIC14IExJ QkRJUl9uNjQ9ImxpYjY0IgpkZWNsYXJlIC14IExJQkRJUl9vMzI9ImxpYiIKZGVjbGFyZSAteCBM SUJESVJfcHBjPSJsaWIzMiIKZGVjbGFyZSAteCBMSUJESVJfcHBjNjQ9ImxpYjY0IgpkZWNsYXJl IC14IExJQkRJUl9zMzkwPSJsaWIzMiIKZGVjbGFyZSAteCBMSUJESVJfczM5MHg9ImxpYjY0Igpk ZWNsYXJlIC14IExJQkRJUl9zcGFyYzMyPSJsaWIzMiIKZGVjbGFyZSAteCBMSUJESVJfc3BhcmM2 ND0ibGliNjQiCmRlY2xhcmUgLXggTElCRElSX3gzMj0ibGlieDMyIgpkZWNsYXJlIC14IExJQkRJ Ul94ODY9ImxpYjMyIgpkZWNsYXJlIC14IExJQkRJUl94ODZfZmJzZD0ibGliMzIiCmRlY2xhcmUg LXggTElCT1BUSU9OUz0iLW0wNjQ0IgpkZWNsYXJlIC0tIExJQlBFUkw9ImxpYnBlcmwuc28uNS4x Ni4xIgpkZWNsYXJlIC14IExJQlJFT0ZGSUNFX0VYVEVOU0lPTlM9InByZXNlbnRlci1jb25zb2xl IHByZXNlbnRlci1taW5pbWl6ZXIiCmRlY2xhcmUgLXggTElDRU5TRT0ifHwgKCBBcnRpc3RpYyBH UEwtMSBHUEwtMiBHUEwtMyApIgpkZWNsYXJlIC14IE1BS0U9Im1ha2UiCmRlY2xhcmUgLS0gTU9E VUxFX0FVVEhPUj0iUkpCUyIKZGVjbGFyZSAteCBNVUxUSUxJQl9BQklTPSJhbWQ2NCIKZGVjbGFy ZSAteCBNVUxUSUxJQl9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0IgpkZWNsYXJl IC14IE1VTFRJTElCX1NUUklDVF9ESVJTPSIvbGliMzIgL2xpYiAvdXNyL2xpYjMyIC91c3IvbGli IC91c3Iva2RlLyovbGliMzIgL3Vzci9rZGUvKi9saWIgL3Vzci9xdC8qL2xpYjMyIC91c3IvcXQv Ki9saWIgL3Vzci9YMTFSNi9saWIzMiAvdXNyL1gxMVI2L2xpYiIKZGVjbGFyZSAteCBNVUxUSUxJ Ql9TVFJJQ1RfRVhFTVBUPSIocGVybDV8Z2NjfGdjYy1saWJ8YmludXRpbHN8ZWNsaXBzZS0zfGRl YnVnfHBvcnRhZ2V8dWRldikiCmRlY2xhcmUgLS0gTVlfUD0icGVybC01LjE2LjEiCmRlY2xhcmUg LS0gTVlfUFY9IjUuMTYuMSIKZGVjbGFyZSAteCBORVRCRUFOUz0iYXBpc3VwcG9ydCBjbmQgZ3Jv b3Z5IGdzZiBoYXJuZXNzIGlkZSBpZGVudGl0eSBqMmVlIGphdmEgbW9iaWxpdHkgbmIgcGhwIHBy b2ZpbGVyIHNvYSB2aXN1YWx3ZWIgd2ViY29tbW9uIHdlYnN2Y2NvbW1vbiB4bWwiCmRlY2xhcmUg LS0gUEFUQ0hfVkVSPSIxIgpkZWNsYXJlIC14IFBBVEg9Ii9tZW1leC9saW5wZW5ndC9nZW50b28v dXNyL2xpYi9wb3J0YWdlL2Jpbi9lYnVpbGQtaGVscGVycy80Oi9tZW1leC9saW5wZW5ndC9nZW50 b28vdXNyL2xpYi9wb3J0YWdlL2Jpbi9lYnVpbGQtaGVscGVyczovbWVtZXgvbGlucGVuZ3QvZ2Vu dG9vL3Vzci9zYmluOi9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2JpbjovbWVtZXgvbGlucGVu Z3QvZ2VudG9vL3NiaW46L21lbWV4L2xpbnBlbmd0L2dlbnRvby9iaW46L21lbWV4L2xpbnBlbmd0 L2dlbnRvby9vcHQvYmluOi9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL3g4Nl82NC1wYy1saW51 eC1nbnUvZ2NjLWJpbi80LjIuNDovbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3RtcC9iaW46L21lbWV4 L2xpbnBlbmd0L2dlbnRvby90bXAvdXNyL2JpbjovYmluOi91c3IvYmluOi9tZW1leC9saW5wZW5n dC9nZW50b28vdXNyL2JpbjovbWVtZXgvbGlucGVuZ3QvZ2VudG9vL2JpbjovbWVtZXgvbGlucGVu Z3QvZ2VudG9vL3RtcC91c3IvYmluOi9tZW1leC9saW5wZW5ndC9nZW50b28vdG1wL2JpbjovdXNy L2JpbjovYmluIgpkZWNsYXJlIFBERVBFTkQ9Ij49YXBwLWFkbWluL3BlcmwtY2xlYW5lci0yLjUg IgpkZWNsYXJlIC0tIFBFUkxfT0xEVkVSU0VOPSI1LjE2LjAiCmRlY2xhcmUgLXggUEhQX1RBUkdF VFM9IiIKZGVjbGFyZSAteCBQS0dfQ09ORklHX1BBVEg9Ii91c3IvbGliL3BrZ2NvbmZpZyIKZGVj bGFyZSAtYSBQT1JUQUdFX0RPQ09NUFJFU1M9JyhbMF09Ii91c3Ivc2hhcmUvZG9jIiBbMV09Ii91 c3Ivc2hhcmUvaW5mbyIgWzJdPSIvdXNyL3NoYXJlL21hbiIpJwpkZWNsYXJlIC1hIFBPUlRBR0Vf RE9DT01QUkVTU19TS0lQPScoWzBdPSIvdXNyL3NoYXJlL2RvYy9wZXJsLTUuMTYuMS9odG1sIikn CmRlY2xhcmUgLXggUE9SVEFHRV9ST09UX1VTRVI9ImxpbnBlbmd0IgpkZWNsYXJlIC14IFBSRUZJ WF9ESVNBQkxFX0dFTl9VU1JfTERTQ1JJUFQ9InllcyIKZGVjbGFyZSAtLSBQUklWX0xJQj0iL3Vz ci9saWIvcGVybDUvNS4xNi4xIgpkZWNsYXJlIC14IFBST0ZJTEVfT05MWV9WQVJJQUJMRVM9IkFS Q0ggRUxJQkMgS0VSTkVMIFVTRVJMQU5EIgpkZWNsYXJlIC14IFBST1BFUlRJRVM9IiIKZGVjbGFy ZSAteCBQUk9WSURFPSIiCmRlY2xhcmUgLXggUFlUSE9ORE9OVFdSSVRFQllURUNPREU9IjEiCmRl Y2xhcmUgLXggUFlUSE9OUEFUSD0iL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvbGliL3BvcnRh Z2UvcHltIgpkZWNsYXJlIC14IFBZVEhPTl9UQVJHRVRTPSIiCmRlY2xhcmUgUkRFUEVORD0iCgli ZXJrZGI/ICggc3lzLWxpYnMvZGIgKQoJZ2RibT8gKCA+PXN5cy1saWJzL2dkYm0tMS44LjMgKQoJ YXBwLWFyY2gvYnppcDIKCXN5cy1saWJzL3psaWIKICIKZGVjbGFyZSBSRVBPU0lUT1JZCmRlY2xh cmUgUkVRVUlSRURfVVNFPSIiCmRlY2xhcmUgLXggUkVTVFJJQ1Q9IiIKZGVjbGFyZSAteCBSRVNV TUVDT01NQU5EX1NTSD0iYmFzaCAtYyBcIng9XFxcJHsyI3NzaDovL30gOyBob3N0PVxcXCR7eCUl Lyp9IDsgcG9ydD1cXFwke2hvc3QjIyo6fSA7IGhvc3Q9XFxcJHtob3N0JToqfSA7IFtbIFxcXCR7 aG9zdH0gPSBcXFwke3BvcnR9IF1dICYmIHBvcnQ9MjIgOyBleGVjIHJzeW5jIC0tcnNoPVxcXCJz c2ggLXBcXFwke3BvcnR9XFxcIiAtYXZQIFxcXCJcXFwke2hvc3R9Oi9cXFwke3gjKi99XFxcIiBc XFwiXFxcJDFcXFwiXCIgcnN5bmMgXCJcJHtESVNURElSfS9cJHtGSUxFfVwiIFwiXCR7VVJJfVwi IgpkZWNsYXJlIC14IFJPQ0tTX1JPT1Q9Ii9vcHQvcm9ja3MiCmRlY2xhcmUgLXggUlVCWV9UQVJH RVRTPSIiCmRlY2xhcmUgLXggUz0iL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRh Z2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMSIKZGVjbGFyZSAteCBTQU5E Qk9YX0RFTlk9IiIKZGVjbGFyZSAteCBTQU5EQk9YX1BSRURJQ1Q9IiIKZGVjbGFyZSAteCBTQU5E Qk9YX1JFQUQ9Ii86L21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wIgpkZWNsYXJlIC14IFNB TkRCT1hfV1JJVEU9Ii9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcCIKZGVjbGFyZSAtLSBT SE9SVF9QVj0iNS4xNiIKZGVjbGFyZSAtLSBTSVRFX0FSQ0g9Ii91c3IvbG9jYWwvbGliL3Blcmw1 LzUuMTYuMS94ODZfNjQtbGludXgiCmRlY2xhcmUgLS0gU0lURV9MSUI9Ii91c3IvbG9jYWwvbGli L3Blcmw1LzUuMTYuMSIKZGVjbGFyZSAteCBTTE9UPSIwIgpkZWNsYXJlIFNSQ19VUkk9IgoJbWly cm9yOi8vY3Bhbi9zcmMvcGVybC01LjE2LjEudGFyLmJ6MgoJbWlycm9yOi8vY3Bhbi9hdXRob3Jz L2lkL1IvUkovUkpCUy9wZXJsLTUuMTYuMS50YXIuYnoyCgltaXJyb3I6Ly9nZW50b28vcGVybC01 LjE2LjEtMS50YXIuYnoyCglodHRwOi8vZGV2LmdlbnRvby5vcmcvfnRvdmUvZGlzdGZpbGVzL2Rl di1sYW5nL3BlcmwvcGVybC01LjE2LjEtMS50YXIuYnoyCiIKZGVjbGFyZSAteCBTU0hfQVNLUEFT Uz0iL3Vzci9saWJleGVjL29wZW5zc2gvZ25vbWUtc3NoLWFza3Bhc3MiCmRlY2xhcmUgLXggU1NI X0NMSUVOVD0iMTkyLjE2OC4xMjguMSAxOTA3NSAyMiIKZGVjbGFyZSAteCBTU0hfQ09OTkVDVElP Tj0iMTkyLjE2OC4xMjguMSAxOTA3NSAxOTIuMTY4Ljk5LjIyMCAyMiIKZGVjbGFyZSAteCBTU0hf VFRZPSIvZGV2L3B0cy8wIgpkZWNsYXJlIC14IFNZTUxJTktfTElCPSIiCmRlY2xhcmUgLXggVVNF PSJhbWQ2NCBib290c3RyYXAgZWxpYmNfZ2xpYmMga2VybmVsX2xpbnV4IHByZWZpeCB1c2VybGFu ZF9HTlUiCmRlY2xhcmUgLXggVVNFUkxBTkQ9IkdOVSIKZGVjbGFyZSAtLSBWRU5ET1JfQVJDSD0i L3Vzci9saWIvcGVybDUvdmVuZG9yX3BlcmwvNS4xNi4xL3g4Nl82NC1saW51eCIKZGVjbGFyZSAt LSBWRU5ET1JfTElCPSIvdXNyL2xpYi9wZXJsNS92ZW5kb3JfcGVybC81LjE2LjEiCmRlY2xhcmUg LXggVklERU9fQ0FSRFM9IiIKZGVjbGFyZSAteCBYVEFCTEVTX0FERE9OUz0icXVvdGEyIHBzZCBw a25vY2sgbHNjYW4gbGVuZ3RoMiBpcHY0b3B0aW9ucyBpcHNldCBpcHAycCBpZmFjZSBnZW9pcCBm dXp6eSBjb25kaXRpb24gdGVlIHRhcnBpdCBzeXNycSBzdGVhbCByYXduYXQgbG9nbWFyayBpcG1h cmsgZGhjcG1hYyBkZWx1ZGUgY2hhb3MgYWNjb3VudCIKZGVjbGFyZSAteCBaTElCX0lOQ0xVREU9 Ii9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUiCmRlY2xhcmUgLXggWkxJQl9MSUI9 Ii9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiIKZGVjbGFyZSAteCBfRV9ET0NERVNUVFJF RV89IiIKZGVjbGFyZSAteCBfRV9FWEVERVNUVFJFRV89IiIKZGVjbGFyZSAtLSBfX19FQ0xBU1Nf T05DRV9FVVRJTFM9InJlY3VyIC1fK14rXy0gc3BhbmsiCmRlY2xhcmUgLS0gX19fRUNMQVNTX09O Q0VfRkxBR19PX01BVElDPSJyZWN1ciAtXyteK18tIHNwYW5rIgpkZWNsYXJlIC0tIF9fX0VDTEFT U19PTkNFX01VTFRJTElCPSJyZWN1ciAtXyteK18tIHNwYW5rIgpkZWNsYXJlIC0tIF9fX0VDTEFT U19PTkNFX01VTFRJUFJPQ0VTU0lORz0icmVjdXIgLV8rXitfLSBzcGFuayIKZGVjbGFyZSAtLSBf X19FQ0xBU1NfT05DRV9UT09MQ0hBSU5fRlVOQ1M9InJlY3VyIC1fK14rXy0gc3BhbmsiCmRlY2xh cmUgLS0gX19fRUNMQVNTX09OQ0VfVVNFUj0icmVjdXIgLV8rXitfLSBzcGFuayIKZGVjbGFyZSAt LSBlPSIvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9wb3J0YWdlL2Rldi1sYW5nL3BlcmwvZmls ZXMvZWJsaXRzL3BrZ19wb3N0cm0tdjUwMTYwMDAxLmVibGl0IgpkZWNsYXJlIC0tIG15YXJjaD0i eDg2XzY0LWxpbnV4IgpkZWNsYXJlIC0tIG15ZGI9IlUiCmRlY2xhcmUgLS0gbXlnZGJtPSJVIgpk ZWNsYXJlIC0tIG15bmRibT0iVSIKZGVjbGFyZSAtLSBvc25hbWU9ImxpbnV4IgpkZWNsYXJlIC0t IHBhdGNobmFtZT0iZ2VudG9vL2ludGVyaXgiCmRlY2xhcmUgLS0gcGhhc2VfZnVuYwpfYXNzZXJ0 X3BrZ19lYnVpbGRfcGhhc2UgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BIQVNFfSBpbiAKICAg ICAgICBzZXR1cCB8IHByZWluc3QgfCBwb3N0aW5zdCkKCiAgICAgICAgOzsKICAgICAgICAqKQog ICAgICAgICAgICBlZXJyb3IgIickMSgpJyBjYWxsZWQgZnJvbSAnJHtFQlVJTERfUEhBU0V9JyBw aGFzZSB3aGljaCBpcyBub3QgT0s6IjsKICAgICAgICAgICAgZWVycm9yICJZb3UgbWF5IG9ubHkg Y2FsbCBmcm9tIHBrZ197c2V0dXAscHJlaW5zdCxwb3N0aW5zdH0gZnVuY3Rpb25zLiI7CiAgICAg ICAgICAgIGVlcnJvciAiUGFja2FnZSBmYWlscyBhdCBRQSBhbmQgYXQgbGlmZS4gIFBsZWFzZSBm aWxlIGEgYnVnLiI7CiAgICAgICAgICAgIGRpZSAiQmFkIHBhY2thZ2UhICAkMSBpcyBvbmx5IGZv ciB1c2UgaW4gc29tZSBwa2dfKiBmdW5jdGlvbnMhIgogICAgICAgIDs7CiAgICBlc2FjCn0KX2Vw YXRjaF9kcmF3X2xpbmUgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBzZXQgIiQocHJpbnRmICIl NjVzIiAnJykiOwogICAgZWNobyAiJHsxLy8/Lz19Igp9Cl9maWx0ZXItaGFyZGVuZWQgKCkgCnsg CiAgICBsb2NhbCBmOwogICAgZm9yIGYgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgY2FzZSAiJHtm fSIgaW4gCiAgICAgICAgICAgIC1mUElDIHwgLWZwaWMgfCAtZlBJRSB8IC1mcGllIHwgLVdsLHBp ZSB8IC1waWUpCiAgICAgICAgICAgICAgICBnY2Mtc3BlY3MtcGllIHx8IGNvbnRpbnVlOwogICAg ICAgICAgICAgICAgaXMtZmxhZ3EgLW5vcGllIHx8IGFwcGVuZC1mbGFncyAtbm9waWUKICAgICAg ICAgICAgOzsKICAgICAgICAgICAgLWZzdGFjay1wcm90ZWN0b3IpCiAgICAgICAgICAgICAgICBn Y2Mtc3BlY3Mtc3NwIHx8IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3EgLWZuby1z dGFjay1wcm90ZWN0b3IgfHwgYXBwZW5kLWZsYWdzICQodGVzdC1mbGFncyAtZm5vLXN0YWNrLXBy b3RlY3RvcikKICAgICAgICAgICAgOzsKICAgICAgICAgICAgLWZzdGFjay1wcm90ZWN0b3ItYWxs KQogICAgICAgICAgICAgICAgZ2NjLXNwZWNzLXNzcC10by1hbGwgfHwgY29udGludWU7CiAgICAg ICAgICAgICAgICBpcy1mbGFncSAtZm5vLXN0YWNrLXByb3RlY3Rvci1hbGwgfHwgYXBwZW5kLWZs YWdzICQodGVzdC1mbGFncyAtZm5vLXN0YWNrLXByb3RlY3Rvci1hbGwpCiAgICAgICAgICAgIDs7 CiAgICAgICAgICAgIC1mbm8tc3RyaWN0LW92ZXJmbG93KQogICAgICAgICAgICAgICAgZ2NjLXNw ZWNzLW5vc3RyaWN0IHx8IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3EgLWZzdHJp Y3Qtb3ZlcmZsb3cgfHwgYXBwZW5kLWZsYWdzICQodGVzdC1mbGFncyAtZnN0cmljdC1vdmVyZmxv dykKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZG9uZQp9Cl9maWx0ZXItdmFyICgp IAp7IAogICAgbG9jYWwgZiB4IHZhcj0kMSBuZXc9KCk7CiAgICBzaGlmdDsKICAgIGZvciBmIGlu ICR7IXZhcn07CiAgICBkbwogICAgICAgIGZvciB4IGluICIkQCI7CiAgICAgICAgZG8KICAgICAg ICAgICAgW1sgJHtmfSA9PSAke3h9IF1dICYmIGNvbnRpbnVlIDI7CiAgICAgICAgZG9uZTsKICAg ICAgICBuZXcrPSgiJHtmfSIpOwogICAgZG9uZTsKICAgIGV2YWwgZXhwb3J0ICR7dmFyfT1cIiIk e25ld1sqXX0iXCIKfQpfZ2NjLWluc3RhbGwtZGlyICgpIAp7IAogICAgZWNobyAiJChMQ19BTEw9 QyAkKHRjLWdldENDKSAtcHJpbnQtc2VhcmNoLWRpcnMgMj4gL2Rldi9udWxsIHwJCWF3ayAnJDE9 PSJpbnN0YWxsOiIge3ByaW50ICQyfScpIgp9Cl9nY2Mtc3BlY3MtZGlyZWN0aXZlX3JhdyAoKSAK eyAKICAgIGxvY2FsIGNjPSQodGMtZ2V0Q0MpOwogICAgbG9jYWwgc3BlY2ZpbGVzPSQoTENfQUxM PUMgJHtjY30gLXYgMj4mMSB8IGF3ayAnJDE9PSJSZWFkaW5nIiB7cHJpbnQgJE5GfScpOwogICAg JHtjY30gLWR1bXBzcGVjcyAyPiAvZGV2L251bGwgfCBjYXQgLSAke3NwZWNmaWxlc30gfCBhd2sg LXYgZGlyZWN0aXZlPSQxICdCRUdJTgl7IHBzcGVjPSIiOyBzcGVjPSIiOyBvdXRzaWRlPTEgfQok MT09IioiZGlyZWN0aXZlIjoiICB7IHBzcGVjPXNwZWM7IHNwZWM9IiI7IG91dHNpZGU9MDsgbmV4 dCB9CglvdXRzaWRlIHx8IE5GPT0wIHx8ICggc3Vic3RyKCQxLDEsMSk9PSIqIiAmJiBzdWJzdHIo JDEsbGVuZ3RoKCQxKSwxKT09IjoiICkgeyBvdXRzaWRlPTE7IG5leHQgfQoJc3BlYz09IiIgJiYg c3Vic3RyKCQwLDEsMSk9PSIrIiB7IHNwZWM9cHNwZWMgIiAiIHN1YnN0cigkMCwyKTsgbmV4dCB9 Cgl7IHNwZWM9c3BlYyAkMCB9CkVORAl7IHByaW50IHNwZWMgfSc7CiAgICByZXR1cm4gMAp9Cl9n Y2Mtc3BlY3MtZXhpc3RzICgpIAp7IAogICAgW1sgLWYgJChfZ2NjLWluc3RhbGwtZGlyKS8kMSBd XQp9Cl9nY2NfZnVsbHZlcnNpb24gKCkgCnsgCiAgICBsb2NhbCB2ZXI9IiQxIjsKICAgIHNoaWZ0 OwogICAgc2V0IC0tIGAkKHRjLWdldENQUCAiJEAiKSAtRSAtUCAtIDw8PCJfX0dOVUNfXyBfX0dO VUNfTUlOT1JfXyBfX0dOVUNfUEFUQ0hMRVZFTF9fImA7CiAgICBldmFsIGVjaG8gIiR2ZXIiCn0K X2ljb25pbnMgKCkgCnsgCiAgICAoIGxvY2FsIGZ1bmNuYW1lPSQxOwogICAgc2hpZnQ7CiAgICBs b2NhbCBzaXplIGRpcjsKICAgIGxvY2FsIGNvbnRleHQ9YXBwczsKICAgIGxvY2FsIHRoZW1lPWhp Y29sb3I7CiAgICB3aGlsZSBbWyAkIyAtZ3QgMCBdXTsgZG8KICAgICAgICBjYXNlICQxIGluIAog ICAgICAgICAgICAtcyB8IC0tc2l6ZSkKICAgICAgICAgICAgICAgIGlmIFtbICR7MiUleCp9eCR7 MiUleCp9ID09ICIkMiIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBzaXplPSR7MiUleCp9 OwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHNpemU9JHsyfTsKICAg ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgY2FzZSAke3NpemV9IGluIAogICAgICAg ICAgICAgICAgICAgIDE2IHwgMjIgfCAyNCB8IDMyIHwgMzYgfCA0OCB8IDY0IHwgNzIgfCA5NiB8 IDEyOCB8IDE5MiB8IDI1NikKICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0ke3NpemV9eCR7 c2l6ZX0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHNjYWxhYmxl KQoKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICopCiAgICAgICAg ICAgICAgICAgICAgICAgIGVlcnJvciAiJHtzaXplfSBpcyBhbiB1bnN1cHBvcnRlZCBpY29uIHNp emUhIjsKICAgICAgICAgICAgICAgICAgICAgICAgZXhpdCAxCiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICBzaGlmdCAyCiAgICAgICAg ICAgIDs7CiAgICAgICAgICAgIC10IHwgLS10aGVtZSkKICAgICAgICAgICAgICAgIHRoZW1lPSR7 Mn07CiAgICAgICAgICAgICAgICBzaGlmdCAyCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIC1j IHwgLS1jb250ZXh0KQogICAgICAgICAgICAgICAgY29udGV4dD0kezJ9OwogICAgICAgICAgICAg ICAgc2hpZnQgMgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAg aWYgW1sgLXogJHtzaXplfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGluc2ludG8gL3Vz ci9zaGFyZS9waXhtYXBzOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg IGluc2ludG8gL3Vzci9zaGFyZS9pY29ucy8ke3RoZW1lfS8ke3NpemV9LyR7Y29udGV4dH07CiAg ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGlmIFtbICR7ZnVuY25hbWV9ID09IGRv aWNvbiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGlmIFtbIC1mICQxIF1dOyB0aGVuCiAg ICAgICAgICAgICAgICAgICAgICAgIGRvaW5zICIkezF9IjsKICAgICAgICAgICAgICAgICAgICBl bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbIC1kICQxIF1dOyB0aGVuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaG9wdCAtcyBudWxsZ2xvYjsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvaW5zICIkezF9Ii8qLntwbmcsc3ZnfTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNob3B0IC11IG51bGxnbG9iOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlZXJyb3IgIiR7MX0gaXMgbm90IGEgdmFsaWQgZmls ZS9kaXJlY3RvcnkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQgMTsKICAgICAg ICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBmaTsK ICAgICAgICAgICAgICAgIHNoaWZ0IDEKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAg ZG9uZTsKICAgIGlmIFtbICR7ZnVuY25hbWV9ID09IG5ld2ljb24gXV07IHRoZW4KICAgICAgICBu ZXdpbnMgIiRAIjsKICAgIGZpICkgfHwgZGllCn0KX2lzX2ZsYWdxICgpIAp7IAogICAgbG9jYWwg eDsKICAgIGZvciB4IGluICR7ITF9OwogICAgZG8KICAgICAgICBbWyAke3h9ID09ICQyIF1dICYm IHJldHVybiAwOwogICAgZG9uZTsKICAgIHJldHVybiAxCn0KX211bHRpam9iX2ZvcmsgKCkgCnsg CiAgICBbWyAkIyAtZXEgMSBdXSB8fCBkaWUgImluY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRz IjsKICAgIGxvY2FsIHJldD0wOwogICAgW1sgJDEgPT0gInBvc3QiIF1dICYmIDogJCgoICsrbWpf bnVtX2pvYnMgKSk7CiAgICBpZiBbWyAke21qX251bV9qb2JzfSAtZ2UgJHttal9tYXhfam9ic30g XV07IHRoZW4KICAgICAgICBtdWx0aWpvYl9maW5pc2hfb25lOwogICAgICAgIHJldD0kPzsKICAg IGZpOwogICAgW1sgJDEgPT0gInByZSIgXV0gJiYgOiAkKCggKyttal9udW1fam9icyApKTsKICAg IHJldHVybiAke3JldH0KfQpfdGMtZ2V0UFJPRyAoKSAKeyAKICAgIGxvY2FsIHR1cGxlPSQxOwog ICAgbG9jYWwgdiB2YXIgdmFycz0kMjsKICAgIGxvY2FsIHByb2c9JDM7CiAgICB2YXI9JHt2YXJz JSUgKn07CiAgICBmb3IgdiBpbiAke3ZhcnN9OwogICAgZG8KICAgICAgICBpZiBbWyAtbiAkeyF2 fSBdXTsgdGhlbgogICAgICAgICAgICBleHBvcnQgJHt2YXJ9PSIkeyF2fSI7CiAgICAgICAgICAg IGVjaG8gIiR7IXZ9IjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBkb25l OwogICAgbG9jYWwgc2VhcmNoPTsKICAgIFtbIC1uICQ0IF1dICYmIHNlYXJjaD0kKHR5cGUgLXAg IiQ0LSR7cHJvZ30iKTsKICAgIFtbIC16ICR7c2VhcmNofSAmJiAtbiAkeyF0dXBsZX0gXV0gJiYg c2VhcmNoPSQodHlwZSAtcCAiJHshdHVwbGV9LSR7cHJvZ30iKTsKICAgIFtbIC1uICR7c2VhcmNo fSBdXSAmJiBwcm9nPSR7c2VhcmNoIyMqL307CiAgICBleHBvcnQgJHt2YXJ9PSR7cHJvZ307CiAg ICBlY2hvICIkeyF2YXJ9Igp9CmFsbC1mbGFnLXZhcnMgKCkgCnsgCiAgICBlY2hvIHtDLENQUCxD WFgsQ0NBUyxGLEZDLExEfUZMQUdTCn0KYWx0ZXJuYXRpdmVzX2F1dG9fbWFrZXN5bSAoKSAKeyAK ICAgIGxvY2FsIFNZTUxJTksgUkVHRVggQUxUIG15cmVnZXg7CiAgICBTWU1MSU5LPSQxOwogICAg UkVHRVg9JDI7CiAgICBpZiBbICIke1JFR0VYOjA6MX0iICE9ICIvIiBdOyB0aGVuCiAgICAgICAg bXlyZWdleD0iJHtTWU1MSU5LJS8qfS8ke1JFR0VYfSI7CiAgICBlbHNlCiAgICAgICAgbXlyZWdl eD0ke1JFR0VYfTsKICAgIGZpOwogICAgQUxUPSIkKGZvciBpIGluICQoZWNobyAke0VST09UfSR7 bXlyZWdleH0pOyBkbyBlY2hvICR7aSMke0VST09UfX07IGRvbmUgfCBzb3J0IC1yKSI7CiAgICBh bHRlcm5hdGl2ZXNfbWFrZXN5bSAke1NZTUxJTkt9ICR7QUxUfQp9CmFsdGVybmF0aXZlc19tYWtl c3ltICgpIAp7IAogICAgbG9jYWwgQUxURVJOQVRJVkVTPSIiOwogICAgbG9jYWwgU1lNTElOSz0i IjsKICAgIGxvY2FsIGFsdCBwcmVmOwogICAgU1lNTElOSz0ke0VQUkVGSVh9LyR7MSMke0VQUkVG SVh9fTsKICAgIHByZWY9JHtST09UJS99OwogICAgc2hpZnQ7CiAgICBBTFRFUk5BVElWRVM9JEA7 CiAgICBmb3IgYWx0IGluICR7QUxURVJOQVRJVkVTfTsKICAgIGRvCiAgICAgICAgYWx0PSR7RVBS RUZJWH0vJHthbHQjJHtFUFJFRklYfX07CiAgICAgICAgaWYgWyAtZiAiJHtwcmVmfSR7YWx0fSIg XTsgdGhlbgogICAgICAgICAgICBpZiBbICIke2FsdCUvKn0iID0gIiR7U1lNTElOSyUvKn0iIF07 IHRoZW4KICAgICAgICAgICAgICAgIGVpbmZvICJMaW5raW5nICR7YWx0fSB0byAke3ByZWZ9JHtT WU1MSU5LfSAocmVsYXRpdmUpIjsKICAgICAgICAgICAgICAgIGxuIC1zZiAke2FsdCMjKi99ICR7 cHJlZn0ke1NZTUxJTkt9OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAi TGlua2luZyAke2FsdH0gdG8gJHtwcmVmfSR7U1lNTElOS30gKGFic29sdXRlKSI7CiAgICAgICAg ICAgICAgICBsbiAtc2YgJHtwcmVmfSR7YWx0fSAke3ByZWZ9JHtTWU1MSU5LfTsKICAgICAgICAg ICAgZmk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGlmIFsg ISAtTCAke3ByZWZ9JHtTWU1MSU5LfSBdOyB0aGVuCiAgICAgICAgZXdhcm4gIlVuYWJsZSB0byBl c3RhYmxpc2ggJHtwcmVmfSR7U1lNTElOS30gc3ltbGluayI7CiAgICBlbHNlCiAgICAgICAgaWYg WyAhIC1mICJgZGlybmFtZSAke3ByZWZ9JHtTWU1MSU5LfWAvYHJlYWRsaW5rICR7cHJlZn0ke1NZ TUxJTkt9YCIgLWEgISAtZiAiYHJlYWRsaW5rICR7cHJlZn0ke1NZTUxJTkt9YCIgXTsgdGhlbgog ICAgICAgICAgICBld2FybiAiUmVtb3ZpbmcgZGVhZCBzeW1saW5rICR7cHJlZn0ke1NZTUxJTkt9 IjsKICAgICAgICAgICAgcm0gLWYgJHtwcmVmfSR7U1lNTElOS307CiAgICAgICAgZmk7CiAgICBm aQp9CmFsdGVybmF0aXZlc19wa2dfcG9zdGluc3QgKCkgCnsgCiAgICBpZiBbIC1uICIke0FMVEVS TkFUSVZFU30iIC1hIC1uICIke1NPVVJDRX0iIF07IHRoZW4KICAgICAgICBhbHRlcm5hdGl2ZXNf bWFrZXN5bSAke1NPVVJDRX0gJHtBTFRFUk5BVElWRVN9OwogICAgZmkKfQphbHRlcm5hdGl2ZXNf cGtnX3Bvc3RybSAoKSAKeyAKICAgIGlmIFsgLW4gIiR7QUxURVJOQVRJVkVTfSIgLWEgLW4gIiR7 U09VUkNFfSIgXTsgdGhlbgogICAgICAgIGFsdGVybmF0aXZlc19tYWtlc3ltICR7U09VUkNFfSAk e0FMVEVSTkFUSVZFU307CiAgICBmaQp9CmFwcGVuZC1jZmxhZ3MgKCkgCnsgCiAgICBbWyAkIyAt ZXEgMCBdXSAmJiByZXR1cm4gMDsKICAgIGV4cG9ydCBDRkxBR1M9JCh0ZXN0LWZsYWdzLUNDICR7 Q0ZMQUdTfSAiJEAiKTsKICAgIHJldHVybiAwCn0KYXBwZW5kLWNwcGZsYWdzICgpIAp7IAogICAg W1sgJCMgLWVxIDAgXV0gJiYgcmV0dXJuIDA7CiAgICBleHBvcnQgQ1BQRkxBR1M9IiR7Q1BQRkxB R1N9ICQqIjsKICAgIHJldHVybiAwCn0KYXBwZW5kLWN4eGZsYWdzICgpIAp7IAogICAgW1sgJCMg LWVxIDAgXV0gJiYgcmV0dXJuIDA7CiAgICBleHBvcnQgQ1hYRkxBR1M9JCh0ZXN0LWZsYWdzLUNY WCAke0NYWEZMQUdTfSAiJEAiKTsKICAgIHJldHVybiAwCn0KYXBwZW5kLWZmbGFncyAoKSAKeyAK ICAgIFtbICQjIC1lcSAwIF1dICYmIHJldHVybiAwOwogICAgZXhwb3J0IEZGTEFHUz0kKHRlc3Qt ZmxhZ3MtRjc3ICR7RkZMQUdTfSAiJEAiKTsKICAgIGV4cG9ydCBGQ0ZMQUdTPSQodGVzdC1mbGFn cy1GQyAke0ZDRkxBR1N9ICIkQCIpOwogICAgcmV0dXJuIDAKfQphcHBlbmQtZmxhZ3MgKCkgCnsg CiAgICBbWyAkIyAtZXEgMCBdXSAmJiByZXR1cm4gMDsKICAgIGNhc2UgIiAkKiAiIGluIAogICAg ICAgIConICctW0RJVV0qKQogICAgICAgICAgICBlcWF3YXJuICdwbGVhc2UgdXNlIGFwcGVuZC1j cHBmbGFncyBmb3IgcHJlcHJvY2Vzc29yIGZsYWdzJwogICAgICAgIDs7CiAgICAgICAgKicgJy1M KiB8IConICctV2wsKikKICAgICAgICAgICAgZXFhd2FybiAncGxlYXNlIHVzZSBhcHBlbmQtbGRm bGFncyBmb3IgbGlua2VyIGZsYWdzJwogICAgICAgIDs7CiAgICBlc2FjOwogICAgYXBwZW5kLWNm bGFncyAiJEAiOwogICAgYXBwZW5kLWN4eGZsYWdzICIkQCI7CiAgICBhcHBlbmQtZmZsYWdzICIk QCI7CiAgICByZXR1cm4gMAp9CmFwcGVuZC1sZGZsYWdzICgpIAp7IAogICAgW1sgJCMgLWVxIDAg XV0gJiYgcmV0dXJuIDA7CiAgICBsb2NhbCBmbGFnOwogICAgZm9yIGZsYWcgaW4gIiRAIjsKICAg IGRvCiAgICAgICAgW1sgJHtmbGFnfSA9PSAtbCogXV0gJiYgZXFhd2FybiAiQXBwZW5kaW5nIGEg bGlicmFyeSBsaW5rIGluc3RydWN0aW9uICgke2ZsYWd9KTsgbGlicmFyaWVzIHRvIGxpbmsgdG8g c2hvdWxkIG5vdCBiZSBwYXNzZWQgdGhyb3VnaCBMREZMQUdTIjsKICAgIGRvbmU7CiAgICBleHBv cnQgTERGTEFHUz0iJHtMREZMQUdTfSAkKiI7CiAgICByZXR1cm4gMAp9CmFwcGVuZC1sZnMtZmxh Z3MgKCkgCnsgCiAgICBbWyAkIyAtbmUgMCBdXSAmJiBkaWUgImFwcGVuZC1sZnMtZmxhZ3MgdGFr ZXMgbm8gYXJndW1lbnRzIjsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1haXgqKQog ICAgICAgICAgICBhcHBlbmQtY3BwZmxhZ3MgLURfTEFSR0VfRklMRVMgLURfTEFSR0VfRklMRV9B UEkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGFwcGVuZC1jcHBmbGFncyAtRF9G SUxFX09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09V UkNFCiAgICAgICAgOzsKICAgIGVzYWMKfQphcHBlbmQtbGlicyAoKSAKeyAKICAgIFtbICQjIC1l cSAwIF1dICYmIHJldHVybiAwOwogICAgbG9jYWwgZmxhZzsKICAgIGZvciBmbGFnIGluICIkQCI7 CiAgICBkbwogICAgICAgIFtbICR7ZmxhZ30gPT0gLWwqIF1dICYmIGZsYWc9JHtmbGFnIy1sfTsK ICAgICAgICBleHBvcnQgTElCUz0iJHtMSUJTfSAtbCR7ZmxhZ30iOwogICAgZG9uZTsKICAgIHJl dHVybiAwCn0KYnVpbHRfd2l0aF91c2UgKCkgCnsgCiAgICBsb2NhbCBoaWRkZW49Im5vIjsKICAg IGlmIFtbICQxID09ICItLWhpZGRlbiIgXV07IHRoZW4KICAgICAgICBoaWRkZW49InllcyI7CiAg ICAgICAgc2hpZnQ7CiAgICBmaTsKICAgIGxvY2FsIG1pc3NpbmdfYWN0aW9uPSJkaWUiOwogICAg aWYgW1sgJDEgPT0gIi0tbWlzc2luZyIgXV07IHRoZW4KICAgICAgICBtaXNzaW5nX2FjdGlvbj0k MjsKICAgICAgICBzaGlmdDsKICAgICAgICBzaGlmdDsKICAgICAgICBjYXNlICR7bWlzc2luZ19h Y3Rpb259IGluIAogICAgICAgICAgICB0cnVlIHwgZmFsc2UgfCBkaWUpCgogICAgICAgICAgICA7 OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgZGllICJ1bmtub3duIGFjdGlvbiAnJHtt aXNzaW5nX2FjdGlvbn0nIgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBmaTsKICAg IGxvY2FsIG9wdD0kMTsKICAgIFtbICR7b3B0OjA6MX0gPSAiLSIgXV0gJiYgc2hpZnQgfHwgb3B0 PSItYSI7CiAgICBsb2NhbCBQS0c9JChiZXN0X3ZlcnNpb24gJDEpOwogICAgW1sgLXogJHtQS0d9 IF1dICYmIGRpZSAiVW5hYmxlIHRvIHJlc29sdmUgJDEgdG8gYW4gaW5zdGFsbGVkIHBhY2thZ2Ui OwogICAgc2hpZnQ7CiAgICBsb2NhbCBVU0VGSUxFPSIke0VST09UfSIvdmFyL2RiL3BrZy8ke1BL R30vVVNFOwogICAgbG9jYWwgSVVTRUZJTEU9IiR7RVJPT1R9Ii92YXIvZGIvcGtnLyR7UEtHfS9J VVNFOwogICAgaWYgW1sgISAtZSAke1VTRUZJTEV9IF1dIHx8IFtbICEgLWUgJHtJVVNFRklMRX0g JiYgJHtoaWRkZW59ID09ICJubyIgXV07IHRoZW4KICAgICAgICBjYXNlICR7bWlzc2luZ19hY3Rp b259IGluIAogICAgICAgICAgICB0cnVlKQogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAg ICAgICAgOzsKICAgICAgICAgICAgZmFsc2UpCiAgICAgICAgICAgICAgICByZXR1cm4gMQogICAg ICAgICAgICA7OwogICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAgICBkaWUgIlVuYWJsZSB0 byBkZXRlcm1pbmUgd2hhdCBVU0UgZmxhZ3MgJFBLRyB3YXMgYnVpbHQgd2l0aCIKICAgICAgICAg ICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbWyAke2hpZGRlbn0gPT0gIm5vIiBd XTsgdGhlbgogICAgICAgIGxvY2FsIElVU0VfQlVJTFQ9KCQoPCIke0lVU0VGSUxFfSIpKTsKICAg ICAgICBsb2NhbCBleHBhbmQ7CiAgICAgICAgZm9yIGV4cGFuZCBpbiAkKGVjaG8gJHtVU0VfRVhQ QU5EfSB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKTsKICAgICAgICBkbwogICAgICAgICAg ICBpZiBbWyAkMSA9PSAke2V4cGFuZH1fKiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZXhwYW5k PSIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7 CiAgICAgICAgaWYgW1sgLW4gJHtleHBhbmR9IF1dOyB0aGVuCiAgICAgICAgICAgIGlmICEgaGFz ICQxICR7SVVTRV9CVUlMVFtAXSNbLStdfTsgdGhlbgogICAgICAgICAgICAgICAgY2FzZSAke21p c3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgICAgICAgICB0cnVlKQogICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAg ICAgICAgZmFsc2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkaWUpCiAgICAgICAgICAgICAgICAgICAg ICAgIGRpZSAiJFBLRyBkb2VzIG5vdCBhY3R1YWxseSBzdXBwb3J0IHRoZSAkMSBVU0UgZmxhZyEi CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAg IGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBsb2NhbCBVU0VfQlVJTFQ9JCg8JHtVU0VGSUxF fSk7CiAgICB3aGlsZSBbWyAkIyAtZ3QgMCBdXTsgZG8KICAgICAgICBpZiBbWyAke29wdH0gPSAi LW8iIF1dOyB0aGVuCiAgICAgICAgICAgIGhhcyAkMSAke1VTRV9CVUlMVH0gJiYgcmV0dXJuIDA7 CiAgICAgICAgZWxzZQogICAgICAgICAgICBoYXMgJDEgJHtVU0VfQlVJTFR9IHx8IHJldHVybiAx OwogICAgICAgIGZpOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsKICAgIFtbICR7b3B0fSA9ICIt YSIgXV0KfQpjaGVja19saWNlbnNlICgpIAp7IAogICAgZGllICJ5b3Ugbm8gbG9uZ2VyIG5lZWQg dGhpcyBhcyBwb3J0YWdlIHN1cHBvcnRzIEFDQ0VQVF9MSUNFTlNFIGl0c2VsZiIKfQpjaGVja19y ZWJ1aWxkICgpIAp7IAogICAgaWYgaGFzX3ZlcnNpb24gIjxkZXYtbGFuZy9wZXJsLSR7U0hPUlRf UFZ9IjsgdGhlbgogICAgICAgIGVjaG8gIiI7CiAgICAgICAgZXdhcm4gIlVQREFURSBUSEUgUEVS TCBNT0RVTEVTOiI7CiAgICAgICAgZXdhcm4gIkFmdGVyIHVwZGF0aW5nIGRldi1sYW5nL3Blcmwg eW91IG11c3QgcmVpbnN0YWxsIjsKICAgICAgICBld2FybiAidGhlIGluc3RhbGxlZCBwZXJsIG1v ZHVsZXMuIjsKICAgICAgICBld2FybiAiVXNlOiBwZXJsLWNsZWFuZXIgLS1hbGwiOwogICAgZWxz ZQogICAgICAgIGlmIGhhc192ZXJzaW9uIGRldi1sYW5nL3Blcmw7IHRoZW4KICAgICAgICAgICAg aWYgKCB1c2UgaXRocmVhZHMgJiYgISBoYXNfdmVyc2lvbiBkZXYtbGFuZy9wZXJsW2l0aHJlYWRz XSApIHx8ICggISB1c2UgaXRocmVhZHMgJiYgaGFzX3ZlcnNpb24gZGV2LWxhbmcvcGVybFtpdGhy ZWFkc10gKSB8fCAoIHVzZSBkZWJ1ZyAmJiAhIGhhc192ZXJzaW9uIGRldi1sYW5nL3BlcmxbZGVi dWddICkgfHwgKCAhIHVzZSBkZWJ1ZyAmJiBoYXNfdmVyc2lvbiBkZXYtbGFuZy9wZXJsW2RlYnVn XSApOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICIiOwogICAgICAgICAgICAgICAgZXdhcm4g IlRPR0dMRUQgVVNFLUZMQUdTIFdBUk5JTkc6IjsKICAgICAgICAgICAgICAgIGV3YXJuICJZb3Ug Y2hhbmdlZCBvbmUgb2YgdGhlIHVzZS1mbGFncyBpdGhyZWFkcyBvciBkZWJ1Zy4iOwogICAgICAg ICAgICAgICAgZXdhcm4gIllvdSBtdXN0IHJlYnVpbGQgYWxsIHBlcmwtbW9kdWxlcyBpbnN0YWxs ZWQuIjsKICAgICAgICAgICAgICAgIGV3YXJuICJVc2U6IHBlcmwtY2xlYW5lciAtLW1vZHVsZXMg OyBwZXJsLWNsZWFuZXIgLS1mb3JjZSAtLWxpYnBlcmwiOwogICAgICAgICAgICBmaTsKICAgICAg ICBmaTsKICAgIGZpCn0KY2xlYW5lcl9tc2cgKCkgCnsgCiAgICBlZXJyb3IgIllvdSBoYXZlIGhh ZCBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBwZXJsLiBJdCBpcyByZWNvbW1lbmRlZCI7CiAgICBlZXJy b3IgInRoYXQgeW91IHJ1biBwZXJsLWNsZWFuZXIgbm93LiBwZXJsLWNsZWFuZXIgd2lsbCI7CiAg ICBlZXJyb3IgImFzc2lzdCB3aXRoIHRoaXMgdHJhbnNpdGlvbi4gVGhpcyBzY3JpcHQgaXMgY2Fw YWJsZSI7CiAgICBlZXJyb3IgIm9mIGNsZWFuaW5nIG91dCBvbGQgLnBoIGZpbGVzLCByZWJ1aWxk aW5nIG1vZHVsZXMgZm9yICI7CiAgICBlZXJyb3IgInlvdXIgbmV3IHZlcnNpb24gb2YgcGVybCwg YXMgd2VsbCBhcyByZS1lbWVyZ2luZyI7CiAgICBlZXJyb3IgImFwcGxpY2F0aW9ucyB0aGF0IGNv bXBpbGVkIGFnYWluc3QgeW91ciBvbGQgbGlicGVybCQoZ2V0X2xpYm5hbWUpIjsKICAgIGVlcnJv cjsKICAgIGVlcnJvciAiUExFQVNFIERPIE5PVCBJTlRFUlJVUFQgVEhFIFJVTk5JTkcgT0YgVEhJ UyBTQ1JJUFQuIjsKICAgIGVlcnJvciAiUGFydCBvZiB0aGUgcmVidWlsZGluZyBvZiBhcHBsaWNh dGlvbnMgY29tcGlsZWQgYWdhaW5zdCAiOwogICAgZWVycm9yICJ5b3VyIG9sZCBsaWJwZXJsIGlu dm9sdmVzIHRlbXBvcmFyaWx5IHVubWVyZ2luZyI7CiAgICBlZXJyb3IgInRoZW0gLSBpbnRlcnJ1 cHRpb25zIGNvdWxkIGxlYXZlIHlvdSB3aXRoIHVubWVyZ2VkIjsKICAgIGVlcnJvciAicGFja2Fn ZXMgYmVmb3JlIHRoZXkgY2FuIGJlIHJlbWVyZ2VkLiI7CiAgICBlZXJyb3IgIiI7CiAgICBlZXJy b3IgIklmIHlvdSBoYXZlIHJ1biBwZXJsLWNsZWFuZXIgYW5kIGEgcGFja2FnZSBzdGlsbCBnaXZl cyI7CiAgICBlZXJyb3IgInlvdSB0cm91YmxlLCBhbmQgcmUtZW1lcmdpbmcgaXQgZmFpbHMgdG8g Y29ycmVjdCI7CiAgICBlZXJyb3IgInRoZSBwcm9ibGVtLCBwbGVhc2UgY2hlY2sgaHR0cDovL2J1 Z3MuZ2VudG9vLm9yZy8iOwogICAgZWVycm9yICJmb3IgbW9yZSBpbmZvcm1hdGlvbiBvciB0byBy ZXBvcnQgYSBidWcuIjsKICAgIGVlcnJvciAiIgp9CmRvaWNvbiAoKSAKeyAKICAgIF9pY29uaW5z ICR7RlVOQ05BTUV9ICIkQCIKfQpkb21lbnUgKCkgCnsgCiAgICAoIGxvY2FsIGkgaiByZXQ9MDsK ICAgIGluc2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBmb3IgaSBpbiAiJEAiOwog ICAgZG8KICAgICAgICBpZiBbWyAtZiAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgIGRvaW5zICIk e2l9IjsKICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBp ZiBbWyAtZCAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBmb3IgaiBpbiAiJHtpfSIvKi5k ZXNrdG9wOwogICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICBkb2lucyAiJHtq fSI7CiAgICAgICAgICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAgICAgICAgICAgICAgICBkb25l OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAoKCsrcmV0KSk7CiAgICAgICAgICAg IGZpOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGV4aXQgJHtyZXR9ICkKfQpkdWFsX3Njcmlw dHMgKCkgCnsgCiAgICBzcmNfcmVtb3ZlX2R1YWwgcGVybC1jb3JlL0FyY2hpdmUtVGFyIDEuODIw LjAgcHRhciBwdGFyZGlmZiBwdGFyZ3JlcDsKICAgIHNyY19yZW1vdmVfZHVhbCBwZXJsLWNvcmUv RGlnZXN0LVNIQSA1LjcxMC4wIHNoYXN1bTsKICAgIHNyY19yZW1vdmVfZHVhbCBwZXJsLWNvcmUv Q1BBTiAxLjk4MC4wIGNwYW47CiAgICBzcmNfcmVtb3ZlX2R1YWwgcGVybC1jb3JlL0NQQU5QTFVT IDAuOTEyLjEwMCBjcGFucCBjcGFuMmRpc3Q7CiAgICBzcmNfcmVtb3ZlX2R1YWxfZmlsZSBwZXJs LWNvcmUvQ1BBTlBMVVMgMC45MTIuMTAwIC91c3IvYmluL2NwYW5wLXJ1bi1wZXJsOwogICAgc3Jj X3JlbW92ZV9kdWFsIHBlcmwtY29yZS9FbmNvZGUgMi40NDAuMCBlbmMyeHMgcGljb252OwogICAg c3JjX3JlbW92ZV9kdWFsIHBlcmwtY29yZS9FeHRVdGlscy1NYWtlTWFrZXIgNi42MzAuMjAwX3Jj IGluc3Rtb2RzaDsKICAgIHNyY19yZW1vdmVfZHVhbCBwZXJsLWNvcmUvRXh0VXRpbHMtUGFyc2VY UyAzLjE2MC4wIHhzdWJwcDsKICAgIHNyY19yZW1vdmVfZHVhbCBwZXJsLWNvcmUvSU8tQ29tcHJl c3MgMi40OC4wIHppcGRldGFpbHM7CiAgICBzcmNfcmVtb3ZlX2R1YWwgcGVybC1jb3JlL0pTT04t UFAgMi4yNzIuMCBqc29uX3BwOwogICAgc3JjX3JlbW92ZV9kdWFsIHBlcmwtY29yZS9Nb2R1bGUt QnVpbGQgMC4zOTAuMTAwX3JjIGNvbmZpZ19kYXRhOwogICAgc3JjX3JlbW92ZV9kdWFsIHBlcmwt Y29yZS9Nb2R1bGUtQ29yZUxpc3QgMi43MDAuMCBjb3JlbGlzdDsKICAgIHNyY19yZW1vdmVfZHVh bCBwZXJsLWNvcmUvUG9kUGFyc2VyIDEuNTEwLjAgcG9kMnVzYWdlIHBvZGNoZWNrZXIgcG9kc2Vs ZWN0OwogICAgc3JjX3JlbW92ZV9kdWFsIHBlcmwtY29yZS9UZXN0LUhhcm5lc3MgMy4yMzAuMCBw cm92ZTsKICAgIHNyY19yZW1vdmVfZHVhbCBwZXJsLWNvcmUvcG9kbGF0b3JzIDIuNC4wIHBvZDJt YW4gcG9kMnRleHQ7CiAgICBzcmNfcmVtb3ZlX2R1YWxfbWFuIHBlcmwtY29yZS9wb2RsYXRvcnMg Mi40LjAgL3Vzci9zaGFyZS9tYW4vbWFuMS9wZXJscG9kc3R5bGUuMQp9CmViZWVwICgpIAp7IAog ICAgZXdhcm4gIlFBIE5vdGljZTogZWJlZXAgaXMgbm90IGRlZmluZWQgaW4gRUFQST0ke0VBUEl9 LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhdCBodHRwOi8vYnVncy5nZW50b28ub3JnIgp9CmVibGl0LWlu Y2x1ZGUgKCkgCnsgCiAgICBsb2NhbCBza2lwYWJsZT1mYWxzZTsKICAgIFtbICQxID09ICItLXNr aXAiIF1dICYmIHNraXBhYmxlPXRydWUgJiYgc2hpZnQ7CiAgICBbWyAkMSA9PSBwa2dfKiBdXSAm JiBza2lwYWJsZT10cnVlOwogICAgbG9jYWwgZSB2IGZ1bmM9JDEgdmVyPSQyOwogICAgW1sgLXog JHtmdW5jfSBdXSAmJiBkaWUgIlVzYWdlOiBlYmxpdC1pbmNsdWRlIDxmdW5jdGlvbj4gW3ZlcnNp b25dIjsKICAgIGZvciB2IGluICR7dmVyOistfSR7dmVyfSAtJHtQVlJ9IC0ke1BWfSAiIjsKICAg IGRvCiAgICAgICAgZT0iJHtGSUxFU0RJUn0vZWJsaXRzLyR7ZnVuY30ke3Z9LmVibGl0IjsKICAg ICAgICBpZiBbWyAtZSAke2V9IF1dOyB0aGVuCiAgICAgICAgICAgIC4gIiR7ZX0iOwogICAgICAg ICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICAke3NraXBhYmxlfSAmJiBy ZXR1cm4gMDsKICAgIGRpZSAiQ291bGQgbm90IGxvY2F0ZSByZXF1ZXN0ZWQgZWJsaXQgJyR7ZnVu Y30nIGluICR7RklMRVNESVJ9L2VibGl0cy8iCn0KZWJsaXQtcGVybC1wa2dfcG9zdGluc3QgKCkg CnsgCiAgICBkdWFsX3NjcmlwdHM7CiAgICBpZiBbWyAiJHtST09UfSIgPSAiLyIgXV07IHRoZW4K ICAgICAgICBsb2NhbCBJTkMgRElSIGZpbGU7CiAgICAgICAgSU5DPSQocGVybCAtZSAnZm9yICRs aW5lIChASU5DKSB7IG5leHQgaWYgJGxpbmUgZXEgIi4iOyBuZXh0IGlmICRsaW5lID1+IG0vJyR7 U0hPUlRfUFZ9J3xldGN8bG9jYWx8cGVybCQvOyBwcmludCAiJGxpbmVcbiIgfScpOwogICAgICAg IGVpbmZvICJSZW1vdmluZyBvbGQgLnBoIGZpbGVzIjsKICAgICAgICBmb3IgRElSIGluICR7SU5D fTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAtZCAiJHtESVJ9IiBdXTsgdGhlbgogICAg ICAgICAgICAgICAgZm9yIGZpbGUgaW4gJChmaW5kICIke0RJUn0iIC1uYW1lICIqLnBoIiAtdHlw ZSBmICk7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIHJtIC1mICIke2Zp bGV9IjsKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiPDwgJHtmaWxlfSI7CiAgICAgICAgICAg ICAgICBkb25lOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAgICAgIGZvciBESVIg aW4gJHtJTkN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbIC1kICIke0RJUn0iIF1dOyB0 aGVuCiAgICAgICAgICAgICAgICBmaW5kICIke0RJUn0iIC1kZXB0aCAtdHlwZSBkIC1wcmludDAg fCB4YXJncyAtMCAtciBybWRpciAmPi9kZXYvbnVsbDsKICAgICAgICAgICAgZmk7CiAgICAgICAg ZG9uZTsKICAgICAgICBlaW5mbyAiQ29udmVydGluZyBDIGhlYWRlciBmaWxlcyB0byB0aGUgY29y cmVzcG9uZGluZyBQZXJsIGZvcm1hdCAoaWdub3JlIGFueSBlcnJvcikiOwogICAgICAgIHB1c2hk IC91c3IvaW5jbHVkZSA+IC9kZXYvbnVsbDsKICAgICAgICBoMnBoIC1RIC1hIC1kICIke0VQUkVG SVh9IiR7QVJDSF9MSUJ9IGFzbS90ZXJtaW9zLmggc3lzY2FsbC5oIHN5c2xpbWl0cy5oIHN5c2xv Zy5oIHN5cy9pb2N0bC5oIHN5cy9zb2NrZXQuaCBzeXMvdGltZS5oIHdhaXQuaCBzeXNleGl0cy5o OwogICAgICAgIHBvcGQgPiAvZGV2L251bGw7CiAgICBmaQp9CmVibGl0LXBlcmwtcGtnX3Bvc3Ry bSAoKSAKeyAKICAgIGR1YWxfc2NyaXB0cwp9CmVibGl0LXBlcmwtcGtnX3NldHVwICgpIAp7IAog ICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWZyZWVic2QqKQogICAgICAgICAgICBvc25h bWU9ImZyZWVic2QiCiAgICAgICAgOzsKICAgICAgICAqLWRyYWdvbmZseSopCiAgICAgICAgICAg IG9zbmFtZT0iZHJhZ29uZmx5IgogICAgICAgIDs7CiAgICAgICAgKi1uZXRic2QqKQogICAgICAg ICAgICBvc25hbWU9Im5ldGJzZCIKICAgICAgICA7OwogICAgICAgICotb3BlbmJzZCopCiAgICAg ICAgICAgIG9zbmFtZT0ib3BlbmJzZCIKICAgICAgICA7OwogICAgICAgICotZGFyd2luKikKICAg ICAgICAgICAgb3NuYW1lPSJkYXJ3aW4iCiAgICAgICAgOzsKICAgICAgICAqLWludGVyaXgqKQog ICAgICAgICAgICBvc25hbWU9ImludGVyaXgiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAg ICAgICBvc25hbWU9ImxpbnV4IgogICAgICAgIDs7CiAgICBlc2FjOwogICAgbXlhcmNoPSIke0NI T1NUJSUtKn0tJHtvc25hbWV9IjsKICAgIGlmIHVzZSBkZWJ1ZzsgdGhlbgogICAgICAgIG15YXJj aCs9Ii1kZWJ1ZyI7CiAgICBmaTsKICAgIGlmIHVzZSBpdGhyZWFkczsgdGhlbgogICAgICAgIG15 dGhyZWFkaW5nPSItbXVsdGkiOwogICAgICAgIG15YXJjaCs9Ii10aHJlYWQiOwogICAgZmk7CiAg ICBMSUJQRVJMPSJsaWJwZXJsJChnZXRfbGlibmFtZSAke01ZX1BWfSApIjsKICAgIFBSSVZfTElC PSIvdXNyLyQoZ2V0X2xpYmRpcikvcGVybDUvJHtNWV9QVn0iOwogICAgQVJDSF9MSUI9Ii91c3Iv JChnZXRfbGliZGlyKS9wZXJsNS8ke01ZX1BWfS8ke215YXJjaH0ke215dGhyZWFkaW5nfSI7CiAg ICBTSVRFX0xJQj0iL3Vzci9sb2NhbC8kKGdldF9saWJkaXIpL3Blcmw1LyR7TVlfUFZ9IjsKICAg IFNJVEVfQVJDSD0iL3Vzci9sb2NhbC8kKGdldF9saWJkaXIpL3Blcmw1LyR7TVlfUFZ9LyR7bXlh cmNofSR7bXl0aHJlYWRpbmd9IjsKICAgIFZFTkRPUl9MSUI9Ii91c3IvJChnZXRfbGliZGlyKS9w ZXJsNS92ZW5kb3JfcGVybC8ke01ZX1BWfSI7CiAgICBWRU5ET1JfQVJDSD0iL3Vzci8kKGdldF9s aWJkaXIpL3Blcmw1L3ZlbmRvcl9wZXJsLyR7TVlfUFZ9LyR7bXlhcmNofSR7bXl0aHJlYWRpbmd9 IjsKICAgIGlmIHVzZSBpdGhyZWFkczsgdGhlbgogICAgICAgIGVjaG8gIiI7CiAgICAgICAgZXdh cm4gIlRIUkVBRFMgV0FSTklORzoiOwogICAgICAgIGV3YXJuICJQTEVBU0UgTk9URTogWW91IGFy ZSBjb21waWxpbmcgJHtNWV9QfSB3aXRoIjsKICAgICAgICBld2FybiAiaW50ZXJwcmV0ZXItbGV2 ZWwgdGhyZWFkaW5nIGVuYWJsZWQuIjsKICAgICAgICBld2FybiAiVGhyZWFkaW5nIGlzIG5vdCBz dXBwb3J0ZWQgYnkgYWxsIGFwcGxpY2F0aW9ucyAiOwogICAgICAgIGV3YXJuICJ0aGF0IGNvbXBp bGUgYWdhaW5zdCBwZXJsLiBZb3UgdXNlIHRocmVhZGluZyBhdCAiOwogICAgICAgIGV3YXJuICJ5 b3VyIG93biBkaXNjcmV0aW9uLiAiOwogICAgZmk7CiAgICBjaGVja19yZWJ1aWxkOwogICAgZHVh bF9zY3JpcHRzCn0KZWJsaXQtcGVybC1zcmNfY29uZmlndXJlICgpIAp7IAogICAgZGVjbGFyZSAt YSBteWNvbmY7CiAgICBleHBvcnQgTENfQUxMPSJDIjsKICAgIFtbICR7Q09MVU1OUzotMX0gLWdl IDEgXV0gfHwgdW5zZXQgQ09MVU1OUzsKICAgIHVzZSBwcGMgJiYgcmVwbGFjZS1mbGFncyAtTz8g LU8xOwogICAgdXNlIGVsaWJjX3VjbGliYyB8fCByZXBsYWNlLWZsYWdzICItT3MiICItTzIiOwog ICAgZmlsdGVyLWZsYWdzICItbWFsaWduLWRvdWJsZSI7CiAgICB1c2UgcHBjICYmIGZpbHRlci1m bGFncyAiLW1wb3dlcnBjLWdwb3B0IjsKICAgIGZpbHRlci1mbGFncyAiLWZzY2hlZDItdXNlLXN1 cGVyYmxvY2tzIjsKICAgIHVzZSBzcGFyYyAmJiBteWNvbmYgLVVkX2xvbmdkYmw7CiAgICBleHBv cnQgQlVJTERfQlpJUDI9MDsKICAgIGV4cG9ydCBCWklQMl9JTkNMVURFPSR7RVBSRUZJWH0vdXNy L2luY2x1ZGU7CiAgICBleHBvcnQgQlpJUDJfTElCPSR7RVBSRUZJWH0vdXNyLyQoZ2V0X2xpYmRp cik7CiAgICBleHBvcnQgQlVJTERfWkxJQj1GYWxzZTsKICAgIGV4cG9ydCBaTElCX0lOQ0xVREU9 JHtFUFJFRklYfS91c3IvaW5jbHVkZTsKICAgIGV4cG9ydCBaTElCX0xJQj0ke0VQUkVGSVh9L3Vz ci8kKGdldF9saWJkaXIpOwogICAgbXluZGJtPSdVJzsKICAgIG15Z2RibT0nVSc7CiAgICBteWRi PSdVJzsKICAgIGlmIHVzZSBnZGJtOyB0aGVuCiAgICAgICAgbXlnZGJtPSdEJzsKICAgICAgICBt eW5kYm09J0QnOwogICAgZmk7CiAgICBpZiB1c2UgYmVya2RiOyB0aGVuCiAgICAgICAgbXlkYj0n RCc7CiAgICAgICAgaGFzX3ZlcnNpb24gJz1zeXMtbGlicy9kYi0xKicgJiYgbXluZGJtPSdEJzsK ICAgIGZpOwogICAgbXljb25mICItJHtteW5kYm19aV9uZGJtIiAiLSR7bXlnZGJtfWlfZ2RibSIg Ii0ke215ZGJ9aV9kYiI7CiAgICBpZiB1c2UgYWxwaGEgJiYgW1sgIiQodGMtZ2V0Q0MpIiA9ICJj Y2MiIF1dOyB0aGVuCiAgICAgICAgZXdhcm4gIlBlcmwgd2lsbCBub3QgYmUgYnVpbHQgd2l0aCBi ZXJrZGIgc3VwcG9ydCwgdXNlIGdjYyBpZiB5b3UgbmVlZGVkIGl0Li4uIjsKICAgICAgICBteWNv bmYgLVVpX2RiIC1VaV9uZGJtOwogICAgZmk7CiAgICB1c2UgaXRocmVhZHMgJiYgbXljb25mIC1E dXNldGhyZWFkczsKICAgIGlmIHVzZSBkZWJ1ZzsgdGhlbgogICAgICAgIGFwcGVuZC1jZmxhZ3Mg Ii1nIjsKICAgICAgICBteWNvbmYgLURERUJVR0dJTkc7CiAgICBlbHNlCiAgICAgICAgaWYgW1sg JHtDRkxBR1N9ID09ICotZyogXV07IHRoZW4KICAgICAgICAgICAgbXljb25mIC1EREVCVUdHSU5H PS1nOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbXljb25mIC1EREVCVUdHSU5HPW5vbmU7CiAg ICAgICAgZmk7CiAgICBmaTsKICAgIGlmIFtbIC1uICR7UEVSTF9PTERWRVJTRU59IF1dOyB0aGVu CiAgICAgICAgbG9jYWwgaW5jbGlzdD0kKGZvciB2IGluICR7UEVSTF9PTERWRVJTRU59OyBkbyBl Y2hvIC1uICIke3Z9LyR7bXlhcmNofSR7bXl0aHJlYWRpbmd9ICR7dn0gIjsgZG9uZSApOwogICAg ICAgIG15Y29uZiAtRGluY192ZXJzaW9uX2xpc3Q9IiR7aW5jbGlzdH0iOwogICAgZmk7CiAgICBb WyAke0VMSUJDfSA9PSAiRnJlZUJTRCIgXV0gJiYgbXljb25mICItRGxpYmM9L3Vzci8kKGdldF9s aWJkaXIpL2xpYmMuYSI7CiAgICBpZiB1c2UgcHJlZml4OyB0aGVuCiAgICAgICAgbG9jYWwgbGRp cjsKICAgICAgICBsb2NhbCBwYXRocz0iIjsKICAgICAgICBlY2hvICJpbnQgbWFpbigpIHt9IiA+ ICIke1R9Ii90LmM7CiAgICAgICAgJCh0Yy1nZXRDQykgLW8gIiR7VH0iL3QgIiR7VH0iL3QuYyA+ IC9kZXYvbnVsbCB8fCBkaWU7CiAgICAgICAgbG9jYWwgc2NhbnRvb2w9c2NhbmVsZjsKICAgICAg ICBbWyAke0NIT1NUfSA9PSAqLWRhcndpbiogXV0gJiYgc2NhbnRvb2w9c2Nhbm1hY2hvOwogICAg ICAgIGxvY2FsIG10eXBlPSQoJHtzY2FudG9vbH0gLUJGICIlTSVEI2YiICIke1R9Ii90KTsKICAg ICAgICBlaW5mbyAic2VhcmNoaW5nIGxpYmRpcnMgZm9yICR7bXR5cGV9IjsKICAgICAgICBmb3Ig bGRpciBpbiAvbGliLyotbGludXgtZ251IC91c3IvbGliLyotbGludXgtZ251IC9saWI2NCAvbGli LzY0IC91c3IvbGliNjQgL3Vzci9saWIvNjQgL2xpYjMyIC91c3IvbGliMzIgL2xpYiAvdXNyL2xp YjsKICAgICAgICBkbwogICAgICAgICAgICBbWyAtZSAke2xkaXJ9IF1dIHx8IGNvbnRpbnVlOwog ICAgICAgICAgICBpZiAke3NjYW50b29sfSAtQkYgIiVNJUQjZiIgJHtsZGlyfS8gfCBncmVwIC1x ICR7bXR5cGV9OyB0aGVuCiAgICAgICAgICAgICAgICBwYXRocz0iJHtwYXRoc30gJHtsZGlyfSI7 CiAgICAgICAgICAgICAgICBlaW5mbyAiZm91bmQgJHtsZGlyfSI7CiAgICAgICAgICAgIGZpOwog ICAgICAgIGRvbmU7CiAgICAgICAgbXljb25mICItRGxpYnB0aD0ke0VQUkVGSVh9LyQoZ2V0X2xp YmRpcikgJHtFUFJFRklYfS91c3IvJChnZXRfbGliZGlyKSAke3BhdGhzfSI7CiAgICBlbHNlCiAg ICAgICAgaWYgW1sgJChnZXRfbGliZGlyKSAhPSAibGliIiBdXTsgdGhlbgogICAgICAgICAgICBt eWNvbmYgIi1EbGlicHRoPS91c3IvbG9jYWwvJChnZXRfbGliZGlyKSAvJChnZXRfbGliZGlyKSAv dXNyLyQoZ2V0X2xpYmRpcikiOwogICAgICAgIGZpOwogICAgZmk7CiAgICBteWNvbmYgLURub2V4 dGVuc2lvbnM9T0RCTV9GaWxlOwogICAgc2ggQ29uZmlndXJlIC1kZXMgLUR1c2VzaHJwbGliIC1E YXJjaG5hbWU9IiR7bXlhcmNofSIgLURjYz0iJCh0Yy1nZXRDQykiIC1Eb3B0aW1pemU9IiR7Q0ZM QUdTfSIgLURsZGZsYWdzPSIke0xERkxBR1N9IiAtRHByZWZpeD0iJHtFUFJFRklYfSInL3Vzcicg LURpbnN0YWxscHJlZml4PSIke0VQUkVGSVh9IicvdXNyJyAtRHNpdGVwcmVmaXg9IiR7RVBSRUZJ WH0iJy91c3IvbG9jYWwnIC1EdmVuZG9ycHJlZml4PSIke0VQUkVGSVh9IicvdXNyJyAtRHNjcmlw dGRpcj0iJHtFUFJFRklYfSInL3Vzci9iaW4nIC1EcHJpdmxpYj0iJHtFUFJFRklYfSR7UFJJVl9M SUJ9IiAtRGFyY2hsaWI9IiR7RVBSRUZJWH0ke0FSQ0hfTElCfSIgLURzaXRlbGliPSIke0VQUkVG SVh9JHtTSVRFX0xJQn0iIC1Ec2l0ZWFyY2g9IiR7RVBSRUZJWH0ke1NJVEVfQVJDSH0iIC1EdmVu ZG9ybGliPSIke0VQUkVGSVh9JHtWRU5ET1JfTElCfSIgLUR2ZW5kb3JhcmNoPSIke0VQUkVGSVh9 JHtWRU5ET1JfQVJDSH0iIC1EbWFuMWRpcj0iJHtFUFJFRklYfSIvdXNyL3NoYXJlL21hbi9tYW4x IC1EbWFuM2Rpcj0iJHtFUFJFRklYfSIvdXNyL3NoYXJlL21hbi9tYW4zIC1Ec2l0ZW1hbjFkaXI9 IiR7RVBSRUZJWH0iL3Vzci9sb2NhbC9tYW4vbWFuMSAtRHNpdGVtYW4zZGlyPSIke0VQUkVGSVh9 Ii91c3IvbG9jYWwvbWFuL21hbjMgLUR2ZW5kb3JtYW4xZGlyPSIke0VQUkVGSVh9Ii91c3Ivc2hh cmUvbWFuL21hbjEgLUR2ZW5kb3JtYW4zZGlyPSIke0VQUkVGSVh9Ii91c3Ivc2hhcmUvbWFuL21h bjMgLURtYW4xZXh0PScxJyAtRG1hbjNleHQ9JzNwbScgLURsaWJwZXJsPSIke0xJQlBFUkx9IiAt RGxvY2luY3B0aD0iJHtFUFJFRklYfSInL3Vzci9pbmNsdWRlICcgLURnbGlicHRoPSIke0VQUkVG SVh9LyQoZ2V0X2xpYmRpcikgJHtFUFJFRklYfS91c3IvJChnZXRfbGliZGlyKSInICcgLUR1c2Vs YXJnZWZpbGVzIC1EZF9zZW1jdGxfc2VtdW4gLURjZl9ieT0nR2VudG9vJyAtRG15aG9zdG5hbWU9 J2xvY2FsaG9zdCcgLURwZXJsYWRtaW49J3Jvb3RAbG9jYWxob3N0JyAtRGluc3RhbGx1c3JiaW5w ZXJsPSduJyAtVWRfY3NoIC1VdXNlbm0gIiR7bXljb25mW0BdfSIgfHwgZGllICJVbmFibGUgdG8g Y29uZmlndXJlIgp9CmVibGl0LXBlcmwtc3JjX3ByZXBhcmUgKCkgCnsgCiAgICBsb2NhbCBwYXRj aDsKICAgIEVQQVRDSF9PUFRTKz0iIC1wMSI7CiAgICBlaW5mbyAiQXBwbHlpbmcgcGF0Y2hlcyBm cm9tICR7TVlfUH0tJHtQQVRDSF9WRVJ9IC4uLiI7CiAgICB3aGlsZSByZWFkIHBhdGNoOyBkbwog ICAgICAgIEVQQVRDSF9TSU5HTEVfTVNHPSIgICR7cGF0Y2h9IC4uLiI7CiAgICAgICAgZXBhdGNo ICIke1dPUktESVJ9Ii9wYXRjaGVzLyR7cGF0Y2h9OwogICAgZG9uZSA8ICIke1dPUktESVJ9Ii9w YXRjaGVzL3NlcmllczsKICAgIHNyY19wcmVwYXJlX3VwZGF0ZV9wYXRjaGxldmVsX2g7CiAgICBp ZiAhIHRjLWlzLXN0YXRpYy1vbmx5OyB0aGVuCiAgICAgICAgbG4gLXMgJHtMSUJQRVJMfSBsaWJw ZXJsJChnZXRfbGlibmFtZSAke1NIT1JUX1BWfSkgfHwgZGllOwogICAgICAgIGxuIC1zICR7TElC UEVSTH0gbGlicGVybCQoZ2V0X2xpYm5hbWUgKSB8fCBkaWU7CiAgICBmaQp9CmVibGl0LXJ1biAo KSAKeyAKICAgIGVibGl0LWluY2x1ZGUgLS1za2lwIGNvbW1vbiAiJHsqOjJ9IjsKICAgIGVibGl0 LWluY2x1ZGUgIiRAIjsKICAgIGVibGl0LXJ1bi1tYXliZSBlYmxpdC0kMS1wcmU7CiAgICBlYmxp dC0ke1BOfS0kMTsKICAgIGVibGl0LXJ1bi1tYXliZSBlYmxpdC0kMS1wb3N0Cn0KZWJsaXQtcnVu LW1heWJlICgpIAp7IAogICAgW1sgJCh0eXBlIC10ICIkQCIpID09ICJmdW5jdGlvbiIgXV0gJiYg IiRAIgp9CmVjb25mX2J1aWxkICgpIAp7IAogICAgdGMtZW52X2J1aWxkIGVjb25mIC0tYnVpbGQ9 JHtDQlVJTEQ6LSR7Q0hPU1R9fSAiJEAiCn0KZWN2c19jbGVhbiAoKSAKeyAKICAgIFtbIC16ICQq IF1dICYmIHNldCAtLSAuOwogICAgZmluZCAiJEAiIC10eXBlIGQgLW5hbWUgJ0NWUycgLXBydW5l IC1wcmludDAgfCB4YXJncyAtMCBybSAtcmY7CiAgICBmaW5kICIkQCIgLXR5cGUgZiAtbmFtZSAn LmN2cyonIC1wcmludDAgfCB4YXJncyAtMCBybSAtcmYKfQplZG9zMnVuaXggKCkgCnsgCiAgICBb WyAkIyAtZXEgMCBdXSAmJiByZXR1cm4gMDsKICAgIHNlZCAtaSAncy9cciQvLycgLS0gIiRAIiB8 fCBkaWUKfQplZ2V0ZW50ICgpIAp7IAogICAgbG9jYWwgZGI9JDEga2V5PSQyOwogICAgW1sgJCMg LWdlIDMgXV0gJiYgZGllICJ1c2FnZTogZWdldGVudCA8ZGF0YWJhc2U+IDxrZXk+IjsKICAgIGNh c2UgJHtkYn0gaW4gCiAgICAgICAgcGFzc3dkIHwgZ3JvdXApCgogICAgICAgIDs7CiAgICAgICAg KikKICAgICAgICAgICAgZGllICJzb3JyeSwgZGF0YWJhc2UgJyR7ZGJ9JyBub3QgeWV0IHN1cHBv cnRlZDsgZmlsZSBhIGJ1ZyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGNhc2UgJHtDSE9TVH0g aW4gCiAgICAgICAgKi1kYXJ3aW5bNjc4XSkKICAgICAgICAgICAgY2FzZSAke2tleX0gaW4gCiAg ICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBuaWR1bXAgJHtkYn0g LiB8IGF3ayAtRjogIihcJDEgfiAvXiR7a2V5fVwkLykge3ByaW50O2V4aXQ7fSIKICAgICAgICAg ICAgICAgIDs7CiAgICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgICAgIG5pZHVtcCAk e2RifSAuIHwgYXdrIC1GOiAiKFwkMyA9PSAke2tleX0pIHtwcmludDtleGl0O30iCiAgICAgICAg ICAgICAgICA7OwogICAgICAgICAgICBlc2FjCiAgICAgICAgOzsKICAgICAgICAqLWRhcndpbiop CiAgICAgICAgICAgIGxvY2FsIG15a2V5OwogICAgICAgICAgICBjYXNlICR7ZGJ9IGluIAogICAg ICAgICAgICAgICAgcGFzc3dkKQogICAgICAgICAgICAgICAgICAgIGRiPSJVc2VycyIgbXlrZXk9 IlVuaXF1ZUlEIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGdyb3VwKQogICAg ICAgICAgICAgICAgICAgIGRiPSJHcm91cHMiIG15a2V5PSJQcmltYXJ5R3JvdXBJRCIKICAgICAg ICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIGNhc2UgJHtrZXl9IGlu IAogICAgICAgICAgICAgICAgKlshMC05XSopCiAgICAgICAgICAgICAgICAgICAgZHNjbCAuIC1y ZWFkIC8ke2RifS8ke2tleX0gMj4gL2Rldi9udWxsIHwgZ3JlcCBSZWNvcmROYW1lCiAgICAgICAg ICAgICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBkc2NsIC4g LXNlYXJjaCAvJHtkYn0gJHtteWtleX0gJHtrZXl9IDI+IC9kZXYvbnVsbAogICAgICAgICAgICAg ICAgOzsKICAgICAgICAgICAgZXNhYwogICAgICAgIDs7CiAgICAgICAgKi1mcmVlYnNkKiB8ICot ZHJhZ29uZmx5KikKICAgICAgICAgICAgY2FzZSAke2RifSBpbiAKICAgICAgICAgICAgICAgIHBh c3N3ZCkKICAgICAgICAgICAgICAgICAgICBkYj0idXNlciIKICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAqKQoKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAg ICAgICAgICAgIGxvY2FsIG9wdHM7CiAgICAgICAgICAgIGlmIFtbICR7a2V5fSA9PSBbWzpkaWdp dDpdXSogXV07IHRoZW4KICAgICAgICAgICAgICAgIFtbICR7ZGJ9ID09ICJ1c2VyIiBdXSAmJiBv cHRzPSItdSIgfHwgb3B0cz0iLWciOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgcHcgc2hv dyAke2RifSAke29wdHN9ICIke2tleX0iIC1xCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCog fCAqLW9wZW5ic2QqKQogICAgICAgICAgICBncmVwICIke2tleX06XCo6IiAvZXRjLyR7ZGJ9CiAg ICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBuc2NkIC1pICIke2RifSIgMj4gL2Rldi9u dWxsOwogICAgICAgICAgICBnZXRlbnQgIiR7ZGJ9IiAiJHtrZXl9IgogICAgICAgIDs7CiAgICBl c2FjCn0KZWdldGhvbWUgKCkgCnsgCiAgICBsb2NhbCBwb3M7CiAgICBbWyAkIyAtZXEgMSBdXSB8 fCBkaWUgInVzYWdlOiBlZ2V0aG9tZSA8dXNlcj4iOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAg ICAgICAqLWRhcndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBw b3M9OQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgcG9zPTYKICAgICAgICA7Owog ICAgZXNhYzsKICAgIGVnZXRlbnQgcGFzc3dkICIkMSIgfCBjdXQgLWQ6IC1mJHtwb3N9Cn0KZWdl dHNoZWxsICgpIAp7IAogICAgbG9jYWwgcG9zOwogICAgW1sgJCMgLWVxIDEgXV0gfHwgZGllICJ1 c2FnZTogZWdldHNoZWxsIDx1c2VyPiI7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICot ZGFyd2luKiB8ICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIHBvcz0xMAog ICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgcG9zPTcKICAgICAgICA7OwogICAgZXNh YzsKICAgIGVnZXRlbnQgcGFzc3dkICIkMSIgfCBjdXQgLWQ6IC1mJHtwb3N9Cn0KZW1rdGVtcCAo KSAKeyAKICAgIGxvY2FsIGV4ZT0idG91Y2giOwogICAgW1sgJDEgPT0gLWQgXV0gJiYgZXhlPSJt a2RpciIgJiYgc2hpZnQ7CiAgICBsb2NhbCB0b3BkaXI9JDE7CiAgICBpZiBbWyAteiAke3RvcGRp cn0gXV07IHRoZW4KICAgICAgICBbWyAteiAke1R9IF1dICYmIHRvcGRpcj0iL3RtcCIgfHwgdG9w ZGlyPSR7VH07CiAgICBmaTsKICAgIGlmICEgdHlwZSAtUCBta3RlbXAgPiAvZGV2L251bGw7IHRo ZW4KICAgICAgICBsb2NhbCB0bXA9LzsKICAgICAgICB3aGlsZSBbWyAtZSAke3RtcH0gXV07IGRv CiAgICAgICAgICAgIHRtcD0ke3RvcGRpcn0vdG1wLiR7UkFORE9NfS4ke1JBTkRPTX0uJHtSQU5E T019OwogICAgICAgIGRvbmU7CiAgICAgICAgJHtleGV9ICIke3RtcH0iIHx8ICR7ZXhlfSAtcCAi JHt0bXB9IjsKICAgICAgICBlY2hvICIke3RtcH0iOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7 ZXhlfSA9PSAidG91Y2giIF1dOyB0aGVuCiAgICAgICAgICAgIFRNUERJUj0iJHt0b3BkaXJ9IiBt a3RlbXAgLXQgdG1wLlhYWFhYWFhYWFg7CiAgICAgICAgZWxzZQogICAgICAgICAgICBUTVBESVI9 IiR7dG9wZGlyfSIgbWt0ZW1wIC1kdCB0bXAuWFhYWFhYWFhYWDsKICAgICAgICBmaTsKICAgIGZp Cn0KZW5ld2dyb3VwICgpIAp7IAogICAgX2Fzc2VydF9wa2dfZWJ1aWxkX3BoYXNlICR7RlVOQ05B TUV9OwogICAgbG9jYWwgZWdyb3VwPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAteiAke2Vncm91 cH0gXV07IHRoZW4KICAgICAgICBlZXJyb3IgIk5vIGdyb3VwIHNwZWNpZmllZCAhIjsKICAgICAg ICBkaWUgIkNhbm5vdCBjYWxsIGVuZXdncm91cCB3aXRob3V0IGEgZ3JvdXAiOwogICAgZmk7CiAg ICByb290dWlkPSQocHl0aG9uIC1jICdmcm9tIHBvcnRhZ2UuY29uc3QgaW1wb3J0IHJvb3R1aWQ7 IHByaW50IHJvb3R1aWQnKTsKICAgIGlmIFtbICR7cm9vdHVpZH0gIT0gMCBdXTsgdGhlbgogICAg ICAgIGV3YXJuICInZW5ld2dyb3VwKCknIGRpc2FibGVkIGluIEdlbnRvbyBQcmVmaXggd2l0aCBu b24tcm9vdCB1c2VyIChieSBkZXNpZ24pIjsKICAgICAgICBld2FybiAiICAgIEdyb3VwOiAnJGVn cm91cCcgbm90IGNyZWF0ZWQiOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBpZiBbWyAt biAkKGVnZXRlbnQgZ3JvdXAgIiR7ZWdyb3VwfSIpIF1dOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7 CiAgICBmaTsKICAgIGVpbmZvICJBZGRpbmcgZ3JvdXAgJyR7ZWdyb3VwfScgdG8geW91ciBzeXN0 ZW0gLi4uIjsKICAgIGxvY2FsIGVnaWQ9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbICEgLXogJHtl Z2lkfSBdXTsgdGhlbgogICAgICAgIGlmIFtbICR7ZWdpZH0gLWd0IDAgXV07IHRoZW4KICAgICAg ICAgICAgaWYgW1sgLW4gJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1dOyB0aGVuCiAgICAgICAg ICAgICAgICBlZ2lkPSJuZXh0IGF2YWlsYWJsZTsgcmVxdWVzdGVkIGdpZCB0YWtlbiI7CiAgICAg ICAgICAgIGZpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZWVycm9yICJHcm91cGlkIGdpdmVu IGJ1dCBpcyBub3QgZ3JlYXRlciB0aGFuIDAgISI7CiAgICAgICAgICAgIGRpZSAiJHtlZ2lkfSBp cyBub3QgYSB2YWxpZCBHSUQiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGVnaWQ9Im5l eHQgYXZhaWxhYmxlIjsKICAgIGZpOwogICAgZWluZm8gIiAtIEdyb3VwaWQ6ICR7ZWdpZH0iOwog ICAgaWYgW1sgJCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBkaWUgImV4dHJhIGFyZ3VtZW50cyBu byBsb25nZXIgc3VwcG9ydGVkOyBwbGVhc2UgZmlsZSBhIGJ1ZyI7CiAgICBmaTsKICAgIGZ1bmN0 aW9uIF9lbmV3Z3JvdXBfbmV4dF9naWQgKCkgCiAgICB7IAogICAgICAgIGlmIFtbICR7ZWdpZH0g PT0gKlshMC05XSogXV07IHRoZW4KICAgICAgICAgICAgZm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8 PSA5OTk7IGVnaWQrKykpCiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBbWyAteiAkKGVn ZXRlbnQgZ3JvdXAgJHtlZ2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAgIGRvbmU7CiAgICAg ICAgZmkKICAgIH07CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotZGFyd2luKikKICAg ICAgICAgICAgX2VuZXdncm91cF9uZXh0X2dpZDsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAi L2dyb3Vwcy8ke2Vncm91cH0iIGdpZCAke2VnaWR9OwogICAgICAgICAgICBkc2NsIC4gY3JlYXRl ICIvZ3JvdXBzLyR7ZWdyb3VwfSIgcGFzc3dkICcqJwogICAgICAgIDs7CiAgICAgICAgKi1mcmVl YnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgX2VuZXdncm91cF9uZXh0X2dpZDsKICAg ICAgICAgICAgcHcgZ3JvdXBhZGQgIiR7ZWdyb3VwfSIgLWcgJHtlZ2lkfSB8fCBkaWUKICAgICAg ICA7OwogICAgICAgICotbmV0YnNkKikKICAgICAgICAgICAgX2VuZXdncm91cF9uZXh0X2dpZDsK ICAgICAgICAgICAgZ3JvdXBhZGQgLWcgJHtlZ2lkfSAiJHtlZ3JvdXB9IiB8fCBkaWUKICAgICAg ICA7OwogICAgICAgICopCiAgICAgICAgICAgIGxvY2FsIG9wdHM7CiAgICAgICAgICAgIGlmIFtb ICR7ZWdpZH0gPT0gKlshMC05XSogXV07IHRoZW4KICAgICAgICAgICAgICAgIG9wdHM9IiI7CiAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIG9wdHM9Ii1nICR7ZWdpZH0iOwogICAgICAg ICAgICBmaTsKICAgICAgICAgICAgZ3JvdXBhZGQgLXIgJHtvcHRzfSAiJHtlZ3JvdXB9IiB8fCBk aWUKICAgICAgICA7OwogICAgZXNhYwp9CmVuZXd1c2VyICgpIAp7IAogICAgX2Fzc2VydF9wa2df ZWJ1aWxkX3BoYXNlICR7RlVOQ05BTUV9OwogICAgbG9jYWwgZXVzZXI9JDE7CiAgICBzaGlmdDsK ICAgIGlmIFtbIC16ICR7ZXVzZXJ9IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJObyB1c2VybmFt ZSBzcGVjaWZpZWQgISI7CiAgICAgICAgZGllICJDYW5ub3QgY2FsbCBlbmV3dXNlciB3aXRob3V0 IGEgdXNlcm5hbWUiOwogICAgZmk7CiAgICByb290dWlkPSQocHl0aG9uIC1jICdmcm9tIHBvcnRh Z2UuY29uc3QgaW1wb3J0IHJvb3R1aWQ7IHByaW50IHJvb3R1aWQnKTsKICAgIGlmIFtbICR7cm9v dHVpZH0gIT0gMCBdXTsgdGhlbgogICAgICAgIGV3YXJuICInZW5ld3VzZXIoKScgIGRpc2FibGVk IGluIEdlbnRvbyBQcmVmaXggd2l0aCBub24tcm9vdCB1c2VyIChieSBkZXNpZ24pIjsKICAgICAg ICBld2FybiAiICAgIFVzZXI6ICckZXVzZXInIG5vdCBjcmVhdGVkIjsKICAgICAgICByZXR1cm4g MDsKICAgIGZpOwogICAgaWYgW1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAiJHtldXNlcn0iKSBdXTsg dGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBlaW5mbyAiQWRkaW5nIHVzZXIgJyR7 ZXVzZXJ9JyB0byB5b3VyIHN5c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz0oKTsKICAgIGxvY2Fs IGV1aWQ9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbIC1uICR7ZXVpZH0gJiYgJHtldWlkfSAhPSAt MSBdXTsgdGhlbgogICAgICAgIGlmIFtbICR7ZXVpZH0gLWd0IDAgXV07IHRoZW4KICAgICAgICAg ICAgaWYgW1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBdXTsgdGhlbgogICAgICAgICAg ICAgICAgZXVpZD0ibmV4dCI7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVsc2UKICAgICAgICAg ICAgZWVycm9yICJVc2VyaWQgZ2l2ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRoYW4gMCAhIjsKICAg ICAgICAgICAgZGllICIke2V1aWR9IGlzIG5vdCBhIHZhbGlkIFVJRCI7CiAgICAgICAgZmk7CiAg ICBlbHNlCiAgICAgICAgZXVpZD0ibmV4dCI7CiAgICBmaTsKICAgIGlmIFtbICR7ZXVpZH0gPT0g Im5leHQiIF1dOyB0aGVuCiAgICAgICAgZm9yICgoZXVpZCA9IDEwMTsgZXVpZCA8PSA5OTk7IGV1 aWQrKykpCiAgICAgICAgZG8KICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IHBhc3N3ZCAke2V1 aWR9KSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBvcHRzKz0oLXUgJHtl dWlkfSk7CiAgICBlaW5mbyAiIC0gVXNlcmlkOiAke2V1aWR9IjsKICAgIGxvY2FsIGVzaGVsbD0k MTsKICAgIHNoaWZ0OwogICAgaWYgW1sgISAteiAke2VzaGVsbH0gXV0gJiYgW1sgJHtlc2hlbGx9 ICE9ICItMSIgXV07IHRoZW4KICAgICAgICBpZiBbWyAhIC1lICR7RVJPT1R9JHtlc2hlbGx9IF1d OyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiQSBzaGVsbCB3YXMgc3BlY2lmaWVkIGJ1dCBpdCBk b2VzIG5vdCBleGlzdCAhIjsKICAgICAgICAgICAgZGllICIke2VzaGVsbH0gZG9lcyBub3QgZXhp c3QgaW4gJHtFUk9PVH0iOwogICAgICAgIGZpOwogICAgICAgIGlmIFtbICR7ZXNoZWxsfSA9PSAq L2ZhbHNlIHx8ICR7ZXNoZWxsfSA9PSAqL25vbG9naW4gXV07IHRoZW4KICAgICAgICAgICAgZWVy cm9yICJEbyBub3Qgc3BlY2lmeSAke2VzaGVsbH0geW91cnNlbGYsIHVzZSAtMSI7CiAgICAgICAg ICAgIGRpZSAiUGFzcyAnLTEnIGFzIHRoZSBzaGVsbCBwYXJhbWV0ZXIiOwogICAgICAgIGZpOwog ICAgZWxzZQogICAgICAgIGZvciBlc2hlbGwgaW4gL3NiaW4vbm9sb2dpbiAvdXNyL3NiaW4vbm9s b2dpbiAvYmluL2ZhbHNlIC91c3IvYmluL2ZhbHNlIC9kZXYvbnVsbDsKICAgICAgICBkbwogICAg ICAgICAgICBbWyAteCAke1JPT1R9JHtlc2hlbGx9IF1dICYmIGJyZWFrOwogICAgICAgIGRvbmU7 CiAgICAgICAgaWYgW1sgJHtlc2hlbGx9ID09ICIvZGV2L251bGwiIF1dOyB0aGVuCiAgICAgICAg ICAgIGVlcnJvciAiVW5hYmxlIHRvIGlkZW50aWZ5IHRoZSBzaGVsbCB0byB1c2UsIHByb2NlZWRp bmcgd2l0aCB1c2VybGFuZCBkZWZhdWx0LiI7CiAgICAgICAgICAgIGNhc2UgJHtVU0VSTEFORH0g aW4gCiAgICAgICAgICAgICAgICBHTlUpCiAgICAgICAgICAgICAgICAgICAgZXNoZWxsPSIvYmlu L2ZhbHNlIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIEJTRCkKICAgICAgICAg ICAgICAgICAgICBlc2hlbGw9Ii9zYmluL25vbG9naW4iCiAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICAgICAgRGFyd2luKQogICAgICAgICAgICAgICAgICAgIGVzaGVsbD0iL3Vzci9zYmlu L25vbG9naW4iCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAgICAg ICAgICAgICAgICBkaWUgIlVuYWJsZSB0byBpZGVudGlmeSB0aGUgZGVmYXVsdCBzaGVsbCBmb3Ig dXNlcmxhbmQgJHtVU0VSTEFORH0iCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2Fj OwogICAgICAgIGZpOwogICAgZmk7CiAgICBlaW5mbyAiIC0gU2hlbGw6ICR7ZXNoZWxsfSI7CiAg ICBvcHRzKz0oLXMgIiR7ZXNoZWxsfSIpOwogICAgbG9jYWwgZWhvbWU9JDE7CiAgICBzaGlmdDsK ICAgIGlmIFtbIC16ICR7ZWhvbWV9IF1dIHx8IFtbICR7ZWhvbWV9ID09ICItMSIgXV07IHRoZW4K ICAgICAgICBlaG9tZT0iL2Rldi9udWxsIjsKICAgIGZpOwogICAgZWluZm8gIiAtIEhvbWU6ICR7 ZWhvbWV9IjsKICAgIG9wdHMrPSgtZCAiJHtlaG9tZX0iKTsKICAgIGxvY2FsIGVncm91cHM9JDE7 CiAgICBzaGlmdDsKICAgIGxvY2FsIGcgZWdyb3Vwc19hcnI7CiAgICBJRlM9IiwiIHJlYWQgLXIg LWEgZWdyb3Vwc19hcnIgPDw8ICIke2Vncm91cHN9IjsKICAgIHNoaWZ0OwogICAgaWYgW1sgJHsj ZWdyb3Vwc19hcnJbQF19IC1ndCAwIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgZGVmZ3JvdXAgZXhn cm91cHM7CiAgICAgICAgZm9yIGcgaW4gIiR7ZWdyb3Vwc19hcnJbQF19IjsKICAgICAgICBkbwog ICAgICAgICAgICBpZiBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgIiR7Z30iKSBdXTsgdGhlbgogICAg ICAgICAgICAgICAgZWVycm9yICJZb3UgbXVzdCBhZGQgZ3JvdXAgJHtnfSB0byB0aGUgc3lzdGVt IGZpcnN0IjsKICAgICAgICAgICAgICAgIGRpZSAiJHtnfSBpcyBub3QgYSB2YWxpZCBHSUQiOwog ICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgW1sgLXogJHtkZWZncm91cH0gXV07IHRoZW4K ICAgICAgICAgICAgICAgIGRlZmdyb3VwPSR7Z307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgIGV4Z3JvdXBzKz0iLCR7Z30iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwog ICAgICAgIG9wdHMrPSgtZyAiJHtkZWZncm91cH0iKTsKICAgICAgICBpZiBbWyAhIC16ICR7ZXhn cm91cHN9IF1dOyB0aGVuCiAgICAgICAgICAgIG9wdHMrPSgtRyAiJHtleGdyb3VwczoxfSIpOwog ICAgICAgIGZpOwogICAgZmk7CiAgICBlaW5mbyAiIC0gR3JvdXBzOiAke2Vncm91cHM6LShub25l KX0iOwogICAgaWYgW1sgJCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBkaWUgImV4dHJhIGFyZ3Vt ZW50cyBubyBsb25nZXIgc3VwcG9ydGVkOyBwbGVhc2UgZmlsZSBhIGJ1ZyI7CiAgICBlbHNlCiAg ICAgICAgbG9jYWwgY29tbWVudD0iYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0iOwogICAgICAg IG9wdHMrPSgtYyAiJHtjb21tZW50fSIpOwogICAgICAgIGVpbmZvICIgLSBHRUNPUzogJHtjb21t ZW50fSI7CiAgICBmaTsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQog ICAgICAgICAgICBkc2NsIC4gY3JlYXRlICIvdXNlcnMvJHtldXNlcn0iIHVpZCAke2V1aWR9Owog ICAgICAgICAgICBkc2NsIC4gY3JlYXRlICIvdXNlcnMvJHtldXNlcn0iIHNoZWxsICIke2VzaGVs bH0iOwogICAgICAgICAgICBkc2NsIC4gY3JlYXRlICIvdXNlcnMvJHtldXNlcn0iIGhvbWUgIiR7 ZWhvbWV9IjsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAiL3VzZXJzLyR7ZXVzZXJ9IiByZWFs bmFtZSAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0iOwogICAgICAgICAgICBmb3IgZyBpbiAi JHtlZ3JvdXBzX2FycltAXX0iOwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgZHNjbCAu IG1lcmdlICIvZ3JvdXBzLyR7Z30iIHVzZXJzICIke2V1c2VyfSI7CiAgICAgICAgICAgIGRvbmUK ICAgICAgICA7OwogICAgICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAg IHB3IHVzZXJhZGQgIiR7ZXVzZXJ9IiAiJHtvcHRzW0BdfSIgfHwgZGllCiAgICAgICAgOzsKICAg ICAgICAqLW5ldGJzZCopCiAgICAgICAgICAgIHVzZXJhZGQgIiR7b3B0c1tAXX0iICIke2V1c2Vy fSIgfHwgZGllCiAgICAgICAgOzsKICAgICAgICAqLW9wZW5ic2QqKQogICAgICAgICAgICB1c2Vy YWRkIC11ICR7ZXVpZH0gLXMgIiR7ZXNoZWxsfSIgLWQgIiR7ZWhvbWV9IiAtZyAiJHtlZ3JvdXBz fSIgIiR7ZXVzZXJ9IiB8fCBkaWUKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIHVz ZXJhZGQgLXIgIiR7b3B0c1tAXX0iICIke2V1c2VyfSIgfHwgZGllCiAgICAgICAgOzsKICAgIGVz YWM7CiAgICBpZiBbWyAhIC1lICR7RVJPT1R9LyR7ZWhvbWV9IF1dOyB0aGVuCiAgICAgICAgZWlu Zm8gIiAtIENyZWF0aW5nICR7ZWhvbWV9IGluICR7RVJPT1R9IjsKICAgICAgICBta2RpciAtcCAi JHtFUk9PVH0vJHtlaG9tZX0iOwogICAgICAgIGNob3duICIke2V1c2VyfSIgIiR7RVJPT1R9LyR7 ZWhvbWV9IjsKICAgICAgICBjaG1vZCA3NTUgIiR7RVJPT1R9LyR7ZWhvbWV9IjsKICAgIGZpCn0K ZXBhdGNoICgpIAp7IAogICAgZnVuY3Rpb24gX2VwYXRjaF9kcmF3X2xpbmUgKCkgCiAgICB7IAog ICAgICAgIFtbIC16ICQxIF1dICYmIHNldCAiJChwcmludGYgIiU2NXMiICcnKSI7CiAgICAgICAg ZWNobyAiJHsxLy8/Lz19IgogICAgfTsKICAgIHVuc2V0IFA0Q09ORklHIFA0UE9SVCBQNFVTRVI7 CiAgICBsb2NhbCBFUEFUQ0hfT1BUUz0oJHtFUEFUQ0hfT1BUU1sqXX0pOwogICAgd2hpbGUgW1sg JCMgLWd0IDAgXV07IGRvCiAgICAgICAgY2FzZSAkMSBpbiAKICAgICAgICAgICAgLSopCiAgICAg ICAgICAgICAgICBFUEFUQ0hfT1BUUys9KCIkMSIpCiAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICopCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAg ICAgICAgc2hpZnQ7CiAgICBkb25lOwogICAgaWYgW1sgJCMgLWd0IDEgXV07IHRoZW4KICAgICAg ICBsb2NhbCBtOwogICAgICAgIGZvciBtIGluICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAg ZXBhdGNoICIke219IjsKICAgICAgICBkb25lOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAg ICBsb2NhbCBTSU5HTEVfUEFUQ0g9Im5vIjsKICAgIFtbICQjIC1lcSAwIF1dICYmIHNldCAtLSAi JHtFUEFUQ0hfU09VUkNFfSI7CiAgICBpZiBbWyAtZiAkMSBdXTsgdGhlbgogICAgICAgIFNJTkdM RV9QQVRDSD0ieWVzIjsKICAgICAgICBzZXQgLS0gIiQxIjsKICAgICAgICBsb2NhbCBFUEFUQ0hf U1VGRklYPSQxOwogICAgZWxzZQogICAgICAgIGlmIFtbIC1kICQxIF1dOyB0aGVuCiAgICAgICAg ICAgIHNldCAtLSAiJDEiLyoke0VQQVRDSF9TVUZGSVg6Ky4iJHtFUEFUQ0hfU1VGRklYfSJ9Owog ICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWYgJHtFUEFUQ0hfU09VUkNFfS8kMSBdXTsg dGhlbgogICAgICAgICAgICAgICAgZXBhdGNoICIke0VQQVRDSF9TT1VSQ0V9LyQxIjsKICAgICAg ICAgICAgICAgIHJldHVybiAkPzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgW1sg JCMgLW5lIDAgXV0gJiYgRVBBVENIX1NPVVJDRT0kMTsKICAgICAgICAgICAgICAgIGVjaG87CiAg ICAgICAgICAgICAgICBlZXJyb3IgIkNhbm5vdCBmaW5kIFwkRVBBVENIX1NPVVJDRSEgIFZhbHVl IGZvciBcJEVQQVRDSF9TT1VSQ0UgaXM6IjsKICAgICAgICAgICAgICAgIGVlcnJvcjsKICAgICAg ICAgICAgICAgIGVlcnJvciAiICAke0VQQVRDSF9TT1VSQ0V9IjsKICAgICAgICAgICAgICAgIGVl cnJvciAiICAoICR7RVBBVENIX1NPVVJDRSMjKi99ICkiOwogICAgICAgICAgICAgICAgZWNobzsK ICAgICAgICAgICAgICAgIGRpZSAiQ2Fubm90IGZpbmQgXCRFUEFUQ0hfU09VUkNFISI7CiAgICAg ICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBFUEFUQ0hfT1BUUz0iJHtFUEFUQ0hf Q09NTU9OX09QVFN9ICR7RVBBVENIX09QVFNbKl19IjsKICAgIGxvY2FsIFBJUEVfQ01EOwogICAg Y2FzZSAke0VQQVRDSF9TVUZGSVgjIypcLn0gaW4gCiAgICAgICAgeHopCiAgICAgICAgICAgIFBJ UEVfQ01EPSJ4eiAtZGMiCiAgICAgICAgOzsKICAgICAgICBsem1hKQogICAgICAgICAgICBQSVBF X0NNRD0ibHptYSAtZGMiCiAgICAgICAgOzsKICAgICAgICBiejIpCiAgICAgICAgICAgIFBJUEVf Q01EPSJiemlwMiAtZGMiCiAgICAgICAgOzsKICAgICAgICBneiB8IFogfCB6KQogICAgICAgICAg ICBQSVBFX0NNRD0iZ3ppcCAtZGMiCiAgICAgICAgOzsKICAgICAgICBaSVAgfCB6aXApCiAgICAg ICAgICAgIFBJUEVfQ01EPSJ1bnppcCAtcCIKICAgICAgICA7OwogICAgICAgICopCgogICAgICAg IDs7CiAgICBlc2FjOwogICAgW1sgJHtTSU5HTEVfUEFUQ0h9ID09ICJubyIgXV0gJiYgZWluZm8g IiR7RVBBVENIX01VTFRJX01TR30iOwogICAgbG9jYWwgeDsKICAgIGZvciB4IGluICIkQCI7CiAg ICBkbwogICAgICAgIFtbICEgLWYgJHt4fSBdXSAmJiBjb250aW51ZTsKICAgICAgICBsb2NhbCBw YXRjaG5hbWU9JHt4IyMqL307CiAgICAgICAgbG9jYWwgYT0ke3BhdGNobmFtZSMqX307CiAgICAg ICAgYT0ke2ElJV8qfTsKICAgICAgICBpZiAhIFtbICR7U0lOR0xFX1BBVENIfSA9PSAieWVzIiB8 fCAke0VQQVRDSF9GT1JDRX0gPT0gInllcyIgfHwgJHthfSA9PSBhbGwgfHwgJHthfSA9PSAke0FS Q0h9IF1dOyB0aGVuCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGZpOwogICAgICAgIGlm IFtbIC1uICR7RVBBVENIX0VYQ0xVREV9IF1dOyB0aGVuCiAgICAgICAgICAgIGVzaG9wdHNfcHVz aCAtbyBub2dsb2I7CiAgICAgICAgICAgIGxvY2FsIGV4OwogICAgICAgICAgICBmb3IgZXggaW4g JHtFUEFUQ0hfRVhDTFVERX07CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBbWyAk e3BhdGNobmFtZX0gPT0gJHtleH0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlc2hvcHRz X3BvcDsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAyOwogICAgICAgICAgICAgICAgZmk7 CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGVzaG9wdHNfcG9wOwogICAgICAgIGZpOwog ICAgICAgIGlmIFtbICR7U0lOR0xFX1BBVENIfSA9PSAieWVzIiBdXTsgdGhlbgogICAgICAgICAg ICBpZiBbWyAtbiAke0VQQVRDSF9TSU5HTEVfTVNHfSBdXTsgdGhlbgogICAgICAgICAgICAgICAg ZWluZm8gIiR7RVBBVENIX1NJTkdMRV9NU0d9IjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgZWluZm8gIkFwcGx5aW5nICR7cGF0Y2huYW1lfSAuLi4iOwogICAgICAgICAgICBmaTsK ICAgICAgICBlbHNlCiAgICAgICAgICAgIGVpbmZvICIgICR7cGF0Y2huYW1lfSAuLi4iOwogICAg ICAgIGZpOwogICAgICAgIGxvY2FsIFNUREVSUl9UQVJHRVQ9IiR7VH0vJHtwYXRjaG5hbWV9Lm91 dCI7CiAgICAgICAgaWYgW1sgLWUgJHtTVERFUlJfVEFSR0VUfSBdXTsgdGhlbgogICAgICAgICAg ICBTVERFUlJfVEFSR0VUPSIke1R9LyR7cGF0Y2huYW1lfS0kJC5vdXQiOwogICAgICAgIGZpOwog ICAgICAgIHByaW50ZiAiKioqKiogJXMgKioqKipcblBXRDogJXNcblxuIiAiJHtwYXRjaG5hbWV9 IiAiJHtQV0R9IiA+ICIke1NUREVSUl9UQVJHRVR9IjsKICAgICAgICBsb2NhbCBjb3VudD0wOwog ICAgICAgIGxvY2FsIFBBVENIX1RBUkdFVDsKICAgICAgICBpZiBbWyAtbiAke1BJUEVfQ01EfSBd XTsgdGhlbgogICAgICAgICAgICBQQVRDSF9UQVJHRVQ9IiR7VH0vJCQucGF0Y2giOwogICAgICAg ICAgICBlY2hvICJQSVBFX0NPTU1BTkQ6ICAke1BJUEVfQ01EfSAke3h9ID4gJHtQQVRDSF9UQVJH RVR9IiA+PiAiJHtTVERFUlJfVEFSR0VUfSI7CiAgICAgICAgICAgIGlmICEgKCAke1BJUEVfQ01E fSAiJHt4fSIgPiAiJHtQQVRDSF9UQVJHRVR9IiApID4+ICIke1NUREVSUl9UQVJHRVR9IiAyPiYx OyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgZWVycm9yICJDb3Vs ZCBub3QgZXh0cmFjdCBwYXRjaCEiOwogICAgICAgICAgICAgICAgY291bnQ9NTsKICAgICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIFBB VENIX1RBUkdFVD0ke3h9OwogICAgICAgIGZpOwogICAgICAgIGxvY2FsIGFic19wYXRocz0kKGVn cmVwIC1uICdeWy0rXXszfSAvJyAiJHtQQVRDSF9UQVJHRVR9IiB8IGF3ayAnJDIgIT0gIi9kZXYv bnVsbCIgeyBwcmludCB9Jyk7CiAgICAgICAgaWYgW1sgLW4gJHthYnNfcGF0aHN9IF1dOyB0aGVu CiAgICAgICAgICAgIGNvdW50PTE7CiAgICAgICAgICAgIHByaW50ZiAiTk9URTogc2tpcHBpbmcg LXAwIGR1ZSB0byBhYnNvbHV0ZSBwYXRocyBpbiBwYXRjaDpcbiVzXG4iICIke2Fic19wYXRoc30i ID4+ICIke1NUREVSUl9UQVJHRVR9IjsKICAgICAgICBmaTsKICAgICAgICBsb2NhbCByZWxfcGF0 aHM9JChlZ3JlcCAtbiAnXlstK117M30gW14JXSpbLl1bLl0vJyAiJHtQQVRDSF9UQVJHRVR9Iik7 CiAgICAgICAgaWYgW1sgLW4gJHtyZWxfcGF0aHN9IF1dOyB0aGVuCiAgICAgICAgICAgIGVxYXdh cm4gIlFBIE5vdGljZTogWW91ciBwYXRjaCB1c2VzIHJlbGF0aXZlIHBhdGhzICcuLi8nLiI7CiAg ICAgICAgICAgIGVxYXdhcm4gIiBJbiB0aGUgZnV0dXJlIHRoaXMgd2lsbCBjYXVzZSBhIGZhaWx1 cmUuIjsKICAgICAgICAgICAgZXFhd2FybiAiJHtyZWxfcGF0aHN9IjsKICAgICAgICBmaTsKICAg ICAgICBsb2NhbCBwYXRjaF9jbWQ7CiAgICAgICAgd2hpbGUgW1sgJHtjb3VudH0gLWx0IDUgXV07 IGRvCiAgICAgICAgICAgIHBhdGNoX2NtZD0iJHtCQVNIX0FMSUFTRVNbcGF0Y2hdOi1wYXRjaH0g LXAke2NvdW50fSAke0VQQVRDSF9PUFRTfSI7CiAgICAgICAgICAgICggX2VwYXRjaF9kcmF3X2xp bmUgIioqKioqICR7cGF0Y2huYW1lfSAqKioqKiI7CiAgICAgICAgICAgIGVjaG87CiAgICAgICAg ICAgIGVjaG8gIlBBVENIIENPTU1BTkQ6ICAke3BhdGNoX2NtZH0gPCAnJHtQQVRDSF9UQVJHRVR9 JyI7CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19saW5lICIqKioq KiAke3BhdGNobmFtZX0gKioqKioiOwogICAgICAgICAgICAke3BhdGNoX2NtZH0gLS1kcnktcnVu IC1mIDwgIiR7UEFUQ0hfVEFSR0VUfSIgMj4mMTsKICAgICAgICAgICAgcmV0PSQ/OwogICAgICAg ICAgICBlY2hvOwogICAgICAgICAgICBlY2hvICJwYXRjaCBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0 YXR1cyAke3JldH0iOwogICAgICAgICAgICBleGl0ICR7cmV0fSApID4+ICIke1NUREVSUl9UQVJH RVR9IjsKICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICAgICAgICAgICAgICAo IF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiOwogICAgICAgICAg ICAgICAgZWNobzsKICAgICAgICAgICAgICAgIGVjaG8gIkFDVFVBTExZIEFQUExZSU5HICR7cGF0 Y2huYW1lfSAuLi4iOwogICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAgIF9lcGF0 Y2hfZHJhd19saW5lICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiOwogICAgICAgICAgICAgICAg JHtwYXRjaF9jbWR9IDwgIiR7UEFUQ0hfVEFSR0VUfSIgMj4mMTsKICAgICAgICAgICAgICAgIHJl dD0kPzsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBlY2hvICJwYXRjaCBw cm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAke3JldH0iOwogICAgICAgICAgICAgICAgZXhpdCAk e3JldH0gKSA+PiAiJHtTVERFUlJfVEFSR0VUfSI7CiAgICAgICAgICAgICAgICBpZiBbICQ/IC1u ZSAwIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgICAg IGVlcnJvciAiQSBkcnktcnVuIG9mIHBhdGNoIGNvbW1hbmQgc3VjY2VlZGVkLCBidXQgYWN0dWFs bHkiOwogICAgICAgICAgICAgICAgICAgIGVlcnJvciAiYXBwbHlpbmcgdGhlIHBhdGNoIGZhaWxl ZCEiOwogICAgICAgICAgICAgICAgICAgIGNvdW50PTU7CiAgICAgICAgICAgICAgICBmaTsKICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgOiAkKCggY291 bnQrKyApKTsKICAgICAgICBkb25lOwogICAgICAgIGlmIFtbIC1uICR7UElQRV9DTUR9IF1dOyB0 aGVuCiAgICAgICAgICAgIHJtIC1mICIke1BBVENIX1RBUkdFVH0iOwogICAgICAgIGZpOwogICAg ICAgIGlmIFtbICR7Y291bnR9IC1nZSA1IF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG87CiAgICAg ICAgICAgIGVlcnJvciAiRmFpbGVkIFBhdGNoOiAke3BhdGNobmFtZX0gISI7CiAgICAgICAgICAg IGVlcnJvciAiICggJHtQQVRDSF9UQVJHRVR9ICkiOwogICAgICAgICAgICBlZXJyb3I7CiAgICAg ICAgICAgIGVlcnJvciAiSW5jbHVkZSBpbiB5b3VyIGJ1Z3JlcG9ydCB0aGUgY29udGVudHMgb2Y6 IjsKICAgICAgICAgICAgZWVycm9yOwogICAgICAgICAgICBlZXJyb3IgIiAgJHtTVERFUlJfVEFS R0VUfSI7CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGRpZSAiRmFpbGVkIFBhdGNoOiAk e3BhdGNobmFtZX0hIjsKICAgICAgICBmaTsKICAgICAgICBybSAtZiAiJHtTVERFUlJfVEFSR0VU fSI7CiAgICAgICAgY2F0ID4+ICIke1R9L2VwYXRjaC5sb2ciICA8PC1FT0YKUEFUQ0g6ICR7eH0K Q01EOiAke3BhdGNoX2NtZH0KUFdEOiAke1BXRH0KCkVPRgoKICAgICAgICBlZW5kIDA7CiAgICBk b25lOwogICAgW1sgJHtTSU5HTEVfUEFUQ0h9ID09ICJubyIgXV0gJiYgZWluZm8gIkRvbmUgd2l0 aCBwYXRjaGluZyI7CiAgICA6Cn0KZXBhdGNoX3VzZXIgKCkgCnsgCiAgICBbWyAkIyAtbmUgMCBd XSAmJiBkaWUgImVwYXRjaF91c2VyIHRha2VzIG5vIG9wdGlvbnMiOwogICAgbG9jYWwgYXBwbGll ZD0iJHtUfS9lcGF0Y2hfdXNlci5sb2ciOwogICAgW1sgLWUgJHthcHBsaWVkfSBdXSAmJiByZXR1 cm4gMjsKICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0UgY2hlY2sgYmFzZT0ke1BPUlRBR0VfQ09ORklH Uk9PVCUvfS9ldGMvcG9ydGFnZS9wYXRjaGVzOwogICAgZm9yIGNoZWNrIGluICR7Q0FURUdPUll9 L3ske1B9LSR7UFJ9LCR7UH0sJHtQTn19OwogICAgZG8KICAgICAgICBFUEFUQ0hfU09VUkNFPSR7 YmFzZX0vJHtDVEFSR0VUfS8ke2NoZWNrfTsKICAgICAgICBbWyAtciAke0VQQVRDSF9TT1VSQ0V9 IF1dIHx8IEVQQVRDSF9TT1VSQ0U9JHtiYXNlfS8ke0NIT1NUfS8ke2NoZWNrfTsKICAgICAgICBb WyAtciAke0VQQVRDSF9TT1VSQ0V9IF1dIHx8IEVQQVRDSF9TT1VSQ0U9JHtiYXNlfS8ke2NoZWNr fTsKICAgICAgICBpZiBbWyAtZCAke0VQQVRDSF9TT1VSQ0V9IF1dOyB0aGVuCiAgICAgICAgICAg IEVQQVRDSF9TT1VSQ0U9JHtFUEFUQ0hfU09VUkNFfSBFUEFUQ0hfU1VGRklYPSJwYXRjaCIgRVBB VENIX0ZPUkNFPSJ5ZXMiIEVQQVRDSF9NVUxUSV9NU0c9IkFwcGx5aW5nIHVzZXIgcGF0Y2hlcyBm cm9tICR7RVBBVENIX1NPVVJDRX0gLi4uIiBlcGF0Y2g7CiAgICAgICAgICAgIGVjaG8gIiR7RVBB VENIX1NPVVJDRX0iID4gIiR7YXBwbGllZH0iOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAg ICBmaTsKICAgIGRvbmU7CiAgICBlY2hvICJub25lIiA+ICIke2FwcGxpZWR9IjsKICAgIHJldHVy biAxCn0KZXBhdXNlICgpIAp7IAogICAgZXdhcm4gIlFBIE5vdGljZTogZXBhdXNlIGlzIG5vdCBk ZWZpbmVkIGluIEVBUEk9JHtFQVBJfSwgcGxlYXNlIGZpbGUgYSBidWcgYXQgaHR0cDovL2J1Z3Mu Z2VudG9vLm9yZyIKfQplcHJlZml4aWZ5ICgpIAp7IAogICAgW1sgJCMgLWx0IDEgXV0gJiYgZGll ICJhdCBsZWFzdCBvbmUgYXJndW1lbnQgcmVxdWlyZWQiOwogICAgZWluZm8gIkFkanVzdGluZyB0 byBwcmVmaXggJHtFUFJFRklYOi0vfSI7CiAgICBsb2NhbCB4OwogICAgZm9yIHggaW4gIiRAIjsK ICAgIGRvCiAgICAgICAgaWYgW1sgLWUgJHt4fSBdXTsgdGhlbgogICAgICAgICAgICBlYmVnaW4g IiAgJHt4IyMqL30iOwogICAgICAgICAgICBzZWQgLWkgLWUgInN8QEdFTlRPT19QT1JUQUdFX0VQ UkVGSVhAfCR7RVBSRUZJWH18ZyIgIiR7eH0iOwogICAgICAgICAgICBlZW5kICQ/IHx8IGRpZSAi ZmFpbGVkIHRvIGVwcmVmaXhpZnkgJHt4fSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBkaWUg IiR7eH0gZG9lcyBub3QgZXhpc3QiOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIHJldHVybiAw Cn0KZXB1bnRfY3h4ICgpIAp7IAogICAgbG9jYWwgZGlyPSQxOwogICAgW1sgLXogJHtkaXJ9IF1d ICYmIGRpcj0ke1N9OwogICAgZWJlZ2luICJSZW1vdmluZyB1c2VsZXNzIEMrKyBjaGVja3MiOwog ICAgbG9jYWwgZjsKICAgIGZpbmQgIiR7ZGlyfSIgLW5hbWUgY29uZmlndXJlIHwgd2hpbGUgcmVh ZCBmOyBkbwogICAgICAgIHBhdGNoIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIC1wMCAiJHtmfSIg IiR7UE9SVERJUn0vZWNsYXNzL0VMVC1wYXRjaGVzL25vY3h4L25vY3h4LnBhdGNoIiA+IC9kZXYv bnVsbDsKICAgIGRvbmU7CiAgICBlZW5kIDAKfQplc2V0aG9tZSAoKSAKeyAKICAgIF9hc3NlcnRf cGtnX2VidWlsZF9waGFzZSAke0ZVTkNOQU1FfTsKICAgIGxvY2FsIGV1c2VyPSQxOwogICAgc2hp ZnQ7CiAgICBpZiBbWyAteiAke2V1c2VyfSBdXTsgdGhlbgogICAgICAgIGVlcnJvciAiTm8gdXNl cm5hbWUgc3BlY2lmaWVkICEiOwogICAgICAgIGRpZSAiQ2Fubm90IGNhbGwgZXNldGhvbWUgd2l0 aG91dCBhIHVzZXJuYW1lIjsKICAgIGZpOwogICAgaWYgW1sgLXogJChlZ2V0ZW50IHBhc3N3ZCAi JHtldXNlcn0iKSBdXTsgdGhlbgogICAgICAgIGV3YXJuICJVc2VyIGRvZXMgbm90IGV4aXN0LCBj YW5ub3Qgc2V0IGhvbWUgZGlyIC0tIHNraXBwaW5nLiI7CiAgICAgICAgcmV0dXJuIDE7CiAgICBm aTsKICAgIGxvY2FsIGVob21lPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAteiAke2Vob21lfSBd XTsgdGhlbgogICAgICAgIGVlcnJvciAiTm8gaG9tZSBkaXJlY3Rvcnkgc3BlY2lmaWVkICEiOwog ICAgICAgIGRpZSAiQ2Fubm90IGNhbGwgZXNldGhvbWUgd2l0aG91dCBhIGhvbWUgZGlyZWN0b3J5 IG9yICctMSciOwogICAgZmk7CiAgICBpZiBbWyAke2Vob21lfSA9PSAiLTEiIF1dOyB0aGVuCiAg ICAgICAgZWhvbWU9Ii9kZXYvbnVsbCI7CiAgICBmaTsKICAgIGlmIFtbICQoZWdldGhvbWUgIiR7 ZXVzZXJ9IikgPT0gJHtlaG9tZX0gXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsKICAgIGZpOwog ICAgZWluZm8gIlVwZGF0aW5nIGhvbWUgZm9yIHVzZXIgJyR7ZXVzZXJ9JyAuLi4iOwogICAgZWlu Zm8gIiAtIEhvbWU6ICR7ZWhvbWV9IjsKICAgIGlmIFtbICEgLWUgJHtFUk9PVH0vJHtlaG9tZX0g XV07IHRoZW4KICAgICAgICBlaW5mbyAiIC0gQ3JlYXRpbmcgJHtlaG9tZX0gaW4gJHtFUk9PVH0i OwogICAgICAgIG1rZGlyIC1wICIke0VST09UfS8ke2Vob21lfSI7CiAgICAgICAgY2hvd24gIiR7 ZXVzZXJ9IiAiJHtFUk9PVH0vJHtlaG9tZX0iOwogICAgICAgIGNobW9kIDc1NSAiJHtFUk9PVH0v JHtlaG9tZX0iOwogICAgZmk7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotZGFyd2lu KikKICAgICAgICAgICAgZHNjbCAuIGNoYW5nZSAiL3VzZXJzLyR7ZXVzZXJ9IiBob21lICIke2Vo b21lfSIKICAgICAgICA7OwogICAgICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAg ICAgICAgIHB3IHVzZXJtb2QgIiR7ZXVzZXJ9IiAtZCAiJHtlaG9tZX0iICYmIHJldHVybiAwOwog ICAgICAgICAgICBbWyAkPyA9PSA4IF1dICYmIGVlcnJvciAiJHtldXNlcn0gaXMgaW4gdXNlLCBj YW5ub3QgdXBkYXRlIGhvbWUiOwogICAgICAgICAgICBlZXJyb3IgIlRoZXJlIHdhcyBhbiBlcnJv ciB3aGVuIGF0dGVtcHRpbmcgdG8gdXBkYXRlIHRoZSBob21lIGRpcmVjdG9yeSBmb3IgJHtldXNl cn0iOwogICAgICAgICAgICBlZXJyb3IgIlBsZWFzZSB1cGRhdGUgaXQgbWFudWFsbHkgb24geW91 ciBzeXN0ZW06IjsKICAgICAgICAgICAgZWVycm9yICJcdCBwdyB1c2VybW9kIFwiJHtldXNlcn1c IiAtZCBcIiR7ZWhvbWV9XCIiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICB1c2Vy bW9kIC1kICIke2Vob21lfSIgIiR7ZXVzZXJ9IiAmJiByZXR1cm4gMDsKICAgICAgICAgICAgW1sg JD8gPT0gOCBdXSAmJiBlZXJyb3IgIiR7ZXVzZXJ9IGlzIGluIHVzZSwgY2Fubm90IHVwZGF0ZSBo b21lIjsKICAgICAgICAgICAgZWVycm9yICJUaGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBhdHRlbXB0 aW5nIHRvIHVwZGF0ZSB0aGUgaG9tZSBkaXJlY3RvcnkgZm9yICR7ZXVzZXJ9IjsKICAgICAgICAg ICAgZWVycm9yICJQbGVhc2UgdXBkYXRlIGl0IG1hbnVhbGx5IG9uIHlvdXIgc3lzdGVtIChhcyBy b290KToiOwogICAgICAgICAgICBlZXJyb3IgIlx0IHVzZXJtb2QgLWQgXCIke2Vob21lfVwiIFwi JHtldXNlcn1cIiIKICAgICAgICA7OwogICAgZXNhYwp9CmVzaG9wdHNfcG9wICgpIAp7IAogICAg bG9jYWwgczsKICAgIGVzdGFja19wb3AgZXNob3B0cyBzIHx8IGRpZSAiJHtGVU5DTkFNRX06IHVu YmFsYW5jZWQgcHVzaCI7CiAgICBpZiBbWyAke3N9ID09ICJzaG9wdCAtIiogXV07IHRoZW4KICAg ICAgICBldmFsICIke3N9IiB8fCBkaWUgIiR7RlVOQ05BTUV9OiBzYW5pdHk6IGludmFsaWQgc2hv cHQgb3B0aW9uczogJHtzfSI7CiAgICBlbHNlCiAgICAgICAgc2V0ICskLSB8fCBkaWUgIiR7RlVO Q05BTUV9OiBzYW5pdHk6IGludmFsaWQgc2hlbGwgc2V0dGluZ3M6ICQtIjsKICAgICAgICBzZXQg LSR7c30gfHwgZGllICIke0ZVTkNOQU1FfTogc2FuaXR5OiB1bmFibGUgdG8gcmVzdG9yZSBzYXZl ZCBzaGVsbCBzZXR0aW5nczogJHtzfSI7CiAgICBmaQp9CmVzaG9wdHNfcHVzaCAoKSAKeyAKICAg IGlmIFtbICQxID09IC1bc3VdIF1dOyB0aGVuCiAgICAgICAgZXN0YWNrX3B1c2ggZXNob3B0cyAi JChzaG9wdCAtcCkiOwogICAgICAgIFtbICQjIC1lcSAwIF1dICYmIHJldHVybiAwOwogICAgICAg IHNob3B0ICIkQCIgfHwgZGllICIke0ZVTkNOQU1FfTogYmFkIG9wdGlvbnMgdG8gc2hvcHQ6ICQq IjsKICAgIGVsc2UKICAgICAgICBlc3RhY2tfcHVzaCBlc2hvcHRzICQtOwogICAgICAgIFtbICQj IC1lcSAwIF1dICYmIHJldHVybiAwOwogICAgICAgIHNldCAiJEAiIHx8IGRpZSAiJHtGVU5DTkFN RX06IGJhZCBvcHRpb25zIHRvIHNldDogJCoiOwogICAgZmkKfQplc3RhY2tfcG9wICgpIAp7IAog ICAgW1sgJCMgLWVxIDAgfHwgJCMgLWd0IDIgXV0gJiYgZGllICJlc3RhY2tfcG9wOiBpbmNvcnJl Y3QgIyBvZiBhcmd1bWVudHMiOwogICAgbG9jYWwgX19lc3RhY2tfbmFtZT0iX19FU1RBQ0tfJDFf XyI7CiAgICBzaGlmdDsKICAgIGxvY2FsIF9fZXN0YWNrX3JldHZhcj0kMTsKICAgIHNoaWZ0Owog ICAgZXZhbCBsb2NhbCBfX2VzdGFja19pPVwkeyMke19fZXN0YWNrX25hbWV9XFtAXF19OwogICAg W1sgJCgoIC0tX19lc3RhY2tfaSApKSAtZXEgLTEgXV0gJiYgcmV0dXJuIDE7CiAgICBpZiBbWyAt biAke19fZXN0YWNrX3JldHZhcn0gXV07IHRoZW4KICAgICAgICBldmFsICR7X19lc3RhY2tfcmV0 dmFyfT1cIlwkeyR7X19lc3RhY2tfbmFtZX1cWyR7X19lc3RhY2tfaX1cXX1cIjsKICAgIGZpOwog ICAgZXZhbCB1bnNldCAke19fZXN0YWNrX25hbWV9XFske19fZXN0YWNrX2l9XF0KfQplc3RhY2tf cHVzaCAoKSAKeyAKICAgIFtbICQjIC1lcSAwIF1dICYmIGRpZSAiZXN0YWNrX3B1c2g6IGluY29y cmVjdCAjIG9mIGFyZ3VtZW50cyI7CiAgICBsb2NhbCBzdGFja19uYW1lPSJfX0VTVEFDS18kMV9f IjsKICAgIHNoaWZ0OwogICAgZXZhbCAke3N0YWNrX25hbWV9Kz1cKCBcIlwkQFwiIFwpCn0KZXN2 bl9jbGVhbiAoKSAKeyAKICAgIFtbIC16ICQqIF1dICYmIHNldCAtLSAuOwogICAgZmluZCAiJEAi IC10eXBlIGQgLW5hbWUgJy5zdm4nIC1wcnVuZSAtcHJpbnQwIHwgeGFyZ3MgLTAgcm0gLXJmCn0K ZXVtYXNrX3BvcCAoKSAKeyAKICAgIFtbICQjIC1lcSAwIF1dIHx8IGRpZSAiJHtGVU5DTkFNRX06 IHdlIHRha2Ugbm8gb3B0aW9ucyI7CiAgICBsb2NhbCBzOwogICAgZXN0YWNrX3BvcCBldW1hc2sg cyB8fCBkaWUgIiR7RlVOQ05BTUV9OiB1bmJhbGFuY2VkIHB1c2giOwogICAgdW1hc2sgJHtzfSB8 fCBkaWUgIiR7RlVOQ05BTUV9OiBzYW5pdHk6IGNvdWxkIG5vdCByZXN0b3JlIHVtYXNrOiAke3N9 Igp9CmV1bWFza19wdXNoICgpIAp7IAogICAgZXN0YWNrX3B1c2ggZXVtYXNrICIkKHVtYXNrKSI7 CiAgICB1bWFzayAiJEAiIHx8IGRpZSAiJHtGVU5DTkFNRX06IGJhZCBvcHRpb25zIHRvIHVtYXNr OiAkKiIKfQpmaWx0ZXItZmxhZ3MgKCkgCnsgCiAgICBfZmlsdGVyLWhhcmRlbmVkICIkQCI7CiAg ICBsb2NhbCB2OwogICAgZm9yIHYgaW4gJChhbGwtZmxhZy12YXJzKTsKICAgIGRvCiAgICAgICAg X2ZpbHRlci12YXIgJHt2fSAiJEAiOwogICAgZG9uZTsKICAgIHJldHVybiAwCn0KZmlsdGVyLWxk ZmxhZ3MgKCkgCnsgCiAgICBfZmlsdGVyLXZhciBMREZMQUdTICIkQCI7CiAgICByZXR1cm4gMAp9 CmZpbHRlci1sZnMtZmxhZ3MgKCkgCnsgCiAgICBbWyAkIyAtbmUgMCBdXSAmJiBkaWUgImZpbHRl ci1sZnMtZmxhZ3MgdGFrZXMgbm8gYXJndW1lbnRzIjsKICAgIGZpbHRlci1mbGFncyAtRF9GSUxF X09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09VUkNF IC1EX0xBUkdFX0ZJTEVTIC1EX0xBUkdFX0ZJTEVfQVBJCn0KZmlsdGVyLW1mcG1hdGggKCkgCnsg CiAgICBsb2NhbCBvcmlnX21mcG1hdGggbmV3X21hdGggcHJ1bmVfbWF0aDsKICAgIG9yaWdfbWZw bWF0aD0kKGdldC1mbGFnIC1tZnBtYXRoKTsKICAgIG5ld19tYXRoPSQoZ2V0LWZsYWcgbWZwbWF0 aCk7CiAgICBuZXdfbWF0aD0iICR7bmV3X21hdGgvLywvIH0gIjsKICAgIHBydW5lX21hdGg9IiI7 CiAgICBmb3IgcHJ1bmVfbWF0aCBpbiAiJEAiOwogICAgZG8KICAgICAgICBuZXdfbWF0aD0ke25l d19tYXRoLyAke3BydW5lX21hdGh9IC8gfTsKICAgIGRvbmU7CiAgICBuZXdfbWF0aD0kKGVjaG8g JHtuZXdfbWF0aH0pOwogICAgbmV3X21hdGg9JHtuZXdfbWF0aC8vIC8sfTsKICAgIGlmIFtbIC16 ICR7bmV3X21hdGh9IF1dOyB0aGVuCiAgICAgICAgZmlsdGVyLWZsYWdzICR7b3JpZ19tZnBtYXRo fTsKICAgIGVsc2UKICAgICAgICByZXBsYWNlLWZsYWdzICR7b3JpZ19tZnBtYXRofSAtbWZwbWF0 aD0ke25ld19tYXRofTsKICAgIGZpOwogICAgcmV0dXJuIDAKfQpnY2MtZnVsbHZlcnNpb24gKCkg CnsgCiAgICBfZ2NjX2Z1bGx2ZXJzaW9uICckMS4kMi4kMycgIiRAIgp9CmdjYy1tYWpvci12ZXJz aW9uICgpIAp7IAogICAgX2djY19mdWxsdmVyc2lvbiAnJDEnICIkQCIKfQpnY2MtbWljcm8tdmVy c2lvbiAoKSAKeyAKICAgIF9nY2NfZnVsbHZlcnNpb24gJyQzJyAiJEAiCn0KZ2NjLW1pbm9yLXZl cnNpb24gKCkgCnsgCiAgICBfZ2NjX2Z1bGx2ZXJzaW9uICckMicgIiRAIgp9CmdjYy1zcGVjcy1k aXJlY3RpdmUgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmUgc3ViZG5hbWUgc3ViZGlyZWN0aXZl OwogICAgZGlyZWN0aXZlPSIkKF9nY2Mtc3BlY3MtZGlyZWN0aXZlX3JhdyAkMSkiOwogICAgd2hp bGUgW1sgJHtkaXJlY3RpdmV9ID09IColXCgqXCkqIF1dOyBkbwogICAgICAgIHN1YmRuYW1lPSR7 ZGlyZWN0aXZlLyolXCh9OwogICAgICAgIHN1YmRuYW1lPSR7c3ViZG5hbWUvXCkqfTsKICAgICAg ICBzdWJkaXJlY3RpdmU9IiQoX2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICR7c3ViZG5hbWV9KSI7 CiAgICAgICAgZGlyZWN0aXZlPSIke2RpcmVjdGl2ZS8vXCUoJHtzdWJkbmFtZX0pLyR7c3ViZGly ZWN0aXZlfX0iOwogICAgZG9uZTsKICAgIGVjaG8gIiR7ZGlyZWN0aXZlfSI7CiAgICByZXR1cm4g MAp9CmdjYy1zcGVjcy1ub3N0cmljdCAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRp cmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgY2MxKTsKICAgIHJldHVybiAkKFtbICIke2Rp cmVjdGl2ZS9ceyFmc3RyaWN0LW92ZXJmbG93On0iICE9ICIke2RpcmVjdGl2ZX0iIF1dKQp9Cmdj Yy1zcGVjcy1ub3cgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChn Y2Mtc3BlY3MtZGlyZWN0aXZlIGxpbmtfY29tbWFuZCk7CiAgICByZXR1cm4gJChbWyAiJHtkaXJl Y3RpdmUvXHshbm9ub3c6fSIgIT0gIiR7ZGlyZWN0aXZlfSIgXV0pCn0KZ2NjLXNwZWNzLXBpZSAo KSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJl Y3RpdmUgY2MxKTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2ZS9ceyFub3BpZTp9IiAhPSAi JHtkaXJlY3RpdmV9IiBdXSkKfQpnY2Mtc3BlY3MtcmVscm8gKCkgCnsgCiAgICBsb2NhbCBkaXJl Y3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGxpbmtfY29tbWFuZCk7 CiAgICByZXR1cm4gJChbWyAiJHtkaXJlY3RpdmUvXHshbm9yZWxybzp9IiAhPSAiJHtkaXJlY3Rp dmV9IiBdXSkKfQpnY2Mtc3BlY3Mtc3NwICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAg ZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgIiR7 ZGlyZWN0aXZlL1x7IWZuby1zdGFjay1wcm90ZWN0b3I6fSIgIT0gIiR7ZGlyZWN0aXZlfSIgXV0p Cn0KZ2NjLXNwZWNzLXNzcC10by1hbGwgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBk aXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGNjMSk7CiAgICByZXR1cm4gJChbWyAiJHtk aXJlY3RpdmUvXHshZm5vLXN0YWNrLXByb3RlY3Rvci1hbGw6fSIgIT0gIiR7ZGlyZWN0aXZlfSIg XV0pCn0KZ2NjLXZlcnNpb24gKCkgCnsgCiAgICBfZ2NjX2Z1bGx2ZXJzaW9uICckMS4kMicgIiRA Igp9Cmdlbl91c3JfbGRzY3JpcHQgKCkgCnsgCiAgICBsb2NhbCBsaWIgbGliZGlyPSQoZ2V0X2xp YmRpcikgb3V0cHV0X2Zvcm1hdD0iIiBhdXRvPWZhbHNlIHN1ZmZpeD0kKGdldF9saWJuYW1lKTsK ICAgIFtbIC16ICR7RUQrc2V0fSBdXSAmJiBsb2NhbCBFRD0ke0QlL30ke0VQUkVGSVh9LzsKICAg IHRjLWlzLXN0YXRpYy1vbmx5ICYmIHJldHVybjsKICAgIFtbIC1uICR7UFJFRklYX0RJU0FCTEVf R0VOX1VTUl9MRFNDUklQVH0gXV0gJiYgcmV0dXJuOwogICAgZG9kaXIgL3Vzci8ke2xpYmRpcn07 CiAgICBpZiBbWyAkMSA9PSAiLWEiIF1dOyB0aGVuCiAgICAgICAgYXV0bz10cnVlOwogICAgICAg IHNoaWZ0OwogICAgICAgIGRvZGlyIC8ke2xpYmRpcn07CiAgICBmaTsKICAgIG91dHB1dF9mb3Jt YXQ9JCgkKHRjLWdldENDKSAke0NGTEFHU30gJHtMREZMQUdTfSAtV2wsLS12ZXJib3NlIDI+JjEg fCBzZWQgLW4gJ3MvXk9VVFBVVF9GT1JNQVQoIlwoW14iXSpcKSIsLiovXDEvcCcpOwogICAgW1sg LW4gJHtvdXRwdXRfZm9ybWF0fSBdXSAmJiBvdXRwdXRfZm9ybWF0PSJPVVRQVVRfRk9STUFUICgg JHtvdXRwdXRfZm9ybWF0fSApIjsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAg bG9jYWwgdGxpYjsKICAgICAgICBpZiAke2F1dG99OyB0aGVuCiAgICAgICAgICAgIGxpYj0ibGli JHtsaWJ9JHtzdWZmaXh9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIFtbIC1yICR7RUR9LyR7 bGliZGlyfS8ke2xpYn0gXV0gfHwgY29udGludWU7CiAgICAgICAgZmk7CiAgICAgICAgY2FzZSAk e0NUQVJHRVQ6LSR7Q0hPU1R9fSBpbiAKICAgICAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAg ICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHRsaWI9JChzY2FubWFj aG8gLXFGJyVTI0YnICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0pOwogICAgICAgICAgICAg ICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHRsaWI9JChzY2FubWFjaG8gLXFGJyVTI0YnICIk e0VEfSIvJHtsaWJkaXJ9LyR7bGlifSk7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAg ICAgIGlmIFtbIC16ICR7dGxpYn0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBld2FybiAi Z2VuX3Vzcl9sZHNjcmlwdDogdW5hYmxlIHRvIHJlYWQgaW5zdGFsbF9uYW1lIGZyb20gJHtsaWJ9 IjsKICAgICAgICAgICAgICAgICAgICB0bGliPSR7bGlifTsKICAgICAgICAgICAgICAgIGZpOwog ICAgICAgICAgICAgICAgdGxpYj0ke3RsaWIjIyovfTsKICAgICAgICAgICAgICAgIGlmICR7YXV0 b307IHRoZW4KICAgICAgICAgICAgICAgICAgICBtdiAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHts aWIlJHtzdWZmaXh9fS4qJHtzdWZmaXgjLn0gIiR7RUR9Ii8ke2xpYmRpcn0vIHx8IGRpZTsKICAg ICAgICAgICAgICAgICAgICBpZiBbWyAke3RsaWJ9ICE9ICR7bGliJSR7c3VmZml4fX0uKiR7c3Vm Zml4Iy59IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7 bGliZGlyfS8ke3RsaWIlJHtzdWZmaXh9fS4qJHtzdWZmaXgjLn0gIiR7RUR9Ii8ke2xpYmRpcn0v IHx8IGRpZTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBbWyAk e3RsaWJ9ICE9ICR7bGlifSBdXSAmJiBybSAtZiAiJHtFRH0iLyR7bGliZGlyfS8ke2xpYn07CiAg ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGlmIFtbICEgLXcgIiR7RUR9LyR7bGli ZGlyfS8ke3RsaWJ9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGNobW9kIHUrdyAiJHtF RH0ke2xpYmRpcn0vJHt0bGlifSI7CiAgICAgICAgICAgICAgICAgICAgbG9jYWwgbm93cml0ZT15 ZXM7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGluc3RhbGxfbmFtZV90b29s IC1pZCAiJHtFUFJFRklYfSIvJHtsaWJkaXJ9LyR7dGxpYn0gIiR7RUR9Ii8ke2xpYmRpcn0vJHt0 bGlifSB8fCBkaWUgImluc3RhbGxfbmFtZV90b29sIGZhaWxlZCI7CiAgICAgICAgICAgICAgICBb WyAtbiAke25vd3JpdGV9IF1dICYmIGNobW9kIHUtdyAiJHtFRH0ke2xpYmRpcn0vJHt0bGlifSI7 CiAgICAgICAgICAgICAgICBwdXNoZCAiJHtFRH0vdXNyLyR7bGliZGlyfSIgPiAvZGV2L251bGw7 CiAgICAgICAgICAgICAgICBsbiAtc25mICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIgIiR7bGli fSI7CiAgICAgICAgICAgICAgICBwb3BkID4gL2Rldi9udWxsCiAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICotYWl4KiB8ICotaXJpeCogfCAqNjQqLWhwdXgqIHwgKi1pbnRlcml4KiB8ICotd2lu bnQqKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICAgICAgICAg IG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIke0VEfSIvJHtsaWJkaXJ9LyB8fCBk aWU7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0kKHJlYWRsaW5rICIke0VEfSIvJHtsaWJkaXJ9 LyR7bGlifSk7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0ke3RsaWIjIyovfTsKICAgICAgICAg ICAgICAgICAgICBpZiBbWyAteiAke3RsaWJ9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg ICAgIHRsaWI9JHtsaWJ9OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgcm0gLWYgIiR7RUR9Ii8ke2xpYmRpcn0vJHtsaWJ9OwogICAgICAgICAgICAgICAg ICAgIGZpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHRsaWI9JHts aWJ9OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBwdXNoZCAiJHtFRH0vdXNy LyR7bGliZGlyfSIgPiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICBsbiAtc25mICIuLi8uLi8k e2xpYmRpcn0vJHt0bGlifSIgIiR7bGlifSI7CiAgICAgICAgICAgICAgICBwb3BkID4gL2Rldi9u dWxsCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGhwcGEqLWhwdXgqKQogICAgICAgICAgICAg ICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHRsaWI9JChjaGF0ciAiJHtF RH0iL3Vzci8ke2xpYmRpcn0vJHtsaWJ9IHwgc2VkIC1uICcvaW50ZXJuYWwgbmFtZTove247cy9e ICovLztwO3F9Jyk7CiAgICAgICAgICAgICAgICAgICAgW1sgLXogJHt0bGlifSBdXSAmJiB0bGli PSR7bGlifTsKICAgICAgICAgICAgICAgICAgICB0bGliPSR7dGxpYiMjKi99OwogICAgICAgICAg ICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIke0VEfSIvJHtsaWJk aXJ9LyB8fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHt0bGlifSAhPSAke2xpYn0q IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGly fS8ke3RsaWJ9KiAiJHtFRH0iLyR7bGliZGlyfS8gfHwgZGllOwogICAgICAgICAgICAgICAgICAg IGZpOwogICAgICAgICAgICAgICAgICAgIFtbICR7dGxpYn0gIT0gJHtsaWJ9IF1dICYmIHJtIC1m ICIke0VEfSIvJHtsaWJkaXJ9LyR7bGlifTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgICAgICB0bGliPSQoY2hhdHIgIiR7RUR9Ii8ke2xpYmRpcn0vJHtsaWJ9IHwgc2VkIC1u ICcvaW50ZXJuYWwgbmFtZTove247cy9eICovLztwO3F9Jyk7CiAgICAgICAgICAgICAgICAgICAg W1sgLXogJHt0bGlifSBdXSAmJiB0bGliPSR7bGlifTsKICAgICAgICAgICAgICAgICAgICB0bGli PSR7dGxpYiMjKi99OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBwdXNoZCAi JHtFRH0iL3Vzci8ke2xpYmRpcn0gPiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICBsbiAtc25m ICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIgIiR7bGlifSI7CiAgICAgICAgICAgICAgICBbWyAk e3RsaWJ9ICE9ICR7bGlifSBdXSAmJiBsbiAtc25mICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIg IiR7dGxpYn0iOwogICAgICAgICAgICAgICAgcG9wZCA+IC9kZXYvbnVsbAogICAgICAgICAgICA7 OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAg ICAgICAgICAgICAgIHRsaWI9JChzY2FuZWxmIC1xRiclUyNGJyAiJHtFRH0iL3Vzci8ke2xpYmRp cn0vJHtsaWJ9KTsKICAgICAgICAgICAgICAgICAgICBpZiBbWyAteiAke3RsaWJ9IF1dOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgIGV3YXJuICJnZW5fdXNyX2xkc2NyaXB0OiB1bmFibGUg dG8gcmVhZCBTT05BTUUgZnJvbSAke2xpYn0iOwogICAgICAgICAgICAgICAgICAgICAgICB0bGli PSR7bGlifTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBtdiAi JHtFRH0iL3Vzci8ke2xpYmRpcn0vJHtsaWJ9KiAiJHtFRH0iLyR7bGliZGlyfS8gfHwgZGllOwog ICAgICAgICAgICAgICAgICAgIGlmIFtbICR7dGxpYn0gIT0gJHtsaWJ9KiBdXTsgdGhlbgogICAg ICAgICAgICAgICAgICAgICAgICBtdiAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHt0bGlifSogIiR7 RUR9Ii8ke2xpYmRpcn0vIHx8IGRpZTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAg ICAgICAgICAgICBbWyAke3RsaWJ9ICE9ICR7bGlifSBdXSAmJiBybSAtZiAiJHtFRH0iLyR7bGli ZGlyfS8ke2xpYn07CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgdGxp Yj0ke2xpYn07CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGNhdCA+ICIke0VE fS91c3IvJHtsaWJkaXJ9LyR7bGlifSIgIDw8LUVORF9MRFNDUklQVAovKiBHTlUgbGQgc2NyaXB0 CiAgIFNpbmNlIEdlbnRvbyBoYXMgY3JpdGljYWwgZHluYW1pYyBsaWJyYXJpZXMgaW4gL2xpYiwg YW5kIHRoZSBzdGF0aWMgdmVyc2lvbnMKICAgaW4gL3Vzci9saWIsIHdlIG5lZWQgdG8gaGF2ZSBh ICJmYWtlIiBkeW5hbWljIGxpYiBpbiAvdXNyL2xpYiwgb3RoZXJ3aXNlIHdlCiAgIHJ1biBpbnRv IGxpbmtpbmcgcHJvYmxlbXMuICBUaGlzICJmYWtlIiBkeW5hbWljIGxpYiBpcyBhIGxpbmtlciBz Y3JpcHQgdGhhdAogICByZWRpcmVjdHMgdGhlIGxpbmtlciB0byB0aGUgcmVhbCBsaWIuICBBbmQg eWVzLCB0aGlzIHdvcmtzIGluIHRoZSBjcm9zcy0KICAgY29tcGlsaW5nIHNjZW5hcmlvIGFzIHRo ZSBzeXNyb290LWVkIGxpbmtlciB3aWxsIHByZXBlbmQgdGhlIHJlYWwgcGF0aC4KCiAgIFNlZSBi dWcgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy80NDExIGZvciBtb3JlIGluZm8uCiAqLwoke291dHB1 dF9mb3JtYXR9CkdST1VQICggJHtFUFJFRklYfS8ke2xpYmRpcn0vJHt0bGlifSApCkVORF9MRFND UklQVAoKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjCiAgICAgICAgZnBlcm1zIGEreCAiL3Vz ci8ke2xpYmRpcn0vJHtsaWJ9IiB8fCBkaWUgImNvdWxkIG5vdCBjaGFuZ2UgcGVybXMgb24gJHts aWJ9IjsKICAgIGRvbmUKfQpnZXQtZmxhZyAoKSAKeyAKICAgIGxvY2FsIGYgdmFyIGZpbmRmbGFn PSIkMSI7CiAgICBmb3IgdmFyIGluICQoYWxsLWZsYWctdmFycyk7CiAgICBkbwogICAgICAgIGZv ciBmIGluICR7IXZhcn07CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgWyAiJHtmLyR7ZmluZGZs YWd9fSIgIT0gIiR7Zn0iIF07IHRoZW4KICAgICAgICAgICAgICAgIHByaW50ZiAiJXNcbiIgIiR7 Zi8tJHtmaW5kZmxhZ309fSI7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAg Zmk7CiAgICAgICAgZG9uZTsKICAgIGRvbmU7CiAgICByZXR1cm4gMQp9CmdldF9hYmlfQ0ZMQUdT ICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQ0ZMQUdTICIkQCIKfQpnZXRfYWJpX0NIT1NUICgpIAp7 IAogICAgZ2V0X2FiaV92YXIgQ0hPU1QgIiRAIgp9CmdldF9hYmlfQ1RBUkdFVCAoKSAKeyAKICAg IGdldF9hYmlfdmFyIENUQVJHRVQgIiRAIgp9CmdldF9hYmlfRkFLRV9UQVJHRVRTICgpIAp7IAog ICAgZ2V0X2FiaV92YXIgRkFLRV9UQVJHRVRTICIkQCIKfQpnZXRfYWJpX0xERkxBR1MgKCkgCnsg CiAgICBnZXRfYWJpX3ZhciBMREZMQUdTICIkQCIKfQpnZXRfYWJpX0xJQkRJUiAoKSAKeyAKICAg IGdldF9hYmlfdmFyIExJQkRJUiAiJEAiCn0KZ2V0X2FiaV92YXIgKCkgCnsgCiAgICBsb2NhbCBm bGFnPSQxOwogICAgbG9jYWwgYWJpPSR7MjotJHtBQkk6LSR7REVGQVVMVF9BQkk6LWRlZmF1bHR9 fX07CiAgICBsb2NhbCB2YXI9IiR7ZmxhZ31fJHthYml9IjsKICAgIGVjaG8gJHshdmFyfQp9Cmdl dF9hbGxfYWJpcyAoKSAKeyAKICAgIGxvY2FsIG9yZGVyPSIiIG12YXIgZHZhcjsKICAgIG12YXI9 Ik1VTFRJTElCX0FCSVMiOwogICAgZHZhcj0iREVGQVVMVF9BQkkiOwogICAgaWYgW1sgLW4gJDEg XV07IHRoZW4KICAgICAgICBtdmFyPSIkMV8ke212YXJ9IjsKICAgICAgICBkdmFyPSIkMV8ke2R2 YXJ9IjsKICAgIGZpOwogICAgaWYgW1sgLXogJHshbXZhcn0gXV07IHRoZW4KICAgICAgICBlY2hv ICJkZWZhdWx0IjsKICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgZm9yIHggaW4gJHshbXZh cn07CiAgICBkbwogICAgICAgIGlmIFtbICR7eH0gIT0gJHshZHZhcn0gXV07IHRoZW4KICAgICAg ICAgICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0ke3h9IjsKICAgICAgICBmaTsKICAgIGRv bmU7CiAgICBvcmRlcj0iJHtvcmRlcjorJHtvcmRlcn0gfSR7IWR2YXJ9IjsKICAgIGVjaG8gJHtv cmRlcn07CiAgICByZXR1cm4gMAp9CmdldF9hbGxfbGliZGlycyAoKSAKeyAKICAgIGxvY2FsIGxp YmRpcnM7CiAgICBsb2NhbCBhYmk7CiAgICBsb2NhbCBkaXI7CiAgICBmb3IgYWJpIGluICR7TVVM VElMSUJfQUJJU307CiAgICBkbwogICAgICAgIGxpYmRpcnMrPSIgJChnZXRfYWJpX0xJQkRJUiAk e2FiaX0pIjsKICAgIGRvbmU7CiAgICBbWyAiICR7bGliZGlyc30gIiAhPSAqIiBsaWIgIiogXV0g JiYgbGliZGlycys9IiBsaWIiOwogICAgZWNobyAiJHtsaWJkaXJzfSIKfQpnZXRfaW5zdGFsbF9h YmlzICgpIAp7IAogICAgbG9jYWwgb3JkZXI9IiI7CiAgICBpZiBbWyAteiAke01VTFRJTElCX0FC SVN9IF1dOyB0aGVuCiAgICAgICAgZWNobyAiZGVmYXVsdCI7CiAgICAgICAgcmV0dXJuIDA7CiAg ICBmaTsKICAgIGlmIFtbICR7RU1VTFRJTElCX1BLR30gPT0gInRydWUiIF1dOyB0aGVuCiAgICAg ICAgZm9yIHggaW4gJHtNVUxUSUxJQl9BQklTfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBb WyAke3h9ICE9ICIke0RFRkFVTFRfQUJJfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGhhcyAk e3h9ICR7QUJJX0RFTll9IHx8IG9yZGVyPSIke29yZGVyfSAke3h9IjsKICAgICAgICAgICAgZmk7 CiAgICAgICAgZG9uZTsKICAgICAgICBoYXMgJHtERUZBVUxUX0FCSX0gJHtBQklfREVOWX0gfHwg b3JkZXI9IiR7b3JkZXJ9ICR7REVGQVVMVF9BQkl9IjsKICAgICAgICBpZiBbWyAtbiAke0FCSV9B TExPV30gXV07IHRoZW4KICAgICAgICAgICAgbG9jYWwgb3JkZXJhPSIiOwogICAgICAgICAgICBm b3IgeCBpbiAke29yZGVyfTsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgIGlmIGhhcyAk e3h9ICR7QUJJX0FMTE9XfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9yZGVyYT0iJHtvcmRl cmF9ICR7eH0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAg ICAgIG9yZGVyPSR7b3JkZXJhfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBvcmRlcj0k e0RFRkFVTFRfQUJJfTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtvcmRlcn0gXV07IHRoZW4KICAg ICAgICBkaWUgIlRoZSBBQkkgbGlzdCBpcyBlbXB0eS4gIEFyZSB5b3UgdXNpbmcgYSBwcm9wZXIg bXVsdGlsaWIgcHJvZmlsZT8gIFBlcmhhcHMgeW91ciBVU0UgZmxhZ3Mgb3IgTVVMVElMSUJfQUJJ UyBhcmUgdG9vIHJlc3RyaWN0aXZlIGZvciB0aGlzIHBhY2thZ2UuIjsKICAgIGZpOwogICAgZWNo byAke29yZGVyfTsKICAgIHJldHVybiAwCn0KZ2V0X2xpYmRpciAoKSAKeyAKICAgIGxvY2FsIENP TkZfTElCRElSOwogICAgaWYgWyAtbiAiJHtDT05GX0xJQkRJUl9PVkVSUklERX0iIF07IHRoZW4K ICAgICAgICBlY2hvICR7Q09ORl9MSUJESVJfT1ZFUlJJREV9OwogICAgZWxzZQogICAgICAgIGdl dF9hYmlfTElCRElSOwogICAgZmkKfQpnZXRfbGlibmFtZSAoKSAKeyAKICAgIGxvY2FsIGxpYm5h bWU7CiAgICBsb2NhbCB2ZXI9JDE7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotY3ln d2luIHwgbWluZ3cqIHwgKi1taW5ndyopCiAgICAgICAgICAgIGxpYm5hbWU9ImRsbCIKICAgICAg ICA7OwogICAgICAgICotZGFyd2luKikKICAgICAgICAgICAgbGlibmFtZT0iZHlsaWIiCiAgICAg ICAgOzsKICAgICAgICAqLW1pbnQqKQogICAgICAgICAgICBsaWJuYW1lPSJpcnJlbGV2YW50Igog ICAgICAgIDs7CiAgICAgICAgaHBwYSotaHB1eCopCiAgICAgICAgICAgIGxpYm5hbWU9InNsIgog ICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgbGlibmFtZT0ic28iCiAgICAgICAgOzsK ICAgIGVzYWM7CiAgICBpZiBbWyAteiAkKiBdXTsgdGhlbgogICAgICAgIGVjaG8gIi4ke2xpYm5h bWV9IjsKICAgIGVsc2UKICAgICAgICBmb3IgdmVyIGluICIkQCI7CiAgICAgICAgZG8KICAgICAg ICAgICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAgICAgICAgICotZGFyd2luKikKICAgICAg ICAgICAgICAgICAgICBlY2hvICIuJHt2ZXJ9LiR7bGlibmFtZX0iCiAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICAgICAgKi1taW50KikKICAgICAgICAgICAgICAgICAgICBlY2hvICIuJHts aWJuYW1lfSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAqKQogICAgICAgICAg ICAgICAgICAgIGVjaG8gIi4ke2xpYm5hbWV9LiR7dmVyfSIKICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgIGVzYWM7CiAgICAgICAgZG9uZTsKICAgIGZpCn0KZ2V0X21vZG5hbWUgKCkgCnsg CiAgICBsb2NhbCBtb2RuYW1lOwogICAgbG9jYWwgdmVyPSQxOwogICAgY2FzZSAke0NIT1NUfSBp biAKICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgIG1vZG5hbWU9ImJ1bmRsZSIKICAgICAg ICA7OwogICAgICAgICopCiAgICAgICAgICAgIG1vZG5hbWU9InNvIgogICAgICAgIDs7CiAgICBl c2FjOwogICAgZWNobyAiLiR7bW9kbmFtZX0iCn0KaGFzX20zMiAoKSAKeyAKICAgIGRpZSAiJHtG VU5DTkFNRX06IGRvbid0IHVzZSB0aGlzIGFueW1vcmUiCn0KaGFzX202NCAoKSAKeyAKICAgIGVx YXdhcm4gIiR7RlVOQ05BTUV9OiBkb24ndCB1c2UgdGhpcyBhbnltb3JlIjsKICAgIGxvY2FsIHRl bXA9IiQoZW1rdGVtcCkiOwogICAgZWNobyAiaW50IG1haW4oKSB7IHJldHVybigwKTsgfSIgPiAi JHt0ZW1wfSIuYzsKICAgIE1ZX0NDPSQodGMtZ2V0Q0MpOwogICAgJHtNWV9DQy8gLiovfSAtbTY0 IC1vICIkKGVta3RlbXApIiAiJHt0ZW1wfSIuYyA+IC9kZXYvbnVsbCAyPiYxOwogICAgbG9jYWwg cmV0PSQ/OwogICAgcm0gLWYgIiR7dGVtcH0iLmM7CiAgICBbWyAke3JldH0gIT0gMSBdXSAmJiBy ZXR1cm4gMDsKICAgIHJldHVybiAxCn0KaGFzX211bHRpbGliX3Byb2ZpbGUgKCkgCnsgCiAgICBb IC1uICIke01VTFRJTElCX0FCSVN9IiAtYSAiJHtNVUxUSUxJQl9BQklTfSIgIT0gIiR7TVVMVElM SUJfQUJJUy8gL30iIF0KfQppbl9pdXNlICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24g JHtGVU5DTkFNRX0gIiR7QH0iOwogICAgW1sgJHsjfSAtZXEgMSBdXSB8fCBkaWUgIkludmFsaWQg YXJncyB0byAke0ZVTkNOQU1FfSgpIjsKICAgIGxvY2FsIGZsYWc9JHsxfTsKICAgIGxvY2FsIGxp dXNlPSgke0lVU0V9KTsKICAgIGhhcyAiJHtmbGFnfSIgIiR7bGl1c2VbQF0jWystXX0iCn0KaXMt ZmxhZyAoKSAKeyAKICAgIGlzLWZsYWdxICIkQCIgJiYgZWNobyB0cnVlCn0KaXMtZmxhZ3EgKCkg CnsgCiAgICBbWyAtbiAkMiBdXSAmJiBkaWUgIlVzYWdlOiBpcy1mbGFnIDxmbGFnPiI7CiAgICBs b2NhbCB2YXI7CiAgICBmb3IgdmFyIGluICQoYWxsLWZsYWctdmFycyk7CiAgICBkbwogICAgICAg IF9pc19mbGFncSAke3Zhcn0gIiQxIiAmJiByZXR1cm4gMDsKICAgIGRvbmU7CiAgICByZXR1cm4g MQp9CmlzLWxkZmxhZyAoKSAKeyAKICAgIGlzLWxkZmxhZ3EgIiRAIiAmJiBlY2hvIHRydWUKfQpp cy1sZGZsYWdxICgpIAp7IAogICAgW1sgLW4gJDIgXV0gJiYgZGllICJVc2FnZTogaXMtbGRmbGFn IDxmbGFnPiI7CiAgICBfaXNfZmxhZ3EgTERGTEFHUyAkMQp9CmlzX2ZpbmFsX2FiaSAoKSAKeyAK ICAgIGhhc19tdWx0aWxpYl9wcm9maWxlIHx8IHJldHVybiAwOwogICAgc2V0IC0tICQoZ2V0X2lu c3RhbGxfYWJpcyk7CiAgICBsb2NhbCBMQVNUX0FCST0kIzsKICAgIFtbICR7IUxBU1RfQUJJfSA9 PSAke0FCSX0gXV0KfQptYWtlX2Rlc2t0b3BfZW50cnkgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAm JiBkaWUgIm1ha2VfZGVza3RvcF9lbnRyeTogWW91IG11c3Qgc3BlY2lmeSB0aGUgZXhlY3V0YWJs ZSI7CiAgICBsb2NhbCBleGVjPSR7MX07CiAgICBsb2NhbCBuYW1lPSR7MjotJHtQTn19OwogICAg bG9jYWwgaWNvbj0kezM6LSR7UE59fTsKICAgIGxvY2FsIHR5cGU9JHs0fTsKICAgIGxvY2FsIGZp ZWxkcz0kezV9OwogICAgaWYgW1sgLXogJHt0eXBlfSBdXTsgdGhlbgogICAgICAgIGxvY2FsIGNh dG1haj0ke0NBVEVHT1JZJSUtKn07CiAgICAgICAgbG9jYWwgY2F0bWluPSR7Q0FURUdPUlkjIyot fTsKICAgICAgICBjYXNlICR7Y2F0bWFqfSBpbiAKICAgICAgICAgICAgYXBwKQogICAgICAgICAg ICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0 eSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iVXRpbGl0eTtBY2Nlc3NpYmlsaXR5Igog ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYWRtaW4pCiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9U3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAg ICAgICAgICAgICAgICBhbnRpdmlydXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3lz dGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhcmNoKQogICAg ICAgICAgICAgICAgICAgICAgICB0eXBlPSJVdGlsaXR5O0FyY2hpdmluZyIKICAgICAgICAgICAg ICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJhY2t1cCkKICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZT0iVXRpbGl0eTtBcmNoaXZpbmciCiAgICAgICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgICAgICAgICBjZHIpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9IkF1ZGlv VmlkZW87RGlzY0J1cm5pbmciCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg ICAgICBkaWN0cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iT2ZmaWNlO0RpY3Rpb25h cnkiCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkb2MpCiAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGU9RG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAg IDs7CiAgICAgICAgICAgICAgICAgICAgZWRpdG9ycykKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT0iVXRpbGl0eTtUZXh0RWRpdG9yIgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg ICAgICAgICAgICAgZW1hY3MpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9IkRldmVsb3Bt ZW50O1RleHRFZGl0b3IiCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg ICBlbXVsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9IlN5c3RlbTtFbXVsYXRv ciIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGxhcHRvcCkKICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT0iU2V0dGluZ3M7SGFyZHdhcmVTZXR0aW5ncyIKICAg ICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIG9mZmljZSkKICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT1PZmZpY2UKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgIHBkYSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iT2ZmaWNlO1BE QSIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHZpbSkKICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT0iRGV2ZWxvcG1lbnQ7VGV4dEVkaXRvciIKICAgICAgICAg ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHhlbWFjcykKICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT0iRGV2ZWxvcG1lbnQ7VGV4dEVkaXRvciIKICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgZXNhYwogICAgICAgICAgICA7OwogICAgICAgICAgICBkZXYp CiAgICAgICAgICAgICAgICB0eXBlPSJEZXZlbG9wbWVudCIKICAgICAgICAgICAgOzsKICAgICAg ICAgICAgZ2FtZXMpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAg ICAgICAgICAgICBhY3Rpb24gfCBmcHMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QWN0 aW9uR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYXJjYWRl KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2FkZUdhbWUKICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJvYXJkKQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPUJvYXJkR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg ICAgZW11bGF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVtdWxhdG9yCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBraWRzKQogICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPUtpZHNHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg ICAgICAgICAgICBwdXp6bGUpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9TG9naWNHYW1l CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICByb2d1ZWxpa2UpCiAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Um9sZVBsYXlpbmcKICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgICAgIHJwZykKICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZT1Sb2xlUGxheWluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAg c2ltdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TaW11bGF0aW9uCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBzcG9ydHMpCiAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU9U3BvcnRzR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICAgICAgc3RyYXRlZ3kpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3Ry YXRlZ3lHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAg ICAgICAgICAgICAgICB0eXBlPSJHYW1lOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAg ICAgIGdub21lKQogICAgICAgICAgICAgICAgdHlwZT0iR25vbWU7R1RLIgogICAgICAgICAgICA7 OwogICAgICAgICAgICBrZGUpCiAgICAgICAgICAgICAgICB0eXBlPSJLREU7UXQiCiAgICAgICAg ICAgIDs7CiAgICAgICAgICAgIG1haWwpCiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3b3JrO0Vt YWlsIgogICAgICAgICAgICA7OwogICAgICAgICAgICBtZWRpYSkKICAgICAgICAgICAgICAgIGNh c2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGdmeCkKICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT1HcmFwaGljcwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICByYWRpbykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0eXBlPVR1bmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgc291bmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZT1BdWRpbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHR2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 VFYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2aWRlbykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVZpZGVvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICAgICBlc2Fj OwogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJBdWRpb1ZpZGVvOyR7dHlwZX0iCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWMKICAgICAgICAgICAgOzsKICAg ICAgICAgICAgbmV0KQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAg ICAgICAgICAgICAgZGlhbHVwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURpYWx1cAog ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZnRwKQogICAgICAgICAg ICAgICAgICAgICAgICB0eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAgICAgaW0pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9SW5zdGFu dE1lc3NhZ2luZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgaXJj KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUlSQ0NsaWVudAogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT1FbWFpbAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbmV3 cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1OZXdzCiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgICAgICBubnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PU5ld3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHAycCkKICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT1GaWxlVHJhbnNmZXIKICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgICAgIHZvaXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGU9VGVsZXBob255CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7 CiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3b3JrOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAg ICAgICAgICAgIHNjaSkKICAgICAgICAgICAgICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAg ICAgICAgICAgICAgIGFzdHJvKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Bc3Ryb25v bXkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJpbyopCiAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGU9QmlvbG9neQogICAgICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAgICAgY2FsYyopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Q2Fs Y3VsYXRvcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2hlbSop CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Q2hlbWlzdHJ5CiAgICAgICAgICAgICAgICAg ICAgOzsKICAgICAgICAgICAgICAgICAgICBlbGVjKikKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT1FbGVjdHJvbmljcwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg ICAgZ2VvKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1HZW9sb2d5CiAgICAgICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBtYXRoKikKICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZT1NYXRoCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg ICBwaHlzaWNzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVBoeXNpY3MKICAgICAgICAg ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHZpc3VhbCopCiAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGU9RGF0YVZpc3VhbGl6YXRpb24KICAgICAgICAgICAgICAgICAgICA7Owog ICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IkVkdWNhdGlvbjtTY2ll bmNlOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHN5cykKICAgICAgICAgICAg ICAgIHR5cGU9IlN5c3RlbSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgd3d3KQogICAgICAg ICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgY2xpZW50KQog ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVdlYkJyb3dzZXIKICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9Ik5ldHdvcms7 JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIHR5 cGU9CiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgaWYgWyAiJHtTTE9U fSIgPT0gIjAiIF07IHRoZW4KICAgICAgICBsb2NhbCBkZXNrdG9wX25hbWU9IiR7UE59IjsKICAg IGVsc2UKICAgICAgICBsb2NhbCBkZXNrdG9wX25hbWU9IiR7UE59LSR7U0xPVH0iOwogICAgZmk7 CiAgICBsb2NhbCBkZXNrdG9wPSIke1R9LyQoZWNobyAke2V4ZWN9IHwgc2VkICdzOltbOnNwYWNl Ol0vOl06XzpnJyktJHtkZXNrdG9wX25hbWV9LmRlc2t0b3AiOwogICAgdHlwZT0ke3R5cGUlO30k e3R5cGU6Kzt9OwogICAgZXNob3B0c19wdXNoIC1zIGV4dGdsb2I7CiAgICBpZiBbWyAtbiAke2lj b259ICYmICR7aWNvbn0gIT0gLyogXV0gJiYgW1sgJHtpY29ufSA9PSAqLnhwbSB8fCAke2ljb259 ID09ICoucG5nIHx8ICR7aWNvbn0gPT0gKi5zdmcgXV07IHRoZW4KICAgICAgICBld2FybiAiQXMg ZGVzY3JpYmVkIGluIHRoZSBJY29uIFRoZW1lIFNwZWNpZmljYXRpb24sIGljb24gZmlsZSBleHRl bnNpb25zIGFyZSBub3QiOwogICAgICAgIGV3YXJuICJhbGxvd2VkIGluIC5kZXNrdG9wIGZpbGVz IGlmIHRoZSB2YWx1ZSBpcyBub3QgYW4gYWJzb2x1dGUgcGF0aC4iOwogICAgICAgIGljb249JHtp Y29uJS5AKHhwbXxwbmd8c3ZnKX07CiAgICBmaTsKICAgIGVzaG9wdHNfcG9wOwogICAgY2F0ID4g IiR7ZGVza3RvcH0iICA8PC1FT0YKW0Rlc2t0b3AgRW50cnldCk5hbWU9JHtuYW1lfQpUeXBlPUFw cGxpY2F0aW9uCkNvbW1lbnQ9JHtERVNDUklQVElPTn0KRXhlYz0ke2V4ZWN9ClRyeUV4ZWM9JHtl eGVjJSUgKn0KSWNvbj0ke2ljb259CkNhdGVnb3JpZXM9JHt0eXBlfQpFT0YKCiAgICBpZiBbWyAk e2ZpZWxkczotPX0gIT0gKj0qIF1dOyB0aGVuCiAgICAgICAgZXdhcm4gIm1ha2VfZGVza3RvcF9l bnRyeTogdXBkYXRlIHlvdXIgNXRoIGFyZyB0byByZWFkIFBhdGg9JHtmaWVsZHN9IjsKICAgICAg ICBmaWVsZHM9IlBhdGg9JHtmaWVsZHN9IjsKICAgIGZpOwogICAgW1sgLW4gJHtmaWVsZHN9IF1d ICYmIHByaW50ZiAnJWJcbicgIiR7ZmllbGRzfSIgPj4gIiR7ZGVza3RvcH0iOwogICAgKCBpbnNp bnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zOwogICAgZG9pbnMgIiR7ZGVza3RvcH0iICkgfHwg ZGllICJpbnN0YWxsaW5nIGRlc2t0b3AgZmlsZSBmYWlsZWQiCn0KbWFrZV9zZXNzaW9uX2Rlc2t0 b3AgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBlZXJyb3IgIiQwOiBZb3UgbXVzdCBzcGVjaWZ5 IHRoZSB0aXRsZSIgJiYgcmV0dXJuIDE7CiAgICBbWyAteiAkMiBdXSAmJiBlZXJyb3IgIiQwOiBZ b3UgbXVzdCBzcGVjaWZ5IHRoZSBjb21tYW5kIiAmJiByZXR1cm4gMTsKICAgIGxvY2FsIHRpdGxl PSQxOwogICAgbG9jYWwgY29tbWFuZD0kMjsKICAgIGxvY2FsIGRlc2t0b3A9JHtUfS8ke3dtOi0k e1BOfX0uZGVza3RvcDsKICAgIHNoaWZ0IDI7CiAgICBjYXQgPiAiJHtkZXNrdG9wfSIgIDw8LUVP RgpbRGVza3RvcCBFbnRyeV0KTmFtZT0ke3RpdGxlfQpDb21tZW50PVRoaXMgc2Vzc2lvbiBsb2dz IHlvdSBpbnRvICR7dGl0bGV9CkV4ZWM9JHtjb21tYW5kfSAkKgpUcnlFeGVjPSR7Y29tbWFuZH0K VHlwZT1YU2Vzc2lvbgpFT0YKCiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS94c2Vzc2lvbnM7CiAg ICBkb2lucyAiJHtkZXNrdG9wfSIgKQp9Cm1ha2Vfd3JhcHBlciAoKSAKeyAKICAgIGxvY2FsIHdy YXBwZXI9JDEgYmluPSQyIGNoZGlyPSQzIGxpYmRpcj0kNCBwYXRoPSQ1OwogICAgbG9jYWwgdG1w d3JhcHBlcj0kKGVta3RlbXApOwogICAgY2F0ID4gIiR7dG1wd3JhcHBlcn0iICA8PEVPRgojISR7 RVBSRUZJWH0vYmluL3NoCmNkICIke2NoZGlyOi0ufSIKaWYgWyAtbiAiJHtsaWJkaXJ9IiBdIDsg dGhlbgoJaWYgWyAiXCR7TERfTElCUkFSWV9QQVRIK3NldH0iID0gInNldCIgXSA7IHRoZW4KCQll eHBvcnQgTERfTElCUkFSWV9QQVRIPSJcJHtMRF9MSUJSQVJZX1BBVEh9OiR7RVBSRUZJWH0ke2xp YmRpcn0iCgllbHNlCgkJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHtFUFJFRklYfSR7bGliZGly fSIKCWZpCgkjIHVsdHJhLWRpcnR5LCBqdXN0IGRvIHRoZSBzYW1lIGZvciBEYXJ3aW4KCWlmIFsg Ilwke0RZTERfTElCUkFSWV9QQVRIK3NldH0iID0gInNldCIgXSA7IHRoZW4KCQlleHBvcnQgRFlM RF9MSUJSQVJZX1BBVEg9Ilwke0RZTERfTElCUkFSWV9QQVRIfToke0VQRVJGSVh9JHtsaWJkaXJ9 IgoJZWxzZQoJCWV4cG9ydCBEWUxEX0xJQlJBUllfUEFUSD0iJHtFUFJFRklYfSR7bGliZGlyfSIK CWZpCmZpCmV4ZWMgIiR7RVBSRUZJWH0iJHtiaW59ICJcJEAiCkVPRgoKICAgIGNobW9kIGdvK3J4 ICIke3RtcHdyYXBwZXJ9IjsKICAgIGlmIFtbIC1uICR7cGF0aH0gXV07IHRoZW4KICAgICAgICAo IGV4ZWludG8gIiR7cGF0aH0iOwogICAgICAgIG5ld2V4ZSAiJHt0bXB3cmFwcGVyfSIgIiR7d3Jh cHBlcn0iICkgfHwgZGllOwogICAgZWxzZQogICAgICAgIG5ld2JpbiAiJHt0bXB3cmFwcGVyfSIg IiR7d3JhcHBlcn0iIHx8IGRpZTsKICAgIGZpCn0KbWFrZW9wdHNfam9icyAoKSAKeyAKICAgIFtb ICQjIC1lcSAwIF1dICYmIHNldCAtLSAke01BS0VPUFRTfTsKICAgIGxvY2FsIGpvYnM9JChlY2hv ICIgJCogIiB8IHNlZCAtciAtbiAJCS1lICdzOi4qW1s6c3BhY2U6XV0oLWp8LS1qb2JzWz1bOnNw YWNlOl1dKVtbOnNwYWNlOl1dKihbMC05XSspLio6XDI6cCcgCQktZSAnczouKltbOnNwYWNlOl1d KC1qfC0tam9icylbWzpzcGFjZTpdXS4qOjk5OTpwJyk7CiAgICBlY2hvICR7am9iczotMX0KfQpt dWx0aWpvYl9jaGlsZF9pbml0ICgpIAp7IAogICAgbG9jYWwgbW9kZT0icHJlIjsKICAgIGNhc2Ug JDEgaW4gCiAgICAgICAgLS1wcmUpCiAgICAgICAgICAgIG1vZGU9InByZSI7CiAgICAgICAgICAg IHNoaWZ0CiAgICAgICAgOzsKICAgICAgICAtLXBvc3QpCiAgICAgICAgICAgIG1vZGU9InBvc3Qi OwogICAgICAgICAgICBzaGlmdAogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgJCMgLWVx IDAgXV07IHRoZW4KICAgICAgICB0cmFwICdlY2hvICR7QkFTSFBJRH0gJD8gPiYnJHttal9jb250 cm9sX2ZkfSBFWElUOwogICAgICAgIHRyYXAgJ2V4aXQgMScgSU5UIFRFUk07CiAgICBlbHNlCiAg ICAgICAgbG9jYWwgcmV0OwogICAgICAgIFtbICR7bW9kZX0gPT0gInByZSIgXV0gJiYgeyAKICAg ICAgICAgICAgbXVsdGlqb2JfcHJlX2Zvcms7CiAgICAgICAgICAgIHJldD0kPwogICAgICAgIH07 CiAgICAgICAgKCBtdWx0aWpvYl9jaGlsZF9pbml0OwogICAgICAgICIkQCIgKSAmIFtbICR7bW9k ZX0gPT0gInBvc3QiIF1dICYmIHsgCiAgICAgICAgICAgIG11bHRpam9iX3Bvc3RfZm9yazsKICAg ICAgICAgICAgcmV0PSQ/CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gJHtyZXR9OwogICAgZmkK fQptdWx0aWpvYl9maW5pc2ggKCkgCnsgCiAgICBsb2NhbCByZXQ9MDsKICAgIHdoaWxlIFtbICR7 bWpfbnVtX2pvYnN9IC1ndCAwIF1dOyBkbwogICAgICAgIG11bHRpam9iX2ZpbmlzaF9vbmU7CiAg ICAgICAgOiAkKCggcmV0IHw9ICQ/ICkpOwogICAgZG9uZTsKICAgIHdhaXQ7CiAgICBbWyAkIyAt ZXEgMCBdXSB8fCBkaWUgIiR7RlVOQ05BTUV9IHRha2VzIG5vIGFyZ3VtZW50cyI7CiAgICBFQlVJ TERfREVBVEhfSE9PS1M9JHtFQlVJTERfREVBVEhfSE9PS1MvIHdhaXQgLyB9OwogICAgcmV0dXJu ICR7cmV0fQp9Cm11bHRpam9iX2ZpbmlzaF9vbmUgKCkgCnsgCiAgICBbWyAkIyAtZXEgMCBdXSB8 fCBkaWUgIiR7RlVOQ05BTUV9IHRha2VzIG5vIGFyZ3VtZW50cyI7CiAgICBsb2NhbCBwaWQgcmV0 OwogICAgcmVhZCAtciAtdSAke21qX2NvbnRyb2xfZmR9IHBpZCByZXQgfHwgZGllOwogICAgOiAk KCggLS1tal9udW1fam9icyApKTsKICAgIHJldHVybiAke3JldH0KfQptdWx0aWpvYl9pbml0ICgp IAp7IAogICAgaGFzIHdhaXQgJHtFQlVJTERfREVBVEhfSE9PS1N9IHx8IEVCVUlMRF9ERUFUSF9I T09LUys9IiB3YWl0ICI7CiAgICBsb2NhbCBwaXBlPSIke1R9L211bHRpam9iLnBpcGUiOwogICAg bWtmaWZvICIke3BpcGV9IjsKICAgIHJlZGlyZWN0X2FsbG9jX2ZkIG1qX2NvbnRyb2xfZmQgIiR7 cGlwZX0iOwogICAgcm0gLWYgIiR7cGlwZX0iOwogICAgbWpfbWF4X2pvYnM9JChtYWtlb3B0c19q b2JzICIkQCIpOwogICAgbWpfbnVtX2pvYnM9MAp9Cm11bHRpam9iX3Bvc3RfZm9yayAoKSAKeyAK ICAgIF9tdWx0aWpvYl9mb3JrIHBvc3QgIiRAIgp9Cm11bHRpam9iX3ByZV9mb3JrICgpIAp7IAog ICAgX211bHRpam9iX2ZvcmsgcHJlICIkQCIKfQptdWx0aWxpYl9lbnYgKCkgCnsgCiAgICBsb2Nh bCBDVEFSR0VUPSR7MTotJHtDVEFSR0VUfX07CiAgICBjYXNlICR7Q1RBUkdFVH0gaW4gCiAgICAg ICAgeDg2XzY0KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU194ODY9JHtDRkxBR1NfeDg2LS1t MzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfeDg2PSR7Q1RBUkdFVC94ODZfNjQvaTY4Nn07 CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3g4Nj0ke0NIT1NUX3g4Nn07CiAgICAgICAgICAg IGlmIFtbICR7U1lNTElOS19MSUJ9ID09ICJ5ZXMiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBl eHBvcnQgTElCRElSX3g4Nj0ibGliMzIiOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICBleHBvcnQgTElCRElSX3g4Nj0ibGliIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGV4 cG9ydCBDRkxBR1NfYW1kNjQ9JHtDRkxBR1NfYW1kNjQtLW02NH07CiAgICAgICAgICAgIGV4cG9y dCBDSE9TVF9hbWQ2ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9hbWQ2 ND0ke0NIT1NUX2FtZDY0fTsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9hbWQ2ND0ibGliNjQi OwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3gzMj0ke0NGTEFHU194MzItLW14MzJ9OwogICAg ICAgICAgICBleHBvcnQgQ0hPU1RfeDMyPSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBD VEFSR0VUX3gzMj0ke0NIT1NUX3gzMn07CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfeDMyPSJs aWJ4MzIiOwogICAgICAgICAgICA6ICR7TVVMVElMSUJfQUJJUz1hbWQ2NCB4ODZ9OwogICAgICAg ICAgICA6ICR7REVGQVVMVF9BQkk9YW1kNjR9CiAgICAgICAgOzsKICAgICAgICBtaXBzNjQqKQog ICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX28zMj0ke0NGTEFHU19vMzItLW1hYmk9MzJ9OwogICAg ICAgICAgICBleHBvcnQgQ0hPU1RfbzMyPSR7Q1RBUkdFVC9taXBzNjQvbWlwc307CiAgICAgICAg ICAgIGV4cG9ydCBDVEFSR0VUX28zMj0ke0NIT1NUX28zMn07CiAgICAgICAgICAgIGV4cG9ydCBM SUJESVJfbzMyPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX24zMj0ke0NGTEFHU19u MzItLW1hYmk9bjMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX24zMj0ke0NUQVJHRVR9Owog ICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uMzI9JHtDSE9TVF9uMzJ9OwogICAgICAgICAgICBl eHBvcnQgTElCRElSX24zMj0ibGliMzIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX242ND0k e0NGTEFHU19uNjQtLW1hYmk9NjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfbjY0PSR7Q1RB UkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX242ND0ke0NIT1NUX242NH07CiAgICAg ICAgICAgIGV4cG9ydCBMSUJESVJfbjY0PSJsaWI2NCI7CiAgICAgICAgICAgIDogJHtNVUxUSUxJ Ql9BQklTPW42NCBuMzIgbzMyfTsKICAgICAgICAgICAgOiAke0RFRkFVTFRfQUJJPW4zMn0KICAg ICAgICA7OwogICAgICAgIHBvd2VycGM2NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfcHBj PSR7Q0ZMQUdTX3BwYy0tbTMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3BwYz0ke0NUQVJH RVQvcG93ZXJwYzY0L3Bvd2VycGN9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9wcGM9JHtD SE9TVF9wcGN9OwogICAgICAgICAgICBleHBvcnQgTElCRElSX3BwYz0ibGliIjsKICAgICAgICAg ICAgZXhwb3J0IENGTEFHU19wcGM2ND0ke0NGTEFHU19wcGM2NC0tbTY0fTsKICAgICAgICAgICAg ZXhwb3J0IENIT1NUX3BwYzY0PSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VU X3BwYzY0PSR7Q0hPU1RfcHBjNjR9OwogICAgICAgICAgICBleHBvcnQgTElCRElSX3BwYzY0PSJs aWI2NCI7CiAgICAgICAgICAgIDogJHtNVUxUSUxJQl9BQklTPXBwYzY0IHBwY307CiAgICAgICAg ICAgIDogJHtERUZBVUxUX0FCST1wcGM2NH0KICAgICAgICA7OwogICAgICAgIHMzOTB4KikKICAg ICAgICAgICAgZXhwb3J0IENGTEFHU19zMzkwPSR7Q0ZMQUdTX3MzOTAtLW0zMX07CiAgICAgICAg ICAgIGV4cG9ydCBDSE9TVF9zMzkwPSR7Q1RBUkdFVC9zMzkweC9zMzkwfTsKICAgICAgICAgICAg ZXhwb3J0IENUQVJHRVRfczM5MD0ke0NIT1NUX3MzOTB9OwogICAgICAgICAgICBleHBvcnQgTElC RElSX3MzOTA9ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfczM5MHg9JHtDRkxBR1Nf czM5MHgtLW02NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zMzkweD0ke0NUQVJHRVR9Owog ICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zMzkweD0ke0NIT1NUX3MzOTB4fTsKICAgICAgICAg ICAgZXhwb3J0IExJQkRJUl9zMzkweD0ibGliNjQiOwogICAgICAgICAgICA6ICR7TVVMVElMSUJf QUJJUz1zMzkweCBzMzkwfTsKICAgICAgICAgICAgOiAke0RFRkFVTFRfQUJJPXMzOTB4fQogICAg ICAgIDs7CiAgICAgICAgc3BhcmMqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3NwYXJjMzI9 JHtDRkxBR1Nfc3BhcmMzMi0tbTMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3NwYXJjMzI9 JHtDVEFSR0VUL3NwYXJjNjQvc3BhcmN9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zcGFy YzMyPSR7Q0hPU1Rfc3BhcmMzMn07CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfc3BhcmMzMj0i bGliIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zcGFyYzY0PSR7Q0ZMQUdTX3NwYXJjNjQt LW02NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zcGFyYzY0PSR7Q1RBUkdFVH07CiAgICAg ICAgICAgIGV4cG9ydCBDVEFSR0VUX3NwYXJjNjQ9JHtDSE9TVF9zcGFyYzY0fTsKICAgICAgICAg ICAgZXhwb3J0IExJQkRJUl9zcGFyYzY0PSJsaWI2NCI7CiAgICAgICAgICAgIDogJHtNVUxUSUxJ Ql9BQklTPXNwYXJjNjQgc3BhcmMzMn07CiAgICAgICAgICAgIDogJHtERUZBVUxUX0FCST1zcGFy YzY0fQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgOiAke01VTFRJTElCX0FCSVM9 ZGVmYXVsdH07CiAgICAgICAgICAgIDogJHtERUZBVUxUX0FCST1kZWZhdWx0fQogICAgICAgIDs7 CiAgICBlc2FjOwogICAgZXhwb3J0IE1VTFRJTElCX0FCSVMgREVGQVVMVF9BQkkKfQptdWx0aWxp Yl90b29sY2hhaW5fc2V0dXAgKCkgCnsgCiAgICBsb2NhbCB2IHZ2OwogICAgZXhwb3J0IEFCST0k MTsKICAgIGlmIFtbICR7X19ERUZBVUxUX0FCSV9TQVZFRH0gPT0gInRydWUiIF1dOyB0aGVuCiAg ICAgICAgZm9yIHYgaW4gQ0hPU1QgQ0JVSUxEIEFTIENDIENYWCBMRDsKICAgICAgICBkbwogICAg ICAgICAgICB2dj0iX19hYmlfc2F2ZWRfJHt2fSI7CiAgICAgICAgICAgIGV4cG9ydCAke3Z9PSIk eyF2dn0iOwogICAgICAgICAgICB1bnNldCAke3Z2fTsKICAgICAgICBkb25lOwogICAgICAgIHVu c2V0IF9fREVGQVVMVF9BQklfU0FWRUQ7CiAgICBmaTsKICAgIGlmIFtbICR7QUJJfSAhPSAke0RF RkFVTFRfQUJJfSBdXTsgdGhlbgogICAgICAgIGZvciB2IGluIENIT1NUIENCVUlMRCBBUyBDQyBD WFggTEQ7CiAgICAgICAgZG8KICAgICAgICAgICAgZXhwb3J0IF9fYWJpX3NhdmVkXyR7dn09IiR7 IXZ9IjsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9ydCBfX0RFRkFVTFRfQUJJX1NBVkVEPSJ0 cnVlIjsKICAgICAgICBleHBvcnQgQ0hPU1Q9JChnZXRfYWJpX0NIT1NUICR7REVGQVVMVF9BQkl9 KTsKICAgICAgICBleHBvcnQgQ0M9IiQodGMtZ2V0Q0MpICQoZ2V0X2FiaV9DRkxBR1MpIjsKICAg ICAgICBleHBvcnQgQ1hYPSIkKHRjLWdldENYWCkgJChnZXRfYWJpX0NGTEFHUykiOwogICAgICAg IGV4cG9ydCBMRD0iJCh0Yy1nZXRMRCkgJChnZXRfYWJpX0xERkxBR1MpIjsKICAgICAgICBleHBv cnQgQ0hPU1Q9JChnZXRfYWJpX0NIT1NUICQxKTsKICAgICAgICBleHBvcnQgQ0JVSUxEPSQoZ2V0 X2FiaV9DSE9TVCAkMSk7CiAgICBmaQp9Cm15Y29uZiAoKSAKeyAKICAgIG15Y29uZj0oIiR7bXlj b25mW0BdfSIgIiRAIikKfQpuZXdpY29uICgpIAp7IAogICAgX2ljb25pbnMgJHtGVU5DTkFNRX0g IiRAIgp9Cm5ld21lbnUgKCkgCnsgCiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlv bnM7CiAgICBuZXdpbnMgIiRAIiApCn0Kbm8tYXMtbmVlZGVkICgpIAp7IAogICAgY2FzZSAkKCQo dGMtZ2V0TEQpIC12IDI+JjEgPC9kZXYvbnVsbCkgaW4gCiAgICAgICAgKkdOVSopCiAgICAgICAg ICAgIGVjaG8gIi1XbCwtLW5vLWFzLW5lZWRlZCIKICAgICAgICA7OwogICAgZXNhYwp9Cm51bWJl cl9hYmlzICgpIAp7IAogICAgc2V0IC0tIGBnZXRfaW5zdGFsbF9hYmlzYDsKICAgIGVjaG8gJCMK fQpwYXRoX2V4aXN0cyAoKSAKeyAKICAgIGxvY2FsIG9wdD0kMTsKICAgIFtbICR7b3B0fSA9PSAt W2FvXSBdXSAmJiBzaGlmdCB8fCBvcHQ9Ii1hIjsKICAgIFtbICQjIC1lcSAwIF1dICYmIHJldHVy biAxOwogICAgbG9jYWwgcCByPTA7CiAgICBmb3IgcCBpbiAiJEAiOwogICAgZG8KICAgICAgICBb WyAtZSAke3B9IF1dOwogICAgICAgIDogJCgoIHIgKz0gJD8gKSk7CiAgICBkb25lOwogICAgY2Fz ZSAke29wdH0gaW4gCiAgICAgICAgLWEpCiAgICAgICAgICAgIHJldHVybiAkKCggciAhPSAwICkp CiAgICAgICAgOzsKICAgICAgICAtbykKICAgICAgICAgICAgcmV0dXJuICQoKCByID09ICQjICkp CiAgICAgICAgOzsKICAgIGVzYWMKfQpwa2dfbm9mZXRjaCAoKSAKeyAKICAgIF9lYXBpMF9wa2df bm9mZXRjaCAiJEAiCn0KcGtnX3Bvc3RpbnN0ICgpIAp7IAogICAgZWJsaXQtcnVuIHBrZ19wb3N0 aW5zdCB2NTAxNjAwMDEKfQpwa2dfcG9zdHJtICgpIAp7IAogICAgZWJsaXQtcnVuIHBrZ19wb3N0 cm0gdjUwMTYwMDAxCn0KcGtnX3NldHVwICgpIAp7IAogICAgZWJsaXQtcnVuIHBrZ19zZXR1cCB2 NTAxNjAwMDEKfQpwb3N0X3NyY19pbnN0YWxsICgpIAp7IAogICAgcHJlZml4LXBvc3Rfc3JjX2lu c3RhbGwKfQpwcmVmaXgtcG9zdF9zcmNfaW5zdGFsbCAoKSAKeyAKICAgIGxvY2FsIGY7CiAgICBp ZiBbWyAke1BOfSAhPSAibGliaWNvbnYiICYmIC1uICQobHMgIiR7RUR9Ii91c3IvbGliKi9jaGFy c2V0LmFsaWFzIDI+L2Rldi9udWxsKSBdXTsgdGhlbgogICAgICAgIGVpbmZvICJhdXRvbWF0aWNh bGx5IHJlbW92aW5nIGNoYXJzZXQuYWxpYXMiOwogICAgICAgIHJtIC1mICIke0VEfSIvdXNyL2xp YiovY2hhcnNldC5hbGlhczsKICAgIGZpCn0KcHJlc2VydmVfb2xkX2xpYiAoKSAKeyAKICAgIGlm IFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicHJlaW5zdCIgXV07IHRoZW4KICAgICAgICBlZXJyb3Ig InByZXNlcnZlX29sZF9saWIoKSBtdXN0IGJlIGNhbGxlZCBmcm9tIHBrZ19wcmVpbnN0KCkgb25s eSI7CiAgICAgICAgZGllICJJbnZhbGlkIHByZXNlcnZlX29sZF9saWIoKSB1c2FnZSI7CiAgICBm aTsKICAgIFtbIC16ICQxIF1dICYmIGRpZSAiVXNhZ2U6IHByZXNlcnZlX29sZF9saWIgPGxpYnJh cnkgdG8gcHJlc2VydmU+IFttb3JlIGxpYnJhcmllcyB0byBwcmVzZXJ2ZV0iOwogICAgaGFzIHBy ZXNlcnZlLWxpYnMgJHtGRUFUVVJFU30gJiYgcmV0dXJuIDA7CiAgICBbWyAke0NIT1NUfSA9PSAq LWFpeCogXV0gJiYgeyAKICAgICAgICBlaW5mbyAiTm90IHByZXNlcnZpbmcgbGlicyBvbiBBSVgg KHlldCksIG5vdCBpbXBsZW1lbnRlZC4iOwogICAgICAgIHJldHVybiAwCiAgICB9OwogICAgbG9j YWwgbGliIGRpcjsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHtF Uk9PVH0vJHtsaWJ9IF1dIHx8IGNvbnRpbnVlOwogICAgICAgIGRpcj0ke2xpYiUvKn07CiAgICAg ICAgZG9kaXIgJHtkaXJ9IHx8IGRpZSAiZG9kaXIgJHtkaXJ9IGZhaWxlZCI7CiAgICAgICAgY3Ag IiR7RVJPT1R9Ii8ke2xpYn0gIiR7RUR9Ii8ke2xpYn0gfHwgZGllICJjcCAke2xpYn0gZmFpbGVk IjsKICAgICAgICB0b3VjaCAiJHtFRH0iLyR7bGlifTsKICAgIGRvbmUKfQpwcmVzZXJ2ZV9vbGRf bGliX25vdGlmeSAoKSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicG9zdGluc3Qi IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSgpIG11c3Qg YmUgY2FsbGVkIGZyb20gcGtnX3Bvc3RpbnN0KCkgb25seSI7CiAgICAgICAgZGllICJJbnZhbGlk IHByZXNlcnZlX29sZF9saWJfbm90aWZ5KCkgdXNhZ2UiOwogICAgZmk7CiAgICBoYXMgcHJlc2Vy dmUtbGlicyAke0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGxpYiBub3RpY2U9MDsK ICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHtFUk9PVH0vJHtsaWJ9 IF1dIHx8IGNvbnRpbnVlOwogICAgICAgIGlmIFtbICR7bm90aWNlfSAtZXEgMCBdXTsgdGhlbgog ICAgICAgICAgICBub3RpY2U9MTsKICAgICAgICAgICAgZXdhcm4gIk9sZCB2ZXJzaW9ucyBvZiBp bnN0YWxsZWQgbGlicmFyaWVzIHdlcmUgZGV0ZWN0ZWQgb24geW91ciBzeXN0ZW0uIjsKICAgICAg ICAgICAgZXdhcm4gIkluIG9yZGVyIHRvIGF2b2lkIGJyZWFraW5nIHBhY2thZ2VzIHRoYXQgZGVw ZW5kIG9uIHRoZXNlIG9sZCBsaWJzLCI7CiAgICAgICAgICAgIGV3YXJuICJ0aGUgbGlicmFyaWVz IGFyZSBub3QgYmVpbmcgcmVtb3ZlZC4gIFlvdSBuZWVkIHRvIHJ1biByZXZkZXAtcmVidWlsZCI7 CiAgICAgICAgICAgIGV3YXJuICJpbiBvcmRlciB0byByZW1vdmUgdGhlc2Ugb2xkIGRlcGVuZGVu Y2llcy4gIElmIHlvdSBkbyBub3QgaGF2ZSB0aGlzIjsKICAgICAgICAgICAgZXdhcm4gImhlbHBl ciBwcm9ncmFtLCBzaW1wbHkgZW1lcmdlIHRoZSAnZ2VudG9vbGtpdCcgcGFja2FnZS4iOwogICAg ICAgICAgICBld2FybjsKICAgICAgICBmaTsKICAgICAgICBld2FybiAiICAjIHJldmRlcC1yZWJ1 aWxkIC0tbGlicmFyeSAnJHtsaWJ9JyAmJiBybSAnJHtsaWJ9JyI7CiAgICBkb25lCn0KcHJvZmls ZS1wb3N0X3NyY19pbnN0YWxsICgpIAp7IAogICAgcHJlZml4LXBvc3Rfc3JjX2luc3RhbGwKfQpw cnVuZV9saWJ0b29sX2ZpbGVzICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5D TkFNRX0gIiRAIjsKICAgIGxvY2FsIHJlbW92aW5nX2FsbCBvcHQ7CiAgICBmb3Igb3B0IGluICIk QCI7CiAgICBkbwogICAgICAgIGNhc2UgIiR7b3B0fSIgaW4gCiAgICAgICAgICAgIC0tYWxsKQog ICAgICAgICAgICAgICAgcmVtb3ZpbmdfYWxsPTEKICAgICAgICAgICAgOzsKICAgICAgICAgICAg KikKICAgICAgICAgICAgICAgIGRpZSAiSW52YWxpZCBhcmd1bWVudCB0byAke0ZVTkNOQU1FfSgp OiAke29wdH0iCiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGRvbmU7CiAgICBsb2Nh bCBwY19saWJzPSgpOwogICAgaWYgW1sgISAtbiAke3JlbW92aW5nX2FsbH0gXV07IHRoZW4KICAg ICAgICBsb2NhbCBmOwogICAgICAgIGxvY2FsIHRmPSR7VH0vcHJ1bmUtbHQtZmlsZXMucGM7CiAg ICAgICAgbG9jYWwgcGtnY29uZj0kKHRjLWdldFBLR19DT05GSUcpOwogICAgICAgIHdoaWxlIElG Uz0gcmVhZCAtciAtZCAnJyBmOyBkbwogICAgICAgICAgICBsb2NhbCBhcmc7CiAgICAgICAgICAg IHNlZCAtZSAnL15SZXF1aXJlczovZCcgIiR7Zn0iID4gIiR7dGZ9IjsKICAgICAgICAgICAgZm9y IGFyZyBpbiAkKCIke3BrZ2NvbmZ9IiAtLWxpYnMgIiR7dGZ9Iik7CiAgICAgICAgICAgIGRvCiAg ICAgICAgICAgICAgICBbWyAke2FyZ30gPT0gLWwqIF1dICYmIHBjX2xpYnMrPShsaWIke2FyZyMt bH0ubGEpOwogICAgICAgICAgICBkb25lOwogICAgICAgIGRvbmUgPCA8KGZpbmQgIiR7RUR9IiAt dHlwZSBmIC1uYW1lICcqLnBjJyAtcHJpbnQwKTsKICAgICAgICBybSAtZiAiJHt0Zn0iOwogICAg Zmk7CiAgICBsb2NhbCBmOwogICAgd2hpbGUgSUZTPSByZWFkIC1yIC1kICcnIGY7IGRvCiAgICAg ICAgbG9jYWwgYXJjaGl2ZWZpbGU9JHtmLyUubGEvLmF9OwogICAgICAgIFtbICR7Zn0gIT0gJHth cmNoaXZlZmlsZX0gXV0gfHwgZGllICdyZWdleCBzYW5pdHkgY2hlY2sgZmFpbGVkJzsKICAgICAg ICBpZiBncmVwIC1xICdec2hvdWxkbm90bGluaz15ZXMkJyAiJHtmfSI7IHRoZW4KICAgICAgICAg ICAgaWYgW1sgLWYgJHthcmNoaXZlZmlsZX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGVpbmZv ICJSZW1vdmluZyB1bm5lY2Vzc2FyeSAke2FyY2hpdmVmaWxlIyR7RCUvfX0gKHN0YXRpYyBwbHVn aW4pIjsKICAgICAgICAgICAgICAgIHJtIC1mICIke2FyY2hpdmVmaWxlfSI7CiAgICAgICAgICAg IGZpOwogICAgICAgICAgICBbWyAtbiAke3JlbW92aW5nX2FsbH0gXV0gfHwgY29udGludWU7CiAg ICAgICAgZmk7CiAgICAgICAgbG9jYWwgcmVhc29uOwogICAgICAgIGlmIFtbIC1uICR7cmVtb3Zp bmdfYWxsfSBdXTsgdGhlbgogICAgICAgICAgICByZWFzb249J3JlcXVlc3RlZCc7CiAgICAgICAg ZWxzZQogICAgICAgICAgICBpZiBbWyAhIC1mICR7YXJjaGl2ZWZpbGV9IF1dOyB0aGVuCiAgICAg ICAgICAgICAgICByZWFzb249J25vIHN0YXRpYyBhcmNoaXZlJzsKICAgICAgICAgICAgZWxzZQog ICAgICAgICAgICAgICAgaWYgaGFzICIke2YjIyovfSIgIiR7cGNfbGlic1tAXX0iOyB0aGVuCiAg ICAgICAgICAgICAgICAgICAgcmVhc29uPSdjb3ZlcmVkIGJ5IC5wYyc7CiAgICAgICAgICAgICAg ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgISAtbiAkKHNlZCAtbnJlIAkJCQkicy9e KGRlcGVuZGVuY3lfbGlic3xpbmhlcml0ZWRfbGlua2VyX2ZsYWdzKT0nKC4qKSckL1wyL3AiIAkJ CQkiJHtmfSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nbm8gbGli cyAmIGZsYWdzJzsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGZpOwog ICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgICAgICBpZiBbWyAtbiAke3JlYXNvbn0gXV07 IHRoZW4KICAgICAgICAgICAgZWluZm8gIlJlbW92aW5nIHVubmVjZXNzYXJ5ICR7ZiMke0QlL319 ICgke3JlYXNvbn0pIjsKICAgICAgICAgICAgcm0gLWYgIiR7Zn0iOwogICAgICAgIGZpOwogICAg ZG9uZSA8IDwoZmluZCAiJHtFRH0iIC10eXBlIGYgLW5hbWUgJyoubGEnIC1wcmludDApCn0KcmF3 LWxkZmxhZ3MgKCkgCnsgCiAgICBsb2NhbCB4IGlucHV0PSIkQCI7CiAgICBbWyAteiAke2lucHV0 fSBdXSAmJiBpbnB1dD0ke0xERkxBR1N9OwogICAgc2V0IC0tOwogICAgZm9yIHggaW4gJHtpbnB1 dH07CiAgICBkbwogICAgICAgIHg9JHt4Iy1XbCx9OwogICAgICAgIHNldCAtLSAiJEAiICR7eC8v LC8gfTsKICAgIGRvbmU7CiAgICBlY2hvICIkQCIKfQpyZWRpcmVjdF9hbGxvY19mZCAoKSAKeyAK ICAgIGxvY2FsIHZhcj0kMSBmaWxlPSQyIHJlZGlyPSR7MzotIjw+In07CiAgICBpZiBbWyAkKCgg KEJBU0hfVkVSU0lORk9bMF0gPDwgOCkgKyBCQVNIX1ZFUlNJTkZPWzFdICkpIC1nZSAkKCggKDQg PDwgOCkgKyAxICkpIF1dOyB0aGVuCiAgICAgICAgZXZhbCAiZXhlYyB7JHt2YXJ9fSR7cmVkaXJ9 JyR7ZmlsZX0nIjsKICAgIGVsc2UKICAgICAgICBsb2NhbCBmZD0xMDsKICAgICAgICB3aGlsZSA6 OyBkbwogICAgICAgICAgICBpZiBbWyAhIC1lIC9kZXYvZmQvJHtmZH0gXV0gJiYgW1sgISAtTCAv ZGV2L2ZkLyR7ZmR9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBldmFsICJleGVjICR7ZmR9JHty ZWRpcn0nJHtmaWxlfSciICYmIGJyZWFrOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgW1sg JHtmZH0gLWd0IDEwMjQgXV0gJiYgZGllICdjb3VsZCBub3QgbG9jYXRlIGEgZnJlZSB0ZW1wIGZk ICE/JzsKICAgICAgICAgICAgOiAkKCggKytmZCApKTsKICAgICAgICBkb25lOwogICAgICAgIDog JCgoICR7dmFyfSA9IGZkICkpOwogICAgZmkKfQpyZXBsYWNlLWNwdS1mbGFncyAoKSAKeyAKICAg IGxvY2FsIG5ld2NwdT0iJCMiOwogICAgbmV3Y3B1PSIkeyFuZXdjcHV9IjsKICAgIHdoaWxlIFsg JCMgLWd0IDEgXTsgZG8KICAgICAgICByZXBsYWNlLWZsYWdzICItbWFyY2g9JHsxfSIgIi1tYXJj aD0ke25ld2NwdX0iOwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tY3B1PSR7MX0iICItbWNwdT0k e25ld2NwdX0iOwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tdHVuZT0kezF9IiAiLW10dW5lPSR7 bmV3Y3B1fSI7CiAgICAgICAgc2hpZnQ7CiAgICBkb25lOwogICAgcmV0dXJuIDAKfQpyZXBsYWNl LWZsYWdzICgpIAp7IAogICAgW1sgJCMgIT0gMiBdXSAmJiBkaWUgIlVzYWdlOiByZXBsYWNlLWZs YWdzIDxvbGQgZmxhZz4gPG5ldyBmbGFnPiI7CiAgICBsb2NhbCBmIHZhciBuZXc7CiAgICBmb3Ig dmFyIGluICQoYWxsLWZsYWctdmFycyk7CiAgICBkbwogICAgICAgIG5ldz0oKTsKICAgICAgICBm b3IgZiBpbiAkeyF2YXJ9OwogICAgICAgIGRvCiAgICAgICAgICAgIFtbICR7Zn0gPT0gJHsxfSBd XSAmJiBmPSR7Mn07CiAgICAgICAgICAgIG5ldys9KCIke2Z9Iik7CiAgICAgICAgZG9uZTsKICAg ICAgICBldmFsIGV4cG9ydCAke3Zhcn09XCIiJHtuZXdbKl19IlwiOwogICAgZG9uZTsKICAgIHJl dHVybiAwCn0KcmVwbGFjZS1zcGFyYzY0LWZsYWdzICgpIAp7IAogICAgbG9jYWwgU1BBUkM2NF9D UFVTPSJ1bHRyYXNwYXJjMyB1bHRyYXNwYXJjIHY5IjsKICAgIGlmIFsgIiR7Q0ZMQUdTL210dW5l fSIgIT0gIiR7Q0ZMQUdTfSIgXTsgdGhlbgogICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVT fTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTLy1tY3B1PSR7eH0vLW1j cHU9djh9IjsKICAgICAgICBkb25lOwogICAgZWxzZQogICAgICAgIGZvciB4IGluICR7U1BBUkM2 NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTLy1tY3B1PSR7 eH0vLW1jcHU9djggLW10dW5lPSR7eH19IjsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBpZiBb ICIke0NYWEZMQUdTL210dW5lfSIgIT0gIiR7Q1hYRkxBR1N9IiBdOyB0aGVuCiAgICAgICAgZm9y IHggaW4gJHtTUEFSQzY0X0NQVVN9OwogICAgICAgIGRvCiAgICAgICAgICAgIENYWEZMQUdTPSIk e0NYWEZMQUdTLy1tY3B1PSR7eH0vLW1jcHU9djh9IjsKICAgICAgICBkb25lOwogICAgZWxzZQog ICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBD WFhGTEFHUz0iJHtDWFhGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4IC1tdHVuZT0ke3h9fSI7CiAg ICAgICAgZG9uZTsKICAgIGZpOwogICAgZXhwb3J0IENGTEFHUyBDWFhGTEFHUwp9CnNldHVwLWFs bG93ZWQtZmxhZ3MgKCkgCnsgCiAgICBBTExPV0VEX0ZMQUdTPSItcGlwZSI7CiAgICBBTExPV0VE X0ZMQUdTKz0iIC1PIC1PMSAtTzIgLU9zIC1tY3B1IC1tYXJjaCAtbXR1bmUiOwogICAgQUxMT1dF RF9GTEFHUys9IiAtZnN0YWNrLXByb3RlY3RvciAtZnN0YWNrLXByb3RlY3Rvci1hbGwiOwogICAg QUxMT1dFRF9GTEFHUys9IiAtZmJvdW5kcy1jaGVja2luZyAtZm5vLXN0cmljdC1vdmVyZmxvdyI7 CiAgICBBTExPV0VEX0ZMQUdTKz0iIC1mbm8tUElFIC1mbm8tcGllIC1mbm8tdW5pdC1hdC1hLXRp bWUiOwogICAgQUxMT1dFRF9GTEFHUys9IiAtZyAtZ1swLTldIC1nZ2RiIC1nZ2RiWzAtOV0gLWdz dGFicyAtZ3N0YWJzKyI7CiAgICBBTExPV0VEX0ZMQUdTKz0iIC1mbm8taWRlbnQgLWZwZXJtaXNz aXZlIjsKICAgIEFMTE9XRURfRkxBR1MrPSIgLVcqIC13IjsKICAgIEFMTE9XRURfRkxBR1MrPSIg LWZuby1zdGFjay1wcm90ZWN0b3IgLWZuby1zdGFjay1wcm90ZWN0b3ItYWxsIAkJLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1ib3VuZHMtY2hlY2tpbmcgLWZzdHJpY3Qtb3ZlcmZsb3cgCQktZm5v LW9taXQtZnJhbWUtcG9pbnRlciI7CiAgICBBTExPV0VEX0ZMQUdTKz0iIC1tcmVncGFybSAtbW5v LWFwcC1yZWdzIC1tYXBwLXJlZ3MgLW1uby1tbXggLW1uby1zc2UgCQktbW5vLXNzZTIgLW1uby1z c2UzIC1tbm8tc3NzZTMgLW1uby1zc2U0IC1tbm8tc3NlNC4xIC1tbm8tc3NlNC4yIAkJLW1uby1h dnggLW1uby1hZXMgLW1uby1wY2xtdWwgLW1uby1zc2U0YSAtbW5vLTNkbm93IC1tbm8tcG9wY250 IAkJLW1uby1hYm0gLW1pcHMxIC1taXBzMiAtbWlwczMgLW1pcHM0IC1taXBzMzIgLW1pcHM2NCAt bWlwczE2IC1tcGx0IAkJLW1zb2Z0LWZsb2F0IC1tbm8tc29mdC1mbG9hdCAtbWhhcmQtZmxvYXQg LW1uby1oYXJkLWZsb2F0IC1tZnB1IAkJLW1pZWVlIC1taWVlZS13aXRoLWluZXhhY3QgLW1zY2hl ZHVsZSAtbWZsb2F0LWdwcnMgLW1zcGUgLW1uby1zcGUgCQktbXRscy1kaXJlY3Qtc2VnLXJlZnMg LW1uby10bHMtZGlyZWN0LXNlZy1yZWZzIC1tZmxhdCAtbW5vLWZsYXQgCQktbW5vLWZhc3Rlci1z dHJ1Y3RzIC1tZmFzdGVyLXN0cnVjdHMgLW0zMiAtbTY0IC1teDMyIC1tYWJpIAkJLW1saXR0bGUt ZW5kaWFuIC1tYmlnLWVuZGlhbiAtRUwgLUVCIC1mUElDIC1tbGl2ZS1nMCAtbWNtb2RlbCAJCS1t c3RhY2stYmlhcyAtbW5vLXN0YWNrLWJpYXMgLW1zZWN1cmUtcGx0IC1tKi10b2MgLW1mbG9hdC1h Ymk9KiAJCS1EKiAtVSoiOwogICAgQUxMT1dFRF9GTEFHUys9IiAtbW5vLWZtYTQgLW1uby1tb3Zi ZSAtbW5vLXhvcCAtbW5vLWx3cCI7CiAgICBBTExPV0VEX0ZMQUdTKz0iIC1tbm8tZnNnc2Jhc2Ug LW1uby1yZHJuZCAtbW5vLWYxNmMgLW1uby1ibWkgLW1uby10Ym0iOwogICAgQUxMT1dFRF9GTEFH Uys9IiAtbW5vLWF2eDIgLW1uby1ibWkyIC1tbm8tZm1hIC1tbm8tbHpjbnQiOwogICAgQUxMT1dF RF9GTEFHUys9IiAtSSogLUwqIC1SKiAtV2wsKiI7CiAgICBleHBvcnQgQUxMT1dFRF9GTEFHUzsK ICAgIHJldHVybiAwCn0Kc3JjX2NvbXBpbGUgKCkgCnsgCiAgICBfZWFwaTJfc3JjX2NvbXBpbGUg IiRAIgp9CnNyY19jb25maWd1cmUgKCkgCnsgCiAgICBlYmxpdC1ydW4gc3JjX2NvbmZpZ3VyZSB2 NTAxNjAwMDEKfQpzcmNfaW5zdGFsbCAoKSAKeyAKICAgIGVibGl0LXJ1biBzcmNfaW5zdGFsbCB2 NTAxNjAwMDEKfQpzcmNfcHJlcGFyZSAoKSAKeyAKICAgIGVibGl0LXJ1biBzcmNfcHJlcGFyZSB2 NTAxNjAwMDEKfQpzcmNfcHJlcGFyZV91cGRhdGVfcGF0Y2hsZXZlbF9oICgpIAp7IAogICAgbG9j YWwgcGF0Y2hkaXI9IiR7V09SS0RJUn0vcGF0Y2hlcyI7CiAgICBsb2NhbCBwcmVmaXg7CiAgICBb WyAtZiAke3BhdGNoZGlyfS9zZXJpZXMgXV0gfHwgcmV0dXJuIDA7CiAgICB3aGlsZSByZWFkIHBh dGNoOyBkbwogICAgICAgIHBhdGNobmFtZT0kKGVjaG8gJHBhdGNoIHwgc2VkICdzL1wuZGlmZiQv LycpOwogICAgICAgIHNlZCAtZSAnL15TdWJqZWN0Oi8geyBOOyBzL1xuIC8gLyB9JyA8ICRwYXRj aGRpci8kcGF0Y2ggfCBzZWQgLW4gLWUgJwoKCSMgbWFzc2FnZSB0aGUgcGF0Y2ggaGVhZGVycwoJ c3xeQnVnOiAuKmh0dHBzXD86Ly9ydFwucGVybFwub3JnLy4qaWQ9XCguKlwpLip8W3BlcmwgI1wx XXw7IHRwcmVwZW5kOwoJc3xeQnVnOiAuKmh0dHBzXD86Ly9ydFwuY3Bhblwub3JnLy4qaWQ9XCgu KlwpLip8W3J0LmNwYW4ub3JnICNcMV18OyB0cHJlcGVuZDsKCXN8XkJ1Zy1HZW50b286IHx8OyB0 cHJlcGVuZDsKCXMvXlwoU3ViamVjdFx8RGVzY3JpcHRpb25cKTogLy87IHRhcHBlbmQ7CglzfF5P cmlnaW46IC4qaHR0cDovL3Blcmw1XC5naXRcLnBlcmxcLm9yZy9wZXJsXC5naXQvY29tbWl0XChk aWZmXClcPy9cKC4uLi4uLi5cKS4qfFtcMl18OyB0cHJlcGVuZDsKCgkjIHBvc3QtcHJvY2VzcyBh dCB0aGUgZW5kIG9mIGlucHV0CgkkIHsgeDsKCQkjIGluY2x1ZGUgdGhlIHZlcnNpb24gbnVtYmVy IGluIHRoZSBwYXRjaGxldmVsLmggZGVzY3JpcHRpb24gKGlmIGF2YWlsYWJsZSkKCQlzL0xpc3Qg cGFja2FnZWQgcGF0Y2hlcy8mJyIgZm9yICR7UEZ9KCMke1BBVENIX1ZFUn0pIicvOwoKCQkjIGVz Y2FwZSBhbnkgYmFja3NsYXNoZXMgYW5kIGRvdWJsZSBxdW90ZXMKCQlzfFxcfFxcXFx8Zzsgc3wi fFxcInxnOwoKCQkjIGFkZCBhIHByZWZpeAoJCXN8XnxcdCwiJyIkcHJlZml4JHBhdGNobmFtZSIn IC0gfDsKCQkjIG5ld2xpbmVzIGF3YXkKCQlzL1xuLyAvZzsgcy8gICovIC9nOwoJCSMgYWRkIGEg c3VmZml4CgkJcy8gKiQvIi87IHAKCX07CgkjIHN0b3AgYWxsIHByb2Nlc3NpbmcKCWQ7CgkjIGxh YmVsOiBhcHBlbmQgdG8gdGhlIGhvbGQgc3BhY2UKCTphcHBlbmQgSDsgZDsKCSMgbGFiZWw6IHBy ZXBlbmQgdG8gdGhlIGhvbGQgc3BhY2UKCTpwcmVwZW5kIHg7IEg7IGQ7CgknOwogICAgZG9uZSA8 ICIke1dPUktESVJ9Ii9wYXRjaGVzL3NlcmllcyA+ICIke1N9Ii9wYXRjaGxldmVsLWdlbnRvby5o Cn0Kc3JjX3JlbW92ZV9kdWFsICgpIAp7IAogICAgbG9jYWwgaSBwa2cgdmVyOwogICAgcGtnPSIk MSI7CiAgICB2ZXI9IiQyIjsKICAgIHNoaWZ0IDI7CiAgICBmb3IgaSBpbiAiJEAiOwogICAgZG8K ICAgICAgICBzcmNfcmVtb3ZlX2R1YWxfZmlsZSAiJHtwa2d9IiAiJHt2ZXJ9IiAiL3Vzci9iaW4v JHtpfSI7CiAgICAgICAgc3JjX3JlbW92ZV9kdWFsX21hbiAiJHtwa2d9IiAiJHt2ZXJ9IiAiL3Vz ci9zaGFyZS9tYW4vbWFuMS8ke2l9LjEiOwogICAgZG9uZQp9CnNyY19yZW1vdmVfZHVhbF9maWxl ICgpIAp7IAogICAgbG9jYWwgaSBwa2cgdmVyOwogICAgcGtnPSIkMSI7CiAgICB2ZXI9IiQyIjsK ICAgIHNoaWZ0IDI7CiAgICBjYXNlICIke0VCVUlMRF9QSEFTRTotbm9uZX0iIGluIAogICAgICAg IHBvc3RpbnN0IHwgcG9zdHJtKQogICAgICAgICAgICBmb3IgaSBpbiAiJEAiOwogICAgICAgICAg ICBkbwogICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmVzX2F1dG9fbWFrZXN5bSAiJHtpfSIgIiR7 aX0tWzAtOV0qIjsKICAgICAgICAgICAgZG9uZQogICAgICAgIDs7CiAgICAgICAgc2V0dXApCiAg ICAgICAgICAgIGZvciBpIGluICIkQCI7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBp ZiBbWyAtZiAke0VST09UfSR7aX0gJiYgISAtaCAke0VST09UfSR7aX0gXV07IHRoZW4KICAgICAg ICAgICAgICAgICAgICBoYXNfdmVyc2lvbiAke3BrZ30gJiYgZXdhcm4gIllvdSBtdXN0IHJlaW5z dGFsbCAke3BrZ30gISI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgZG9uZQogICAgICAgIDs7CiAgICAgICAgaW5zdGFsbCkKICAgICAg ICAgICAgZm9yIGkgaW4gIiRAIjsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgIGlmICEg W1sgLWYgIiR7RUR9IiR7aX0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBld2FybiAiJHtp fSBkb2VzIG5vdCBleGlzdCEiOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg ICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBtdiAiJHtFRH0iJHtpfXssLSR7dmVyfS0ke1B9 fSB8fCBkaWU7CiAgICAgICAgICAgIGRvbmUKICAgICAgICA7OwogICAgZXNhYwp9CnNyY19yZW1v dmVfZHVhbF9tYW4gKCkgCnsgCiAgICBsb2NhbCBpIHBrZyB2ZXIgZmY7CiAgICBwa2c9IiQxIjsK ICAgIHZlcj0iJDIiOwogICAgc2hpZnQgMjsKICAgIGNhc2UgIiR7RUJVSUxEX1BIQVNFOi1ub25l fSIgaW4gCiAgICAgICAgcG9zdGluc3QgfCBwb3N0cm0pCiAgICAgICAgICAgIGZvciBpIGluICIk QCI7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBmZj1gZWNobyAiJHtFUk9PVH0ke2kl LlswLTldfS0ke3Zlcn0tJHtQfSR7aSMke2klLlswLTldfX0iKmA7CiAgICAgICAgICAgICAgICBm Zj0ke2ZmIyMqJHtpIyR7aSUuWzAtOV19fX07CiAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZXNf YXV0b19tYWtlc3ltICIke2l9JHtmZn0iICIke2klLlswLTldfS1bMC05XSoiOwogICAgICAgICAg ICBkb25lCiAgICAgICAgOzsKICAgICAgICBpbnN0YWxsKQogICAgICAgICAgICBmb3IgaSBpbiAi JEAiOwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgISBbWyAtZiAiJHtFRH0iJHtp fSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGV3YXJuICIke2l9IGRvZXMgbm90IGV4aXN0 ISI7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBmaTsKICAg ICAgICAgICAgICAgIG12ICIke0VEfSIke2l9ICIke0VEfSIke2klLlswLTldfS0ke3Zlcn0tJHtQ fSR7aSMke2klLlswLTldfX0gfHwgZGllOwogICAgICAgICAgICBkb25lCiAgICAgICAgOzsKICAg IGVzYWMKfQpzcmNfdGVzdCAoKSAKeyAKICAgIGVibGl0LXJ1biBzcmNfdGVzdCB2NTAxNjAwMDEK fQpzcmNfdW5wYWNrICgpIAp7IAogICAgX2VhcGkwX3NyY191bnBhY2sgIiRAIgp9CnN0cmlwLWZs YWdzICgpIAp7IAogICAgbG9jYWwgeCB5IHZhcjsKICAgIHNldHVwLWFsbG93ZWQtZmxhZ3M7CiAg ICBzZXQgLWY7CiAgICBmb3IgdmFyIGluICQoYWxsLWZsYWctdmFycyk7CiAgICBkbwogICAgICAg IGxvY2FsIG5ldz0oKTsKICAgICAgICBmb3IgeCBpbiAkeyF2YXJ9OwogICAgICAgIGRvCiAgICAg ICAgICAgIGxvY2FsIGZsYWc9JHt4JSU9Kn07CiAgICAgICAgICAgIGZvciB5IGluICR7QUxMT1dF RF9GTEFHU307CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBbWyAteiAke2ZsYWcl JSR7eX19IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgbmV3Kz0oIiR7eH0iKTsKICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBkb25l OwogICAgICAgIGRvbmU7CiAgICAgICAgaWYgX2lzX2ZsYWdxICR7dmFyfSAiLU8qIiAmJiAhIF9p c19mbGFncSBuZXcgIi1PKiI7IHRoZW4KICAgICAgICAgICAgbmV3Kz0oLU8yKTsKICAgICAgICBm aTsKICAgICAgICBldmFsIGV4cG9ydCAke3Zhcn09XCIiJHtuZXdbKl19IlwiOwogICAgZG9uZTsK ICAgIHNldCArZjsKICAgIHJldHVybiAwCn0Kc3RyaXAtbGluZ3VhcyAoKSAKeyAKICAgIGxvY2Fs IGxzIG5ld2xzIG5vbHM7CiAgICBpZiBbWyAkMSA9PSAiLWkiIF1dIHx8IFtbICQxID09ICItdSIg XV07IHRoZW4KICAgICAgICBsb2NhbCBvcD0kMTsKICAgICAgICBzaGlmdDsKICAgICAgICBscz0k KGZpbmQgIiQxIiAtbmFtZSAnKi5wbycgLWV4ZWMgYmFzZW5hbWUge30gLnBvICc7Jyk7CiAgICAg ICAgc2hpZnQ7CiAgICAgICAgbG9jYWwgZCBmOwogICAgICAgIGZvciBkIGluICIkQCI7CiAgICAg ICAgZG8KICAgICAgICAgICAgaWYgW1sgJHtvcH0gPT0gIi11IiBdXTsgdGhlbgogICAgICAgICAg ICAgICAgbmV3bHM9JHtsc307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIG5ld2xz PSIiOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgZm9yIGYgaW4gJChmaW5kICIkZCIgLW5h bWUgJyoucG8nIC1leGVjIGJhc2VuYW1lIHt9IC5wbyAnOycpOwogICAgICAgICAgICBkbwogICAg ICAgICAgICAgICAgaWYgW1sgJHtvcH0gPT0gIi1pIiBdXTsgdGhlbgogICAgICAgICAgICAgICAg ICAgIGhhcyAke2Z9ICR7bHN9ICYmIG5ld2xzPSIke25ld2xzfSAke2Z9IjsKICAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBoYXMgJHtmfSAke2xzfSB8fCBuZXdscz0iJHtu ZXdsc30gJHtmfSI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZG9uZTsKICAgICAg ICAgICAgbHM9JHtuZXdsc307CiAgICAgICAgZG9uZTsKICAgIGVsc2UKICAgICAgICBscz0iJEAi OwogICAgZmk7CiAgICBub2xzPSIiOwogICAgbmV3bHM9IiI7CiAgICBmb3IgZiBpbiAke0xJTkdV QVN9OwogICAgZG8KICAgICAgICBpZiBoYXMgJHtmfSAke2xzfTsgdGhlbgogICAgICAgICAgICBu ZXdscz0iJHtuZXdsc30gJHtmfSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBub2xzPSIke25v bHN9ICR7Zn0iOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIFtbIC1uICR7bm9sc30gXV0gJiYg ZWluZm8gIlNvcnJ5LCBidXQgJHtQTn0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgTElOR1VBUzoiICR7 bm9sc307CiAgICBleHBvcnQgTElOR1VBUz0ke25ld2xzOjF9Cn0Kc3RyaXAtdW5zdXBwb3J0ZWQt ZmxhZ3MgKCkgCnsgCiAgICBleHBvcnQgQ0ZMQUdTPSQodGVzdC1mbGFncy1DQyAke0NGTEFHU30p OwogICAgZXhwb3J0IENYWEZMQUdTPSQodGVzdC1mbGFncy1DWFggJHtDWFhGTEFHU30pOwogICAg ZXhwb3J0IEZGTEFHUz0kKHRlc3QtZmxhZ3MtRjc3ICR7RkZMQUdTfSk7CiAgICBleHBvcnQgRkNG TEFHUz0kKHRlc3QtZmxhZ3MtRkMgJHtGQ0ZMQUdTfSkKfQp0Yy1hcmNoICgpIAp7IAogICAgdGMt bmluamFfbWFnaWNfdG9fYXJjaCBwb3J0YWdlICIkQCIKfQp0Yy1hcmNoLWtlcm5lbCAoKSAKeyAK ICAgIHRjLW5pbmphX21hZ2ljX3RvX2FyY2gga2VybiAiJEAiCn0KdGMtZW5kaWFuICgpIAp7IAog ICAgbG9jYWwgaG9zdD0kMTsKICAgIFtbIC16ICR7aG9zdH0gXV0gJiYgaG9zdD0ke0NUQVJHRVQ6 LSR7Q0hPU1R9fTsKICAgIGhvc3Q9JHtob3N0JSUtKn07CiAgICBjYXNlICR7aG9zdH0gaW4gCiAg ICAgICAgYWxwaGEqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJt KmIqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJtKikKICAgICAg ICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGNyaXMqKQogICAgICAgICAgICBl Y2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAgICAgICAgICAgIGVjaG8gYmln CiAgICAgICAgOzsKICAgICAgICBpPzg2KikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAg ICA7OwogICAgICAgIGlhNjQqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAg ICAgICAgbTY4KikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIG1pcHMq bCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAg ICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHBvd2VycGMqKQogICAgICAgICAg ICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgczM5MCopCiAgICAgICAgICAgIGVjaG8gYmln CiAgICAgICAgOzsKICAgICAgICBzaCpiKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7 OwogICAgICAgIHNoKikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAg IHNwYXJjKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHg4Nl82NCop CiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAg ICBlY2hvIHd0ZgogICAgICAgIDs7CiAgICBlc2FjCn0KdGMtZW52X2J1aWxkICgpIAp7IAogICAg dGMtZXhwb3J0X2J1aWxkX2VudjsKICAgIENGTEFHUz0ke0JVSUxEX0NGTEFHU30gQ1hYRkxBR1M9 JHtCVUlMRF9DWFhGTEFHU30gQ1BQRkxBR1M9JHtCVUlMRF9DUFBGTEFHU30gTERGTEFHUz0ke0JV SUxEX0xERkxBR1N9IEFSPSQodGMtZ2V0QlVJTERfQVIpIEFTPSQodGMtZ2V0QlVJTERfQVMpIEND PSQodGMtZ2V0QlVJTERfQ0MpIENQUD0kKHRjLWdldEJVSUxEX0NQUCkgQ1hYPSQodGMtZ2V0QlVJ TERfQ1hYKSBMRD0kKHRjLWdldEJVSUxEX0xEKSBOTT0kKHRjLWdldEJVSUxEX05NKSBQS0dfQ09O RklHPSQodGMtZ2V0QlVJTERfUEtHX0NPTkZJRykgUkFOTElCPSQodGMtZ2V0QlVJTERfUkFOTElC KSAiJEAiCn0KdGMtZXhwb3J0ICgpIAp7IAogICAgbG9jYWwgdmFyOwogICAgZm9yIHZhciBpbiAi JEAiOwogICAgZG8KICAgICAgICBbWyAkKHR5cGUgLXQgdGMtZ2V0JHt2YXJ9KSAhPSAiZnVuY3Rp b24iIF1dICYmIGRpZSAidGMtZXhwb3J0OiBpbnZhbGlkIGV4cG9ydCB2YXJpYWJsZSAnJHt2YXJ9 JyI7CiAgICAgICAgZXZhbCB0Yy1nZXQke3Zhcn0gPiAvZGV2L251bGw7CiAgICBkb25lCn0KdGMt ZXhwb3J0X2J1aWxkX2VudiAoKSAKeyAKICAgIHRjLWV4cG9ydCAiJEAiOwogICAgOiAke0JVSUxE X0NGTEFHUzo9LU8xIC1waXBlfTsKICAgIDogJHtCVUlMRF9DWFhGTEFHUzo9LU8xIC1waXBlfTsK ICAgIDogJHtCVUlMRF9DUFBGTEFHUzo9fTsKICAgIDogJHtCVUlMRF9MREZMQUdTOj19OwogICAg ZXhwb3J0IEJVSUxEX3tDLENYWCxDUFAsTER9RkxBR1MKfQp0Yy1nZXRBUiAoKSAKeyAKICAgIHRj LWdldFBST0cgQVIgYXIgIiRAIgp9CnRjLWdldEFTICgpIAp7IAogICAgdGMtZ2V0UFJPRyBBUyBh cyAiJEAiCn0KdGMtZ2V0QlVJTERfQVIgKCkgCnsgCiAgICB0Yy1nZXRCVUlMRF9QUk9HIEFSIGFy ICIkQCIKfQp0Yy1nZXRCVUlMRF9BUyAoKSAKeyAKICAgIHRjLWdldEJVSUxEX1BST0cgQVMgYXMg IiRAIgp9CnRjLWdldEJVSUxEX0NDICgpIAp7IAogICAgdGMtZ2V0QlVJTERfUFJPRyBDQyBnY2Mg IiRAIgp9CnRjLWdldEJVSUxEX0NQUCAoKSAKeyAKICAgIHRjLWdldEJVSUxEX1BST0cgQ1BQIGNw cCAiJEAiCn0KdGMtZ2V0QlVJTERfQ1hYICgpIAp7IAogICAgdGMtZ2V0QlVJTERfUFJPRyBDWFgg ZysrICIkQCIKfQp0Yy1nZXRCVUlMRF9MRCAoKSAKeyAKICAgIHRjLWdldEJVSUxEX1BST0cgTEQg bGQgIiRAIgp9CnRjLWdldEJVSUxEX05NICgpIAp7IAogICAgdGMtZ2V0QlVJTERfUFJPRyBOTSBu bSAiJEAiCn0KdGMtZ2V0QlVJTERfT0JKQ09QWSAoKSAKeyAKICAgIHRjLWdldEJVSUxEX1BST0cg T0JKQ09QWSBvYmpjb3B5ICIkQCIKfQp0Yy1nZXRCVUlMRF9QS0dfQ09ORklHICgpIAp7IAogICAg dGMtZ2V0QlVJTERfUFJPRyBQS0dfQ09ORklHIHBrZy1jb25maWcgIiRAIgp9CnRjLWdldEJVSUxE X1BST0cgKCkgCnsgCiAgICBfdGMtZ2V0UFJPRyBDQlVJTEQgIkJVSUxEXyQxICQxX0ZPUl9CVUlM RCBIT1NUJDEiICIke0A6Mn0iCn0KdGMtZ2V0QlVJTERfUkFOTElCICgpIAp7IAogICAgdGMtZ2V0 QlVJTERfUFJPRyBSQU5MSUIgcmFubGliICIkQCIKfQp0Yy1nZXRCVUlMRF9TVFJJUCAoKSAKeyAK ICAgIHRjLWdldEJVSUxEX1BST0cgU1RSSVAgc3RyaXAgIiRAIgp9CnRjLWdldENDICgpIAp7IAog ICAgdGMtZ2V0UFJPRyBDQyBnY2MgIiRAIgp9CnRjLWdldENQUCAoKSAKeyAKICAgIHRjLWdldFBS T0cgQ1BQIGNwcCAiJEAiCn0KdGMtZ2V0Q1hYICgpIAp7IAogICAgdGMtZ2V0UFJPRyBDWFggZysr ICIkQCIKfQp0Yy1nZXRETExXUkFQICgpIAp7IAogICAgdGMtZ2V0UFJPRyBETExXUkFQIGRsbHdy YXAgIiRAIgp9CnRjLWdldEY3NyAoKSAKeyAKICAgIHRjLWdldFBST0cgRjc3IGdmb3J0cmFuICIk QCIKfQp0Yy1nZXRGQyAoKSAKeyAKICAgIHRjLWdldFBST0cgRkMgZ2ZvcnRyYW4gIiRAIgp9CnRj LWdldEdDSiAoKSAKeyAKICAgIHRjLWdldFBST0cgR0NKIGdjaiAiJEAiCn0KdGMtZ2V0TEQgKCkg CnsgCiAgICB0Yy1nZXRQUk9HIExEIGxkICIkQCIKfQp0Yy1nZXROTSAoKSAKeyAKICAgIHRjLWdl dFBST0cgTk0gbm0gIiRAIgp9CnRjLWdldE9CSkNPUFkgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIE9C SkNPUFkgb2JqY29weSAiJEAiCn0KdGMtZ2V0UEtHX0NPTkZJRyAoKSAKeyAKICAgIHRjLWdldFBS T0cgUEtHX0NPTkZJRyBwa2ctY29uZmlnICIkQCIKfQp0Yy1nZXRQUk9HICgpIAp7IAogICAgX3Rj LWdldFBST0cgQ0hPU1QgIiRAIgp9CnRjLWdldFJBTkxJQiAoKSAKeyAKICAgIHRjLWdldFBST0cg UkFOTElCIHJhbmxpYiAiJEAiCn0KdGMtZ2V0UkMgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIFJDIHdp bmRyZXMgIiRAIgp9CnRjLWdldFNUUklQICgpIAp7IAogICAgdGMtZ2V0UFJPRyBTVFJJUCBzdHJp cCAiJEAiCn0KdGMtaGFzLW9wZW5tcCAoKSAKeyAKICAgIGxvY2FsIGJhc2U9IiR7VH0vdGVzdC10 Yy1vcGVubXAiOwogICAgY2F0ID4gIiR7YmFzZX0uYyIgIDw8LUVPRgojaW5jbHVkZSA8b21wLmg+ CmludCBtYWluKCkgewppbnQgbnRocmVhZHMsIHRpZCwgcmV0ID0gMDsKI3ByYWdtYSBvbXAgcGFy YWxsZWwgcHJpdmF0ZShudGhyZWFkcywgdGlkKQp7CnRpZCA9IG9tcF9nZXRfdGhyZWFkX251bSgp OwpudGhyZWFkcyA9IG9tcF9nZXRfbnVtX3RocmVhZHMoKTsgcmV0ICs9IHRpZCArIG50aHJlYWRz Owp9CnJldHVybiByZXQ7Cn0KRU9GCgogICAgJCh0Yy1nZXRDQyAiJEAiKSAtZm9wZW5tcCAiJHti YXNlfS5jIiAtbyAiJHtiYXNlfSIgJj4vZGV2L251bGw7CiAgICBsb2NhbCByZXQ9JD87CiAgICBy bSAtZiAiJHtiYXNlfSIqOwogICAgcmV0dXJuICR7cmV0fQp9CnRjLWhhcy10bHMgKCkgCnsgCiAg ICBsb2NhbCBiYXNlPSIke1R9L3Rlc3QtdGMtdGxzIjsKICAgIGNhdCA+ICIke2Jhc2V9LmMiICA8 PC1FT0YKaW50IGZvbyhpbnQgKmkpIHsKc3RhdGljIF9fdGhyZWFkIGludCBqID0gMDsKcmV0dXJu ICppID8gaiA6ICppOwp9CkVPRgoKICAgIGxvY2FsIGZsYWdzOwogICAgY2FzZSAkMSBpbiAKICAg ICAgICAtcykKICAgICAgICAgICAgZmxhZ3M9Ii1TIgogICAgICAgIDs7CiAgICAgICAgLWMpCiAg ICAgICAgICAgIGZsYWdzPSItYyIKICAgICAgICA7OwogICAgICAgIC1sKQoKICAgICAgICA7Owog ICAgICAgIC0qKQogICAgICAgICAgICBkaWUgIlVzYWdlOiB0Yy1oYXMtdGxzIFstY3wtbF0gW3Rv b2xjaGFpbiBwcmVmaXhdIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgOiAke2ZsYWdzOj0tZlBJ QyAtc2hhcmVkIC1XbCwteixkZWZzfTsKICAgIFtbICQxID09IC0qIF1dICYmIHNoaWZ0OwogICAg JCh0Yy1nZXRDQyAiJEAiKSAke2ZsYWdzfSAiJHtiYXNlfS5jIiAtbyAiJHtiYXNlfSIgJj4vZGV2 L251bGw7CiAgICBsb2NhbCByZXQ9JD87CiAgICBybSAtZiAiJHtiYXNlfSIqOwogICAgcmV0dXJu ICR7cmV0fQp9CnRjLWlzLWNyb3NzLWNvbXBpbGVyICgpIAp7IAogICAgcmV0dXJuICQoW1sgJHtD QlVJTEQ6LSR7Q0hPU1R9fSAhPSAke0NIT1NUfSBdXSkKfQp0Yy1pcy1zb2Z0ZmxvYXQgKCkgCnsg CiAgICBsb2NhbCBDVEFSR0VUPSR7Q1RBUkdFVDotJHtDSE9TVH19OwogICAgY2FzZSAke0NUQVJH RVR9IGluIAogICAgICAgIGJmaW4qIHwgaDgzMDAqKQogICAgICAgICAgICBlY2hvICJvbmx5Igog ICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgaWYgW1sgJHtDVEFSR0VULy9fLy19ID09 ICotc29mdGZsb2F0LSogXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gInllcyI7CiAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtbICR7Q1RBUkdFVC8vXy8tfSA9PSAqLXNv ZnRmcC0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWNobyAic29mdGZwIjsKICAgICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBlY2hvICJubyI7CiAgICAgICAgICAg ICAgICBmaTsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgZXNhYwp9CnRjLWlzLXN0YXRp Yy1vbmx5ICgpIAp7IAogICAgbG9jYWwgaG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIHJl dHVybiAkKFtbICR7aG9zdH0gPT0gKi1taW50KiBdXSkKfQp0Yy1uaW5qYV9tYWdpY190b19hcmNo ICgpIAp7IAogICAgZnVuY3Rpb24gbmluaiAoKSAKICAgIHsgCiAgICAgICAgW1sgJHt0eXBlfSA9 PSAia2VybiIgXV0gJiYgZWNobyAkMSB8fCBlY2hvICQyCiAgICB9OwogICAgbG9jYWwgdHlwZT0k MTsKICAgIGxvY2FsIGhvc3Q9JDI7CiAgICBbWyAteiAke2hvc3R9IF1dICYmIGhvc3Q9JHtDVEFS R0VUOi0ke0NIT1NUfX07CiAgICBjYXNlICR7aG9zdH0gaW4gCiAgICAgICAgcG93ZXJwYy1hcHBs ZS1kYXJ3aW4qKQogICAgICAgICAgICBlY2hvIHBwYy1tYWNvcwogICAgICAgIDs7CiAgICAgICAg cG93ZXJwYzY0LWFwcGxlLWRhcndpbiopCiAgICAgICAgICAgIGVjaG8gcHBjNjQtbWFjb3MKICAg ICAgICA7OwogICAgICAgIGk/ODYtYXBwbGUtZGFyd2luKikKICAgICAgICAgICAgZWNobyB4ODYt bWFjb3MKICAgICAgICA7OwogICAgICAgIHg4Nl82NC1hcHBsZS1kYXJ3aW4qKQogICAgICAgICAg ICBlY2hvIHg2NC1tYWNvcwogICAgICAgIDs7CiAgICAgICAgc3BhcmMtc3VuLXNvbGFyaXMqKQog ICAgICAgICAgICBlY2hvIHNwYXJjLXNvbGFyaXMKICAgICAgICA7OwogICAgICAgIHNwYXJjdjkt c3VuLXNvbGFyaXMqKQogICAgICAgICAgICBlY2hvIHNwYXJjNjQtc29sYXJpcwogICAgICAgIDs7 CiAgICAgICAgaT84Ni1wYy1zb2xhcmlzKikKICAgICAgICAgICAgZWNobyB4ODYtc29sYXJpcwog ICAgICAgIDs7CiAgICAgICAgeDg2XzY0LXBjLXNvbGFyaXMqKQogICAgICAgICAgICBlY2hvIHg2 NC1zb2xhcmlzCiAgICAgICAgOzsKICAgICAgICBwb3dlcnBjLWlibS1haXgqKQogICAgICAgICAg ICBlY2hvIHBwYy1haXgKICAgICAgICA7OwogICAgICAgIG1pcHMtc2dpLWlyaXgqKQogICAgICAg ICAgICBlY2hvIG1pcHMtaXJpeAogICAgICAgIDs7CiAgICAgICAgaWE2NHctaHAtaHB1eCopCiAg ICAgICAgICAgIGVjaG8gaWE2NHctaHB1eAogICAgICAgIDs7CiAgICAgICAgaWE2NC1ocC1ocHV4 KikKICAgICAgICAgICAgZWNobyBpYTY0LWhwdXgKICAgICAgICA7OwogICAgICAgIGhwcGEqNjQq LWhwLWhwdXgqKQogICAgICAgICAgICBlY2hvIGhwcGE2NC1ocHV4CiAgICAgICAgOzsKICAgICAg ICBocHBhKi1ocC1ocHV4KikKICAgICAgICAgICAgZWNobyBocHBhLWhwdXgKICAgICAgICA7Owog ICAgICAgIGk/ODYtcGMtZnJlZWJzZCopCiAgICAgICAgICAgIGVjaG8geDg2LWZyZWVic2QKICAg ICAgICA7OwogICAgICAgIHg4Nl82NC1wYy1mcmVlYnNkKikKICAgICAgICAgICAgZWNobyB4NjQt ZnJlZWJzZAogICAgICAgIDs7CiAgICAgICAgcG93ZXJwYy11bmtub3duLW9wZW5ic2QqKQogICAg ICAgICAgICBlY2hvIHBwYy1vcGVuYnNkCiAgICAgICAgOzsKICAgICAgICBpPzg2LXBjLW9wZW5i c2QqKQogICAgICAgICAgICBlY2hvIHg4Ni1vcGVuYnNkCiAgICAgICAgOzsKICAgICAgICB4ODZf NjQtcGMtb3BlbmJzZCopCiAgICAgICAgICAgIGVjaG8geDY0LW9wZW5ic2QKICAgICAgICA7Owog ICAgICAgIGk/ODYtcGMtbmV0YnNkKikKICAgICAgICAgICAgZWNobyB4ODYtbmV0YnNkCiAgICAg ICAgOzsKICAgICAgICBpPzg2LXBjLWludGVyaXgqKQogICAgICAgICAgICBlY2hvIHg4Ni1pbnRl cml4CiAgICAgICAgOzsKICAgICAgICBpPzg2LXBjLXdpbm50KikKICAgICAgICAgICAgZWNobyB4 ODYtd2lubnQKICAgICAgICA7OwogICAgICAgIGFscGhhKikKICAgICAgICAgICAgZWNobyBhbHBo YQogICAgICAgIDs7CiAgICAgICAgYXJtKikKICAgICAgICAgICAgZWNobyBhcm0KICAgICAgICA7 OwogICAgICAgIGF2ciopCiAgICAgICAgICAgIG5pbmogYXZyMzIgYXZyCiAgICAgICAgOzsKICAg ICAgICBiZmluKikKICAgICAgICAgICAgbmluaiBibGFja2ZpbiBiZmluCiAgICAgICAgOzsKICAg ICAgICBjcmlzKikKICAgICAgICAgICAgZWNobyBjcmlzCiAgICAgICAgOzsKICAgICAgICBocHBh KikKICAgICAgICAgICAgbmluaiBwYXJpc2MgaHBwYQogICAgICAgIDs7CiAgICAgICAgaT84Niop CiAgICAgICAgICAgIGlmIFtbICR7dHlwZX0gPT0gImtlcm4iIF1dICYmIFtbICQoS1ZfdG9faW50 ICR7S1Z9KSAtbHQgJChLVl90b19pbnQgMi42LjI0KSB8fCAke2hvc3R9ID09ICpmcmVlYnNkKiBd XTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyBpMzg2OwogICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICBlY2hvIHg4NjsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAgIGlh NjQqKQogICAgICAgICAgICBlY2hvIGlhNjQKICAgICAgICA7OwogICAgICAgIG02OCopCiAgICAg ICAgICAgIGVjaG8gbTY4awogICAgICAgIDs7CiAgICAgICAgbWlwcyopCiAgICAgICAgICAgIGVj aG8gbWlwcwogICAgICAgIDs7CiAgICAgICAgbmlvczIqKQogICAgICAgICAgICBlY2hvIG5pb3My CiAgICAgICAgOzsKICAgICAgICBuaW9zKikKICAgICAgICAgICAgZWNobyBuaW9zCiAgICAgICAg OzsKICAgICAgICBwb3dlcnBjKikKICAgICAgICAgICAgaWYgW1sgJHt0eXBlfSA9PSAia2VybiIg XV0gJiYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1nZSAkKEtWX3RvX2ludCAyLjYuMTYpIF1dOyB0 aGVuCiAgICAgICAgICAgICAgICBlY2hvIHBvd2VycGM7CiAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgIGlmIFtbICR7dHlwZX0gPT0gImtlcm4iIF1dICYmIFtbICQoS1ZfdG9faW50ICR7 S1Z9KSAtZXEgJChLVl90b19pbnQgMi42LjE1KSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAg IGlmIFtbICR7aG9zdH0gPT0gcG93ZXJwYzY0KiBdXSB8fCBbWyAke1BST0ZJTEVfQVJDSH0gPT0g InBwYzY0IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHBvd2VycGM7CiAg ICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHBwYzsK ICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgICAgICBpZiBbWyAke2hvc3R9ID09IHBvd2VycGM2NCogXV07IHRoZW4KICAgICAgICAgICAg ICAgICAgICAgICAgZWNobyBwcGM2NDsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIGlmIFtbICR7UFJPRklMRV9BUkNIfSA9PSAicHBjNjQiIF1dOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaW5qIHBwYzY0IHBwYzsKICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwcGM7CiAg ICAgICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAg ICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICBzMzkwKikKICAg ICAgICAgICAgZWNobyBzMzkwCiAgICAgICAgOzsKICAgICAgICBzaDY0KikKICAgICAgICAgICAg bmluaiBzaDY0IHNoCiAgICAgICAgOzsKICAgICAgICBzaCopCiAgICAgICAgICAgIGVjaG8gc2gK ICAgICAgICA7OwogICAgICAgIHNwYXJjNjQqKQogICAgICAgICAgICBuaW5qIHNwYXJjNjQgc3Bh cmMKICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgW1sgJHtQUk9GSUxFX0FS Q0h9ID09ICJzcGFyYzY0IiBdXSAmJiBuaW5qIHNwYXJjNjQgc3BhcmMgfHwgZWNobyBzcGFyYwog ICAgICAgIDs7CiAgICAgICAgdmF4KikKICAgICAgICAgICAgZWNobyB2YXgKICAgICAgICA7Owog ICAgICAgIHg4Nl82NCpmcmVlYnNkKikKICAgICAgICAgICAgZWNobyBhbWQ2NAogICAgICAgIDs7 CiAgICAgICAgeDg2XzY0KikKICAgICAgICAgICAgaWYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV0g JiYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1nZSAkKEtWX3RvX2ludCAyLjYuMjQpIF1dOyB0aGVu CiAgICAgICAgICAgICAgICBlY2hvIHg4NjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg ICAgbmluaiB4ODZfNjQgYW1kNjQ7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAq KQogICAgICAgICAgICBlY2hvIHVua25vd24KICAgICAgICA7OwogICAgZXNhYwp9CnRlc3QtZmxh Zy1DQyAoKSAKeyAKICAgIHRlc3QtZmxhZy1QUk9HICJDQyIgIiQxIgp9CnRlc3QtZmxhZy1DWFgg KCkgCnsgCiAgICB0ZXN0LWZsYWctUFJPRyAiQ1hYIiAiJDEiCn0KdGVzdC1mbGFnLUY3NyAoKSAK eyAKICAgIHRlc3QtZmxhZy1QUk9HICJGNzciICIkMSIKfQp0ZXN0LWZsYWctRkMgKCkgCnsgCiAg ICB0ZXN0LWZsYWctUFJPRyAiRkMiICIkMSIKfQp0ZXN0LWZsYWctUFJPRyAoKSAKeyAKICAgIGxv Y2FsIGNvbXA9JDE7CiAgICBsb2NhbCBmbGFnPSQyOwogICAgW1sgLXogJHtjb21wfSB8fCAteiAk e2ZsYWd9IF1dICYmIHJldHVybiAxOwogICAgbG9jYWwgc3JjPSR7VH0vdGYtJHtjb21wfS0ke1NF Q09ORFN9LmM7CiAgICBlY2hvICJtYWluKCkge30iID4gIiR7c3JjfSI7CiAgICBsb2NhbCBQUk9H PSQodGMtZ2V0JHtjb21wfSk7CiAgICAke1BST0d9ICIke2ZsYWd9IiAtYyAtbyAiJHtzcmN9Lm8i ICIke3NyY30iID4gL2Rldi9udWxsIDI+JjE7CiAgICBsb2NhbCByZXQ9JD87CiAgICBybSAtZiAi JHtzcmN9InssLm99OwogICAgW1sgJHtyZXR9ID09IDAgXV0gJiYgdHJ1ZSB8fCBmYWxzZQp9CnRl c3QtZmxhZ3MgKCkgCnsgCiAgICB0ZXN0LWZsYWdzLUNDICIkQCIKfQp0ZXN0LWZsYWdzLUNDICgp IAp7IAogICAgdGVzdC1mbGFncy1QUk9HICJDQyIgIiRAIgp9CnRlc3QtZmxhZ3MtQ1hYICgpIAp7 IAogICAgdGVzdC1mbGFncy1QUk9HICJDWFgiICIkQCIKfQp0ZXN0LWZsYWdzLUY3NyAoKSAKeyAK ICAgIHRlc3QtZmxhZ3MtUFJPRyAiRjc3IiAiJEAiCn0KdGVzdC1mbGFncy1GQyAoKSAKeyAKICAg IHRlc3QtZmxhZ3MtUFJPRyAiRkMiICIkQCIKfQp0ZXN0LWZsYWdzLVBST0cgKCkgCnsgCiAgICBs b2NhbCBjb21wPSQxOwogICAgbG9jYWwgZmxhZ3M7CiAgICBsb2NhbCB4OwogICAgc2hpZnQ7CiAg ICBbWyAteiAke2NvbXB9IF1dICYmIHJldHVybiAxOwogICAgZm9yIHggaW4gIiRAIjsKICAgIGRv CiAgICAgICAgdGVzdC1mbGFnLSR7Y29tcH0gIiR7eH0iICYmIGZsYWdzPSIke2ZsYWdzfSR7Zmxh Z3M6KyB9JHt4fSIgfHwgZXdhcm4gInJlbW92aW5nICR7eH0gYmVjYXVzZSAke2NvbXB9IHJlamVj dGVkIGl0IjsKICAgIGRvbmU7CiAgICBlY2hvICIke2ZsYWdzfSI7CiAgICBbWyAtbiAke2ZsYWdz fSBdXQp9CnRlc3RfdmVyc2lvbl9pbmZvICgpIAp7IAogICAgaWYgW1sgJCgkKHRjLWdldENDKSAt LXZlcnNpb24gMj4mMSkgPT0gKiQxKiBdXTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZWxz ZQogICAgICAgIHJldHVybiAxOwogICAgZmkKfQp1c2VfaWZfaXVzZSAoKSAKeyAKICAgIGluX2l1 c2UgJDEgfHwgcmV0dXJuIDE7CiAgICB1c2UgJDEKfQp1c2V4ICgpIAp7IAogICAgdXNlICIkMSIg JiYgZWNobyAiJHsyLXllc30kNCIgfHwgZWNobyAiJHszLW5vfSQ1Igp9CnZhbGlkYXRlX2Rlc2t0 b3BfZW50cmllcyAoKSAKeyAKICAgIGlmIFtbIC14ICIke0VQUkVGSVh9Ii91c3IvYmluL2Rlc2t0 b3AtZmlsZS12YWxpZGF0ZSBdXTsgdGhlbgogICAgICAgIGVpbmZvICJDaGVja2luZyBkZXNrdG9w IGVudHJ5IHZhbGlkaXR5IjsKICAgICAgICBsb2NhbCBkaXJlY3Rvcmllcz0iIjsKICAgICAgICBm b3IgZCBpbiAvdXNyL3NoYXJlL2FwcGxpY2F0aW9ucyAkQDsKICAgICAgICBkbwogICAgICAgICAg ICBbWyAtZCAke0VEfSR7ZH0gXV0gJiYgZGlyZWN0b3JpZXM9IiR7ZGlyZWN0b3JpZXN9ICR7RUR9 JHtkfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsg dGhlbgogICAgICAgICAgICBmb3IgRklMRSBpbiAkKGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUg IipcLmRlc2t0b3AiIAkJCQkJCQktbm90IC1wYXRoICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9k ZXYvbnVsbCk7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVz a3RvcC1maWxlLXZhbGlkYXRlICR7RklMRX0gfCBncmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJ CXNlZCAtZSAic3xlcnJvcjogfHwiIC1lICJzfCR7RklMRX06fC0tfGciICk7CiAgICAgICAgICAg ICAgICBbWyAtbiAkdGVtcCBdXSAmJiBlbG9nICR7dGVtcC8tLS8ke0ZJTEUvJHtFRH0vfTp9Owog ICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgICAgIGVjaG8gIiI7CiAgICBlbHNlCiAg ICAgICAgZWluZm8gIlBhc3NpbmcgZGVza3RvcCBlbnRyeSB2YWxpZGl0eSBjaGVjay4gSW5zdGFs bCBkZXYtdXRpbC9kZXNrdG9wLWZpbGUtdXRpbHMsIGlmIHlvdSB3YW50IHRvIGhlbHAgdG8gaW1w cm92ZSBHZW50b28uIjsKICAgIGZpCn0K --f46d04016cd59904a104d3ab873a Content-Type: application/octet-stream; name="gentoo-build.log" Content-Disposition: attachment; filename="gentoo-build.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hc5bbvfd1 ICogUGFja2FnZTogICAgZGV2LWxhbmcvcGVybC01LjE2LjEKICogUmVwb3NpdG9yeTogZ2VudG9v X3ByZWZpeAogKiBVU0U6ICAgICAgICBhbWQ2NCBib290c3RyYXAgZWxpYmNfZ2xpYmMga2VybmVs X2xpbnV4IHByZWZpeCB1c2VybGFuZF9HTlUKICogRkVBVFVSRVM6ICAgcHJlc2VydmUtbGlicwo+ Pj4gVW5wYWNraW5nIHNvdXJjZS4uLgo+Pj4gVW5wYWNraW5nIHBlcmwtNS4xNi4xLnRhci5iejIg dG8gL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01 LjE2LjEvd29yawo+Pj4gVW5wYWNraW5nIHBlcmwtNS4xNi4xLTEudGFyLmJ6MiB0byAvbWVtZXgv bGlucGVuZ3QvZ2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFuZy9wZXJsLTUuMTYuMS93b3Jr Cj4+PiBTb3VyY2UgdW5wYWNrZWQgaW4gL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3Bv cnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yawo+Pj4gUHJlcGFyaW5nIHNvdXJjZSBpbiAv bWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFuZy9wZXJsLTUuMTYu MS93b3JrL3BlcmwtNS4xNi4xIC4uLgogKiBBcHBseWluZyBwYXRjaGVzIGZyb20gcGVybC01LjE2 LjEtMSAuLi4KICogICBnZW50b28vRVVNTS1SVU5QQVRILmRpZmYgLi4uCiBbIG9rIF0KICogICBn ZW50b28vRVVNTV9kZWxldGVfcGFja2xpc3QuZGlmZiAuLi4KIFsgb2sgXQogKiAgIGdlbnRvby9j b25maWdfb3Zlci5kaWZmIC4uLgogWyBvayBdCiAqICAgZ2VudG9vL2NwYW5fZGVmaW5zdGFsbGRp cnMuZGlmZiAuLi4KIFsgb2sgXQogKiAgIGdlbnRvby9jcGFucGx1c19kZWZpbnN0YWxsZGlycy5k aWZmIC4uLgogWyBvayBdCiAqICAgZ2VudG9vL2NyZWF0ZV9saWJwZXJsX3NvbmFtZS5kaWZmIC4u LgogWyBvayBdCiAqICAgZ2VudG9vL2Ryb3BfZnN0YWNrX3Byb3RlY3Rvci5kaWZmIC4uLgogWyBv ayBdCiAqICAgZ2VudG9vL2VuYzJ4cy5kaWZmIC4uLgogWyBvayBdCiAqICAgZ2VudG9vL21vZF9w YXRocy5kaWZmIC4uLgogWyBvayBdCiAqICAgZ2VudG9vL3BhdGNobGV2ZWwuZGlmZiAuLi4KIFsg b2sgXQogKiAgIGdlbnRvby9haXhfc29uYW1lLmRpZmYgLi4uCiBbIG9rIF0KICogICBnZW50b28v c29sYXJpcy1yZWxvY2F0aW9uLmRpZmYgLi4uCiBbIG9rIF0KICogICBnZW50b28vb3BlbnNvbGFy c19oZWFkZXJzLmRpZmYgLi4uCiBbIG9rIF0KICogICBnZW50b28vY2xlYW51cC1wYXRocy5kaWZm IC4uLgogWyBvayBdCiAqICAgZ2VudG9vL3Vzcl9sb2NhbC5kaWZmIC4uLgogWyBvayBdCiAqICAg Z2VudG9vL2hpbnRzX2hwdXguZGlmZiAuLi4KIFsgb2sgXQogKiAgIGdlbnRvby9kYXJ3aW4tY2Mt bGQuZGlmZiAuLi4KIFsgb2sgXQogKiAgIGdlbnRvby9taW50LmRpZmYgLi4uCiBbIG9rIF0KICog ICBnZW50b28vaW50ZXJpeC5kaWZmIC4uLgogWyBvayBdCj4+PiBTb3VyY2UgcHJlcGFyZWQuCj4+ PiBDb25maWd1cmluZyBzb3VyY2UgaW4gL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3Bv cnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMSAuLi4KICogc2VhcmNo aW5nIGxpYmRpcnMgZm9yIEVMRkNMQVNTNjRMRQogKiBmb3VuZCAvbGliNjQKICogZm91bmQgL3Vz ci9saWI2NApGaXJzdCBsZXQncyBtYWtlIHN1cmUgeW91ciBraXQgaXMgY29tcGxldGUuICBDaGVj a2luZy4uLgpMb2NhdGluZyBjb21tb24gcHJvZ3JhbXMuLi4KQ2hlY2tpbmcgY29tcGF0aWJpbGl0 eSBiZXR3ZWVuIC9tZW1leC9saW5wZW5ndC9nZW50b28vYmluL2VjaG8gYW5kIGJ1aWx0aW4gZWNo byAoaWYgYW55KS4uLgpTeW1ib2xpYyBsaW5rcyBhcmUgc3VwcG9ydGVkLgpDaGVja2luZyBob3cg dG8gdGVzdCBmb3Igc3ltYm9saWMgbGlua3MuLi4KWW91IGNhbiB0ZXN0IGZvciBzeW1ib2xpYyBs aW5rcyB3aXRoICd0ZXN0IC1oJy4KR29vZCwgeW91ciB0ciBzdXBwb3J0cyBbOmxvd2VyOl0gYW5k IFs6dXBwZXI6XSB0byBjb252ZXJ0IGNhc2UuClVzaW5nIFs6dXBwZXI6XSBhbmQgWzpsb3dlcjpd IHRvIGNvbnZlcnQgY2FzZS4KM2IxICAgCSAgICAgIGNvbnZleG9zICAgICAgZXBpeCAgIAkgICAg aHB1eCAgIAkgbHlueG9zICAgCSBuZXh0XzQgICAgICAgIHJpc2NvcyAgICAgICAgc3VwZXItdXgg ICAgICAgIHV0cyAgIAphaXggICAJICAgICAgY3h1eCAgIAkgICAgZXNpeDQgICAJICAgIGkzODYg ICAJIG1pZG5pZ2h0YnNkICAgICBub25zdG9wdXggICAgIHNjbyAgIAkgICAgIHN2cjQgICAJICAg ICB1d2luICAgCmFpeF8zICAgICAgICAgY3lnd2luICAgICAgICBmcHMgICAJICAgIGludGVyaXgg ICAJIG1pcHMgICAJIG9wZW5ic2QgICAgICAgc2NvXzJfM18wICAgICBzdnI1ICAgCSAgICAgdm1l c2EgICAKYWl4XzQgICAgICAgICBkYXJ3aW4gICAgICAgIGZyZWVic2QgICAJICAgIGlyaXhfNCAg IAkgbWlyYnNkICAgCSBvcHVzICAgICAgICAgIHNjb18yXzNfMSAgICAgdGkxNTAwICAgCSAgICAg dm9zICAgCmFsdG9zNDg2ICAgICAgZGNvc3ggICAJICAgIGZyZWVtaW50ICAgICAgICBpcml4XzUg ICAJIG1wYyAgIAkJIG9zMiAgICAgICAgICAgc2NvXzJfM18yICAgICB0aXRhbm9zICAgCmFtaWdh b3MgICAgICAgZGVjX29zZiAgICAgICBnZW5peCAgIAkgICAgaXJpeF82ICAgCSBtcGVpeCAgIAkg b3MzOTAgICAgICAgICBzY29fMl8zXzMgICAgIHVsdHJpeF80ICAgCmF0aGVvcyAgICAgICAgZGd1 eCAgIAkgICAgZ251ICAgCSAgICBpcml4XzZfMCAgICAgbmNyX3Rvd2VyICAgCSBvczQwMCAgICAg ICAgIHNjb18yXzNfNCAgICAgdW1pcHMgICAKYXV4XzMgICAgICAgICBkb3NfZGpncHAgICAgIGdu dWtmcmVlYnNkICAgICBpcml4XzZfMSAgICAgbmV0YnNkICAgCSBwb3NpeC1iYyAgICAgIHNvbGFy aXNfMiAgICAgdW5pY29zICAgCmJlb3MgICAgICAgICAgZHJhZ29uZmx5ICAgICBnbnVrbmV0YnNk ICAgICAgaXNjICAgCSBuZXdzb3M0ICAgCSBwb3dlcnV4ICAgICAgIHN0ZWxsYXIgICAgICAgdW5p Y29zbWsgICAKYnNkb3MgICAgICAgICBkeW5peCAgIAkgICAgZ3JlZW5oaWxscyAgICAgIGlzY18y ICAgCSBuZXh0XzMgICAJIHFueCAgICAgICAgICAgc3Vub3NfNF8wICAgICB1bmlzeXNkeW5peCAg IApjYXRhbW91bnQgICAgIGR5bml4cHR4ICAgICAgaGFpa3UgICAJICAgIGxpbnV4ICAgCSBuZXh0 XzNfMCAgIAkgcmhhcHNvZHkgICAgICBzdW5vc180XzEgICAgIHV0ZWt2ICAgCldoaWNoIG9mIHRo ZXNlIGFwcGx5LCBpZiBhbnk/IFtsaW51eF0gIAoKWW91IGFwcGVhciB0byBoYXZlIEVMRiBzdXBw b3J0LiAgSSdsbCB0cnkgdG8gdXNlIGl0IGZvciBkeW5hbWljIGxvYWRpbmcuCklmIGR5bmFtaWMg bG9hZGluZyBkb2Vzbid0IHdvcmssIHJlYWQgaGludHMvbGludXguc2ggZm9yIGZ1cnRoZXIgaW5m b3JtYXRpb24uCk9wZXJhdGluZyBzeXN0ZW0gbmFtZT8gW2xpbnV4XSAgCk9wZXJhdGluZyBzeXN0 ZW0gdmVyc2lvbj8gWzIuNi4xOC05Mi4xLjEzLmVsNV0gIApJbnN0YWxsYXRpb24gcHJlZml4IHRv IHVzZT8gKH5uYW1lIG9rKSBbL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3JdICAKQUZTIGRvZXMg bm90IHNlZW0gdG8gYmUgcnVubmluZy4uLgpXaGF0IGluc3RhbGxhdGlvbiBwcmVmaXggc2hvdWxk IEkgdXNlIGZvciBpbnN0YWxsaW5nIGZpbGVzPyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3Qv Z2VudG9vL3Vzcl0gIApHZXR0aW5nIHRoZSBjdXJyZW50IHBhdGNobGV2ZWwuLi4KQnVpbGQgYSB0 aHJlYWRpbmcgUGVybD8gW25dICAKQnVpbGQgUGVybCBmb3IgbXVsdGlwbGljaXR5PyBbbl0gIApV c2Ugd2hpY2ggQyBjb21waWxlcj8gW3g4Nl82NC1wYy1saW51eC1nbnUtZ2NjXSAgCkNoZWNraW5n IGZvciBHTlUgY2MgaW4gZGlzZ3Vpc2UgYW5kL29yIGl0cyB2ZXJzaW9uIG51bWJlci4uLgpOb3cs IGhvdyBjYW4gd2UgZmVlZCBzdGFuZGFyZCBpbnB1dCB0byB5b3VyIEMgcHJlcHJvY2Vzc29yLi4u CkRpcmVjdG9yaWVzIHRvIHVzZSBmb3IgbGlicmFyeSBzZWFyY2hlcz8gWy9tZW1leC9saW5wZW5n dC9nZW50b28vbGliIC9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiAvbGliNjQgL3Vzci9s aWI2NF0gIApXaGF0IGlzIHRoZSBmaWxlIGV4dGVuc2lvbiB1c2VkIGZvciBzaGFyZWQgbGlicmFy aWVzPyBbc29dICAKQnVpbGQgUGVybCBmb3IgU09DS1M/IFtuXSAgClRyeSB0byB1c2UgbG9uZyBk b3VibGVzIGlmIGF2YWlsYWJsZT8gW25dICAKQ2hlY2tpbmcgZm9yIG9wdGlvbmFsIGxpYnJhcmll cy4uLgpXaGF0IGxpYnJhcmllcyB0byB1c2U/IFstbG5zbCAtbGRiIC1sZGwgLWxtIC1sY3J5cHQg LWx1dGlsIC1sY10gIApXaGF0IG9wdGltaXplci9kZWJ1Z2dlciBmbGFnIHNob3VsZCBiZSB1c2Vk PyBbLU8yIC1waXBlXSAgCkFueSBhZGRpdGlvbmFsIGNjIGZsYWdzPyBbLWZuby1zdHJpY3QtYWxp YXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlXSAgCkxldCBt ZSBndWVzcyB3aGF0IHRoZSBwcmVwcm9jZXNzb3IgZmxhZ3MgYXJlLi4uCkFueSBhZGRpdGlvbmFs IGxkIGZsYWdzIChOT1QgaW5jbHVkaW5nIGxpYnJhcmllcyk/ClstTC9tZW1leC9saW5wZW5ndC9n ZW50b28vdXNyL2xpYiAtV2wsLXJwYXRoPS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiAt TC9tZW1leC9saW5wZW5ndC9nZW50b28vbGliIC1XbCwtcnBhdGg9L21lbWV4L2xpbnBlbmd0L2dl bnRvby9saWIgLUwvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3RtcC91c3IvbGliIC1XbCwtcnBhdGg9 L21lbWV4L2xpbnBlbmd0L2dlbnRvby90bXAvdXNyL2xpYl0gIApDaGVja2luZyB5b3VyIGNob2lj ZSBvZiBDIGNvbXBpbGVyIGFuZCBmbGFncyBmb3IgY29oZXJlbmN5Li4uCkNvbXB1dGluZyBmaWxl bmFtZSBwb3NpdGlvbiBpbiBjcHAgb3V0cHV0IGZvciAjaW5jbHVkZSBkaXJlY3RpdmVzLi4uCjxz dGRsaWIuaD4gZm91bmQuCkNoZWNraW5nIHRvIHNlZSBob3cgYmlnIHlvdXIgaW50ZWdlcnMgYXJl Li4uCkNoZWNraW5nIHRvIHNlZSBpZiB5b3UgaGF2ZSBsb25nIGxvbmcuLi4KQ2hlY2tpbmcgdG8g c2VlIGhvdyBiaWcgeW91ciBsb25nIGxvbmdzIGFyZS4uLgo8aW50dHlwZXMuaD4gZm91bmQuCkNo ZWNraW5nIHRvIHNlZSBpZiB5b3UgaGF2ZSBpbnQ2NF90Li4uCkNoZWNraW5nIHdoaWNoIDY0LWJp dCBpbnRlZ2VyIHR5cGUgd2UgY291bGQgdXNlLi4uCldlIGNvdWxkIHVzZSAnbG9uZycgZm9yIDY0 LWJpdCBpbnRlZ2Vycy4KVHJ5IHRvIHVzZSBtYXhpbWFsIDY0LWJpdCBzdXBwb3J0LCBpZiBhdmFp bGFibGU/IFt5XSAgCkNoZWNraW5nIHRvIHNlZSBob3cgYmlnIHlvdXIgZG91YmxlIHByZWNpc2lv biBudW1iZXJzIGFyZS4uLgpDaGVja2luZyB0byBzZWUgaWYgeW91IGhhdmUgbG9uZyBkb3VibGUu Li4KQ2hlY2tpbmcgdG8gc2VlIGhvdyBiaWcgeW91ciBsb25nIGRvdWJsZXMgYXJlLi4uCldoYXQg aXMgeW91ciBhcmNoaXRlY3R1cmUgbmFtZSBbeDg2XzY0LWxpbnV4XSAgClRoaXMgYXJjaGl0ZWN0 dXJlIGlzIG5hdHVyYWxseSA2NC1iaXQsIG5vdCBjaGFuZ2luZyBhcmNoaXRlY3R1cmUgbmFtZS4K UGF0aG5hbWUgd2hlcmUgdGhlIHB1YmxpYyBleGVjdXRhYmxlcyB3aWxsIHJlc2lkZT8gKH5uYW1l IG9rKSBbL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvYmluXSAgClVzZSByZWxvY2F0YWJsZSBA SU5DPyBbbl0gIApQYXRobmFtZSB3aGVyZSB0aGUgcHJpdmF0ZSBsaWJyYXJ5IGZpbGVzIHdpbGwg cmVzaWRlPyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9saWIvcGVybDUv NS4xNi4xXSAgCldoZXJlIGRvIHlvdSB3YW50IHRvIHB1dCB0aGUgcHVibGljIGFyY2hpdGVjdHVy ZS1kZXBlbmRlbnQgbGlicmFyaWVzPyAofm5hbWUgb2spClsvbWVtZXgvbGlucGVuZ3QvZ2VudG9v L3Vzci9saWIvcGVybDUvNS4xNi4xL3g4Nl82NC1saW51eF0gIApPdGhlciB1c2VybmFtZSB0byB0 ZXN0IHNlY3VyaXR5IG9mIHNldHVpZCBzY3JpcHRzIHdpdGg/IFtub25lXSAgCldlbGwsIHRoZSBy ZWNvbW1lbmRlZCB2YWx1ZSBpcyAqbm90KiBzZWN1cmUuCkRvZXMgeW91ciBrZXJuZWwgaGF2ZSAq c2VjdXJlKiBzZXR1aWQgc2NyaXB0cz8gW25dICAKSW5zdGFsbGF0aW9uIHByZWZpeCB0byB1c2Ug Zm9yIGFkZC1vbiBtb2R1bGVzIGFuZCB1dGlsaXRpZXM/ICh+bmFtZSBvaykgWy9tZW1leC9saW5w ZW5ndC9nZW50b28vdXNyL2xvY2FsXSAgClBhdGhuYW1lIGZvciB0aGUgc2l0ZS1zcGVjaWZpYyBs aWJyYXJ5IGZpbGVzPyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9sb2Nh bC9saWIvcGVybDUvNS4xNi4xXSAgCkxpc3Qgb2YgZWFybGllciB2ZXJzaW9ucyB0byBpbmNsdWRl IGluIEBJTkM/IFs1LjE2LjAveDg2XzY0LWxpbnV4IDUuMTYuMCBdICAKPG1hbGxvYy9tYWxsb2Mu aD4gTk9UIGZvdW5kLgo8bWFsbG9jLmg+IGZvdW5kLgpDaGVja2luZyB0byBzZWUgaG93IHdlbGwg eW91ciBDIGNvbXBpbGVyIGdyb2tzIHRoZSB2b2lkIHR5cGUuLi4KR29vZC4gIEl0IGFwcGVhcnMg dG8gc3VwcG9ydCB2b2lkIHRvIHRoZSBsZXZlbCBwZXJsNSB3YW50cy4KQ2hlY2tpbmcgdG8gc2Vl IGhvdyBiaWcgeW91ciBwb2ludGVycyBhcmUuLi4KRG8geW91IHdpc2ggdG8gd3JhcCBtYWxsb2Mg Y2FsbHMgdG8gcHJvdGVjdCBhZ2FpbnN0IHBvdGVudGlhbCBvdmVyZmxvd3M/IFt5XSAgCkRvIHlv dSB3aXNoIHRvIGF0dGVtcHQgdG8gdXNlIHRoZSBtYWxsb2MgdGhhdCBjb21lcyB3aXRoIHBlcmw1 PyBbbl0gIApZb3VyIHN5c3RlbSB3YW50cyBtYWxsb2MgdG8gcmV0dXJuICd2b2lkIConLCBpdCB3 b3VsZCBzZWVtLgpZb3VyIHN5c3RlbSB1c2VzIHZvaWQgZnJlZSgpLCBpdCB3b3VsZCBzZWVtLgpQ YXRobmFtZSBmb3IgdGhlIHNpdGUtc3BlY2lmaWMgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBsaWJy YXJ5IGZpbGVzPyAofm5hbWUgb2spClsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9sb2NhbC9s aWIvcGVybDUvNS4xNi4xL3g4Nl82NC1saW51eF0gIApEbyB5b3Ugd2FudCB0byBjb25maWd1cmUg dmVuZG9yLXNwZWNpZmljIGFkZC1vbiBkaXJlY3Rvcmllcz8gW3ldICAKSW5zdGFsbGF0aW9uIHBy ZWZpeCB0byB1c2UgZm9yIHZlbmRvci1zdXBwbGllZCBhZGQtb25zPyAofm5hbWUgb2spIFsvbWVt ZXgvbGlucGVuZ3QvZ2VudG9vL3Vzcl0gIApQYXRobmFtZSBmb3IgdGhlIHZlbmRvci1zdXBwbGll ZCBsaWJyYXJ5IGZpbGVzPyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9s aWIvcGVybDUvdmVuZG9yX3BlcmwvNS4xNi4xXSAgClBhdGhuYW1lIGZvciB2ZW5kb3Itc3VwcGxp ZWQgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcz8gKH5uYW1lIG9rKQpbL21lbWV4L2xpbnBl bmd0L2dlbnRvby91c3IvbGliL3Blcmw1L3ZlbmRvcl9wZXJsLzUuMTYuMS94ODZfNjQtbGludXhd ICAKQ29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBkaXJlY3RvcmllcyBmb3IgcGVy bCB0byBzZWFyY2g/IFtub25lXSAgCkNoZWNraW5nIG91dCBmdW5jdGlvbiBwcm90b3R5cGVzLi4u ClN1cHBvcnQgRFRyYWNlIGlmIGF2YWlsYWJsZT8gW25dICAKSW5zdGFsbCBhbnkgZXh0cmEgbW9k dWxlcyAoeSBvciBuKT8gW25dICAKRGlyZWN0b3J5IGZvciB0aGUgbWFpbiBQZXJsNSBodG1sIHBh Z2VzPyAofm5hbWUgb2spIFtub25lXSAgCkRpcmVjdG9yeSBmb3IgdGhlIFBlcmw1IG1vZHVsZSBo dG1sIHBhZ2VzPyAofm5hbWUgb2spIFtub25lXSAgCkRvIHlvdSB3YW50IHRvIGluc3RhbGwgcGVy bCBhcyAvdXNyL2Jpbi9wZXJsPyBbbl0gIApDaGVja2luZyBmb3IgR05VIEMgTGlicmFyeS4uLgpT aGFsbCBJIHVzZSAvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9iaW4vbm0gdG8gZXh0cmFjdCBD IHN5bWJvbHMgZnJvbSB0aGUgbGlicmFyaWVzPyBbbl0gIAo8ZGxkLmg+IE5PVCBmb3VuZC4KQ2hl Y2tpbmcgZm9yIEMrKy4uLgpkbG9wZW4oKSBmb3VuZC4KPHVuaXN0ZC5oPiBmb3VuZC4KRG8geW91 IHdpc2ggdG8gdXNlIGR5bmFtaWMgbG9hZGluZz8gW3ldICAKU291cmNlIGZpbGUgdG8gdXNlIGZv ciBkeW5hbWljIGxvYWRpbmcgW2V4dC9EeW5hTG9hZGVyL2RsX2Rsb3Blbi54c10gIApBbnkgc3Bl Y2lhbCBmbGFncyB0byBwYXNzIHRvIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1jIHRvIGNvbXBp bGUgc2hhcmVkIGxpYnJhcnkgbW9kdWxlcz8gWy1mUElDXSAgCldoYXQgY29tbWFuZCBzaG91bGQg YmUgdXNlZCB0byBjcmVhdGUgZHluYW1pYyBsaWJyYXJpZXM/IFt4ODZfNjQtcGMtbGludXgtZ251 LWdjY10gIApBbnkgc3BlY2lhbCBmbGFncyB0byBwYXNzIHRvIHg4Nl82NC1wYy1saW51eC1nbnUt Z2NjIHRvIGNyZWF0ZSBhIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJyYXJ5PwpbLXNoYXJlZCAtTzIg LXBpcGUgLUwvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9saWIgLUwvbWVtZXgvbGlucGVuZ3Qv Z2VudG9vL2xpYiAtTC9tZW1leC9saW5wZW5ndC9nZW50b28vdG1wL3Vzci9saWJdICAKQW55IHNw ZWNpYWwgZmxhZ3MgdG8gcGFzcyB0byB4ODZfNjQtcGMtbGludXgtZ251LWdjYyB0byB1c2UgZHlu YW1pYyBsaW5raW5nPyBbLVdsLC1FXSAgCmxkIHN1cHBvcnRzIHNjcmlwdGluZwpCdWlsZCBhIHNo YXJlZCBsaWJwZXJsLnNvICh5L24pIFt5XSAgCldoYXQgbmFtZSBkbyB5b3Ugd2FudCB0byBnaXZl IHRvIHRoZSBzaGFyZWQgbGlicGVybD8gW2xpYnBlcmwuc28uNS4xNi4xXSAgClN5c3RlbSBtYW51 YWwgaXMgaW4gL3Vzci9zaGFyZS9tYW4vbWFuMS4KV2hlcmUgZG8gdGhlIG1haW4gUGVybDUgbWFu dWFsIHBhZ2VzIChzb3VyY2UpIGdvPyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9v L3Vzci9zaGFyZS9tYW4vbWFuMV0gIApXaGF0IHN1ZmZpeCBzaG91bGQgYmUgdXNlZCBmb3IgdGhl IG1haW4gUGVybDUgbWFuIHBhZ2VzPyBbMV0gIApZb3UgY2FuIGhhdmUgZmlsZW5hbWVzIGxvbmdl ciB0aGFuIDE0IGNoYXJhY3RlcnMuCldoZXJlIGRvIHRoZSBwZXJsNSBsaWJyYXJ5IG1hbiBwYWdl cyAoc291cmNlKSBnbz8gKH5uYW1lIG9rKSBbL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3Ivc2hh cmUvbWFuL21hbjNdICAKV2hhdCBzdWZmaXggc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBwZXJsNSBs aWJyYXJ5IG1hbiBwYWdlcz8gWzNwbV0gIApGaWd1cmluZyBvdXQgaG9zdCBuYW1lLi4uCllvdXIg aG9zdCBuYW1lIGFwcGVhcnMgdG8gYmUgImxvY2FsaG9zdCIuIFJpZ2h0PyBbeV0gIApXaGF0IGlz IHlvdXIgZG9tYWluIG5hbWU/IFsubG9jYWxkb21haW5dICAKV2hhdCBpcyB5b3VyIGUtbWFpbCBh ZGRyZXNzPyBbR2VudG9vQGxvY2FsaG9zdC5sb2NhbGRvbWFpbl0gIApQZXJsIGFkbWluaXN0cmF0 b3IgZS1tYWlsIGFkZHJlc3MgW3Jvb3RAbG9jYWxob3N0XSAgCkRvIHlvdSB3YW50IHRvIGluc3Rh bGwgb25seSB0aGUgdmVyc2lvbi1zcGVjaWZpYyBwYXJ0cyBvZiBwZXJsPyBbbl0gIApXaGF0IHNo YWxsIEkgcHV0IGFmdGVyIHRoZSAjISB0byBzdGFydCB1cCBwZXJsICgibm9uZSIgdG8gbm90IHVz ZSAjISk/IFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9iaW4vcGVybF0gIAoKV0FSTklORzog IFNvbWUgc3lzdGVtcyBsaW1pdCB0aGUgIyEgY29tbWFuZCB0byAzMiBjaGFyYWN0ZXJzLgpJZiB5 b3UgZXhwZXJpZW5jZSBkaWZmaWN1bHR5IHJ1bm5pbmcgUGVybCBzY3JpcHRzIHdpdGggIyEsIHRy eQppbnN0YWxsaW5nIFBlcmwgaW4gYSBkaXJlY3Rvcnkgd2l0aCBhIHNob3J0ZXIgcGF0aG5hbWUu CgpXaGVyZSBkbyB5b3Uga2VlcCBwdWJsaWNseSBleGVjdXRhYmxlIHNjcmlwdHM/ICh+bmFtZSBv aykgWy9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2Jpbl0gIApQYXRobmFtZSB3aGVyZSB0aGUg YWRkLW9uIHB1YmxpYyBleGVjdXRhYmxlcyBzaG91bGQgYmUgaW5zdGFsbGVkPyAofm5hbWUgb2sp IFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9sb2NhbC9iaW5dICAKRGlyZWN0b3J5IC9tZW1l eC9saW5wZW5ndC9nZW50b28vdXNyL2xvY2FsL2JpbiBkb2Vzbid0IGV4aXN0LiAgVXNlIHRoYXQg bmFtZSBhbnl3YXk/IFt5XSAgClBhdGhuYW1lIHdoZXJlIHRoZSBzaXRlLXNwZWNpZmljIGh0bWwg cGFnZXMgc2hvdWxkIGJlIGluc3RhbGxlZD8gKH5uYW1lIG9rKSBbbm9uZV0gIApQYXRobmFtZSB3 aGVyZSB0aGUgc2l0ZS1zcGVjaWZpYyBsaWJyYXJ5IGh0bWwgcGFnZXMgc2hvdWxkIGJlIGluc3Rh bGxlZD8gKH5uYW1lIG9rKSBbbm9uZV0gIApQYXRobmFtZSB3aGVyZSB0aGUgc2l0ZS1zcGVjaWZp YyBtYW51YWwgcGFnZXMgc2hvdWxkIGJlIGluc3RhbGxlZD8gKH5uYW1lIG9rKSBbL21lbWV4L2xp bnBlbmd0L2dlbnRvby91c3IvbG9jYWwvbWFuL21hbjFdICAKUGF0aG5hbWUgd2hlcmUgdGhlIHNp dGUtc3BlY2lmaWMgbGlicmFyeSBtYW51YWwgcGFnZXMgc2hvdWxkIGJlIGluc3RhbGxlZD8gKH5u YW1lIG9rKQpbL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvbG9jYWwvbWFuL21hbjNdICAKUGF0 aG5hbWUgd2hlcmUgYWRkLW9uIHB1YmxpYyBleGVjdXRhYmxlIHNjcmlwdHMgc2hvdWxkIGJlIGlu c3RhbGxlZD8gKH5uYW1lIG9rKSBbL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvbG9jYWwvYmlu XSAgClVzZSB0aGUgImZhc3Qgc3RkaW8iIGlmIGF2YWlsYWJsZT8gW25dICAKb2ZmX3QgZm91bmQu CkNoZWNraW5nIHRvIHNlZSBob3cgYmlnIHlvdXIgZmlsZSBvZmZzZXRzIGFyZS4uLgpmcG9zX3Qg Zm91bmQuCkNoZWNraW5nIHRoZSBzaXplIG9mIGZwb3NfdC4uLgpUcnkgdG8gdW5kZXJzdGFuZCBs YXJnZSBmaWxlcywgaWYgYXZhaWxhYmxlPyBbeV0gIApSZWNoZWNraW5nIHRvIHNlZSBob3cgYmln IHlvdXIgZmlsZSBvZmZzZXRzIGFyZS4uLgpSZWNoZWNraW5nIHRoZSBzaXplIG9mIGZwb3NfdC4u LiAxNiBieXRlcy4KUGF0aG5hbWUgZm9yIHRoZSB2ZW5kb3Itc3VwcGxpZWQgZXhlY3V0YWJsZXMg ZGlyZWN0b3J5PyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9iaW5dICAK UGF0aG5hbWUgZm9yIHRoZSB2ZW5kb3Itc3VwcGxpZWQgaHRtbCBwYWdlcz8gKH5uYW1lIG9rKSBb bm9uZV0gIApQYXRobmFtZSBmb3IgdGhlIHZlbmRvci1zdXBwbGllZCBodG1sIHBhZ2VzPyAofm5h bWUgb2spIFtub25lXSAgClBhdGhuYW1lIGZvciB0aGUgdmVuZG9yLXN1cHBsaWVkIG1hbnVhbCBz ZWN0aW9uIDEgcGFnZXM/ICh+bmFtZSBvaykgWy9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL3No YXJlL21hbi9tYW4xXSAgClBhdGhuYW1lIGZvciB0aGUgdmVuZG9yLXN1cHBsaWVkIG1hbnVhbCBz ZWN0aW9uIDMgcGFnZXM/ICh+bmFtZSBvaykgWy9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL3No YXJlL21hbi9tYW4zXSAgClBhdGhuYW1lIGZvciB0aGUgdmVuZG9yLXN1cHBsaWVkIHNjcmlwdHMg ZGlyZWN0b3J5PyAofm5hbWUgb2spIFsvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9iaW5dICAK VXNpbmcgPHN0cmluZy5oPiBpbnN0ZWFkIG9mIDxzdHJpbmdzLmg+LgpxZ2N2dCgpIGZvdW5kLgpD aGVja2luZyBob3cgdG8gcHJpbnQgbG9uZyBkb3VibGVzLi4uCmdjb252ZXJ0IE5PVCBmb3VuZC4K Z2N2dCgpIGZvdW5kLgpJJ2xsIHVzZSBnY3Z0IHRvIGNvbnZlcnQgZmxvYXRzIGludG8gYSBzdHJp bmcuCmZ3YWxrKCkgTk9UIGZvdW5kLgphY2Nlc3MoKSBmb3VuZC4KPHN5cy9maWxlLmg+IGRlZmlu ZXMgdGhlICpfT0sgYWNjZXNzIGNvbnN0YW50cy4KYWNjZXNzeCgpIE5PVCBmb3VuZC4KYWludGwo KSBOT1QgZm91bmQuCmFsYXJtKCkgZm91bmQuCmN0aW1lNjQoKSBOT1QgZm91bmQuCmxvY2FsdGlt ZTY0KCkgTk9UIGZvdW5kLgpnbXRpbWU2NCgpIE5PVCBmb3VuZC4KbWt0aW1lNjQoKSBOT1QgZm91 bmQuCmRpZmZ0aW1lNjQoKSBOT1QgZm91bmQuCmFzY3RpbWU2NCgpIE5PVCBmb3VuZC4KPHB0aHJl YWQuaD4gZm91bmQuCjxzeXMvdHlwZXMuaD4gZm91bmQuCjxzeXMvc2VsZWN0Lmg+IGZvdW5kLgpU ZXN0aW5nIHRvIHNlZSBpZiB3ZSBzaG91bGQgaW5jbHVkZSA8dGltZS5oPiwgPHN5cy90aW1lLmg+ IG9yIGJvdGguCldlJ2xsIGluY2x1ZGUgPHRpbWUuaD4uCldlJ2xsIGluY2x1ZGUgPHN5cy90aW1l Lmg+LgpDaGVja2luZyB0byBzZWUgaWYgeW91ciBzdHJ1Y3QgdG0gaGFzIHRtX3pvbmUgZmllbGQu Li4KQ2hlY2tpbmcgdG8gc2VlIGlmIHlvdXIgc3RydWN0IHRtIGhhcyB0bV9nbXRvZmYgZmllbGQu Li4KYXNjdGltZV9yKCkgZm91bmQuCmF0b2xmKCkgTk9UIGZvdW5kLgphdG9sbCgpIGZvdW5kLgpD aGVja2luZyB3aGV0aGVyIHlvdXIgY29tcGlsZXIgY2FuIGhhbmRsZSBfX2F0dHJpYnV0ZV9fKChm b3JtYXQpKSAuLi4KQ2hlY2tpbmcgd2hldGhlciB5b3VyIGNvbXBpbGVyIGFsbG93cyBfX3ByaW50 Zl9fIGZvcm1hdCB0byBiZSBudWxsIC4uLgpDaGVja2luZyB3aGV0aGVyIHlvdXIgY29tcGlsZXIg Y2FuIGhhbmRsZSBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKSAuLi4KQ2hlY2tpbmcgd2hldGhlciB5 b3VyIGNvbXBpbGVyIGNhbiBoYW5kbGUgX19hdHRyaWJ1dGVfXygobm9ubnVsbCgxKSkpIC4uLgpD aGVja2luZyB3aGV0aGVyIHlvdXIgY29tcGlsZXIgY2FuIGhhbmRsZSBfX2F0dHJpYnV0ZV9fKChu b3JldHVybikpIC4uLgpDaGVja2luZyB3aGV0aGVyIHlvdXIgY29tcGlsZXIgY2FuIGhhbmRsZSBf X2F0dHJpYnV0ZV9fKChwdXJlKSkgLi4uCkNoZWNraW5nIHdoZXRoZXIgeW91ciBjb21waWxlciBj YW4gaGFuZGxlIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIC4uLgpDaGVja2luZyB3aGV0aGVyIHlv dXIgY29tcGlsZXIgY2FuIGhhbmRsZSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSkgLi4uCkNo ZWNraW5nIHdoZXRoZXIgeW91ciBjb21waWxlciBjYW4gaGFuZGxlIF9fYXR0cmlidXRlX18oKHdh cm5fdW51c2VkX3Jlc3VsdCkpIC4uLgpiY21wKCkgZm91bmQuCmJjb3B5KCkgZm91bmQuCmdldHBn cnAoKSBmb3VuZC4KWW91IGhhdmUgdG8gdXNlIGdldHBncnAoKSBpbnN0ZWFkIG9mIGdldHBncnAo cGlkKS4Kc2V0cGdycCgpIGZvdW5kLgpZb3UgaGF2ZSB0byB1c2Ugc2V0cGdycCgpIGluc3RlYWQg b2Ygc2V0cGdycChwaWQscGdycCkuCkNoZWNraW5nIHdoZXRoZXIgeW91ciBjb21waWxlciBjYW4g aGFuZGxlIF9fYnVpbHRpbl9jaG9vc2VfZXhwciAuLi4KQ2hlY2tpbmcgd2hldGhlciB5b3VyIGNv bXBpbGVyIGNhbiBoYW5kbGUgX19idWlsdGluX2V4cGVjdCAuLi4KYnplcm8oKSBmb3VuZC4KPHN0 ZGFyZy5oPiBmb3VuZC4KPHZhcmFyZ3MuaD4gZm91bmQuCldlJ2xsIGluY2x1ZGUgPHN0ZGFyZy5o PiB0byBnZXQgdmFfZGNsIGRlZmluaXRpb24uCllvdSBoYXZlIDxzdGRhcmcuaD4gYW5kIDxzdGRs aWIuaD4sIHNvIGNoZWNraW5nIGZvciBDOTkgdmFyaWFkaWMgbWFjcm9zLgpZb3UgaGF2ZSBDOTkg dmFyaWFkaWMgbWFjcm9zLgpZb3UgaGF2ZSB2b2lkICgqc2lnbmFsKCkpKCkuCkNoZWNraW5nIHdo ZXRoZXIgeW91ciBDIGNvbXBpbGVyIGNhbiBjYXN0IGxhcmdlIGZsb2F0cyB0byBpbnQzMi4KQ2hl Y2tpbmcgd2hldGhlciB5b3VyIEMgY29tcGlsZXIgY2FuIGNhc3QgbmVnYXRpdmUgZmxvYXQgdG8g dW5zaWduZWQuCnZwcmludGYoKSBmb3VuZC4KWW91ciB2c3ByaW50ZigpIHJldHVybnMgKGludCku CmNob3duKCkgZm91bmQuCmNocm9vdCgpIGZvdW5kLgpjaHNpemUoKSBOT1QgZm91bmQuCmNsYXNz KCkgTk9UIGZvdW5kLgpjbGVhcmVudigpIGZvdW5kLgpIbW0uLi4gTG9va3MgbGlrZSB5b3UgaGF2 ZSBCZXJrZWxleSBuZXR3b3JraW5nIHN1cHBvcnQuCnNvY2tldHBhaXIoKSBmb3VuZC4KQ2hlY2tp bmcgdGhlIGF2YWlsYWJpbGl0eSBzYV9sZW4gaW4gdGhlIHNvY2sgc3RydWN0IC4uLgpDaGVja2lu ZyB0aGUgYXZhaWxhYmlsaXR5IHN0cnVjdCBzb2NrYWRkcl9pbjYgLi4uCkNoZWNraW5nIHRoZSBh dmFpbGFiaWxpdHkgc2luNl9zY29wZV9pZCBpbiBzdHJ1Y3Qgc29ja2FkZHJfaW42IC4uLgpDaGVj a2luZyB0aGUgYXZhaWxhYmlsaXR5IHN0cnVjdCBpcHY2X21yZXEgLi4uCkNoZWNraW5nIHRoZSBh dmFpbGFiaWxpdHkgb2YgY2VydGFpbiBzb2NrZXQgY29uc3RhbnRzLi4uCjxzeXMvdWlvLmg+IGZv dW5kLgpDaGVja2luZyB0byBzZWUgaWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgc3RydWN0IGNtc2do ZHIuLi4KQ2hlY2tpbmcgdG8gc2VlIGlmIHlvdXIgQyBjb21waWxlciBrbm93cyBhYm91dCAiY29u c3QiLi4uCmNvcHlzaWdubCgpIGZvdW5kLgpjcnlwdCgpIGZvdW5kLgo8Y3J5cHQuaD4gZm91bmQu CmNyeXB0X3IoKSBmb3VuZC4KSG1tLiAgQmFzZWQgb24gdGhlIGhpbnRzIGluIGhpbnRzL2xpbnV4 LnNoLCAKdGhlIHJlY29tbWVuZGVkIHZhbHVlIGZvciAkZF9jc2ggb24gdGhpcyBtYWNoaW5lIHdh cyAidW5kZWYiIQogICAgS2VlcCB0aGUgcmVjb21tZW5kZWQgdmFsdWU/IFt5XSAgCmN0ZXJtaWQo KSBmb3VuZC4KY3Rlcm1pZF9yKCkgTk9UIGZvdW5kLgpjdGltZV9yKCkgZm91bmQuCmN1c2VyaWQo KSBmb3VuZC4KPGxpbWl0cy5oPiBmb3VuZC4KPGZsb2F0Lmg+IGZvdW5kLgpEQkxfRElHIGZvdW5k LgpkYm1jbG9zZSgpIE5PVCBmb3VuZC4KZGlmZnRpbWUoKSBmb3VuZC4KPGRpcmVudC5oPiBmb3Vu ZC4KWW91ciBkaXJlY3RvcnkgZW50cmllcyBhcmUgc3RydWN0IGRpcmVudC4KWW91ciBkaXJlY3Rv cnkgZW50cnkgZG9lcyBub3Qga25vdyBhYm91dCB0aGUgZF9uYW1sZW4gZmllbGQuCkNoZWNraW5n IHRvIHNlZSBpZiBESVIgaGFzIGEgZGRfZmQgbWVtYmVyIHZhcmlhYmxlCjxzeXMvZGlyLmg+IGZv dW5kLgo8c3lzL25kaXIuaD4gTk9UIGZvdW5kLgpkaXJmZCgpIGZvdW5kLgpkbGVycm9yKCkgZm91 bmQuCjxkbGZjbi5oPiBmb3VuZC4KV2hhdCBpcyB0aGUgZXh0ZW5zaW9uIG9mIGR5bmFtaWNhbGx5 IGxvYWRlZCBtb2R1bGVzIFtzb10gIApDaGVja2luZyB3aGV0aGVyIHlvdXIgZGxzeW0oKSBuZWVk cyBhIGxlYWRpbmcgdW5kZXJzY29yZSAuLi4KZGxzeW0gZG9lc24ndCBuZWVkIGEgbGVhZGluZyB1 bmRlcnNjb3JlLgpkcmFuZDQ4X3IoKSBmb3VuZC4KZHVwMigpIGZvdW5kLgplYWNjZXNzKCkgZm91 bmQuCmVuZGdyZW50KCkgZm91bmQuCjxncnAuaD4gZm91bmQuCmVuZGdyZW50X3IoKSBOT1QgZm91 bmQuCmVuZGhvc3RlbnQoKSBmb3VuZC4KPG5ldGRiLmg+IGZvdW5kLgplbmRob3N0ZW50X3IoKSBO T1QgZm91bmQuCmVuZG5ldGVudCgpIGZvdW5kLgplbmRuZXRlbnRfcigpIE5PVCBmb3VuZC4KZW5k cHJvdG9lbnQoKSBmb3VuZC4KZW5kcHJvdG9lbnRfcigpIE5PVCBmb3VuZC4KZW5kcHdlbnQoKSBm b3VuZC4KPHB3ZC5oPiBmb3VuZC4KZW5kcHdlbnRfcigpIE5PVCBmb3VuZC4KZW5kc2VydmVudCgp IGZvdW5kLgplbmRzZXJ2ZW50X3IoKSBOT1QgZm91bmQuCjxzeXMvZmlsZS5oPiBkZWZpbmVzIHRo ZSBPXyogY29uc3RhbnRzLi4uCmFuZCB5b3UgaGF2ZSB0aGUgMyBhcmd1bWVudCBmb3JtIG9mIG9w ZW4oKS4KPHN5cy9maWxlLmg+IGZvdW5kLgpXZSdsbCBiZSBpbmNsdWRpbmcgPHN5cy9maWxlLmg+ Lgo8ZmNudGwuaD4gZm91bmQuCldlIGRvbid0IG5lZWQgdG8gaW5jbHVkZSA8ZmNudGwuaD4gaWYg d2UgaW5jbHVkZSA8c3lzL2ZpbGUuaD4uCmZvcmsoKSBmb3VuZC4KcGlwZSgpIGZvdW5kLgpGaWd1 cmluZyBvdXQgdGhlIGZsYWcgdXNlZCBieSBvcGVuKCkgZm9yIG5vbi1ibG9ja2luZyBJL08uLi4K TGV0J3Mgc2VlIHdoYXQgdmFsdWUgZXJybm8gZ2V0cyBmcm9tIHJlYWQoKSBvbiBhIE9fTk9OQkxP Q0sgZmlsZS4uLgpDaGVja2luZyBob3cgc3RkIHlvdXIgc3RkaW8gaXMuLi4KZmNoZGlyKCkgZm91 bmQuCmZjaG1vZCgpIGZvdW5kLgpmY2hvd24oKSBmb3VuZC4KZmNudGwoKSBmb3VuZC4KV2VsbCwg eW91ciBzeXN0ZW0gaGFzIHNvbWUgc29ydCBvZiBmZF9zZXQgYXZhaWxhYmxlLi4uCmFuZCB5b3Ug aGF2ZSB0aGUgbm9ybWFsIGZkX3NldCBtYWNyb3MuCmZnZXRwb3MoKSBmb3VuZC4KZmluaXRlKCkg Zm91bmQuCmZpbml0ZWwoKSBmb3VuZC4KZmxvY2soKSBmb3VuZC4KZnBfY2xhc3MoKSBOT1QgZm91 bmQuCnBhdGhjb25mKCkgZm91bmQuCmZwYXRoY29uZigpIGZvdW5kLgpmcGNsYXNzKCkgTk9UIGZv dW5kLgpmcGNsYXNzaWZ5KCkgTk9UIGZvdW5kLgpmcGNsYXNzbCgpIE5PVCBmb3VuZC4KQ2hlY2tp bmcgdG8gc2VlIGlmIHlvdSBoYXZlIGZwb3M2NF90Li4uCmZyZXhwbCgpIGZvdW5kLgo8c3lzL3Bh cmFtLmg+IGZvdW5kLgo8c3lzL21vdW50Lmg+IGZvdW5kLgpDaGVja2luZyB0byBzZWUgaWYgeW91 ciBzeXN0ZW0gc3VwcG9ydHMgc3RydWN0IGZzX2RhdGEuLi4KZnNlZWtvKCkgZm91bmQuCmZzZXRw b3MoKSBmb3VuZC4KZnN0YXRmcygpIGZvdW5kLgpzdGF0dmZzKCkgZm91bmQuCmZzdGF0dmZzKCkg Zm91bmQuCmZzeW5jKCkgZm91bmQuCmZ0ZWxsbygpIGZvdW5kLgpDaGVja2luZyBpZiB5b3UgaGF2 ZSBhIHdvcmtpbmcgZnV0aW1lcygpClllcywgeW91IGhhdmUKPG5kYm0uaD4gTk9UIGZvdW5kLgo8 Z2RibS9uZGJtLmg+IE5PVCBmb3VuZC4KPGdkYm0tbmRibS5oPiBOT1QgZm91bmQuCmdldGFkZHJp bmZvKCkgZm91bmQuCmdldGN3ZCgpIGZvdW5kLgpnZXRlc3B3bmFtKCkgTk9UIGZvdW5kLgpnZXRm c3N0YXQoKSBOT1QgZm91bmQuCmdldGdyZW50KCkgZm91bmQuCmdldGdyZW50X3IoKSBmb3VuZC4K Z2V0Z3JnaWRfcigpIGZvdW5kLgpnZXRncm5hbV9yKCkgZm91bmQuCmdldGhvc3RieWFkZHIoKSBm b3VuZC4KZ2V0aG9zdGJ5bmFtZSgpIGZvdW5kLgpnZXRob3N0ZW50KCkgZm91bmQuCmdldGhvc3Ru YW1lKCkgZm91bmQuCnVuYW1lKCkgZm91bmQuClNoYWxsIEkgaWdub3JlIGdldGhvc3RuYW1lKCkg ZnJvbSBub3cgb24/IFtuXSAgCmdldGhvc3RieWFkZHJfcigpIGZvdW5kLgpnZXRob3N0YnluYW1l X3IoKSBmb3VuZC4KZ2V0aG9zdGVudF9yKCkgZm91bmQuCmdldGl0aW1lcigpIGZvdW5kLgpnZXRs b2dpbigpIGZvdW5kLgpnZXRsb2dpbl9yKCkgZm91bmQuCmdldG1udCgpIE5PVCBmb3VuZC4KZ2V0 bW50ZW50KCkgZm91bmQuCmdldG5hbWVpbmZvKCkgZm91bmQuCmdldG5ldGJ5YWRkcigpIGZvdW5k LgpnZXRuZXRieW5hbWUoKSBmb3VuZC4KZ2V0bmV0ZW50KCkgZm91bmQuCmdldG5ldGJ5YWRkcl9y KCkgZm91bmQuCmdldG5ldGJ5bmFtZV9yKCkgZm91bmQuCmdldG5ldGVudF9yKCkgZm91bmQuCmdl dHBhZ2VzaXplKCkgZm91bmQuCmdldHByb3RvYnluYW1lKCkgZm91bmQuCmdldHByb3RvYnludW1i ZXIoKSBmb3VuZC4KZ2V0cHJvdG9lbnQoKSBmb3VuZC4KZ2V0cGdpZCgpIGZvdW5kLgpnZXRwZ3Jw MigpIE5PVCBmb3VuZC4KZ2V0cHBpZCgpIGZvdW5kLgpnZXRwcmlvcml0eSgpIGZvdW5kLgpnZXRw cm90b2J5bmFtZV9yKCkgZm91bmQuCmdldHByb3RvYnludW1iZXJfcigpIGZvdW5kLgpnZXRwcm90 b2VudF9yKCkgZm91bmQuCmdldHBycHduYW0oKSBOT1QgZm91bmQuCmdldHB3ZW50KCkgZm91bmQu CmdldHB3ZW50X3IoKSBmb3VuZC4KZ2V0cHduYW1fcigpIGZvdW5kLgpnZXRwd3VpZF9yKCkgZm91 bmQuCmdldHNlcnZieW5hbWUoKSBmb3VuZC4KZ2V0c2VydmJ5cG9ydCgpIGZvdW5kLgpnZXRzZXJ2 ZW50KCkgZm91bmQuCmdldHNlcnZieW5hbWVfcigpIGZvdW5kLgpnZXRzZXJ2Ynlwb3J0X3IoKSBm b3VuZC4KZ2V0c2VydmVudF9yKCkgZm91bmQuCmdldHNwbmFtKCkgZm91bmQuCjxzaGFkb3cuaD4g Zm91bmQuCmdldHNwbmFtX3IoKSBmb3VuZC4KZ2V0dGltZW9mZGF5KCkgZm91bmQuCmdtdGltZV9y KCkgZm91bmQuCmhhc21udG9wdCgpIGZvdW5kLgo8bmV0aW5ldC9pbi5oPiBmb3VuZC4KPGFycGEv aW5ldC5oPiBmb3VuZC4KaHRvbmwoKSBmb3VuZC4KaWxvZ2JsKCkgZm91bmQuCnN0cmNocigpIGZv dW5kLgppbmV0X2F0b24oKSBmb3VuZC4KaW5ldF9udG9wKCkgZm91bmQuCmluZXRfcHRvbigpIGZv dW5kLgppc2FzY2lpKCkgZm91bmQuCmlzYmxhbmsoKSBmb3VuZC4KaXNmaW5pdGUoKSBOT1QgZm91 bmQuCmlzaW5mKCkgZm91bmQuCmlzbmFuKCkgZm91bmQuCmlzbmFubCgpIGZvdW5kLgpraWxscGco KSBmb3VuZC4KbGNob3duKCkgZm91bmQuCkxEQkxfRElHIGZvdW5kLgo8bWF0aC5oPiBmb3VuZC4K Q2hlY2tpbmcgdG8gc2VlIGlmIHlvdXIgbGlibSBzdXBwb3J0cyBfTElCX1ZFUlNJT04uLi4KWWVz LCBpdCBkb2VzICgyKQpsaW5rKCkgZm91bmQuCmxvY2FsdGltZV9yKCkgZm91bmQuCmxvY2FsZWNv bnYoKSBmb3VuZC4KbG9ja2YoKSBmb3VuZC4KbHN0YXQoKSBmb3VuZC4KbWFkdmlzZSgpIGZvdW5k LgptYWxsb2Nfc2l6ZSgpIE5PVCBmb3VuZC4KbWFsbG9jX2dvb2Rfc2l6ZSgpIE5PVCBmb3VuZC4K bWJsZW4oKSBmb3VuZC4KbWJzdG93Y3MoKSBmb3VuZC4KbWJ0b3djKCkgZm91bmQuCm1lbWNocigp IGZvdW5kLgptZW1jbXAoKSBmb3VuZC4KbWVtY3B5KCkgZm91bmQuCm1lbW1vdmUoKSBmb3VuZC4K bWVtc2V0KCkgZm91bmQuCm1rZGlyKCkgZm91bmQuCm1rZHRlbXAoKSBmb3VuZC4KbWtmaWZvKCkg Zm91bmQuCm1rc3RlbXAoKSBmb3VuZC4KbWtzdGVtcHMoKSBOT1QgZm91bmQuCm1rdGltZSgpIGZv dW5kLgo8c3lzL21tYW4uaD4gZm91bmQuCm1tYXAoKSBmb3VuZC4KYW5kIGl0IHJldHVybnMgKHZv aWQgKikuCnNxcnRsKCkgZm91bmQuCnNjYWxibmwoKSBmb3VuZC4KbW9kZmwoKSBmb3VuZC4KWW91 ciBtb2RmbCgpIHNlZW1zIG9rYXkgZm9yIGxhcmdlIHZhbHVlcy4KbXByb3RlY3QoKSBmb3VuZC4K bXNnY3RsKCkgZm91bmQuCm1zZ2dldCgpIGZvdW5kLgptc2dzbmQoKSBmb3VuZC4KbXNncmN2KCkg Zm91bmQuCllvdSBoYXZlIHRoZSBmdWxsIG1zZyooMikgbGlicmFyeS4KQ2hlY2tpbmcgdG8gc2Vl IGlmIHlvdXIgc3lzdGVtIHN1cHBvcnRzIHN0cnVjdCBtc2doZHIuLi4KbXN5bmMoKSBmb3VuZC4K bXVubWFwKCkgZm91bmQuCm5pY2UoKSBmb3VuZC4KPGxhbmdpbmZvLmg+IGZvdW5kLgpubF9sYW5n aW5mbygpIGZvdW5kLgpDaGVja2luZyB0byBzZWUgaWYgeW91ciBDIGNvbXBpbGVyIGtub3dzIGFi b3V0ICJ2b2xhdGlsZSIuLi4KQ2hvb3NpbmcgdGhlIEMgdHlwZXMgdG8gYmUgdXNlZCBmb3IgUGVy bCdzIGludGVybmFsIHR5cGVzLi4uCkNoZWNraW5nIGhvdyBtYW55IGJpdHMgb2YgeW91ciBVVnMg eW91ciBOVnMgY2FuIHByZXNlcnZlLi4uCkNoZWNraW5nIHRvIGZpbmQgdGhlIGxhcmdlc3QgaW50 ZWdlciB2YWx1ZSB5b3VyIE5WcyBjYW4gaG9sZC4uLgpUaGUgbGFyZ2VzdCBpbnRlZ2VyIHlvdXIg TlZzIGNhbiBwcmVzZXJ2ZSBpcyBlcXVhbCB0byAyNTYuMCoyNTYuMCoyNTYuMCoyNTYuMCoyNTYu MCoyNTYuMCoyLjAqMi4wKjIuMCoyLjAqMi4wCkNoZWNraW5nIHdoZXRoZXIgTlYgMC4wIGlzIGFs bCBiaXRzIHplcm8gaW4gbWVtb3J5Li4uCjAuMCBpcyByZXByZXNlbnRlZCBhcyBhbGwgYml0cyB6 ZXJvIGluIG1lbW9yeQpDaGVja2luZyB0byBzZWUgaWYgeW91IGhhdmUgb2ZmNjRfdC4uLgpwYXVz ZSgpIGZvdW5kLgpwb2xsKCkgZm91bmQuCnByY3RsKCkgZm91bmQuCnJlYWRsaW5rKCkgZm91bmQu CnZmb3JrKCkgZm91bmQuCkRvIHlvdSBzdGlsbCB3YW50IHRvIHVzZSB2Zm9yaygpPyBbbl0gIApw dGhyZWFkX2F0dHJfc2V0c2NvcGUoKSBmb3VuZC4KcmFuZG9tX3IoKSBmb3VuZC4KcmVhZGRpcigp IGZvdW5kLgpzZWVrZGlyKCkgZm91bmQuCnRlbGxkaXIoKSBmb3VuZC4KcmV3aW5kZGlyKCkgZm91 bmQuCnJlYWRkaXI2NF9yKCkgZm91bmQuCnJlYWRkaXJfcigpIGZvdW5kLgpyZWFkdigpIGZvdW5k LgpyZWN2bXNnKCkgZm91bmQuCnJlbmFtZSgpIGZvdW5kLgpybWRpcigpIGZvdW5kLgo8bWVtb3J5 Lmg+IGZvdW5kLgpDaGVja2luZyBpZiB5b3VyIG1lbWNtcCgpIGNhbiBjb21wYXJlIHJlbGF0aXZl IG1hZ25pdHVkZS4uLgpzZWxlY3QoKSBmb3VuZC4Kc2VtY3RsKCkgZm91bmQuCnNlbWdldCgpIGZv dW5kLgpzZW1vcCgpIGZvdW5kLgpZb3UgaGF2ZSB0aGUgZnVsbCBzZW0qKDIpIGxpYnJhcnkuCllv dSBkbyBub3QgaGF2ZSB1bmlvbiBzZW11biBpbiA8c3lzL3NlbS5oPi4KWW91IGNhbiB1c2UgdW5p b24gc2VtdW4gZm9yIHNlbWN0bCBJUENfU1RBVC4KWW91IGNhbiBhbHNvIHVzZSBzdHJ1Y3Qgc2Vt aWRfZHMqIGZvciBzZW1jdGwgSVBDX1NUQVQuCnNlbmRtc2coKSBmb3VuZC4Kc2V0ZWdpZCgpIGZv dW5kLgpzZXRldWlkKCkgZm91bmQuCnNldGdyZW50KCkgZm91bmQuCnNldGdyZW50X3IoKSBOT1Qg Zm91bmQuCnNldGhvc3RlbnQoKSBmb3VuZC4Kc2V0aG9zdGVudF9yKCkgTk9UIGZvdW5kLgpzZXRp dGltZXIoKSBmb3VuZC4Kc2V0bGluZWJ1ZigpIGZvdW5kLgpzZXRsb2NhbGUoKSBmb3VuZC4KPGxv Y2FsZS5oPiBmb3VuZC4Kc2V0bG9jYWxlX3IoKSBOT1QgZm91bmQuCnNldG5ldGVudCgpIGZvdW5k LgpzZXRuZXRlbnRfcigpIE5PVCBmb3VuZC4Kc2V0cHJvdG9lbnQoKSBmb3VuZC4Kc2V0cGdpZCgp IGZvdW5kLgpzZXRwZ3JwMigpIE5PVCBmb3VuZC4Kc2V0cHJpb3JpdHkoKSBmb3VuZC4Kc2V0cHJv Y3RpdGxlKCkgTk9UIGZvdW5kLgpzZXRwcm90b2VudF9yKCkgTk9UIGZvdW5kLgpzZXRwd2VudCgp IGZvdW5kLgpzZXRwd2VudF9yKCkgTk9UIGZvdW5kLgpzZXRyZWdpZCgpIGZvdW5kLgpzZXRyZXNn aWQoKSBmb3VuZC4Kc2V0cmV1aWQoKSBmb3VuZC4Kc2V0cmVzdWlkKCkgZm91bmQuCnNldHJnaWQo KSBOT1QgZm91bmQuCnNldHJ1aWQoKSBOT1QgZm91bmQuCnNldHNlcnZlbnQoKSBmb3VuZC4Kc2V0 c2VydmVudF9yKCkgTk9UIGZvdW5kLgpzZXRzaWQoKSBmb3VuZC4Kc2V0dmJ1ZigpIGZvdW5kLgo8 c2Zpby5oPiBOT1QgZm91bmQuCnNobWN0bCgpIGZvdW5kLgpzaG1nZXQoKSBmb3VuZC4Kc2htYXQo KSBmb3VuZC4KYW5kIGl0IHJldHVybnMgKHZvaWQgKikuCnNobWR0KCkgZm91bmQuCllvdSBoYXZl IHRoZSBmdWxsIHNobSooMikgbGlicmFyeS4Kc2lnYWN0aW9uKCkgZm91bmQuCjxzdW5tYXRoLmg+ IE5PVCBmb3VuZC4KQ2hlY2tpbmcgdG8gc2VlIGlmIHlvdSBoYXZlIHNpZ25iaXQoKSBhdmFpbGFi bGUgdG8gd29yayBvbiBkb3VibGUuLi4gWWVzLgpzaWdwcm9jbWFzaygpIGZvdW5kLgpQT1NJWCBz aWdzZXRqbXAgZm91bmQuCnNucHJpbnRmKCkgZm91bmQuCnZzbnByaW50ZigpIGZvdW5kLgpzb2Nr YXRtYXJrKCkgZm91bmQuCnNvY2tzNV9pbml0KCkgTk9UIGZvdW5kLgpDaGVja2luZyB3aGV0aGVy IHNwcmludGYgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuLi4Kc3ByaW50ZiByZXR1 cm5zIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyAoYXMgQU5TSSBzYXlzIGl0IHNob3VsZCkKc3Jh bmQ0OF9yKCkgZm91bmQuCnNyYW5kb21fcigpIGZvdW5kLgo8c3lzL3N0YXQuaD4gZm91bmQuCkNo ZWNraW5nIHRvIHNlZSBpZiB5b3VyIHN0cnVjdCBzdGF0IGhhcyBzdF9ibG9ja3MgZmllbGQuLi4K PHN5cy92ZnMuaD4gZm91bmQuCjxzeXMvc3RhdGZzLmg+IGZvdW5kLgpDaGVja2luZyB0byBzZWUg aWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgc3RydWN0IHN0YXRmcy4uLgpDaGVja2luZyB0byBzZWUg aWYgeW91ciBzdHJ1Y3Qgc3RhdGZzIGhhcyBmX2ZsYWdzIGZpZWxkLi4uCllvdXIgY29tcGlsZXIg c3VwcG9ydHMgc3RhdGljIF9faW5saW5lX18uCkNoZWNraW5nIGhvdyB0byBhY2Nlc3Mgc3RkaW8g c3RyZWFtcyBieSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyLi4uCkkgY2FuJ3QgZmlndXJlIG91dCBo b3cgdG8gYWNjZXNzIHN0ZGlvIHN0cmVhbXMgYnkgZmlsZSBkZXNjcmlwdG9yIG51bWJlci4Kc3Ry Y29sbCgpIGZvdW5kLgpDaGVja2luZyB0byBzZWUgaWYgeW91ciBDIGNvbXBpbGVyIGNhbiBjb3B5 IHN0cnVjdHMuLi4Kc3RyZXJyb3IoKSBmb3VuZC4Kc3RyZXJyb3JfcigpIGZvdW5kLgpzdHJmdGlt ZSgpIGZvdW5kLgpzdHJsY2F0KCkgTk9UIGZvdW5kLgpzdHJsY3B5KCkgTk9UIGZvdW5kLgpzdHJ0 b2QoKSBmb3VuZC4Kc3RydG9sKCkgZm91bmQuCnN0cnRvbGQoKSBmb3VuZC4Kc3RydG9sbCgpIGZv dW5kLgpzdHJ0b3EoKSBmb3VuZC4Kc3RydG91bCgpIGZvdW5kLgpzdHJ0b3VsbCgpIGZvdW5kLgpz dHJ0b3VxKCkgZm91bmQuCnN0cnhmcm0oKSBmb3VuZC4Kc3ltbGluaygpIGZvdW5kLgpzeXNjYWxs KCkgZm91bmQuCnN5c2NvbmYoKSBmb3VuZC4Kc3lzdGVtKCkgZm91bmQuCnRjZ2V0cGdycCgpIGZv dW5kLgp0Y3NldHBncnAoKSBmb3VuZC4KdGltZSgpIGZvdW5kLgp0aW1lX3QgZm91bmQuCnRpbWVn bSgpIGZvdW5kLgo8c3lzL3RpbWVzLmg+IGZvdW5kLgp0aW1lcygpIGZvdW5kLgpjbG9ja190IGZv dW5kLgp0bXBuYW1fcigpIGZvdW5kLgp0cnVuY2F0ZSgpIGZvdW5kLgp0dHluYW1lX3IoKSBmb3Vu ZC4KdHpuYW1lW10gZm91bmQuCihUZXN0aW5nIGZvciBjaGFyYWN0ZXIgZGF0YSBhbGlnbm1lbnQg bWF5IGNyYXNoIHRoZSB0ZXN0LiAgVGhhdCdzIG9rYXkuKQpJdCBzZWVtcyB0aGF0IHlvdSBtdXN0 IGFjY2VzcyBjaGFyYWN0ZXIgZGF0YSBpbiBhbiBhbGlnbmVkIG1hbm5lci4KdWFsYXJtKCkgZm91 bmQuCnVtYXNrKCkgZm91bmQuCnVub3JkZXJlZCgpIE5PVCBmb3VuZC4KdW5zZXRlbnYoKSBmb3Vu ZC4KdXNsZWVwKCkgZm91bmQuCnVzdGF0KCkgZm91bmQuCmNsb3NlZGlyKCkgZm91bmQuCkNoZWNr aW5nIHdoZXRoZXIgY2xvc2VkaXIoKSByZXR1cm5zIGEgc3RhdHVzLi4uCndhaXQ0KCkgZm91bmQu CndhaXRwaWQoKSBmb3VuZC4Kd2NzdG9tYnMoKSBmb3VuZC4Kd2N0b21iKCkgZm91bmQuCndyaXRl digpIGZvdW5kLgpDaGVja2luZyBhbGlnbm1lbnQgY29uc3RyYWludHMuLi4KRG91YmxlcyBtdXN0 IGJlIGFsaWduZWQgb24gYSBob3ctbWFueS1ieXRlIGJvdW5kYXJ5PyBbOF0gIApDaGVja2luZyBo b3cgbG9uZyBhIGNoYXJhY3RlciBpcyAoaW4gYml0cykuLi4KV2hhdCBpcyB0aGUgbGVuZ3RoIG9m IGEgY2hhcmFjdGVyIChpbiBiaXRzKT8gWzhdICAKQ2hlY2tpbmcgdG8gc2VlIGhvdyB5b3VyIGNw cCBkb2VzIHN0dWZmIGxpa2UgY29uY2F0ZW5hdGUgdG9rZW5zLi4uCk9oISAgU21lbGxzIGxpa2Ug QU5TSSdzIGJlZW4gaGVyZS4KPGRiLmg+IGZvdW5kLgpIbW0uICBCYXNlZCBvbiB0aGUgaGludHMg aW4gaGludHMvbGludXguc2gsIAp0aGUgcmVjb21tZW5kZWQgdmFsdWUgZm9yICRpX2RiIG9uIHRo aXMgbWFjaGluZSB3YXMgInVuZGVmIiEKICAgIEtlZXAgdGhlIHJlY29tbWVuZGVkIHZhbHVlPyBb eV0gIApMb29raW5nIGZvciBhIHJhbmRvbSBudW1iZXIgZnVuY3Rpb24uLi4KR29vZCwgZm91bmQg ZHJhbmQ0OCgpLgpVc2Ugd2hpY2ggZnVuY3Rpb24gdG8gZ2VuZXJhdGUgcmFuZG9tIG51bWJlcnM/ IFtkcmFuZDQ4XSAgCkRldGVybWluaW5nIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBvbiBhbiBFQkNE SUMgc3lzdGVtLi4uCk5vcGUsIG5vIEVCQ0RJQywgcHJvYmFibHkgQVNDSUkgb3Igc29tZSBJU08g TGF0aW4uIE9yIFVURi04LgpDaGVja2luZyBob3cgdG8gZmx1c2ggYWxsIHBlbmRpbmcgc3RkaW8g b3V0cHV0Li4uCllvdXIgZmZsdXNoKE5VTEwpIHdvcmtzIG9rYXkgZm9yIG91dHB1dCBzdHJlYW1z LgpMZXQncyBzZWUgaWYgaXQgY2xvYmJlcnMgaW5wdXQgcGlwZXMuLi4KZmZsdXNoKE5VTEwpIHNl ZW1zIHRvIGJlaGF2ZSBva2F5IHdpdGggaW5wdXQgc3RyZWFtcy4KQ2hlY2tpbmcgdGhlIHNpemUg b2YgZ2lkX3QuLi4KQ2hlY2tpbmcgdGhlIHNpZ24gb2YgZ2lkX3QuLi4KQ2hlY2tpbmcgaG93IHRv IHByaW50IDY0LWJpdCBpbnRlZ2Vycy4uLgpDaGVja2luZyB0aGUgZm9ybWF0IHN0cmluZ3MgdG8g YmUgdXNlZCBmb3IgUGVybCdzIGludGVybmFsIHR5cGVzLi4uCkNoZWNraW5nIHRoZSBmb3JtYXQg c3RyaW5nIHRvIGJlIHVzZWQgZm9yIGdpZHMuLi4KZ2V0Z3JvdXBzKCkgZm91bmQuCnNldGdyb3Vw cygpIGZvdW5kLgpXaGF0IHR5cGUgcG9pbnRlciBpcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGdl dGdyb3VwcygpIGFuZCBzZXRncm91cHMoKT8gW2dpZF90XSAgCkJ1aWxkIFBlcmwgd2l0aCBNQUQ/ IFtuXSAgCkNoZWNraW5nIGlmIHlvdXIgL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvYmluL21h a2UgcHJvZ3JhbSBzZXRzICQoTUFLRSkuLi4KbW9kZV90IGZvdW5kLgpJdCBzZWVtcyB0aGF0IHZh X2NvcHkoKSBvciBzaW1pbGFyIHdpbGwgYmUgbmVlZGVkLgpzaXplX3QgZm91bmQuCldoYXQgaXMg dGhlIHR5cGUgZm9yIHRoZSAxc3QgYXJndW1lbnQgdG8gZ2V0aG9zdGJ5YWRkcj8gW2NoYXIgKl0g IApXaGF0IGlzIHRoZSB0eXBlIGZvciB0aGUgMm5kIGFyZ3VtZW50IHRvIGdldGhvc3RieWFkZHI/ IFtzaXplX3RdICAKV2hhdCBwYWdlciBpcyB1c2VkIG9uIHlvdXIgc3lzdGVtPyBbL3Vzci9iaW4v bGVzcyAtUl0gIApGaWxlIC91c3IvYmluL2xlc3MgLVIgZG9lc24ndCBleGlzdC4gIFVzZSB0aGF0 IG5hbWUgYW55d2F5PyBbeV0gIApwaWRfdCBmb3VuZC4KQ2hlY2tpbmcgaG93IHRvIGdlbmVyYXRl IHJhbmRvbSBsaWJyYXJpZXMgb24geW91ciBtYWNoaW5lLi4uCjx2YWx1ZXMuaD4gZm91bmQuClNp emVvZiB0aW1lX3QgPSA4CllvdXIgc2VsZWN0KCkgb3BlcmF0ZXMgb24gNjQgYml0cyBhdCBhIHRp bWUuCkdlbmVyYXRpbmcgYSBsaXN0IG9mIHNpZ25hbCBuYW1lcyBhbmQgbnVtYmVycy4uLgpDaGVj a2luZyB0aGUgc2l6ZSBvZiBzaXplX3QuLi4KQ2hlY2tpbmcgdG8gc2VlIGlmIHlvdSBoYXZlIHNv Y2tsZW5fdC4uLgo8c29ja3MuaD4gTk9UIGZvdW5kLgpJJ2xsIGJlIHVzaW5nIHNzaXplX3QgZm9y IGZ1bmN0aW9ucyByZXR1cm5pbmcgYSBieXRlIGNvdW50LgpDaGVja2luZyB0aGUgc2l6ZSBvZiBz dF9pbm8uLi4KQ2hlY2tpbmcgdGhlIHNpZ24gb2Ygc3RfaW5vLi4uCllvdXIgc3RkaW8gdXNlcyBz aWduZWQgY2hhcnMuCkNoZWNraW5nIHRoZSBzaXplIG9mIHVpZF90Li4uCkNoZWNraW5nIHRoZSBz aWduIG9mIHVpZF90Li4uCkNoZWNraW5nIHRoZSBmb3JtYXQgc3RyaW5nIHRvIGJlIHVzZWQgZm9y IHVpZHMuLi4KRGV0ZXJtaW5pbmcgd2hldGhlciB3ZSBjYW4gdXNlIHN5c2N0bCB3aXRoIEtFUk5f UFJPQ19QQVRITkFNRSB0byBmaW5kIGV4ZWN1dGluZyBwcm9ncmFtLi4uCnRyeS5jOiBJbiBmdW5j dGlvbiAnbWFpbic6CnRyeS5jOjIyOiBlcnJvcjogJ0tFUk5fUFJPQycgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCnRyeS5jOjIyOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJl ZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQp0cnkuYzoyMjogZXJyb3I6IGZvciBl YWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQp0cnkuYzoyMzogZXJyb3I6ICdLRVJOX1BST0Nf UEFUSE5BTUUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQpJJ20gdW5h YmxlIHRvIGNvbXBpbGUgdGhlIHRlc3QgcHJvZ3JhbS4KSSdsbCBhc3N1bWUgbm8gc3lzY3RsIHdp dGggS0VSTl9QUk9DX1BBVEhOQU1FIGhlcmUuCkRldGVybWluaW5nIHdoZXRoZXIgd2UgY2FuIHVz ZSBfTlNHZXRFeGVjdXRhYmxlUGF0aCB0byBmaW5kIGV4ZWN1dGluZyBwcm9ncmFtLi4uCnRyeS5j OjQ6MjU6IGVycm9yOiBtYWNoLW8vZHlsZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CnRy eS5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CnRyeS5jOjEzOiBlcnJvcjogJ3VpbnQzMl90JyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKdHJ5LmM6MTM6IGVycm9yOiAoRWFj aCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCnRyeS5jOjEzOiBl cnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCnRyeS5jOjEzOiBlcnJvcjog ZXhwZWN0ZWQgJzsnIGJlZm9yZSAnc2l6ZScKdHJ5LmM6MjU6IGVycm9yOiAnc2l6ZScgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCkknbSB1bmFibGUgdG8gY29tcGlsZSB0 aGUgdGVzdCBwcm9ncmFtLgpJJ2xsIGFzc3VtZSBubyBfTlNHZXRFeGVjdXRhYmxlUGF0aCBoZXJl LgpJdCBhcHBlYXJzIHdlJ2xsIGJlIGFibGUgdG8gcHJvdG90eXBlIHZhcmFyZ3MgZnVuY3Rpb25z LgpXaGljaCBjb21waWxlciBjb21waWxlciAoeWFjYyBvciBiaXNvbiAteSkgc2hhbGwgSSB1c2U/ IFt5YWNjXSAgCjxhc3NlcnQuaD4gZm91bmQuCjxmcC5oPiBOT1QgZm91bmQuCjxmcF9jbGFzcy5o PiBOT1QgZm91bmQuCjxnZGJtLmg+IE5PVCBmb3VuZC4KPGllZWVmcC5oPiBOT1QgZm91bmQuCjxs aWJ1dGlsLmg+IE5PVCBmb3VuZC4KPG1udGVudC5oPiBmb3VuZC4KPG5ldC9lcnJuby5oPiBOT1Qg Zm91bmQuCjxuZXRpbmV0L3RjcC5oPiBmb3VuZC4KPHBvbGwuaD4gZm91bmQuCjxwcm90Lmg+IE5P VCBmb3VuZC4KR3Vlc3Npbmcgd2hpY2ggc3ltYm9scyB5b3VyIEMgY29tcGlsZXIgYW5kIHByZXBy b2Nlc3NvciBkZWZpbmUuLi4KdGNzZXRhdHRyKCkgZm91bmQuCllvdSBoYXZlIFBPU0lYIHRlcm1p b3MuaC4uLiBnb29kIQo8c3RkYm9vbC5oPiBmb3VuZC4KPHN0ZGRlZi5oPiBmb3VuZC4KPHN5cy9h Y2Nlc3MuaD4gTk9UIGZvdW5kLgo8c3lzL2ZpbGlvLmg+IE5PVCBmb3VuZC4KPHN5cy9pb2N0bC5o PiBmb3VuZC4KPHN5c2xvZy5oPiBmb3VuZC4KPHN5cy9tb2RlLmg+IE5PVCBmb3VuZC4KPHN5cy9w b2xsLmg+IGZvdW5kLgo8c3lzL3Jlc291cmNlLmg+IGZvdW5kLgo8c3lzL3NlY3VyaXR5Lmg+IE5P VCBmb3VuZC4KPHN5cy9zdGF0dmZzLmg+IGZvdW5kLgo8c3lzL3VuLmg+IGZvdW5kLgo8c3lzL3V0 c25hbWUuaD4gZm91bmQuCjxzeXMvd2FpdC5oPiBmb3VuZC4KPHVzdGF0Lmg+IGZvdW5kLgo8dXRp bWUuaD4gZm91bmQuCkxvb2tpbmcgZm9yIGV4dGVuc2lvbnMuLi4KWW91IGhhdmUgcmVxdWVzdGVk IHRoYXQgY2VydGFpbiBleHRlbnNpb25zIGJlIGlnbm9yZWQuLi4KV2hhdCBleHRlbnNpb25zIGRv IHlvdSB3aXNoIHRvIGxvYWQgZHluYW1pY2FsbHk/CltCIENvbXByZXNzL1Jhdy9CemlwMiBDb21w cmVzcy9SYXcvWmxpYiBDd2QgRGF0YS9EdW1wZXIgRGV2ZWwvUFBQb3J0IERldmVsL1BlZWsgRGln ZXN0L01ENSBEaWdlc3QvU0hBIEVuY29kZSBGY250bCBGaWxlL0dsb2IgRmlsdGVyL1V0aWwvQ2Fs bCBIYXNoL1V0aWwgSGFzaC9VdGlsL0ZpZWxkSGFzaCBJMThOL0xhbmdpbmZvIElPIElQQy9TeXNW IExpc3QvVXRpbCBNSU1FL0Jhc2U2NCBNYXRoL0JpZ0ludC9GYXN0Q2FsYyBPcGNvZGUgUE9TSVgg UGVybElPL2VuY29kaW5nIFBlcmxJTy9tbWFwIFBlcmxJTy9zY2FsYXIgUGVybElPL3ZpYSBTREJN X0ZpbGUgU29ja2V0IFN0b3JhYmxlIFN5cy9Ib3N0bmFtZSBTeXMvU3lzbG9nIFRleHQvU291bmRl eCBUaWUvSGFzaC9OYW1lZENhcHR1cmUgVGltZS9IaVJlcyBUaW1lL1BpZWNlIFVuaWNvZGUvQ29s bGF0ZSBVbmljb2RlL05vcm1hbGl6ZSBYUy9BUEl0ZXN0IFhTL1R5cGVtYXAgYXJ5YmFzZSBhdHRy aWJ1dGVzIG1ybyByZSB0aHJlYWRzIHRocmVhZHMvc2hhcmVkXSAgCldoYXQgZXh0ZW5zaW9ucyBk byB5b3Ugd2lzaCB0byBsb2FkIHN0YXRpY2FsbHk/IFtub25lXSAgCkkgc2VlIGEgY29uZmlnLm92 ZXIgZmlsZS4gIERvIHlvdSB3aXNoIHRvIGxvYWQgaXQ/IFt5XSAgClN0cmlwcGluZyBkb3duIGV4 ZWN1dGFibGUgcGF0aHMuLi4KQ3JlYXRpbmcgY29uZmlnLnNoLi4uCkRvaW5nIHZhcmlhYmxlIHN1 YnN0aXR1dGlvbnMgb24gLlNIIGZpbGVzLi4uCkV4dHJhY3RpbmcgY29uZmlnLmggKHdpdGggdmFy aWFibGUgc3Vic3RpdHV0aW9ucykKRXh0cmFjdGluZyBjZmxhZ3MgKHdpdGggdmFyaWFibGUgc3Vi c3RpdHV0aW9ucykKTm90IHJlLWV4dHJhY3RpbmcgY29uZmlnLmgKRXh0cmFjdGluZyBtYWtlZGVw ZW5kICh3aXRoIHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMpCkV4dHJhY3RpbmcgTWFrZWZpbGUgKHdp dGggdmFyaWFibGUgc3Vic3RpdHV0aW9ucykKRXh0cmFjdGluZyBteWNvbmZpZyAod2l0aCB2YXJp YWJsZSBzdWJzdGl0dXRpb25zKQpFeHRyYWN0aW5nIHBvZC9NYWtlZmlsZSAod2l0aCB2YXJpYWJs ZSBzdWJzdGl0dXRpb25zKQpFeHRyYWN0aW5nIFBvbGljeS5zaCAod2l0aCB2YXJpYWJsZSBzdWJz dGl0dXRpb25zKQpFeHRyYWN0aW5nIHJ1bnRlc3RzICh3aXRoIHZhcmlhYmxlIHN1YnN0aXR1dGlv bnMpCkV4dHJhY3RpbmcgdXRpbHMvTWFrZWZpbGUgKHdpdGggdmFyaWFibGUgc3Vic3RpdHV0aW9u cykKRXh0cmFjdGluZyB4MnAvY2ZsYWdzICh3aXRoIHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMpCkV4 dHJhY3RpbmcgeDJwL01ha2VmaWxlICh3aXRoIHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMpClJ1biBt YWtlIGRlcGVuZCBub3c/IFt5XSAgCnNoIC4vbWFrZWRlcGVuZCBNQUtFPW1ha2UKbWFrZVsxXTog RW50ZXJpbmcgZGlyZWN0b3J5IGAvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Zhci90bXAvcG9ydGFn ZS9kZXYtbGFuZy9wZXJsLTUuMTYuMS93b3JrL3BlcmwtNS4xNi4xJwpybSAtZiBvcG1pbmkuYwov bWVtZXgvbGlucGVuZ3QvZ2VudG9vL2Jpbi9sbiAtcyBvcC5jIG9wbWluaS5jCnJtIC1mIHBlcmxt aW5pLmMKL21lbWV4L2xpbnBlbmd0L2dlbnRvby9iaW4vbG4gLXMgcGVybC5jIHBlcmxtaW5pLmMK ZWNobyBhdi5jIHNjb3BlLmMgb3AuYyBkb29wLmMgZG9pby5jIGR1bXAuYyBndi5jIGh2LmMgbWcu YyByZWVudHIuYyBtcm8uYyBwZXJsLmMgcGVybHkuYyBwcC5jIHBwX2hvdC5jIHBwX2N0bC5jIHBw X3N5cy5jIHJlZ2NvbXAuYyByZWdleGVjLmMgdXRmOC5jIHN2LmMgdGFpbnQuYyB0b2tlLmMgdXRp bC5jIGRlYi5jIHJ1bi5jIHVuaXZlcnNhbC5jIHBhZC5jIGdsb2JhbHMuYyBrZXl3b3Jkcy5jIHBl cmxpby5jIHBlcmxhcGkuYyBudW1lcmljLmMgbWF0aG9tcy5jIGxvY2FsZS5jIHBwX3BhY2suYyBw cF9zb3J0LmMgICBtaW5pcGVybG1haW4uYyBvcG1pbmkuYyBwZXJsbWluaS5jIHwgdHIgJyAnICdc bicgPi5jbGlzdAptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL21lbWV4L2xpbnBlbmd0L2dl bnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYu MScKRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIGF2Lm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZv ciBzY29wZS5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3Igb3Auby4KRmluZGluZyBkZXBlbmRl bmNpZXMgZm9yIGRvb3Auby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIGRvaW8uby4KRmluZGlu ZyBkZXBlbmRlbmNpZXMgZm9yIGR1bXAuby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIGd2Lm8u CkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBodi5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3Ig bWcuby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHJlZW50ci5vLgpGaW5kaW5nIGRlcGVuZGVu Y2llcyBmb3IgbXJvLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBwZXJsLm8uCkZpbmRpbmcg ZGVwZW5kZW5jaWVzIGZvciBwZXJseS5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3IgcHAuby4K RmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHBwX2hvdC5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBm b3IgcHBfY3RsLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBwcF9zeXMuby4KRmluZGluZyBk ZXBlbmRlbmNpZXMgZm9yIHJlZ2NvbXAuby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHJlZ2V4 ZWMuby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHV0Zjguby4KRmluZGluZyBkZXBlbmRlbmNp ZXMgZm9yIHN2Lm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciB0YWludC5vLgpGaW5kaW5nIGRl cGVuZGVuY2llcyBmb3IgdG9rZS5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3IgdXRpbC5vLgpG aW5kaW5nIGRlcGVuZGVuY2llcyBmb3IgZGViLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBy dW4uby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHVuaXZlcnNhbC5vLgpGaW5kaW5nIGRlcGVu ZGVuY2llcyBmb3IgcGFkLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBnbG9iYWxzLm8uCkZp bmRpbmcgZGVwZW5kZW5jaWVzIGZvciBrZXl3b3Jkcy5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBm b3IgcGVybGlvLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBwZXJsYXBpLm8uCkZpbmRpbmcg ZGVwZW5kZW5jaWVzIGZvciBudW1lcmljLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBtYXRo b21zLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBsb2NhbGUuby4KRmluZGluZyBkZXBlbmRl bmNpZXMgZm9yIHBwX3BhY2suby4KRmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIHBwX3NvcnQuby4K RmluZGluZyBkZXBlbmRlbmNpZXMgZm9yIG1pbmlwZXJsbWFpbi5vLgpGaW5kaW5nIGRlcGVuZGVu Y2llcyBmb3Igb3BtaW5pLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciBwZXJsbWluaS5vLgpt YWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3Rt cC9wb3J0YWdlL2Rldi1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEnCmVjaG8gTWFr ZWZpbGUuU0ggY2ZsYWdzLlNIIGNvbmZpZ19oLlNIIG1ha2VkZXBlbmQuU0ggbXljb25maWcuU0gg cG9kL01ha2VmaWxlLlNIIHwgdHIgJyAnICdcbicgPi5zaGxpc3QKbWFrZVsxXTogTGVhdmluZyBk aXJlY3RvcnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5n L3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEnClVwZGF0aW5nIG1ha2VmaWxlLi4uCmNkIHgy cDsgbWFrZSBkZXBlbmQKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvbWVtZXgvbGlucGVu Z3QvZ2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFuZy9wZXJsLTUuMTYuMS93b3JrL3Blcmwt NS4xNi4xL3gycCcKc2ggLi4vbWFrZWRlcGVuZCBNQUtFPW1ha2UKbWFrZVsyXTogRW50ZXJpbmcg ZGlyZWN0b3J5IGAvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFu Zy9wZXJsLTUuMTYuMS93b3JrL3BlcmwtNS4xNi4xL3gycCcKZWNobyBoYXNoLmMgc3RyLmMgdXRp bC5jIHdhbGsuYyB8IHRyICcgJyAnXG4nID4uY2xpc3QKbWFrZVsyXTogTGVhdmluZyBkaXJlY3Rv cnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5nL3Blcmwt NS4xNi4xL3dvcmsvcGVybC01LjE2LjEveDJwJwpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3IgaGFz aC5vLgpGaW5kaW5nIGRlcGVuZGVuY2llcyBmb3Igc3RyLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVz IGZvciB1dGlsLm8uCkZpbmRpbmcgZGVwZW5kZW5jaWVzIGZvciB3YWxrLm8uCm1ha2VbMl06IEVu dGVyaW5nIGRpcmVjdG9yeSBgL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2Uv ZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMS94MnAnCmVjaG8gTWFrZWZpbGUu U0ggY2ZsYWdzLlNIIHwgdHIgJyAnICdcbicgPi5zaGxpc3QKbWFrZVsyXTogTGVhdmluZyBkaXJl Y3RvcnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5nL3Bl cmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEveDJwJwpVcGRhdGluZyBtYWtlZmlsZS4uLgptYWtl WzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3Bv cnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMS94MnAnCk5vdyB5b3Ug bXVzdCBydW4gJ21ha2UnLgoKSWYgeW91IGNvbXBpbGUgcGVybDUgb24gYSBkaWZmZXJlbnQgbWFj aGluZSBvciBmcm9tIGEgZGlmZmVyZW50IG9iamVjdApkaXJlY3RvcnksIGNvcHkgdGhlIFBvbGlj eS5zaCBmaWxlIGZyb20gdGhpcyBvYmplY3QgZGlyZWN0b3J5IHRvIHRoZQpuZXcgb25lIGJlZm9y ZSB5b3UgcnVuIENvbmZpZ3VyZSAtLSB0aGlzIHdpbGwgaGVscCB5b3Ugd2l0aCBtb3N0IG9mCnRo ZSBwb2xpY3kgZGVmYXVsdHMuCgo+Pj4gU291cmNlIGNvbmZpZ3VyZWQuCj4+PiBDb21waWxpbmcg c291cmNlIGluIC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5n L3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEgLi4uCm1ha2UgCmBzaCAgY2ZsYWdzICJvcHRp bWl6ZT0nLU8yIC1waXBlJyIgcGVybG1pbmkub2AgLWZQSUMgLURQRVJMX0lTX01JTklQRVJMIC1E UEVSTF9FWFRFUk5BTF9HTE9CIHBlcmxtaW5pLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVt ZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklM RV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4 dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNv bXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIg b3BtaW5pLm9gIC1mUElDIC1EUEVSTF9JU19NSU5JUEVSTCAtRFBFUkxfRVhURVJOQUxfR0xPQiBv cG1pbmkuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAt YyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNy L2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3Rk PWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAK YHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUnIiBtaW5pcGVybG1haW4ub2AgLWZQSUMg bWluaXBlcmxtYWluLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLURQRVJM X0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2Vu dG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02 NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRp b24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0 cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgZ3Yub2AgLWZQSUMgZ3Yu YwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5v LXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1 ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAt TzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0 ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBj ZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUnIiB0b2tlLm9gIC1mUElDIHRva2UuYwoJICBDQ0NN RCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1h bGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFS R0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUg IC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdl bmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBjZmxhZ3MgIm9w dGltaXplPSctTzIgLXBpcGUnIiBwZXJseS5vYCAtZlBJQyBwZXJseS5jCgkgIENDQ01EID0gIHg4 Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVf U09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwg LWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxh YmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9 Jy1PMiAtcGlwZSciIHBhZC5vYCAtZlBJQyBwYWQuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGlu dXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9t ZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9G SUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1X ZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKyst Y29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUn IiByZWdjb21wLm9gIC1mUElDIHJlZ2NvbXAuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1l eC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxF X09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0 cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29t cGF0IC1Xd3JpdGUtc3RyaW5ncyAKcmVnY29tcC5jOiBJbiBmdW5jdGlvbiAnU19yZWdjbGFzcyc6 CnJlZ2NvbXAuYzoxMDk0NDogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdnZXRf cmVnZXhfY2hhcnNldCcsIGRlY2xhcmVkIHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3Vs dApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIGR1bXAub2AgLWZQSUMgZHVtcC5j CgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVk ZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1P MiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRl bWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNm bGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIHV0aWwub2AgLWZQSUMgdXRpbC5jCgkgIENDQ01E ID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJH RUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAg LVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2Vu ZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0 aW1pemU9Jy1PMiAtcGlwZSciIG1nLm9gIC1mUElDIG1nLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBj LWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUg LUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0Ug LURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAt VyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1X YysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1w aXBlJyIgcmVlbnRyLm9gIC1mUElDIHJlZW50ci5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51 eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21l bWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJ TEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdl eHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1j b21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSci IG1yby5vYCAtZlBJQyBtcm8uYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAt RFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5n dC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9C SVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNs YXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3Jp dGUtc3RyaW5ncyAKYHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUnIiBrZXl3b3Jkcy5v YCAtZlBJQyBrZXl3b3Jkcy5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1E UEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0 L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJ VFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xh cmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0 ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIGh2Lm9gIC1mUElD IGh2LmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMg LWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9p bmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1j ODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXIt c3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBz aCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgYXYub2AgLWZQSUMgYXYuYwoJICBDQ0NN RCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1h bGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFS R0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUg IC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdl bmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBjZmxhZ3MgIm9w dGltaXplPSctTzIgLXBpcGUnIiBydW4ub2AgLWZQSUMgcnVuLmMKCSAgQ0NDTUQgPSAgeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBp cGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VS Q0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5z aSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxz IC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8y IC1waXBlJyIgcHBfaG90Lm9gIC1mUElDIHBwX2hvdC5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1s aW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1J L21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1E X0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcg LVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2Mr Ky1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlw ZSciIHN2Lm9gIC1mUElDIHN2LmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2Mg LURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVu Z3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRf QklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVj bGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dy aXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgcHAub2AgLWZQ SUMgcHAuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAt YyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNy L2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3Rk PWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAK YHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUnIiBzY29wZS5vYCAtZlBJQyBzY29wZS5j CgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVk ZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1P MiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRl bWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNm bGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIHBwX2N0bC5vYCAtZlBJQyBwcF9jdGwuYwoJICBD Q0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmlj dC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURf TEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBp cGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQg LVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBjZmxhZ3Mg Im9wdGltaXplPSctTzIgLXBpcGUnIiBwcF9zeXMub2AgLWZQSUMgcHBfc3lzLmMKCSAgQ0NDTUQg PSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxp YXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdF RklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAt V2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5k aWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRp bWl6ZT0nLU8yIC1waXBlJyIgZG9vcC5vYCAtZlBJQyBkb29wLmMKCSAgQ0NDTUQgPSAgeDg2XzY0 LXBjLWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBp cGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VS Q0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5z aSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxz IC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8y IC1waXBlJyIgZG9pby5vYCAtZlBJQyBkb2lvLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVt ZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklM RV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4 dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNv bXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIg cmVnZXhlYy5vYCAtZlBJQyByZWdleGVjLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgv bGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9P RkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJh IC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBh dCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgdXRm OC5vYCAtZlBJQyB1dGY4LmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLURQ RVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3Qv Z2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklU Uz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVjbGFy YXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dyaXRl LXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgdGFpbnQub2AgLWZQ SUMgdGFpbnQuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09S RSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28v dXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAt c3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1h ZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5n cyAKYHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIgLXBpcGUnIiBkZWIub2AgLWZQSUMgZGViLmMK CSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1z dHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRl IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8y IC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVt ZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2Zs YWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgdW5pdmVyc2FsLm9gIC1mUElDIHVuaXZlcnNhbC5j CgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9DT1JFIC1jIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRvby91c3IvaW5jbHVk ZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgIC1zdGQ9Yzg5IC1P MiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRl bWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIApgc2ggIGNm bGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIGdlbmVyYXRlX3V1ZG1hcC5vYCAtZlBJQyBnZW5l cmF0ZV91dWRtYXAuYwoJICBDQ0NNRCA9ICB4ODZfNjQtcGMtbGludXgtZ251LWdjYyAtRFBFUkxf Q09SRSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtSS9tZW1leC9saW5wZW5ndC9nZW50 b28vdXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0 ICAtc3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNpIC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlv bi1hZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMgLVdjKystY29tcGF0IC1Xd3JpdGUtc3Ry aW5ncyAKeDg2XzY0LXBjLWxpbnV4LWdudS1nY2MgLW8gZ2VuZXJhdGVfdXVkbWFwIC1ML21lbWV4 L2xpbnBlbmd0L2dlbnRvby91c3IvbGliIC1XbCwtcnBhdGg9L21lbWV4L2xpbnBlbmd0L2dlbnRv by91c3IvbGliIC1ML21lbWV4L2xpbnBlbmd0L2dlbnRvby9saWIgLVdsLC1ycGF0aD0vbWVtZXgv bGlucGVuZ3QvZ2VudG9vL2xpYiAtTC9tZW1leC9saW5wZW5ndC9nZW50b28vdG1wL3Vzci9saWIg LVdsLC1ycGF0aD0vbWVtZXgvbGlucGVuZ3QvZ2VudG9vL3RtcC91c3IvbGliIGdlbmVyYXRlX3V1 ZG1hcC5vIC1sbnNsIC1sZGwgLWxtIC1sY3J5cHQgLWx1dGlsIC1sYyAKLi9nZW5lcmF0ZV91dWRt YXAgdXVkbWFwLmggYml0Y291bnQuaCBtZ19kYXRhLmgKYHNoICBjZmxhZ3MgIm9wdGltaXplPSct TzIgLXBpcGUnIiBnbG9iYWxzLm9gIC1mUElDIGdsb2JhbHMuYwoJICBDQ0NNRCA9ICB4ODZfNjQt cGMtbGludXgtZ251LWdjYyAtRFBFUkxfQ09SRSAtYyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlw ZSAtSS9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2luY2x1ZGUgLURfTEFSR0VGSUxFX1NPVVJD RSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0ICAtc3RkPWM4OSAtTzIgLXBpcGUgIC1XYWxsIC1hbnNp IC1XIC1XZXh0cmEgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlbmRpZi1sYWJlbHMg LVdjKystY29tcGF0IC1Xd3JpdGUtc3RyaW5ncyAKYHNoICBjZmxhZ3MgIm9wdGltaXplPSctTzIg LXBpcGUnIiBwZXJsaW8ub2AgLWZQSUMgcGVybGlvLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxp bnV4LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkv bWVtZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURf RklMRV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAt V2V4dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysr LWNvbXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBl JyIgcGVybGFwaS5vYCAtZlBJQyBwZXJsYXBpLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4 LWdudS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVt ZXgvbGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklM RV9PRkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4 dHJhIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNv bXBhdCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIg bnVtZXJpYy5vYCAtZlBJQyBudW1lcmljLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdu dS1nY2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgv bGlucGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9P RkZTRVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJh IC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBh dCAtV3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgbWF0 aG9tcy5vYCAtZlBJQyBtYXRob21zLmMKCSAgQ0NDTUQgPSAgeDg2XzY0LXBjLWxpbnV4LWdudS1n Y2MgLURQRVJMX0NPUkUgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXBpcGUgLUkvbWVtZXgvbGlu cGVuZ3QvZ2VudG9vL3Vzci9pbmNsdWRlIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZT RVRfQklUUz02NCAgLXN0ZD1jODkgLU8yIC1waXBlICAtV2FsbCAtYW5zaSAtVyAtV2V4dHJhIC1X ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW5kaWYtbGFiZWxzIC1XYysrLWNvbXBhdCAt V3dyaXRlLXN0cmluZ3MgCmBzaCAgY2ZsYWdzICJvcHRpbWl6ZT0nLU8yIC1waXBlJyIgbG9jYWxl Lm9gIC1mUElDIGxvY2FsZS5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1E UEVSTF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0 L2dlbnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJ VFM9NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xh cmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0 ZS1zdHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIHBwX3BhY2sub2Ag LWZQSUMgcHBfcGFjay5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVS TF9DT1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dl bnRvby91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9 NjQgIC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0 aW9uLWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1z dHJpbmdzIApgc2ggIGNmbGFncyAib3B0aW1pemU9Jy1PMiAtcGlwZSciIHBwX3NvcnQub2AgLWZQ SUMgcHBfc29ydC5jCgkgIENDQ01EID0gIHg4Nl82NC1wYy1saW51eC1nbnUtZ2NjIC1EUEVSTF9D T1JFIC1jIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1waXBlIC1JL21lbWV4L2xpbnBlbmd0L2dlbnRv by91c3IvaW5jbHVkZSAtRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQg IC1zdGQ9Yzg5IC1PMiAtcGlwZSAgLVdhbGwgLWFuc2kgLVcgLVdleHRyYSAtV2RlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudCAtV2VuZGlmLWxhYmVscyAtV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJp bmdzIApMRF9MSUJSQVJZX1BBVEg9L21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRh Z2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMSB4ODZfNjQtcGMtbGludXgt Z251LWdjYyAtTC9tZW1leC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiAtV2wsLXJwYXRoPS9tZW1l eC9saW5wZW5ndC9nZW50b28vdXNyL2xpYiAtTC9tZW1leC9saW5wZW5ndC9nZW50b28vbGliIC1X bCwtcnBhdGg9L21lbWV4L2xpbnBlbmd0L2dlbnRvby9saWIgLUwvbWVtZXgvbGlucGVuZ3QvZ2Vu dG9vL3RtcC91c3IvbGliIC1XbCwtcnBhdGg9L21lbWV4L2xpbnBlbmd0L2dlbnRvby90bXAvdXNy L2xpYiAtbyBtaW5pcGVybCBcCiAgICBwZXJsbWluaS5vIG9wbWluaS5vIG1pbmlwZXJsbWFpbi5v ICAgZ3YubyB0b2tlLm8gcGVybHkubyBwYWQubyByZWdjb21wLm8gZHVtcC5vIHV0aWwubyBtZy5v IHJlZW50ci5vIG1yby5vIGtleXdvcmRzLm8gaHYubyBhdi5vIHJ1bi5vIHBwX2hvdC5vIHN2Lm8g cHAubyBzY29wZS5vIHBwX2N0bC5vIHBwX3N5cy5vIGRvb3AubyBkb2lvLm8gcmVnZXhlYy5vIHV0 ZjgubyB0YWludC5vIGRlYi5vIHVuaXZlcnNhbC5vIGdsb2JhbHMubyBwZXJsaW8ubyBwZXJsYXBp Lm8gbnVtZXJpYy5vIG1hdGhvbXMubyBsb2NhbGUubyBwcF9wYWNrLm8gcHBfc29ydC5vICAgLWxu c2wgLWxkbCAtbG0gLWxjcnlwdCAtbHV0aWwgLWxjIApMRF9MSUJSQVJZX1BBVEg9L21lbWV4L2xp bnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9w ZXJsLTUuMTYuMSAgLi9taW5pcGVybCAtdyAtSWxpYiAtTUV4cG9ydGVyIC1lICc8Pz4nIHx8IG1h a2UgbWluaXRlc3QKL21lbWV4L2xpbnBlbmd0L2dlbnRvby9iaW4vbG4gLXMgcGVybGRlbHRhLnBv ZCBwb2QvcGVybDUxNjFkZWx0YS5wb2QKTERfTElCUkFSWV9QQVRIPS9tZW1leC9saW5wZW5ndC9n ZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2 LjEgIC4vbWluaXBlcmwgLUlsaWIgYXV0b2RvYy5wbApMRF9MSUJSQVJZX1BBVEg9L21lbWV4L2xp bnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29yay9w ZXJsLTUuMTYuMSAgLi9taW5pcGVybCAtSWxpYiAtSWRpc3QvQ3dkIC1JZGlzdC9Dd2QvbGliIC1J ZGlzdC9DYXJwL2xpYiBwb2QvcGVybG1vZGxpYi5QTCAtcQpMRF9MSUJSQVJZX1BBVEg9L21lbWV4 L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29y ay9wZXJsLTUuMTYuMSAgLi9taW5pcGVybCAtSWxpYiBtYWtlX3BhdGNobnVtLnBsClVwZGF0aW5n ICdnaXRfdmVyc2lvbi5oJyBhbmQgJ2xpYi9Db25maWdfZ2l0LnBsJwpMRF9MSUJSQVJZX1BBVEg9 L21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2 LjEvd29yay9wZXJsLTUuMTYuMSAgLi9taW5pcGVybCAtSWxpYiBjb25maWdwbQp3cml0dGVuIGxp Yi9Db25maWcucG9kCnVwZGF0ZWQgbGliL0NvbmZpZy5wbQp1cGRhdGVkIGxpYi9Db25maWdfaGVh dnkucGwKTERfTElCUkFSWV9QQVRIPS9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0 YWdlL2Rldi1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEgIC4vbWluaXBlcmwgLUls aWIgd3JpdGVfYnVpbGRjdXN0b21pemUucGwgPmxpYi9idWlsZGN1c3RvbWl6ZS5wbApMRF9MSUJS QVJZX1BBVEg9L21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcv cGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMSAgLi9taW5pcGVybCAtSWxpYiBtYWtlX2V4dC5w bCBjcGFuL0FyY2hpdmUtRXh0cmFjdC9wbV90b19ibGliIE1BS0U9bWFrZSBMSUJQRVJMX0E9bGli cGVybC5zby41LjE2LjEKCU1ha2luZyBBcmNoaXZlOjpFeHRyYWN0IChhbGwpCgpDcmVhdGluZyBN YWtlZmlsZS5QTCBpbiBjcGFuL0FyY2hpdmUtRXh0cmFjdCBmb3IgQXJjaGl2ZTo6RXh0cmFjdAoK UnVubmluZyBNYWtlZmlsZS5QTCBpbiBjcGFuL0FyY2hpdmUtRXh0cmFjdAouLi8uLi9taW5pcGVy bCAtSS4uLy4uL2xpYiBNYWtlZmlsZS5QTCBJTlNUQUxMRElSUz1wZXJsIElOU1RBTExNQU4xRElS PW5vbmUgSU5TVEFMTE1BTjNESVI9bm9uZSBQRVJMX0NPUkU9MSBMSUJQRVJMX0E9bGlicGVybC5z by41LjE2LjEKV3JpdGluZyBNYWtlZmlsZSBmb3IgQXJjaGl2ZTo6RXh0cmFjdAptYWtlWzFdOiBF bnRlcmluZyBkaXJlY3RvcnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdl L2Rldi1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEvY3Bhbi9BcmNoaXZlLUV4dHJh Y3QnCk1ha2VmaWxlIG91dC1vZi1kYXRlIHdpdGggcmVzcGVjdCB0byBNYWtlZmlsZS5QTApDbGVh bmluZyBjdXJyZW50IGNvbmZpZyBiZWZvcmUgcmVidWlsZGluZyBNYWtlZmlsZS4uLgptYWtlIC1m IE1ha2VmaWxlLm9sZCBjbGVhbiA+IC9kZXYvbnVsbCAyPiYxCi4uLy4uL21pbmlwZXJsICItSS4u Ly4uL2xpYiIgIi1JLi4vLi4vbGliIiBNYWtlZmlsZS5QTCAiSU5TVEFMTERJUlM9cGVybCIgIklO U1RBTExNQU4xRElSPW5vbmUiICJJTlNUQUxMTUFOM0RJUj1ub25lIiAiUEVSTF9DT1JFPTEiICJM SUJQRVJMX0E9bGlicGVybC5zby41LjE2LjEiCldyaXRpbmcgTWFrZWZpbGUgZm9yIEFyY2hpdmU6 OkV4dHJhY3QKPT0+IFlvdXIgTWFrZWZpbGUgaGFzIGJlZW4gcmVidWlsdC4gPD09Cj09PiBQbGVh c2UgcmVydW4gdGhlIG1ha2UgY29tbWFuZC4gIDw9PQpmYWxzZQptYWtlWzFdOiAqKiogW01ha2Vm aWxlXSBFcnJvciAxCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvbWVtZXgvbGlucGVuZ3Qv Z2VudG9vL3Zhci90bXAvcG9ydGFnZS9kZXYtbGFuZy9wZXJsLTUuMTYuMS93b3JrL3BlcmwtNS4x Ni4xL2NwYW4vQXJjaGl2ZS1FeHRyYWN0JwogbWFrZSBjb25maWcgUEVSTF9DT1JFPTEgTElCUEVS TF9BPWxpYnBlcmwuc28uNS4xNi4xIGZhaWxlZCwgY29udGludWluZyBhbnl3YXkuLi4KTWFraW5n IGFsbCBpbiBjcGFuL0FyY2hpdmUtRXh0cmFjdAogbWFrZSBhbGwgUEVSTF9DT1JFPTEgTElCUEVS TF9BPWxpYnBlcmwuc28uNS4xNi4xCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL21lbWV4 L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvd29y ay9wZXJsLTUuMTYuMS9jcGFuL0FyY2hpdmUtRXh0cmFjdCcKTWFrZWZpbGUgb3V0LW9mLWRhdGUg d2l0aCByZXNwZWN0IHRvIE1ha2VmaWxlLlBMCkNsZWFuaW5nIGN1cnJlbnQgY29uZmlnIGJlZm9y ZSByZWJ1aWxkaW5nIE1ha2VmaWxlLi4uCm1ha2UgLWYgTWFrZWZpbGUub2xkIGNsZWFuID4gL2Rl di9udWxsIDI+JjEKLi4vLi4vbWluaXBlcmwgIi1JLi4vLi4vbGliIiAiLUkuLi8uLi9saWIiIE1h a2VmaWxlLlBMICJJTlNUQUxMRElSUz1wZXJsIiAiSU5TVEFMTE1BTjFESVI9bm9uZSIgIklOU1RB TExNQU4zRElSPW5vbmUiICJQRVJMX0NPUkU9MSIgIkxJQlBFUkxfQT1saWJwZXJsLnNvLjUuMTYu MSIKV3JpdGluZyBNYWtlZmlsZSBmb3IgQXJjaGl2ZTo6RXh0cmFjdAo9PT4gWW91ciBNYWtlZmls ZSBoYXMgYmVlbiByZWJ1aWx0LiA8PT0KPT0+IFBsZWFzZSByZXJ1biB0aGUgbWFrZSBjb21tYW5k LiAgPD09CmZhbHNlCm1ha2VbMV06ICoqKiBbTWFrZWZpbGVdIEVycm9yIDEKbWFrZVsxXTogTGVh dmluZyBkaXJlY3RvcnkgYC9tZW1leC9saW5wZW5ndC9nZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rl di1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2LjEvY3Bhbi9BcmNoaXZlLUV4dHJhY3Qn ClVuc3VjY2Vzc2Z1bCBtYWtlKGNwYW4vQXJjaGl2ZS1FeHRyYWN0KTogY29kZT01MTIgYXQgbWFr ZV9leHQucGwgbGluZSA0NjYuCm1ha2U6ICoqKiBbY3Bhbi9BcmNoaXZlLUV4dHJhY3QvcG1fdG9f YmxpYl0gRXJyb3IgMjUKICogRVJST1I6IGRldi1sYW5nL3BlcmwtNS4xNi4xIGZhaWxlZCAoY29t cGlsZSBwaGFzZSk6CiAqICAgZW1ha2UgZmFpbGVkCiAqIAogKiBJZiB5b3UgbmVlZCBzdXBwb3J0 LCBwb3N0IHRoZSBvdXRwdXQgb2YgYGVtZXJnZSAtLWluZm8gJz1kZXYtbGFuZy9wZXJsLTUuMTYu MSdgLAogKiB0aGUgY29tcGxldGUgYnVpbGQgbG9nIGFuZCB0aGUgb3V0cHV0IG9mIGBlbWVyZ2Ug LXBxdiAnPWRldi1sYW5nL3BlcmwtNS4xNi4xJ2AuCiAqIFRoZSBjb21wbGV0ZSBidWlsZCBsb2cg aXMgbG9jYXRlZCBhdCAnL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2 LWxhbmcvcGVybC01LjE2LjEvdGVtcC9idWlsZC5sb2cnLgogKiBUaGUgZWJ1aWxkIGVudmlyb25t ZW50IGZpbGUgaXMgbG9jYXRlZCBhdCAnL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3Bv cnRhZ2UvZGV2LWxhbmcvcGVybC01LjE2LjEvdGVtcC9lbnZpcm9ubWVuJ3QuCiAqIFdvcmtpbmcg ZGlyZWN0b3J5OiAnL21lbWV4L2xpbnBlbmd0L2dlbnRvby92YXIvdG1wL3BvcnRhZ2UvZGV2LWxh bmcvcGVybC01LjE2LjEvd29yay9wZXJsLTUuMTYuMScKICogUzogJy9tZW1leC9saW5wZW5ndC9n ZW50b28vdmFyL3RtcC9wb3J0YWdlL2Rldi1sYW5nL3BlcmwtNS4xNi4xL3dvcmsvcGVybC01LjE2 LjEnCg== --f46d04016cd59904a104d3ab873a--